@botuyo/chat-widget-standalone 1.0.15 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/botuyo-chat.es.js +19 -20
- package/dist/botuyo-chat.es.js.map +1 -1
- package/dist/botuyo-chat.umd.js +1 -1
- package/dist/botuyo-chat.umd.js.map +1 -1
- package/dist/{chunk-audio-Byncuf-J.js → chunk-audio-BXNmr8Y8.js} +2 -2
- package/dist/{chunk-audio-Byncuf-J.js.map → chunk-audio-BXNmr8Y8.js.map} +1 -1
- package/dist/{chunk-chat-ui-C1eVZlX9.js → chunk-chat-ui-CfKsKRFh.js} +56 -46
- package/dist/{chunk-chat-ui-C1eVZlX9.js.map → chunk-chat-ui-CfKsKRFh.js.map} +1 -1
- package/dist/{chunk-gallery-CpSTtGzu.js → chunk-gallery-rH58zBVZ.js} +2 -2
- package/dist/{chunk-gallery-CpSTtGzu.js.map → chunk-gallery-rH58zBVZ.js.map} +1 -1
- package/dist/src/chat-widget/ChatWidget.d.ts.map +1 -1
- package/dist/src/chat-widget/components/Launcher.d.ts +2 -1
- package/dist/src/chat-widget/components/Launcher.d.ts.map +1 -1
- package/dist/src/chat-widget/components/VoiceCallDemo.d.ts.map +1 -1
- package/dist/src/chat-widget/types/index.d.ts +2 -0
- package/dist/src/chat-widget/types/index.d.ts.map +1 -1
- package/dist/stats-umd.html +1 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
package/dist/botuyo-chat.es.js
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
|
-
import e from"react-dom";import t,{useState as r,useMemo as n,useEffect as o,useCallback as a,Component as i,useReducer as s,useRef as c,createContext as l,useContext as d,lazy as u,Suspense as p}from"react";import{u as g,g as h,e as m,f,D as w,c as v,M as b,X as y,l as x,m as k,t as _,h as z,i as S,j as E,k as O,n as I}from"./chunk-chat-ui-
|
|
2
|
-
return C("div",{className:v("flex items-center w-fit transition-all duration-500",
|
|
3
|
-
/* @__PURE__ */N("div",{className:v("transition-all duration-700 ease-in-out flex items-end",
|
|
4
|
-
/* @__PURE__ */N("div",{
|
|
5
|
-
/* @__PURE__ */N("
|
|
6
|
-
/* @__PURE__ */
|
|
7
|
-
/* @__PURE__ */C("
|
|
8
|
-
/* @__PURE__ */C("button",{type:"button",onClick:V,className:v("relative z-10 h-14 w-14 sm:h-16 sm:w-16","flex items-center justify-center text-white transition-all duration-500","hover:scale-110 active:scale-95 shadow-soft-xl cursor-pointer",!e&&"hover:rotate-6",!e&&I.enabled&&"animate-glow-pulse",k?.radius?.button||"rounded-full",O,T()),style:{backgroundColor:E||"hsl(160, 84%, 39%)","--primary-glow":`${E}66`},"aria-label":e?"Cerrar chat":"Abrir chat",children:[
|
|
1
|
+
import e from"react-dom";import t,{useState as r,useMemo as n,useEffect as o,useCallback as a,Component as i,useReducer as s,useRef as c,createContext as l,useContext as d,lazy as u,Suspense as p}from"react";import{u as g,g as h,e as m,f,D as w,c as v,M as b,X as y,l as x,m as k,t as _,h as z,i as S,j as E,k as O,n as I}from"./chunk-chat-ui-CfKsKRFh.js";import{o as $}from"./chunk-chat-ui-CfKsKRFh.js";import{jsxs as C,jsx as N}from"react/jsx-runtime";import{l as T}from"./vendor-socket-DMqyM-90.js";var A,j={},M=function(){if(A)return j;A=1;var t=e;return j.createRoot=t.createRoot,j.hydrateRoot=t.hydrateRoot,j}();function P({isOpen:e,onClick:t,unreadCount:i=0,primaryColor:s,logoUrl:c,starterPrompt:l,position:d="bottom-right",emotion:u="default",avatars:p={},styles:k,promptPersistence:_="session",avatarScale:z=1,showPromptAvatar:S=!1}){const{t:E}=g("extracted"),O=h({primaryColor:s}),I=k?.launcher?.bg,$=m(),{triggerHaptic:T,getGlowClass:A}=f(),j=$.launcherPulse&&!1!==k?.launcher?.pulse,[M,P]=r(!1),[F,Z]=r(!1),[D,R]=r(!1),[U,L]=r(!1),W="bottom-right"===d,B="chat_launcher_prompt_state",J=n(()=>p[u]||p.default||c||w,[u,p,c]);o(()=>{L(!1)},[J]),o(()=>{const e=Object.values(p).filter(e=>!!e);c&&e.push(c),e.forEach(e=>{(new Image).src=e})},[p,c]),o(()=>{"forever"===_&&"dismissed"===localStorage.getItem(B)&&R(!0)},[_]);const V=a(()=>{Z(!0),setTimeout(()=>P(!1),500),"always"!==_&&(R(!0),"forever"===_&&localStorage.setItem(B,"dismissed"))},[_]);o(()=>{if("always"!==_&&D||!l||e)return void P(!1);const t=setTimeout(()=>{P(!0),Z(!1)},2e3),r=setTimeout(()=>V(),12e3);return()=>{clearTimeout(t),clearTimeout(r)}},[l,e,D,_,V]);const q=()=>{x.debug("Launcher handleMainAction called, isOpen:",e),T(),R(!0),"forever"===_&&localStorage.setItem(B,"dismissed"),t()};/* @__PURE__ */
|
|
2
|
+
return C("div",{className:v("flex items-center w-fit transition-all duration-500",W?"flex-row ml-auto":"flex-row-reverse mr-auto"),children:[
|
|
3
|
+
/* @__PURE__ */N("div",{className:v("transition-all duration-700 ease-in-out flex items-end",M?v("opacity-100 translate-x-0 w-auto max-w-[350px]",W?"mr-5":"ml-5"):v("opacity-0 w-0 max-w-0 overflow-hidden pointer-events-none",W?"translate-x-4":"-translate-x-4")),children:/* @__PURE__ */C("div",{className:v("relative flex items-center gap-2.5 cursor-pointer",F&&"opacity-0 scale-95 transition-all duration-300",!M&&"hidden"),onClick:q,style:{width:"max-content"},children:[S&&/* @__PURE__ */N("div",{className:"shrink-0 overflow-hidden",style:{width:"36px",height:"36px",borderRadius:"50%",backgroundColor:O||"hsl(160,84%,39%)",boxShadow:`0 2px 8px ${O||"hsl(160,84%,39%)"}44`,display:"flex",alignItems:"center",justifyContent:"center"},children:J&&!U?/* @__PURE__ */N("img",{src:J,alt:"",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"},onError:()=>L(!0)}):/* @__PURE__ */N(b,{style:{width:"18px",height:"18px",color:"white",fill:"white"}})}),
|
|
4
|
+
/* @__PURE__ */N("div",{style:{position:"relative",maxWidth:"280px",padding:"10px 16px",borderRadius:"18px",backgroundColor:"hsl(var(--background) / 0.92)",backdropFilter:"blur(12px)",WebkitBackdropFilter:"blur(12px)",color:"hsl(var(--foreground))",boxShadow:"0 4px 20px -4px rgba(0,0,0,0.12), 0 0 0 1px hsl(var(--border) / 0.6)"},children:/* @__PURE__ */N("span",{style:{display:"block",fontSize:"13.5px",fontWeight:600,lineHeight:1.4,letterSpacing:"-0.01em",whiteSpace:"nowrap"},children:l})}),
|
|
5
|
+
/* @__PURE__ */N("button",{onClick:e=>{e.stopPropagation(),V()},style:{position:"absolute",top:"-6px",right:"-6px",width:"20px",height:"20px",borderRadius:"50%",backgroundColor:"hsl(var(--background))",border:"1px solid hsl(var(--border))",boxShadow:"0 1px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",color:"hsl(var(--muted-foreground))",padding:0,transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="hsl(var(--destructive))",e.currentTarget.style.color="white",e.currentTarget.style.borderColor="hsl(var(--destructive))"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="hsl(var(--background))",e.currentTarget.style.color="hsl(var(--muted-foreground))",e.currentTarget.style.borderColor="hsl(var(--border))"},"aria-label":"Cerrar",children:/* @__PURE__ */N(y,{className:"h-3 w-3",style:{strokeWidth:2.5}})})]})}),
|
|
6
|
+
/* @__PURE__ */C("div",{className:"relative flex items-center justify-center shrink-0",children:[!e&&j&&/* @__PURE__ */N("span",{className:"absolute inset-0 flex items-center justify-center",children:/* @__PURE__ */N("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-20",style:{backgroundColor:O}})}),
|
|
7
|
+
/* @__PURE__ */C("button",{type:"button",onClick:q,className:v("relative z-10 h-14 w-14 sm:h-16 sm:w-16","flex items-center justify-center text-white transition-all duration-500","hover:scale-110 active:scale-95 shadow-soft-xl cursor-pointer",!e&&"hover:rotate-6",!e&&$.enabled&&"animate-glow-pulse",k?.radius?.button||"rounded-full",I,A()),style:{backgroundColor:O||"hsl(160, 84%, 39%)","--primary-glow":`${O}66`},"aria-label":e?"Cerrar chat":"Abrir chat",children:[
|
|
9
8
|
/* @__PURE__ */C("div",{className:"relative h-full w-full flex items-center justify-center overflow-hidden rounded-inherit",children:[
|
|
10
|
-
/* @__PURE__ */N("div",{className:v("absolute inset-0 transition-all duration-500 flex items-center justify-center",e?"opacity-0 scale-50 rotate-90":"opacity-100 scale-100 rotate-0"),children:
|
|
11
|
-
/* @__PURE__ */N("div",{className:v("absolute inset-0 transition-all duration-500 flex items-center justify-center bg-black/5 dark:bg-white/10",e?"opacity-100 scale-100 rotate-0":"opacity-0 scale-50 -rotate-90"),children:/* @__PURE__ */N(y,{className:"h-7 w-7 sm:h-8 sm:w-8 stroke-[2.5]"})})]}),!e&&i>0&&/* @__PURE__ */N("div",{className:"absolute -top-1 -right-1 z-20 flex h-6 w-6 items-center justify-center bg-destructive text-destructive-foreground rounded-full border-2 border-background text-[10px] font-black shadow-soft-md tabular-nums",children:i>9?"9+":i})]})]})]})}class
|
|
9
|
+
/* @__PURE__ */N("div",{className:v("absolute inset-0 transition-all duration-500 flex items-center justify-center",e?"opacity-0 scale-50 rotate-90":"opacity-100 scale-100 rotate-0"),children:J&&!U?/* @__PURE__ */N("img",{src:J,alt:E("assistant"),className:"w-full h-full object-cover",style:{transform:`scale(${z})`},onError:()=>L(!0)},J):/* @__PURE__ */N(b,{className:"h-7 w-7 sm:h-8 sm:w-8 fill-current"})}),
|
|
10
|
+
/* @__PURE__ */N("div",{className:v("absolute inset-0 transition-all duration-500 flex items-center justify-center bg-black/5 dark:bg-white/10",e?"opacity-100 scale-100 rotate-0":"opacity-0 scale-50 -rotate-90"),children:/* @__PURE__ */N(y,{className:"h-7 w-7 sm:h-8 sm:w-8 stroke-[2.5]"})})]}),!e&&i>0&&/* @__PURE__ */N("div",{className:"absolute -top-1 -right-1 z-20 flex h-6 w-6 items-center justify-center bg-destructive text-destructive-foreground rounded-full border-2 border-background text-[10px] font-black shadow-soft-md tabular-nums",children:i>9?"9+":i})]})]})]})}class F extends i{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){x.error("ErrorBoundary caught error:",e,t),this.props.onError?.(e,t)}handleReset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError?this.props.fallback?this.props.fallback:/* @__PURE__ */C("div",{className:"flex flex-col items-center justify-center p-8 bg-background text-center",children:[
|
|
12
11
|
/* @__PURE__ */N("div",{className:"text-6xl mb-4",children:"⚠️"}),
|
|
13
12
|
/* @__PURE__ */N("h2",{className:"text-xl font-bold text-foreground mb-2",children:"Algo salió mal"}),
|
|
14
13
|
/* @__PURE__ */N("p",{className:"text-sm text-muted-foreground mb-6 max-w-md",children:this.state.error?.message||"Ocurrió un error inesperado"}),
|
|
15
|
-
/* @__PURE__ */N("button",{onClick:this.handleReset,className:"px-4 py-2 bg-primary text-primary-foreground rounded-lg font-medium hover:opacity-90 transition-opacity",children:"Intentar de nuevo"})]}):this.props.children}}const F={bubble:"rounded-2xl",image:"rounded-xl",button:"rounded-xl",card:"rounded-2xl"},D={bg:"bg-muted/50 dark:bg-muted/20",text:"text-foreground",border:"border-border/50"},R={text:"text-primary-foreground"};const U=(e,t)=>t.some(t=>e instanceof t);let L,W;const B=/* @__PURE__ */new WeakMap,J=/* @__PURE__ */new WeakMap,V=/* @__PURE__ */new WeakMap;let q={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return B.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return H(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function G(e){q=e(q)}function K(e){return"function"==typeof e?(t=e,(W||(W=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Y(this),e),H(this.request)}:function(...e){return H(t.apply(Y(this),e))}):(e instanceof IDBTransaction&&function(e){if(B.has(e))return;const t=new Promise((t,r)=>{const n=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",a),e.removeEventListener("abort",a)},o=()=>{t(),n()},a=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",o),e.addEventListener("error",a),e.addEventListener("abort",a)});B.set(e,t)}(e),U(e,L||(L=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,q):e);var t}function H(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,r)=>{const n=()=>{e.removeEventListener("success",o),e.removeEventListener("error",a)},o=()=>{t(H(e.result)),n()},a=()=>{r(e.error),n()};e.addEventListener("success",o),e.addEventListener("error",a)});return V.set(t,e),t}(e);if(J.has(e))return J.get(e);const t=K(e);return t!==e&&(J.set(e,t),V.set(t,e)),t}const Y=e=>V.get(e),X=["get","getKey","getAll","getAllKeys","count"],Q=["put","add","delete","clear"],ee=/* @__PURE__ */new Map;function te(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(ee.get(t))return ee.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,o=Q.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!X.includes(r))return;const a=async function(e,...t){const a=this.transaction(e,o?"readwrite":"readonly");let i=a.store;return n&&(i=i.index(t.shift())),(await Promise.all([i[r](...t),o&&a.done]))[0]};return ee.set(t,a),a}G(e=>({...e,get:(t,r,n)=>te(t,r)||e.get(t,r,n),has:(t,r)=>!!te(t,r)||e.has(t,r)}));const re=["continue","continuePrimaryKey","advance"],ne={},oe=/* @__PURE__ */new WeakMap,ae=/* @__PURE__ */new WeakMap,ie={get(e,t){if(!re.includes(t))return e[t];let r=ne[t];return r||(r=ne[t]=function(...e){oe.set(this,ae.get(this)[t](...e))}),r}};async function*se(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const r=new Proxy(t,ie);for(ae.set(r,t),V.set(r,Y(t));t;)yield r,t=await(oe.get(r)||t.continue()),oe.delete(r)}function ce(e,t){return t===Symbol.asyncIterator&&U(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&U(e,[IDBIndex,IDBObjectStore])}G(e=>({...e,get:(t,r,n)=>ce(t,r)?se:e.get(t,r,n),has:(t,r)=>ce(t,r)||e.has(t,r)}));const le=new class{db=null;DB_NAME="botuyo-chat";DB_VERSION=1;async init(){try{this.db=await function(e,t,{blocked:r,upgrade:n,blocking:o,terminated:a}={}){const i=indexedDB.open(e,t),s=H(i);return n&&i.addEventListener("upgradeneeded",e=>{n(H(i.result),e.oldVersion,e.newVersion,H(i.transaction),e)}),r&&i.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener("close",()=>a()),o&&e.addEventListener("versionchange",e=>o(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}(this.DB_NAME,this.DB_VERSION,{upgrade(e){e.objectStoreNames.contains("messages")||e.createObjectStore("messages",{keyPath:"id"}).createIndex("by-timestamp","timestamp"),e.objectStoreNames.contains("metadata")||e.createObjectStore("metadata")}}),x.info("IndexedDB initialized")}catch(e){throw x.error("Failed to initialize IndexedDB:",e),e}}async saveMessage(e){this.db||await this.init();try{await this.db.put("messages",e)}catch(t){x.error("Failed to save message:",t)}}async saveMessages(e){this.db||await this.init();try{const t=this.db.transaction("messages","readwrite");await Promise.all([...e.map(e=>t.store.put(e)),t.done])}catch(t){x.error("Failed to save messages:",t)}}async getMessages(e=100){this.db||await this.init();try{return(await this.db.getAllFromIndex("messages","by-timestamp")).slice(-e)}catch(t){return x.error("Failed to get messages:",t),[]}}async getMessage(e){this.db||await this.init();try{return await this.db.get("messages",e)}catch(t){return void x.error("Failed to get message:",t)}}async deleteMessage(e){this.db||await this.init();try{await this.db.delete("messages",e)}catch(t){x.error("Failed to delete message:",t)}}async clearMessages(){this.db||await this.init();try{await this.db.clear("messages"),x.info("Messages cleared from IndexedDB")}catch(e){x.error("Failed to clear messages:",e)}}async setMetadata(e){this.db||await this.init();try{await this.db.put("metadata",e,"chat-metadata")}catch(t){x.error("Failed to set metadata:",t)}}async getMetadata(){this.db||await this.init();try{return await this.db.get("metadata","chat-metadata")}catch(e){return x.error("Failed to get metadata:",e),null}}async clearAll(){this.db||await this.init();try{await Promise.all([this.db.clear("messages"),this.db.clear("metadata")]),x.info("All data cleared from IndexedDB")}catch(e){x.error("Failed to clear all data:",e)}}async migrateFromLocalStorage(){try{const e="botuyo_chat_v1",t=localStorage.getItem(e);if(!t)return;const r=JSON.parse(t);if(r.messages&&Array.isArray(r.messages)){const e=r.messages.map(e=>({...e,timestamp:new Date(e.timestamp)}));await this.saveMessages(e),x.info(`Migrated ${e.length} messages from localStorage`)}r.sessionId&&await this.setMetadata({sessionId:r.sessionId}),localStorage.removeItem(e),x.info("Migration from localStorage completed")}catch(e){x.error("Failed to migrate from localStorage:",e)}}},de="botuyo_chat_v1",ue={isOpen:!1,isConnected:!1,isTyping:!1,messages:[],error:null,sessionId:null};function pe(e,t){switch(t.type){case"TOGGLE_WINDOW":return{...e,isOpen:!e.isOpen};case"OPEN_WINDOW":return{...e,isOpen:!0};case"CLOSE_WINDOW":return{...e,isOpen:!1};case"SET_CONNECTED":return{...e,isConnected:t.payload};case"SET_TYPING":return{...e,isTyping:t.payload};case"ADD_MESSAGE":{if(e.messages.some(e=>e.id===t.payload.id))return e;const r=[...e.messages,t.payload],n="bot"===t.payload.sender;return{...e,messages:r,isTyping:!n&&e.isTyping}}case"SET_MESSAGES":return{...e,messages:[...t.payload]};case"SET_ERROR":return{...e,error:t.payload};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"CLEAR_CHAT":return{...ue,isOpen:e.isOpen};case"RESTORE_SESSION":return{...e,...t.payload,isConnected:!1,isTyping:!1,error:null};default:return e}}function ge(e,t,r){function n(r,n){if(r._zod||Object.defineProperty(r,"_zod",{value:{def:n,constr:i,traits:/* @__PURE__ */new Set},enumerable:!1}),r._zod.traits.has(e))return;r._zod.traits.add(e),t(r,n);const o=i.prototype,a=Object.keys(o);for(let e=0;e<a.length;e++){const t=a[e];t in r||(r[t]=o[t].bind(r))}}const o=r?.Parent??Object;class a extends o{}function i(e){var t;const o=r?.Parent?new a:this;n(o,e),(t=o._zod).deferred??(t.deferred=[]);for(const r of o._zod.deferred)r();return o}return Object.defineProperty(a,"name",{value:e}),Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:t=>!!(r?.Parent&&t instanceof r.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class he extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class me extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}const fe={};function we(e){return fe}function ve(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,r])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function be(e,t){return"bigint"==typeof t?t.toString():t}function ye(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function xe(e){return null==e}function ke(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}const _e=/* @__PURE__ */Symbol("evaluating");function ze(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==_e)return void 0===n&&(n=_e,n=r()),n},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Se(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Ee(...e){const t={};for(const r of e){const e=Object.getOwnPropertyDescriptors(r);Object.assign(t,e)}return Object.defineProperties({},t)}function Oe(e){return JSON.stringify(e)}const Ie="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function $e(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const Ce=ye(()=>{if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function Ne(e){if(!1===$e(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const r=t.prototype;return!1!==$e(r)&&!1!==Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")}function Te(e){return Ne(e)?{...e}:Array.isArray(e)?[...e]:e}const je=/* @__PURE__ */new Set(["string","number","symbol"]);function Ae(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Me(e,t,r){const n=new e._zod.constr(t??e._zod.def);return t&&!r?.parent||(n._zod.parent=e),n}function Pe(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}const Ze={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Fe(e,t=0){if(!0===e.aborted)return!0;for(let r=t;r<e.issues.length;r++)if(!0!==e.issues[r]?.continue)return!0;return!1}function De(e,t){return t.map(t=>{var r;return(r=t).path??(r.path=[]),t.path.unshift(e),t})}function Re(e){return"string"==typeof e?e:e?.message}function Ue(e,t,r){const n={...e,path:e.path??[]};if(!e.message){const o=Re(e.inst?._zod.def?.error?.(e))??Re(t?.error?.(e))??Re(r.customError?.(e))??Re(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Le(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function We(...e){const[t,r,n]=e;return"string"==typeof t?{message:t,code:"custom",input:r,inst:n}:{...t}}const Be=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,be,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Je=ge("$ZodError",Be),Ve=ge("$ZodError",Be,{Parent:Error}),qe=e=>(t,r,n,o)=>{const a=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},a);if(i instanceof Promise)throw new he;if(i.issues.length){const t=new(o?.Err??e)(i.issues.map(e=>Ue(e,a,we())));throw Ie(t,o?.callee),t}return i.value},Ge=e=>async(t,r,n,o)=>{const a=n?Object.assign(n,{async:!0}):{async:!0};let i=t._zod.run({value:r,issues:[]},a);if(i instanceof Promise&&(i=await i),i.issues.length){const t=new(o?.Err??e)(i.issues.map(e=>Ue(e,a,we())));throw Ie(t,o?.callee),t}return i.value},Ke=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},o);if(a instanceof Promise)throw new he;return a.issues.length?{success:!1,error:new(e??Je)(a.issues.map(e=>Ue(e,o,we())))}:{success:!0,data:a.value}},He=/* @__PURE__ */Ke(Ve),Ye=e=>async(t,r,n)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let a=t._zod.run({value:r,issues:[]},o);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Ue(e,o,we())))}:{success:!0,data:a.value}},Xe=/* @__PURE__ */Ye(Ve),Qe=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return qe(e)(t,r,o)},et=e=>(t,r,n)=>qe(e)(t,r,n),tt=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ge(e)(t,r,o)},rt=e=>async(t,r,n)=>Ge(e)(t,r,n),nt=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ke(e)(t,r,o)},ot=e=>(t,r,n)=>Ke(e)(t,r,n),at=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ye(e)(t,r,o)},it=e=>async(t,r,n)=>Ye(e)(t,r,n),st=/^[cC][^\s-]{8,}$/,ct=/^[0-9a-z]+$/,lt=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,dt=/^[0-9a-vA-V]{20}$/,ut=/^[A-Za-z0-9]{27}$/,pt=/^[a-zA-Z0-9_-]{21}$/,gt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ht=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,mt=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,ft=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,wt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,vt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,bt=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,yt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,xt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,kt=/^[A-Za-z0-9_-]*$/,_t=/^\+[1-9]\d{6,14}$/,zt="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",St=/* @__PURE__ */new RegExp(`^${zt}$`);function Et(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}const Ot=/^-?\d+$/,It=/^-?\d+(?:\.\d+)?$/,$t=/^[^A-Z]*$/,Ct=/^[^a-z]*$/,Nt=/* @__PURE__ */ge("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Tt={number:"number",bigint:"bigint",object:"date"},jt=/* @__PURE__ */ge("$ZodCheckLessThan",(e,t)=>{Nt.init(e,t);const r=Tt[typeof t.value];e._zod.onattach.push(e=>{const r=e._zod.bag,n=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<n&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),At=/* @__PURE__ */ge("$ZodCheckGreaterThan",(e,t)=>{Nt.init(e,t);const r=Tt[typeof t.value];e._zod.onattach.push(e=>{const r=e._zod.bag,n=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>n&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Mt=/* @__PURE__ */ge("$ZodCheckMultipleOf",(e,t)=>{Nt.init(e,t),e._zod.onattach.push(e=>{var r;(r=e._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof r.value?r.value%t.value===BigInt(0):0===function(e,t){const r=(e.toString().split(".")[1]||"").length,n=t.toString();let o=(n.split(".")[1]||"").length;if(0===o&&/\d?e-\d?/.test(n)){const e=n.match(/\d?e-(\d?)/);e?.[1]&&(o=Number.parseInt(e[1]))}const a=r>o?r:o;return Number.parseInt(e.toFixed(a).replace(".",""))%Number.parseInt(t.toFixed(a).replace(".",""))/10**a}(r.value,t.value))||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Pt=/* @__PURE__ */ge("$ZodCheckNumberFormat",(e,t)=>{Nt.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,a]=Ze[t.format];e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,n.minimum=o,n.maximum=a,r&&(n.pattern=Ot)}),e._zod.check=i=>{const s=i.value;if(r){if(!Number.isInteger(s))return void i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?i.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}))}s<o&&i.issues.push({origin:"number",input:s,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),s>a&&i.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Zt=/* @__PURE__ */ge("$ZodCheckMaxLength",(e,t)=>{var r;Nt.init(e,t),(r=e._zod.def).when??(r.when=e=>{const t=e.value;return!xe(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const r=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const n=r.value;if(n.length<=t.maximum)return;const o=Le(n);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),Ft=/* @__PURE__ */ge("$ZodCheckMinLength",(e,t)=>{var r;Nt.init(e,t),(r=e._zod.def).when??(r.when=e=>{const t=e.value;return!xe(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const r=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const n=r.value;if(n.length>=t.minimum)return;const o=Le(n);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),Dt=/* @__PURE__ */ge("$ZodCheckLengthEquals",(e,t)=>{var r;Nt.init(e,t),(r=e._zod.def).when??(r.when=e=>{const t=e.value;return!xe(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const r=e._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=r=>{const n=r.value,o=n.length;if(o===t.length)return;const a=Le(n),i=o>t.length;r.issues.push({origin:a,...i?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Rt=/* @__PURE__ */ge("$ZodCheckStringFormat",(e,t)=>{var r,n;Nt.init(e,t),e._zod.onattach.push(e=>{const r=e._zod.bag;r.format=t.format,t.pattern&&(r.patterns??(r.patterns=/* @__PURE__ */new Set),r.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=r=>{t.pattern.lastIndex=0,t.pattern.test(r.value)||r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Ut=/* @__PURE__ */ge("$ZodCheckRegex",(e,t)=>{Rt.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,t.pattern.test(r.value)||r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Lt=/* @__PURE__ */ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=$t),Rt.init(e,t)}),Wt=/* @__PURE__ */ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ct),Rt.init(e,t)}),Bt=/* @__PURE__ */ge("$ZodCheckIncludes",(e,t)=>{Nt.init(e,t);const r=Ae(t.includes),n=new RegExp("number"==typeof t.position?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(n)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),Jt=/* @__PURE__ */ge("$ZodCheckStartsWith",(e,t)=>{Nt.init(e,t);const r=new RegExp(`^${Ae(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(r)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Vt=/* @__PURE__ */ge("$ZodCheckEndsWith",(e,t)=>{Nt.init(e,t);const r=new RegExp(`.*${Ae(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(r)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),qt=/* @__PURE__ */ge("$ZodCheckOverwrite",(e,t)=>{Nt.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});class Gt{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),r=Math.min(...t.map(e=>e.length-e.trimStart().length)),n=t.map(e=>e.slice(r)).map(e=>" ".repeat(2*this.indent)+e);for(const o of n)this.content.push(o)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}}const Kt={major:4,minor:3,patch:6},Ht=/* @__PURE__ */ge("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Kt;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const t of o._zod.onattach)t(e);if(0===n.length)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,r)=>{let n,o=Fe(e);for(const a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(o)continue;const t=e.issues.length,i=a._zod.check(e);if(i instanceof Promise&&!1===r?.async)throw new he;if(n||i instanceof Promise)n=(n??Promise.resolve()).then(async()=>{await i,e.issues.length!==t&&(o||(o=Fe(e,t)))});else{if(e.issues.length===t)continue;o||(o=Fe(e,t))}}return n?n.then(()=>e):e},r=(r,o,a)=>{if(Fe(r))return r.aborted=!0,r;const i=t(o,n,a);if(i instanceof Promise){if(!1===a.async)throw new he;return i.then(t=>e._zod.parse(t,a))}return e._zod.parse(i,a)};e._zod.run=(o,a)=>{if(a.skipChecks)return e._zod.parse(o,a);if("backward"===a.direction){const t=e._zod.parse({value:o.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>r(e,o,a)):r(t,o,a)}const i=e._zod.parse(o,a);if(i instanceof Promise){if(!1===a.async)throw new he;return i.then(e=>t(e,n,a))}return t(i,n,a)}}ze(e,"~standard",()=>({validate:t=>{try{const r=He(e,t);return r.success?{value:r.data}:{issues:r.error?.issues}}catch(r){return Xe(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),Yt=/* @__PURE__ */ge("$ZodString",(e,t)=>{var r;Ht.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(r=e._zod.bag,new RegExp(`^${r?`[\\s\\S]{${r?.minimum??0},${r?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch(o){}return"string"==typeof r.value||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),Xt=/* @__PURE__ */ge("$ZodStringFormat",(e,t)=>{Rt.init(e,t),Yt.init(e,t)}),Qt=/* @__PURE__ */ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ht),Xt.init(e,t)}),er=/* @__PURE__ */ge("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=mt(e))}else t.pattern??(t.pattern=mt());Xt.init(e,t)}),tr=/* @__PURE__ */ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=ft),Xt.init(e,t)}),rr=/* @__PURE__ */ge("$ZodURL",(e,t)=>{Xt.init(e,t),e._zod.check=r=>{try{const n=r.value.trim(),o=new URL(n);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),void(t.normalize?r.value=o.href:r.value=n)}catch(n){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),nr=/* @__PURE__ */ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Xt.init(e,t)}),or=/* @__PURE__ */ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pt),Xt.init(e,t)}),ar=/* @__PURE__ */ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=st),Xt.init(e,t)}),ir=/* @__PURE__ */ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ct),Xt.init(e,t)}),sr=/* @__PURE__ */ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=lt),Xt.init(e,t)}),cr=/* @__PURE__ */ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=dt),Xt.init(e,t)}),lr=/* @__PURE__ */ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ut),Xt.init(e,t)}),dr=/* @__PURE__ */ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Et({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${zt}T(?:${n})$`)}(t)),Xt.init(e,t)}),ur=/* @__PURE__ */ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=St),Xt.init(e,t)}),pr=/* @__PURE__ */ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Et(t)}$`)),Xt.init(e,t)}),gr=/* @__PURE__ */ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=gt),Xt.init(e,t)}),hr=/* @__PURE__ */ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=wt),Xt.init(e,t),e._zod.bag.format="ipv4"}),mr=/* @__PURE__ */ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=vt),Xt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),fr=/* @__PURE__ */ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=bt),Xt.init(e,t)}),wr=/* @__PURE__ */ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=yt),Xt.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(2!==n.length)throw new Error;const[e,t]=n;if(!t)throw new Error;const r=Number(t);if(`${r}`!==t)throw new Error;if(r<0||r>128)throw new Error;new URL(`http://[${e}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function vr(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const br=/* @__PURE__ */ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=xt),Xt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{vr(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),yr=/* @__PURE__ */ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=kt),Xt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{(function(e){if(!kt.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return vr(t.padEnd(4*Math.ceil(t.length/4),"="))})(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),xr=/* @__PURE__ */ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=_t),Xt.init(e,t)}),kr=/* @__PURE__ */ge("$ZodJWT",(e,t)=>{Xt.init(e,t),e._zod.check=r=>{(function(e,t=null){try{const r=e.split(".");if(3!==r.length)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&"JWT"!==o?.typ||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}})(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),_r=/* @__PURE__ */ge("$ZodNumber",(e,t)=>{Ht.init(e,t),e._zod.pattern=e._zod.bag.pattern??It,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch(i){}const o=r.value;if("number"==typeof o&&!Number.isNaN(o)&&Number.isFinite(o))return r;const a="number"==typeof o?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...a?{received:a}:{}}),r}}),zr=/* @__PURE__ */ge("$ZodNumberFormat",(e,t)=>{Pt.init(e,t),_r.init(e,t)}),Sr=/* @__PURE__ */ge("$ZodAny",(e,t)=>{Ht.init(e,t),e._zod.parse=e=>e}),Er=/* @__PURE__ */ge("$ZodUnknown",(e,t)=>{Ht.init(e,t),e._zod.parse=e=>e}),Or=/* @__PURE__ */ge("$ZodNever",(e,t)=>{Ht.init(e,t),e._zod.parse=(t,r)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Ir(e,t,r){e.issues.length&&t.issues.push(...De(r,e.issues)),t.value[r]=e.value}const $r=/* @__PURE__ */ge("$ZodArray",(e,t)=>{Ht.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const a=[];for(let e=0;e<o.length;e++){const i=o[e],s=t.element._zod.run({value:i,issues:[]},n);s instanceof Promise?a.push(s.then(t=>Ir(t,r,e))):Ir(s,r,e)}return a.length?Promise.all(a).then(()=>r):r}});function Cr(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...De(r,e.issues))}void 0===e.value?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Nr(e){const t=Object.keys(e.shape);for(const o of t)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);const r=(n=e.shape,Object.keys(n).filter(e=>"optional"===n[e]._zod.optin&&"optional"===n[e]._zod.optout));var n;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Tr(e,t,r,n,o,a){const i=[],s=o.keySet,c=o.catchall._zod,l=c.def.type,d="optional"===c.optout;for(const u in t){if(s.has(u))continue;if("never"===l){i.push(u);continue}const o=c.run({value:t[u],issues:[]},n);o instanceof Promise?e.push(o.then(e=>Cr(e,r,u,t,d))):Cr(o,r,u,t,d)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:a}),e.length?Promise.all(e).then(()=>r):r}const jr=/* @__PURE__ */ge("$ZodObject",(e,t)=>{Ht.init(e,t);const r=Object.getOwnPropertyDescriptor(t,"shape");if(!r?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const r={...e};return Object.defineProperty(t,"shape",{value:r}),r}})}const n=ye(()=>Nr(t));ze(e._zod,"propValues",()=>{const e=t.shape,r={};for(const t in e){const n=e[t]._zod;if(n.values){r[t]??(r[t]=/* @__PURE__ */new Set);for(const e of n.values)r[t].add(e)}}return r});const o=$e,a=t.catchall;let i;e._zod.parse=(t,r)=>{i??(i=n.value);const s=t.value;if(!o(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const c=[],l=i.shape;for(const e of i.keys){const n=l[e],o="optional"===n._zod.optout,a=n._zod.run({value:s[e],issues:[]},r);a instanceof Promise?c.push(a.then(r=>Cr(r,t,e,s,o))):Cr(a,t,e,s,o)}return a?Tr(c,s,t,r,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),Ar=/* @__PURE__ */ge("$ZodObjectJIT",(e,t)=>{jr.init(e,t);const r=e._zod.parse,n=ye(()=>Nr(t));let o;const a=$e,i=!fe.jitless,s=i&&Ce.value,c=t.catchall;let l;e._zod.parse=(d,u)=>{l??(l=n.value);const p=d.value;return a(p)?i&&s&&!1===u?.async&&!0!==u.jitless?(o||(o=(e=>{const t=new Gt(["shape","payload","ctx"]),r=n.value,o=e=>{const t=Oe(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const a=/* @__PURE__ */Object.create(null);let i=0;for(const n of r.keys)a[n]="key_"+i++;t.write("const newResult = {};");for(const n of r.keys){const r=a[n],i=Oe(n),s=e[n],c="optional"===s?._zod?.optout;t.write(`const ${r} = ${o(n)};`),c?t.write(`\n if (${r}.issues.length) {\n if (${i} in input) {\n payload.issues = payload.issues.concat(${r}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n }\n \n if (${r}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${r}.value;\n }\n \n `):t.write(`\n if (${r}.issues.length) {\n payload.issues = payload.issues.concat(${r}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n \n if (${r}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${r}.value;\n }\n \n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,r)=>s(e,t,r)})(t.shape)),d=o(d,u),c?Tr([],p,d,u,l,e):d):r(d,u):(d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d)}});function Mr(e,t,r,n){for(const a of e)if(0===a.issues.length)return t.value=a.value,t;const o=e.filter(e=>!Fe(e));return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(e=>e.issues.map(e=>Ue(e,n,we())))}),t)}const Pr=/* @__PURE__ */ge("$ZodUnion",(e,t)=>{Ht.init(e,t),ze(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),ze(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),ze(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),ze(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>ke(e.source)).join("|")})$`)}});const r=1===t.options.length,n=t.options[0]._zod.run;e._zod.parse=(o,a)=>{if(r)return n(o,a);let i=!1;const s=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},a);if(t instanceof Promise)s.push(t),i=!0;else{if(0===t.issues.length)return t;s.push(t)}}return i?Promise.all(s).then(t=>Mr(t,o,e,a)):Mr(s,o,e,a)}}),Zr=/* @__PURE__ */ge("$ZodIntersection",(e,t)=>{Ht.init(e,t),e._zod.parse=(e,r)=>{const n=e.value,o=t.left._zod.run({value:n,issues:[]},r),a=t.right._zod.run({value:n,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([t,r])=>Dr(e,t,r)):Dr(e,o,a)}});function Fr(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(Ne(e)&&Ne(t)){const r=Object.keys(t),n=Object.keys(e).filter(e=>-1!==r.indexOf(e)),o={...e,...t};for(const a of n){const r=Fr(e[a],t[a]);if(!r.valid)return{valid:!1,mergeErrorPath:[a,...r.mergeErrorPath]};o[a]=r.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=Fr(e[n],t[n]);if(!o.valid)return{valid:!1,mergeErrorPath:[n,...o.mergeErrorPath]};r.push(o.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Dr(e,t,r){const n=/* @__PURE__ */new Map;let o;for(const s of t.issues)if("unrecognized_keys"===s.code){o??(o=s);for(const e of s.keys)n.has(e)||n.set(e,{}),n.get(e).l=!0}else e.issues.push(s);for(const s of r.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)n.has(e)||n.set(e,{}),n.get(e).r=!0;else e.issues.push(s);const a=[...n].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&o&&e.issues.push({...o,keys:a}),Fe(e))return e;const i=Fr(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const Rr=/* @__PURE__ */ge("$ZodEnum",(e,t)=>{Ht.init(e,t);const r=ve(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(e=>je.has(typeof e)).map(e=>"string"==typeof e?Ae(e):e.toString()).join("|")})$`),e._zod.parse=(t,o)=>{const a=t.value;return n.has(a)||t.issues.push({code:"invalid_value",values:r,input:a,inst:e}),t}}),Ur=/* @__PURE__ */ge("$ZodTransform",(e,t)=>{Ht.init(e,t),e._zod.parse=(r,n)=>{if("backward"===n.direction)throw new me(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(e=>(r.value=e,r));if(o instanceof Promise)throw new he;return r.value=o,r}});function Lr(e,t){return e.issues.length&&void 0===t?{issues:[],value:void 0}:e}const Wr=/* @__PURE__ */ge("$ZodOptional",(e,t)=>{Ht.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ze(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,void 0]):void 0),ze(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${ke(e.source)})?$`):void 0}),e._zod.parse=(e,r)=>{if("optional"===t.innerType._zod.optin){const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(t=>Lr(t,e.value)):Lr(n,e.value)}return void 0===e.value?e:t.innerType._zod.run(e,r)}}),Br=/* @__PURE__ */ge("$ZodExactOptional",(e,t)=>{Wr.init(e,t),ze(e._zod,"values",()=>t.innerType._zod.values),ze(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,r)=>t.innerType._zod.run(e,r)}),Jr=/* @__PURE__ */ge("$ZodNullable",(e,t)=>{Ht.init(e,t),ze(e._zod,"optin",()=>t.innerType._zod.optin),ze(e._zod,"optout",()=>t.innerType._zod.optout),ze(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${ke(e.source)}|null)$`):void 0}),ze(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,r)=>null===e.value?e:t.innerType._zod.run(e,r)}),Vr=/* @__PURE__ */ge("$ZodDefault",(e,t)=>{Ht.init(e,t),e._zod.optin="optional",ze(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,r)=>{if("backward"===r.direction)return t.innerType._zod.run(e,r);if(void 0===e.value)return e.value=t.defaultValue,e;const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(e=>qr(e,t)):qr(n,t)}});function qr(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}const Gr=/* @__PURE__ */ge("$ZodPrefault",(e,t)=>{Ht.init(e,t),e._zod.optin="optional",ze(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,r)=>("backward"===r.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,r))}),Kr=/* @__PURE__ */ge("$ZodNonOptional",(e,t)=>{Ht.init(e,t),ze(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(t=>Hr(t,e)):Hr(o,e)}});function Hr(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Yr=/* @__PURE__ */ge("$ZodCatch",(e,t)=>{Ht.init(e,t),ze(e._zod,"optin",()=>t.innerType._zod.optin),ze(e._zod,"optout",()=>t.innerType._zod.optout),ze(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,r)=>{if("backward"===r.direction)return t.innerType._zod.run(e,r);const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(n=>(e.value=n.value,n.issues.length&&(e.value=t.catchValue({...e,error:{issues:n.issues.map(e=>Ue(e,r,we()))},input:e.value}),e.issues=[]),e)):(e.value=n.value,n.issues.length&&(e.value=t.catchValue({...e,error:{issues:n.issues.map(e=>Ue(e,r,we()))},input:e.value}),e.issues=[]),e)}}),Xr=/* @__PURE__ */ge("$ZodPipe",(e,t)=>{Ht.init(e,t),ze(e._zod,"values",()=>t.in._zod.values),ze(e._zod,"optin",()=>t.in._zod.optin),ze(e._zod,"optout",()=>t.out._zod.optout),ze(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,r)=>{if("backward"===r.direction){const n=t.out._zod.run(e,r);return n instanceof Promise?n.then(e=>Qr(e,t.in,r)):Qr(n,t.in,r)}const n=t.in._zod.run(e,r);return n instanceof Promise?n.then(e=>Qr(e,t.out,r)):Qr(n,t.out,r)}});function Qr(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}const en=/* @__PURE__ */ge("$ZodReadonly",(e,t)=>{Ht.init(e,t),ze(e._zod,"propValues",()=>t.innerType._zod.propValues),ze(e._zod,"values",()=>t.innerType._zod.values),ze(e._zod,"optin",()=>t.innerType?._zod?.optin),ze(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,r)=>{if("backward"===r.direction)return t.innerType._zod.run(e,r);const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(tn):tn(n)}});function tn(e){return e.value=Object.freeze(e.value),e}const rn=/* @__PURE__ */ge("$ZodCustom",(e,t)=>{Nt.init(e,t),Ht.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(t=>nn(t,r,n,e));nn(o,r,n,e)}});function nn(e,t,r,n){if(!e){const e={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(e.params=n._zod.def.params),t.issues.push(We(e))}}var on;(on=globalThis).__zod_globalRegistry??(on.__zod_globalRegistry=new class{constructor(){this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&"object"==typeof r&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}});const an=globalThis.__zod_globalRegistry;function sn(e,t){return new e({type:"string",...Pe(t)})}function cn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Pe(t)})}function ln(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Pe(t)})}function dn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Pe(t)})}function un(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Pe(t)})}function pn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Pe(t)})}function gn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Pe(t)})}function hn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Pe(t)})}function mn(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Pe(t)})}function fn(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Pe(t)})}function wn(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Pe(t)})}function vn(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Pe(t)})}function bn(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Pe(t)})}function yn(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Pe(t)})}function xn(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Pe(t)})}function kn(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Pe(t)})}function _n(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Pe(t)})}function zn(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Pe(t)})}function Sn(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Pe(t)})}function En(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Pe(t)})}function On(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Pe(t)})}function In(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Pe(t)})}function $n(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Pe(t)})}function Cn(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Pe(t)})}function Nn(e,t){return new e({type:"string",format:"date",check:"string_format",...Pe(t)})}function Tn(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Pe(t)})}function jn(e,t){return new e({type:"string",format:"duration",check:"string_format",...Pe(t)})}function An(e,t){return new e({type:"number",checks:[],...Pe(t)})}function Mn(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Pe(t)})}function Pn(e){return new e({type:"any"})}function Zn(e){return new e({type:"unknown"})}function Fn(e,t){return new e({type:"never",...Pe(t)})}function Dn(e,t){return new jt({check:"less_than",...Pe(t),value:e,inclusive:!1})}function Rn(e,t){return new jt({check:"less_than",...Pe(t),value:e,inclusive:!0})}function Un(e,t){return new At({check:"greater_than",...Pe(t),value:e,inclusive:!1})}function Ln(e,t){return new At({check:"greater_than",...Pe(t),value:e,inclusive:!0})}function Wn(e,t){return new Mt({check:"multiple_of",...Pe(t),value:e})}function Bn(e,t){return new Zt({check:"max_length",...Pe(t),maximum:e})}function Jn(e,t){return new Ft({check:"min_length",...Pe(t),minimum:e})}function Vn(e,t){return new Dt({check:"length_equals",...Pe(t),length:e})}function qn(e,t){return new Ut({check:"string_format",format:"regex",...Pe(t),pattern:e})}function Gn(e){return new Lt({check:"string_format",format:"lowercase",...Pe(e)})}function Kn(e){return new Wt({check:"string_format",format:"uppercase",...Pe(e)})}function Hn(e,t){return new Bt({check:"string_format",format:"includes",...Pe(t),includes:e})}function Yn(e,t){return new Jt({check:"string_format",format:"starts_with",...Pe(t),prefix:e})}function Xn(e,t){return new Vt({check:"string_format",format:"ends_with",...Pe(t),suffix:e})}function Qn(e){return new qt({check:"overwrite",tx:e})}function eo(e){/* @__PURE__ */
|
|
14
|
+
/* @__PURE__ */N("button",{onClick:this.handleReset,className:"px-4 py-2 bg-primary text-primary-foreground rounded-lg font-medium hover:opacity-90 transition-opacity",children:"Intentar de nuevo"})]}):this.props.children}}const Z={bubble:"rounded-2xl",image:"rounded-xl",button:"rounded-xl",card:"rounded-2xl"},D={bg:"bg-muted/50 dark:bg-muted/20",text:"text-foreground",border:"border-border/50"},R={text:"text-primary-foreground"};const U=(e,t)=>t.some(t=>e instanceof t);let L,W;const B=/* @__PURE__ */new WeakMap,J=/* @__PURE__ */new WeakMap,V=/* @__PURE__ */new WeakMap;let q={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return B.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return H(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function G(e){q=e(q)}function K(e){return"function"==typeof e?(t=e,(W||(W=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Y(this),e),H(this.request)}:function(...e){return H(t.apply(Y(this),e))}):(e instanceof IDBTransaction&&function(e){if(B.has(e))return;const t=new Promise((t,r)=>{const n=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",a),e.removeEventListener("abort",a)},o=()=>{t(),n()},a=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",o),e.addEventListener("error",a),e.addEventListener("abort",a)});B.set(e,t)}(e),U(e,L||(L=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,q):e);var t}function H(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,r)=>{const n=()=>{e.removeEventListener("success",o),e.removeEventListener("error",a)},o=()=>{t(H(e.result)),n()},a=()=>{r(e.error),n()};e.addEventListener("success",o),e.addEventListener("error",a)});return V.set(t,e),t}(e);if(J.has(e))return J.get(e);const t=K(e);return t!==e&&(J.set(e,t),V.set(t,e)),t}const Y=e=>V.get(e),X=["get","getKey","getAll","getAllKeys","count"],Q=["put","add","delete","clear"],ee=/* @__PURE__ */new Map;function te(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(ee.get(t))return ee.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,o=Q.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!X.includes(r))return;const a=async function(e,...t){const a=this.transaction(e,o?"readwrite":"readonly");let i=a.store;return n&&(i=i.index(t.shift())),(await Promise.all([i[r](...t),o&&a.done]))[0]};return ee.set(t,a),a}G(e=>({...e,get:(t,r,n)=>te(t,r)||e.get(t,r,n),has:(t,r)=>!!te(t,r)||e.has(t,r)}));const re=["continue","continuePrimaryKey","advance"],ne={},oe=/* @__PURE__ */new WeakMap,ae=/* @__PURE__ */new WeakMap,ie={get(e,t){if(!re.includes(t))return e[t];let r=ne[t];return r||(r=ne[t]=function(...e){oe.set(this,ae.get(this)[t](...e))}),r}};async function*se(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const r=new Proxy(t,ie);for(ae.set(r,t),V.set(r,Y(t));t;)yield r,t=await(oe.get(r)||t.continue()),oe.delete(r)}function ce(e,t){return t===Symbol.asyncIterator&&U(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&U(e,[IDBIndex,IDBObjectStore])}G(e=>({...e,get:(t,r,n)=>ce(t,r)?se:e.get(t,r,n),has:(t,r)=>ce(t,r)||e.has(t,r)}));const le=new class{db=null;DB_NAME="botuyo-chat";DB_VERSION=1;async init(){try{this.db=await function(e,t,{blocked:r,upgrade:n,blocking:o,terminated:a}={}){const i=indexedDB.open(e,t),s=H(i);return n&&i.addEventListener("upgradeneeded",e=>{n(H(i.result),e.oldVersion,e.newVersion,H(i.transaction),e)}),r&&i.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener("close",()=>a()),o&&e.addEventListener("versionchange",e=>o(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}(this.DB_NAME,this.DB_VERSION,{upgrade(e){e.objectStoreNames.contains("messages")||e.createObjectStore("messages",{keyPath:"id"}).createIndex("by-timestamp","timestamp"),e.objectStoreNames.contains("metadata")||e.createObjectStore("metadata")}}),x.info("IndexedDB initialized")}catch(e){throw x.error("Failed to initialize IndexedDB:",e),e}}async saveMessage(e){this.db||await this.init();try{await this.db.put("messages",e)}catch(t){x.error("Failed to save message:",t)}}async saveMessages(e){this.db||await this.init();try{const t=this.db.transaction("messages","readwrite");await Promise.all([...e.map(e=>t.store.put(e)),t.done])}catch(t){x.error("Failed to save messages:",t)}}async getMessages(e=100){this.db||await this.init();try{return(await this.db.getAllFromIndex("messages","by-timestamp")).slice(-e)}catch(t){return x.error("Failed to get messages:",t),[]}}async getMessage(e){this.db||await this.init();try{return await this.db.get("messages",e)}catch(t){return void x.error("Failed to get message:",t)}}async deleteMessage(e){this.db||await this.init();try{await this.db.delete("messages",e)}catch(t){x.error("Failed to delete message:",t)}}async clearMessages(){this.db||await this.init();try{await this.db.clear("messages"),x.info("Messages cleared from IndexedDB")}catch(e){x.error("Failed to clear messages:",e)}}async setMetadata(e){this.db||await this.init();try{await this.db.put("metadata",e,"chat-metadata")}catch(t){x.error("Failed to set metadata:",t)}}async getMetadata(){this.db||await this.init();try{return await this.db.get("metadata","chat-metadata")}catch(e){return x.error("Failed to get metadata:",e),null}}async clearAll(){this.db||await this.init();try{await Promise.all([this.db.clear("messages"),this.db.clear("metadata")]),x.info("All data cleared from IndexedDB")}catch(e){x.error("Failed to clear all data:",e)}}async migrateFromLocalStorage(){try{const e="botuyo_chat_v1",t=localStorage.getItem(e);if(!t)return;const r=JSON.parse(t);if(r.messages&&Array.isArray(r.messages)){const e=r.messages.map(e=>({...e,timestamp:new Date(e.timestamp)}));await this.saveMessages(e),x.info(`Migrated ${e.length} messages from localStorage`)}r.sessionId&&await this.setMetadata({sessionId:r.sessionId}),localStorage.removeItem(e),x.info("Migration from localStorage completed")}catch(e){x.error("Failed to migrate from localStorage:",e)}}},de="botuyo_chat_v1",ue={isOpen:!1,isConnected:!1,isTyping:!1,messages:[],error:null,sessionId:null};function pe(e,t){switch(t.type){case"TOGGLE_WINDOW":return{...e,isOpen:!e.isOpen};case"OPEN_WINDOW":return{...e,isOpen:!0};case"CLOSE_WINDOW":return{...e,isOpen:!1};case"SET_CONNECTED":return{...e,isConnected:t.payload};case"SET_TYPING":return{...e,isTyping:t.payload};case"ADD_MESSAGE":{if(e.messages.some(e=>e.id===t.payload.id))return e;const r=[...e.messages,t.payload],n="bot"===t.payload.sender;return{...e,messages:r,isTyping:!n&&e.isTyping}}case"SET_MESSAGES":return{...e,messages:[...t.payload]};case"SET_ERROR":return{...e,error:t.payload};case"SET_SESSION_ID":return{...e,sessionId:t.payload};case"CLEAR_CHAT":return{...ue,isOpen:e.isOpen};case"RESTORE_SESSION":return{...e,...t.payload,isConnected:!1,isTyping:!1,error:null};default:return e}}function ge(e,t,r){function n(r,n){if(r._zod||Object.defineProperty(r,"_zod",{value:{def:n,constr:i,traits:/* @__PURE__ */new Set},enumerable:!1}),r._zod.traits.has(e))return;r._zod.traits.add(e),t(r,n);const o=i.prototype,a=Object.keys(o);for(let e=0;e<a.length;e++){const t=a[e];t in r||(r[t]=o[t].bind(r))}}const o=r?.Parent??Object;class a extends o{}function i(e){var t;const o=r?.Parent?new a:this;n(o,e),(t=o._zod).deferred??(t.deferred=[]);for(const r of o._zod.deferred)r();return o}return Object.defineProperty(a,"name",{value:e}),Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:t=>!!(r?.Parent&&t instanceof r.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class he extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class me extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}const fe={};function we(e){return fe}function ve(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,r])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function be(e,t){return"bigint"==typeof t?t.toString():t}function ye(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function xe(e){return null==e}function ke(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}const _e=/* @__PURE__ */Symbol("evaluating");function ze(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==_e)return void 0===n&&(n=_e,n=r()),n},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Se(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Ee(...e){const t={};for(const r of e){const e=Object.getOwnPropertyDescriptors(r);Object.assign(t,e)}return Object.defineProperties({},t)}function Oe(e){return JSON.stringify(e)}const Ie="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function $e(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const Ce=ye(()=>{if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function Ne(e){if(!1===$e(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const r=t.prototype;return!1!==$e(r)&&!1!==Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")}function Te(e){return Ne(e)?{...e}:Array.isArray(e)?[...e]:e}const Ae=/* @__PURE__ */new Set(["string","number","symbol"]);function je(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Me(e,t,r){const n=new e._zod.constr(t??e._zod.def);return t&&!r?.parent||(n._zod.parent=e),n}function Pe(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}const Fe={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Ze(e,t=0){if(!0===e.aborted)return!0;for(let r=t;r<e.issues.length;r++)if(!0!==e.issues[r]?.continue)return!0;return!1}function De(e,t){return t.map(t=>{var r;return(r=t).path??(r.path=[]),t.path.unshift(e),t})}function Re(e){return"string"==typeof e?e:e?.message}function Ue(e,t,r){const n={...e,path:e.path??[]};if(!e.message){const o=Re(e.inst?._zod.def?.error?.(e))??Re(t?.error?.(e))??Re(r.customError?.(e))??Re(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Le(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function We(...e){const[t,r,n]=e;return"string"==typeof t?{message:t,code:"custom",input:r,inst:n}:{...t}}const Be=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,be,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Je=ge("$ZodError",Be),Ve=ge("$ZodError",Be,{Parent:Error}),qe=e=>(t,r,n,o)=>{const a=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},a);if(i instanceof Promise)throw new he;if(i.issues.length){const t=new(o?.Err??e)(i.issues.map(e=>Ue(e,a,we())));throw Ie(t,o?.callee),t}return i.value},Ge=e=>async(t,r,n,o)=>{const a=n?Object.assign(n,{async:!0}):{async:!0};let i=t._zod.run({value:r,issues:[]},a);if(i instanceof Promise&&(i=await i),i.issues.length){const t=new(o?.Err??e)(i.issues.map(e=>Ue(e,a,we())));throw Ie(t,o?.callee),t}return i.value},Ke=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},o);if(a instanceof Promise)throw new he;return a.issues.length?{success:!1,error:new(e??Je)(a.issues.map(e=>Ue(e,o,we())))}:{success:!0,data:a.value}},He=/* @__PURE__ */Ke(Ve),Ye=e=>async(t,r,n)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let a=t._zod.run({value:r,issues:[]},o);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Ue(e,o,we())))}:{success:!0,data:a.value}},Xe=/* @__PURE__ */Ye(Ve),Qe=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return qe(e)(t,r,o)},et=e=>(t,r,n)=>qe(e)(t,r,n),tt=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ge(e)(t,r,o)},rt=e=>async(t,r,n)=>Ge(e)(t,r,n),nt=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ke(e)(t,r,o)},ot=e=>(t,r,n)=>Ke(e)(t,r,n),at=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ye(e)(t,r,o)},it=e=>async(t,r,n)=>Ye(e)(t,r,n),st=/^[cC][^\s-]{8,}$/,ct=/^[0-9a-z]+$/,lt=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,dt=/^[0-9a-vA-V]{20}$/,ut=/^[A-Za-z0-9]{27}$/,pt=/^[a-zA-Z0-9_-]{21}$/,gt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ht=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,mt=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,ft=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,wt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,vt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,bt=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,yt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,xt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,kt=/^[A-Za-z0-9_-]*$/,_t=/^\+[1-9]\d{6,14}$/,zt="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",St=/* @__PURE__ */new RegExp(`^${zt}$`);function Et(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}const Ot=/^-?\d+$/,It=/^-?\d+(?:\.\d+)?$/,$t=/^[^A-Z]*$/,Ct=/^[^a-z]*$/,Nt=/* @__PURE__ */ge("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Tt={number:"number",bigint:"bigint",object:"date"},At=/* @__PURE__ */ge("$ZodCheckLessThan",(e,t)=>{Nt.init(e,t);const r=Tt[typeof t.value];e._zod.onattach.push(e=>{const r=e._zod.bag,n=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<n&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),jt=/* @__PURE__ */ge("$ZodCheckGreaterThan",(e,t)=>{Nt.init(e,t);const r=Tt[typeof t.value];e._zod.onattach.push(e=>{const r=e._zod.bag,n=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>n&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Mt=/* @__PURE__ */ge("$ZodCheckMultipleOf",(e,t)=>{Nt.init(e,t),e._zod.onattach.push(e=>{var r;(r=e._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof r.value?r.value%t.value===BigInt(0):0===function(e,t){const r=(e.toString().split(".")[1]||"").length,n=t.toString();let o=(n.split(".")[1]||"").length;if(0===o&&/\d?e-\d?/.test(n)){const e=n.match(/\d?e-(\d?)/);e?.[1]&&(o=Number.parseInt(e[1]))}const a=r>o?r:o;return Number.parseInt(e.toFixed(a).replace(".",""))%Number.parseInt(t.toFixed(a).replace(".",""))/10**a}(r.value,t.value))||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Pt=/* @__PURE__ */ge("$ZodCheckNumberFormat",(e,t)=>{Nt.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,a]=Fe[t.format];e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,n.minimum=o,n.maximum=a,r&&(n.pattern=Ot)}),e._zod.check=i=>{const s=i.value;if(r){if(!Number.isInteger(s))return void i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?i.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}))}s<o&&i.issues.push({origin:"number",input:s,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),s>a&&i.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Ft=/* @__PURE__ */ge("$ZodCheckMaxLength",(e,t)=>{var r;Nt.init(e,t),(r=e._zod.def).when??(r.when=e=>{const t=e.value;return!xe(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const r=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const n=r.value;if(n.length<=t.maximum)return;const o=Le(n);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),Zt=/* @__PURE__ */ge("$ZodCheckMinLength",(e,t)=>{var r;Nt.init(e,t),(r=e._zod.def).when??(r.when=e=>{const t=e.value;return!xe(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const r=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const n=r.value;if(n.length>=t.minimum)return;const o=Le(n);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),Dt=/* @__PURE__ */ge("$ZodCheckLengthEquals",(e,t)=>{var r;Nt.init(e,t),(r=e._zod.def).when??(r.when=e=>{const t=e.value;return!xe(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const r=e._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=r=>{const n=r.value,o=n.length;if(o===t.length)return;const a=Le(n),i=o>t.length;r.issues.push({origin:a,...i?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Rt=/* @__PURE__ */ge("$ZodCheckStringFormat",(e,t)=>{var r,n;Nt.init(e,t),e._zod.onattach.push(e=>{const r=e._zod.bag;r.format=t.format,t.pattern&&(r.patterns??(r.patterns=/* @__PURE__ */new Set),r.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=r=>{t.pattern.lastIndex=0,t.pattern.test(r.value)||r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Ut=/* @__PURE__ */ge("$ZodCheckRegex",(e,t)=>{Rt.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,t.pattern.test(r.value)||r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Lt=/* @__PURE__ */ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=$t),Rt.init(e,t)}),Wt=/* @__PURE__ */ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ct),Rt.init(e,t)}),Bt=/* @__PURE__ */ge("$ZodCheckIncludes",(e,t)=>{Nt.init(e,t);const r=je(t.includes),n=new RegExp("number"==typeof t.position?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(n)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),Jt=/* @__PURE__ */ge("$ZodCheckStartsWith",(e,t)=>{Nt.init(e,t);const r=new RegExp(`^${je(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(r)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Vt=/* @__PURE__ */ge("$ZodCheckEndsWith",(e,t)=>{Nt.init(e,t);const r=new RegExp(`.*${je(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(r)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),qt=/* @__PURE__ */ge("$ZodCheckOverwrite",(e,t)=>{Nt.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});class Gt{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),r=Math.min(...t.map(e=>e.length-e.trimStart().length)),n=t.map(e=>e.slice(r)).map(e=>" ".repeat(2*this.indent)+e);for(const o of n)this.content.push(o)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}}const Kt={major:4,minor:3,patch:6},Ht=/* @__PURE__ */ge("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Kt;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const t of o._zod.onattach)t(e);if(0===n.length)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,r)=>{let n,o=Ze(e);for(const a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(o)continue;const t=e.issues.length,i=a._zod.check(e);if(i instanceof Promise&&!1===r?.async)throw new he;if(n||i instanceof Promise)n=(n??Promise.resolve()).then(async()=>{await i,e.issues.length!==t&&(o||(o=Ze(e,t)))});else{if(e.issues.length===t)continue;o||(o=Ze(e,t))}}return n?n.then(()=>e):e},r=(r,o,a)=>{if(Ze(r))return r.aborted=!0,r;const i=t(o,n,a);if(i instanceof Promise){if(!1===a.async)throw new he;return i.then(t=>e._zod.parse(t,a))}return e._zod.parse(i,a)};e._zod.run=(o,a)=>{if(a.skipChecks)return e._zod.parse(o,a);if("backward"===a.direction){const t=e._zod.parse({value:o.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>r(e,o,a)):r(t,o,a)}const i=e._zod.parse(o,a);if(i instanceof Promise){if(!1===a.async)throw new he;return i.then(e=>t(e,n,a))}return t(i,n,a)}}ze(e,"~standard",()=>({validate:t=>{try{const r=He(e,t);return r.success?{value:r.data}:{issues:r.error?.issues}}catch(r){return Xe(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),Yt=/* @__PURE__ */ge("$ZodString",(e,t)=>{var r;Ht.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(r=e._zod.bag,new RegExp(`^${r?`[\\s\\S]{${r?.minimum??0},${r?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch(o){}return"string"==typeof r.value||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),Xt=/* @__PURE__ */ge("$ZodStringFormat",(e,t)=>{Rt.init(e,t),Yt.init(e,t)}),Qt=/* @__PURE__ */ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ht),Xt.init(e,t)}),er=/* @__PURE__ */ge("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=mt(e))}else t.pattern??(t.pattern=mt());Xt.init(e,t)}),tr=/* @__PURE__ */ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=ft),Xt.init(e,t)}),rr=/* @__PURE__ */ge("$ZodURL",(e,t)=>{Xt.init(e,t),e._zod.check=r=>{try{const n=r.value.trim(),o=new URL(n);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),void(t.normalize?r.value=o.href:r.value=n)}catch(n){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),nr=/* @__PURE__ */ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Xt.init(e,t)}),or=/* @__PURE__ */ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pt),Xt.init(e,t)}),ar=/* @__PURE__ */ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=st),Xt.init(e,t)}),ir=/* @__PURE__ */ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ct),Xt.init(e,t)}),sr=/* @__PURE__ */ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=lt),Xt.init(e,t)}),cr=/* @__PURE__ */ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=dt),Xt.init(e,t)}),lr=/* @__PURE__ */ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ut),Xt.init(e,t)}),dr=/* @__PURE__ */ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Et({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${zt}T(?:${n})$`)}(t)),Xt.init(e,t)}),ur=/* @__PURE__ */ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=St),Xt.init(e,t)}),pr=/* @__PURE__ */ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Et(t)}$`)),Xt.init(e,t)}),gr=/* @__PURE__ */ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=gt),Xt.init(e,t)}),hr=/* @__PURE__ */ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=wt),Xt.init(e,t),e._zod.bag.format="ipv4"}),mr=/* @__PURE__ */ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=vt),Xt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),fr=/* @__PURE__ */ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=bt),Xt.init(e,t)}),wr=/* @__PURE__ */ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=yt),Xt.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(2!==n.length)throw new Error;const[e,t]=n;if(!t)throw new Error;const r=Number(t);if(`${r}`!==t)throw new Error;if(r<0||r>128)throw new Error;new URL(`http://[${e}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function vr(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const br=/* @__PURE__ */ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=xt),Xt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{vr(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),yr=/* @__PURE__ */ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=kt),Xt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{(function(e){if(!kt.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return vr(t.padEnd(4*Math.ceil(t.length/4),"="))})(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),xr=/* @__PURE__ */ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=_t),Xt.init(e,t)}),kr=/* @__PURE__ */ge("$ZodJWT",(e,t)=>{Xt.init(e,t),e._zod.check=r=>{(function(e,t=null){try{const r=e.split(".");if(3!==r.length)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&"JWT"!==o?.typ||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}})(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),_r=/* @__PURE__ */ge("$ZodNumber",(e,t)=>{Ht.init(e,t),e._zod.pattern=e._zod.bag.pattern??It,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch(i){}const o=r.value;if("number"==typeof o&&!Number.isNaN(o)&&Number.isFinite(o))return r;const a="number"==typeof o?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...a?{received:a}:{}}),r}}),zr=/* @__PURE__ */ge("$ZodNumberFormat",(e,t)=>{Pt.init(e,t),_r.init(e,t)}),Sr=/* @__PURE__ */ge("$ZodAny",(e,t)=>{Ht.init(e,t),e._zod.parse=e=>e}),Er=/* @__PURE__ */ge("$ZodUnknown",(e,t)=>{Ht.init(e,t),e._zod.parse=e=>e}),Or=/* @__PURE__ */ge("$ZodNever",(e,t)=>{Ht.init(e,t),e._zod.parse=(t,r)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Ir(e,t,r){e.issues.length&&t.issues.push(...De(r,e.issues)),t.value[r]=e.value}const $r=/* @__PURE__ */ge("$ZodArray",(e,t)=>{Ht.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const a=[];for(let e=0;e<o.length;e++){const i=o[e],s=t.element._zod.run({value:i,issues:[]},n);s instanceof Promise?a.push(s.then(t=>Ir(t,r,e))):Ir(s,r,e)}return a.length?Promise.all(a).then(()=>r):r}});function Cr(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...De(r,e.issues))}void 0===e.value?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Nr(e){const t=Object.keys(e.shape);for(const o of t)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);const r=(n=e.shape,Object.keys(n).filter(e=>"optional"===n[e]._zod.optin&&"optional"===n[e]._zod.optout));var n;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Tr(e,t,r,n,o,a){const i=[],s=o.keySet,c=o.catchall._zod,l=c.def.type,d="optional"===c.optout;for(const u in t){if(s.has(u))continue;if("never"===l){i.push(u);continue}const o=c.run({value:t[u],issues:[]},n);o instanceof Promise?e.push(o.then(e=>Cr(e,r,u,t,d))):Cr(o,r,u,t,d)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:a}),e.length?Promise.all(e).then(()=>r):r}const Ar=/* @__PURE__ */ge("$ZodObject",(e,t)=>{Ht.init(e,t);const r=Object.getOwnPropertyDescriptor(t,"shape");if(!r?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const r={...e};return Object.defineProperty(t,"shape",{value:r}),r}})}const n=ye(()=>Nr(t));ze(e._zod,"propValues",()=>{const e=t.shape,r={};for(const t in e){const n=e[t]._zod;if(n.values){r[t]??(r[t]=/* @__PURE__ */new Set);for(const e of n.values)r[t].add(e)}}return r});const o=$e,a=t.catchall;let i;e._zod.parse=(t,r)=>{i??(i=n.value);const s=t.value;if(!o(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const c=[],l=i.shape;for(const e of i.keys){const n=l[e],o="optional"===n._zod.optout,a=n._zod.run({value:s[e],issues:[]},r);a instanceof Promise?c.push(a.then(r=>Cr(r,t,e,s,o))):Cr(a,t,e,s,o)}return a?Tr(c,s,t,r,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),jr=/* @__PURE__ */ge("$ZodObjectJIT",(e,t)=>{Ar.init(e,t);const r=e._zod.parse,n=ye(()=>Nr(t));let o;const a=$e,i=!fe.jitless,s=i&&Ce.value,c=t.catchall;let l;e._zod.parse=(d,u)=>{l??(l=n.value);const p=d.value;return a(p)?i&&s&&!1===u?.async&&!0!==u.jitless?(o||(o=(e=>{const t=new Gt(["shape","payload","ctx"]),r=n.value,o=e=>{const t=Oe(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const a=/* @__PURE__ */Object.create(null);let i=0;for(const n of r.keys)a[n]="key_"+i++;t.write("const newResult = {};");for(const n of r.keys){const r=a[n],i=Oe(n),s=e[n],c="optional"===s?._zod?.optout;t.write(`const ${r} = ${o(n)};`),c?t.write(`\n if (${r}.issues.length) {\n if (${i} in input) {\n payload.issues = payload.issues.concat(${r}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n }\n \n if (${r}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${r}.value;\n }\n \n `):t.write(`\n if (${r}.issues.length) {\n payload.issues = payload.issues.concat(${r}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n \n if (${r}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${r}.value;\n }\n \n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,r)=>s(e,t,r)})(t.shape)),d=o(d,u),c?Tr([],p,d,u,l,e):d):r(d,u):(d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d)}});function Mr(e,t,r,n){for(const a of e)if(0===a.issues.length)return t.value=a.value,t;const o=e.filter(e=>!Ze(e));return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(e=>e.issues.map(e=>Ue(e,n,we())))}),t)}const Pr=/* @__PURE__ */ge("$ZodUnion",(e,t)=>{Ht.init(e,t),ze(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),ze(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),ze(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),ze(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>ke(e.source)).join("|")})$`)}});const r=1===t.options.length,n=t.options[0]._zod.run;e._zod.parse=(o,a)=>{if(r)return n(o,a);let i=!1;const s=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},a);if(t instanceof Promise)s.push(t),i=!0;else{if(0===t.issues.length)return t;s.push(t)}}return i?Promise.all(s).then(t=>Mr(t,o,e,a)):Mr(s,o,e,a)}}),Fr=/* @__PURE__ */ge("$ZodIntersection",(e,t)=>{Ht.init(e,t),e._zod.parse=(e,r)=>{const n=e.value,o=t.left._zod.run({value:n,issues:[]},r),a=t.right._zod.run({value:n,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([t,r])=>Dr(e,t,r)):Dr(e,o,a)}});function Zr(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(Ne(e)&&Ne(t)){const r=Object.keys(t),n=Object.keys(e).filter(e=>-1!==r.indexOf(e)),o={...e,...t};for(const a of n){const r=Zr(e[a],t[a]);if(!r.valid)return{valid:!1,mergeErrorPath:[a,...r.mergeErrorPath]};o[a]=r.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=Zr(e[n],t[n]);if(!o.valid)return{valid:!1,mergeErrorPath:[n,...o.mergeErrorPath]};r.push(o.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Dr(e,t,r){const n=/* @__PURE__ */new Map;let o;for(const s of t.issues)if("unrecognized_keys"===s.code){o??(o=s);for(const e of s.keys)n.has(e)||n.set(e,{}),n.get(e).l=!0}else e.issues.push(s);for(const s of r.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)n.has(e)||n.set(e,{}),n.get(e).r=!0;else e.issues.push(s);const a=[...n].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&o&&e.issues.push({...o,keys:a}),Ze(e))return e;const i=Zr(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const Rr=/* @__PURE__ */ge("$ZodEnum",(e,t)=>{Ht.init(e,t);const r=ve(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(e=>Ae.has(typeof e)).map(e=>"string"==typeof e?je(e):e.toString()).join("|")})$`),e._zod.parse=(t,o)=>{const a=t.value;return n.has(a)||t.issues.push({code:"invalid_value",values:r,input:a,inst:e}),t}}),Ur=/* @__PURE__ */ge("$ZodTransform",(e,t)=>{Ht.init(e,t),e._zod.parse=(r,n)=>{if("backward"===n.direction)throw new me(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(e=>(r.value=e,r));if(o instanceof Promise)throw new he;return r.value=o,r}});function Lr(e,t){return e.issues.length&&void 0===t?{issues:[],value:void 0}:e}const Wr=/* @__PURE__ */ge("$ZodOptional",(e,t)=>{Ht.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ze(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,void 0]):void 0),ze(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${ke(e.source)})?$`):void 0}),e._zod.parse=(e,r)=>{if("optional"===t.innerType._zod.optin){const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(t=>Lr(t,e.value)):Lr(n,e.value)}return void 0===e.value?e:t.innerType._zod.run(e,r)}}),Br=/* @__PURE__ */ge("$ZodExactOptional",(e,t)=>{Wr.init(e,t),ze(e._zod,"values",()=>t.innerType._zod.values),ze(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,r)=>t.innerType._zod.run(e,r)}),Jr=/* @__PURE__ */ge("$ZodNullable",(e,t)=>{Ht.init(e,t),ze(e._zod,"optin",()=>t.innerType._zod.optin),ze(e._zod,"optout",()=>t.innerType._zod.optout),ze(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${ke(e.source)}|null)$`):void 0}),ze(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,r)=>null===e.value?e:t.innerType._zod.run(e,r)}),Vr=/* @__PURE__ */ge("$ZodDefault",(e,t)=>{Ht.init(e,t),e._zod.optin="optional",ze(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,r)=>{if("backward"===r.direction)return t.innerType._zod.run(e,r);if(void 0===e.value)return e.value=t.defaultValue,e;const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(e=>qr(e,t)):qr(n,t)}});function qr(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}const Gr=/* @__PURE__ */ge("$ZodPrefault",(e,t)=>{Ht.init(e,t),e._zod.optin="optional",ze(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,r)=>("backward"===r.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,r))}),Kr=/* @__PURE__ */ge("$ZodNonOptional",(e,t)=>{Ht.init(e,t),ze(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(t=>Hr(t,e)):Hr(o,e)}});function Hr(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Yr=/* @__PURE__ */ge("$ZodCatch",(e,t)=>{Ht.init(e,t),ze(e._zod,"optin",()=>t.innerType._zod.optin),ze(e._zod,"optout",()=>t.innerType._zod.optout),ze(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,r)=>{if("backward"===r.direction)return t.innerType._zod.run(e,r);const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(n=>(e.value=n.value,n.issues.length&&(e.value=t.catchValue({...e,error:{issues:n.issues.map(e=>Ue(e,r,we()))},input:e.value}),e.issues=[]),e)):(e.value=n.value,n.issues.length&&(e.value=t.catchValue({...e,error:{issues:n.issues.map(e=>Ue(e,r,we()))},input:e.value}),e.issues=[]),e)}}),Xr=/* @__PURE__ */ge("$ZodPipe",(e,t)=>{Ht.init(e,t),ze(e._zod,"values",()=>t.in._zod.values),ze(e._zod,"optin",()=>t.in._zod.optin),ze(e._zod,"optout",()=>t.out._zod.optout),ze(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,r)=>{if("backward"===r.direction){const n=t.out._zod.run(e,r);return n instanceof Promise?n.then(e=>Qr(e,t.in,r)):Qr(n,t.in,r)}const n=t.in._zod.run(e,r);return n instanceof Promise?n.then(e=>Qr(e,t.out,r)):Qr(n,t.out,r)}});function Qr(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}const en=/* @__PURE__ */ge("$ZodReadonly",(e,t)=>{Ht.init(e,t),ze(e._zod,"propValues",()=>t.innerType._zod.propValues),ze(e._zod,"values",()=>t.innerType._zod.values),ze(e._zod,"optin",()=>t.innerType?._zod?.optin),ze(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,r)=>{if("backward"===r.direction)return t.innerType._zod.run(e,r);const n=t.innerType._zod.run(e,r);return n instanceof Promise?n.then(tn):tn(n)}});function tn(e){return e.value=Object.freeze(e.value),e}const rn=/* @__PURE__ */ge("$ZodCustom",(e,t)=>{Nt.init(e,t),Ht.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(t=>nn(t,r,n,e));nn(o,r,n,e)}});function nn(e,t,r,n){if(!e){const e={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(e.params=n._zod.def.params),t.issues.push(We(e))}}var on;(on=globalThis).__zod_globalRegistry??(on.__zod_globalRegistry=new class{constructor(){this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&"object"==typeof r&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}});const an=globalThis.__zod_globalRegistry;function sn(e,t){return new e({type:"string",...Pe(t)})}function cn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Pe(t)})}function ln(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Pe(t)})}function dn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Pe(t)})}function un(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Pe(t)})}function pn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Pe(t)})}function gn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Pe(t)})}function hn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Pe(t)})}function mn(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Pe(t)})}function fn(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Pe(t)})}function wn(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Pe(t)})}function vn(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Pe(t)})}function bn(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Pe(t)})}function yn(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Pe(t)})}function xn(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Pe(t)})}function kn(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Pe(t)})}function _n(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Pe(t)})}function zn(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Pe(t)})}function Sn(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Pe(t)})}function En(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Pe(t)})}function On(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Pe(t)})}function In(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Pe(t)})}function $n(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Pe(t)})}function Cn(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Pe(t)})}function Nn(e,t){return new e({type:"string",format:"date",check:"string_format",...Pe(t)})}function Tn(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Pe(t)})}function An(e,t){return new e({type:"string",format:"duration",check:"string_format",...Pe(t)})}function jn(e,t){return new e({type:"number",checks:[],...Pe(t)})}function Mn(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Pe(t)})}function Pn(e){return new e({type:"any"})}function Fn(e){return new e({type:"unknown"})}function Zn(e,t){return new e({type:"never",...Pe(t)})}function Dn(e,t){return new At({check:"less_than",...Pe(t),value:e,inclusive:!1})}function Rn(e,t){return new At({check:"less_than",...Pe(t),value:e,inclusive:!0})}function Un(e,t){return new jt({check:"greater_than",...Pe(t),value:e,inclusive:!1})}function Ln(e,t){return new jt({check:"greater_than",...Pe(t),value:e,inclusive:!0})}function Wn(e,t){return new Mt({check:"multiple_of",...Pe(t),value:e})}function Bn(e,t){return new Ft({check:"max_length",...Pe(t),maximum:e})}function Jn(e,t){return new Zt({check:"min_length",...Pe(t),minimum:e})}function Vn(e,t){return new Dt({check:"length_equals",...Pe(t),length:e})}function qn(e,t){return new Ut({check:"string_format",format:"regex",...Pe(t),pattern:e})}function Gn(e){return new Lt({check:"string_format",format:"lowercase",...Pe(e)})}function Kn(e){return new Wt({check:"string_format",format:"uppercase",...Pe(e)})}function Hn(e,t){return new Bt({check:"string_format",format:"includes",...Pe(t),includes:e})}function Yn(e,t){return new Jt({check:"string_format",format:"starts_with",...Pe(t),prefix:e})}function Xn(e,t){return new Vt({check:"string_format",format:"ends_with",...Pe(t),suffix:e})}function Qn(e){return new qt({check:"overwrite",tx:e})}function eo(e){/* @__PURE__ */
|
|
16
15
|
return Qn(t=>t.normalize(e))}function to(){/* @__PURE__ */
|
|
17
16
|
return Qn(e=>e.trim())}function ro(){/* @__PURE__ */
|
|
18
17
|
return Qn(e=>e.toLowerCase())}function no(){/* @__PURE__ */
|
|
19
18
|
return Qn(e=>e.toUpperCase())}function oo(){/* @__PURE__ */
|
|
20
|
-
return Qn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e))}function ao(e,t,r){return new e({type:"array",element:t,...Pe(r)})}function io(e,t,r){return new e({type:"custom",check:"custom",fn:t,...Pe(r)})}function so(e){const t=/* @__PURE__ */co(r=>(r.addIssue=e=>{if("string"==typeof e)r.issues.push(We(e,r.value,t._zod.def));else{const n=e;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=r.value),n.inst??(n.inst=t),n.continue??(n.continue=!t._zod.def.abort),r.issues.push(We(n))}},e(r.value,r)));return t}function co(e,t){const r=new Nt({check:"custom",...Pe(t)});return r._zod.check=e,r}function lo(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??an,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:/* @__PURE__ */new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function uo(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,a=t.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;const i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);const s=e._zod.toJSONSchema?.();if(s)i.schema=s;else{const n={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,n);else{const r=i.schema,a=t.processors[o.type];if(!a)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);a(e,t,r,n)}const a=e._zod.parent;a&&(i.ref||(i.ref=a),uo(a,t,n),t.seen.get(a).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(i.schema,c),"input"===t.io&&ho(e)&&(delete i.schema.examples,delete i.schema.default),"input"===t.io&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function po(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=/* @__PURE__ */new Map;for(const a of e.seen.entries()){const t=e.metadataRegistry.get(a[0])?.id;if(t){const e=n.get(t);if(e&&e!==a[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(t,a[0])}}const o=t=>{if(t[1].schema.$ref)return;const n=t[1],{ref:o,defId:a}=(t=>{const n="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const r=e.external.registry.get(t[0])?.id,o=e.external.uri??(e=>e);if(r)return{ref:o(r)};const a=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=a,{defId:a,ref:`${o("__shared")}#/${n}/${a}`}}if(t[1]===r)return{ref:"#"};const o=`#/${n}/`,a=t[1].schema.id??"__schema"+e.counter++;return{defId:a,ref:o+a}})(t);n.def={...n.schema},a&&(n.defId=a);const i=n.schema;for(const e in i)delete i[e];i.$ref=o};if("throw"===e.cycles)for(const a of e.seen.entries()){const e=a[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const a of e.seen.entries()){const r=a[1];if(t===a[0]){o(a);continue}if(e.external){const r=e.external.registry.get(a[0])?.id;if(t!==a[0]&&r){o(a);continue}}const n=e.metadataRegistry.get(a[0])?.id;(n||r.cycle||r.count>1&&"ref"===e.reused)&&o(a)}}function go(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=t=>{const r=e.seen.get(t);if(null===r.ref)return;const o=r.def??r.schema,a={...o},i=r.ref;if(r.ref=null,i){n(i);const r=e.seen.get(i),s=r.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(o,s):(o.allOf=o.allOf??[],o.allOf.push(s)),Object.assign(o,a),t._zod.parent===i)for(const e in o)"$ref"!==e&&"allOf"!==e&&(e in a||delete o[e]);if(s.$ref&&r.def)for(const e in o)"$ref"!==e&&"allOf"!==e&&e in r.def&&JSON.stringify(o[e])===JSON.stringify(r.def[e])&&delete o[e]}const s=t._zod.parent;if(s&&s!==i){n(s);const t=e.seen.get(s);if(t?.schema.$ref&&(o.$ref=t.schema.$ref,t.def))for(const e in o)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(o[e])===JSON.stringify(t.def[e])&&delete o[e]}e.override({zodSchema:t,jsonSchema:o,path:r.path??[]})};for(const s of[...e.seen.entries()].reverse())n(s[0]);const o={};if("draft-2020-12"===e.target?o.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?o.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const r=e.external.registry.get(t)?.id;if(!r)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(r)}Object.assign(o,r.def??r.schema);const a=e.external?.defs??{};for(const s of e.seen.entries()){const e=s[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?o.$defs=a:o.definitions=a);try{const r=JSON.parse(JSON.stringify(o));return Object.defineProperty(r,"~standard",{value:{...t["~standard"],jsonSchema:{input:mo(t,"input",e.processors),output:mo(t,"output",e.processors)}},enumerable:!1,writable:!1}),r}catch(i){throw new Error("Error converting schema to JSON.")}}function ho(e,t){const r=t??{seen:/* @__PURE__ */new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if("transform"===n.type)return!0;if("array"===n.type)return ho(n.element,r);if("set"===n.type)return ho(n.valueType,r);if("lazy"===n.type)return ho(n.getter(),r);if("promise"===n.type||"optional"===n.type||"nonoptional"===n.type||"nullable"===n.type||"readonly"===n.type||"default"===n.type||"prefault"===n.type)return ho(n.innerType,r);if("intersection"===n.type)return ho(n.left,r)||ho(n.right,r);if("record"===n.type||"map"===n.type)return ho(n.keyType,r)||ho(n.valueType,r);if("pipe"===n.type)return ho(n.in,r)||ho(n.out,r);if("object"===n.type){for(const e in n.shape)if(ho(n.shape[e],r))return!0;return!1}if("union"===n.type){for(const e of n.options)if(ho(e,r))return!0;return!1}if("tuple"===n.type){for(const e of n.items)if(ho(e,r))return!0;return!(!n.rest||!ho(n.rest,r))}return!1}const mo=(e,t,r={})=>n=>{const{libraryOptions:o,target:a}=n??{},i=lo({...o??{},target:a,io:t,processors:r});return uo(e,i),po(i,e),go(i,e)},fo={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},wo=(e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType},vo=/* @__PURE__ */ge("ZodISODateTime",(e,t)=>{dr.init(e,t),Do.init(e,t)}),bo=/* @__PURE__ */ge("ZodISODate",(e,t)=>{ur.init(e,t),Do.init(e,t)}),yo=/* @__PURE__ */ge("ZodISOTime",(e,t)=>{pr.init(e,t),Do.init(e,t)}),xo=/* @__PURE__ */ge("ZodISODuration",(e,t)=>{gr.init(e,t),Do.init(e,t)}),ko=ge("ZodError",(e,t)=>{Je.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const r={_errors:[]},n=e=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>n({issues:e}));else if("invalid_key"===o.code)n({issues:o.issues});else if("invalid_element"===o.code)n({issues:o.issues});else if(0===o.path.length)r._errors.push(t(o));else{let e=r,n=0;for(;n<o.path.length;){const r=o.path[n];n===o.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(t(o))):e[r]=e[r]||{_errors:[]},e=e[r],n++}}};return n(e),r}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,be,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,be,2)}},isEmpty:{get:()=>0===e.issues.length}})},{Parent:Error}),_o=/* @__PURE__ */qe(ko),zo=/* @__PURE__ */Ge(ko),So=/* @__PURE__ */Ke(ko),Eo=/* @__PURE__ */Ye(ko),Oo=/* @__PURE__ */Qe(ko),Io=/* @__PURE__ */et(ko),$o=/* @__PURE__ */tt(ko),Co=/* @__PURE__ */rt(ko),No=/* @__PURE__ */nt(ko),To=/* @__PURE__ */ot(ko),
|
|
21
|
-
return io(Ta,e,t)}(t,r)),e.superRefine=t=>e.check(/* @__PURE__ */so(t)),e.overwrite=t=>e.check(/* @__PURE__ */Qn(t)),e.optional=()=>xa(e),e.exactOptional=()=>new ka({type:"optional",innerType:e}),e.nullable=()=>za(e),e.nullish=()=>xa(za(e)),e.nonoptional=t=>function(e,t){return new Oa({type:"nonoptional",innerType:e,...Pe(t)})}(e,t),e.array=()=>/* @__PURE__ */ao(ga,e,void 0),e.or=t=>new ma({type:"union",options:[e,t],...Pe(void 0)}),e.and=t=>new fa({type:"intersection",left:e,right:t}),e.transform=t=>Ca(e,new ba({type:"transform",transform:t})),e.default=t=>{return r=t,new Sa({type:"default",innerType:e,get defaultValue(){return"function"==typeof r?r():Te(r)}});var r},e.prefault=t=>{return r=t,new Ea({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof r?r():Te(r)}});var r},e.catch=t=>{return new Ia({type:"catch",innerType:e,catchValue:"function"==typeof(r=t)?r:()=>r});var r},e.pipe=t=>Ca(e,t),e.readonly=()=>new Na({type:"readonly",innerType:e}),e.describe=t=>{const r=e.clone();return an.add(r,{description:t}),r},Object.defineProperty(e,"description",{get:()=>an.get(e)?.description,configurable:!0}),e.meta=(...t)=>{if(0===t.length)return an.get(e);const r=e.clone();return an.add(r,t[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),Po=/* @__PURE__ */ge("_ZodString",(e,t)=>{Yt.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r)=>{const n=r;n.type="string";const{minimum:o,maximum:a,format:i,patterns:s,contentEncoding:c}=e._zod.bag;if("number"==typeof o&&(n.minLength=o),"number"==typeof a&&(n.maxLength=a),i&&(n.format=fo[i]??i,""===n.format&&delete n.format,"time"===i&&delete n.format),c&&(n.contentEncoding=c),s&&s.size>0){const e=[...s];1===e.length?n.pattern=e[0].source:e.length>1&&(n.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,r);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...t)=>e.check(/* @__PURE__ */qn(...t)),e.includes=(...t)=>e.check(/* @__PURE__ */Hn(...t)),e.startsWith=(...t)=>e.check(/* @__PURE__ */Yn(...t)),e.endsWith=(...t)=>e.check(/* @__PURE__ */Xn(...t)),e.min=(...t)=>e.check(/* @__PURE__ */Jn(...t)),e.max=(...t)=>e.check(/* @__PURE__ */Bn(...t)),e.length=(...t)=>e.check(/* @__PURE__ */Vn(...t)),e.nonempty=(...t)=>e.check(/* @__PURE__ */Jn(1,...t)),e.lowercase=t=>e.check(/* @__PURE__ */Gn(t)),e.uppercase=t=>e.check(/* @__PURE__ */Kn(t)),e.trim=()=>e.check(/* @__PURE__ */to()),e.normalize=(...t)=>e.check(/* @__PURE__ */eo(...t)),e.toLowerCase=()=>e.check(/* @__PURE__ */ro()),e.toUpperCase=()=>e.check(/* @__PURE__ */no()),e.slugify=()=>e.check(/* @__PURE__ */oo())}),
|
|
19
|
+
return Qn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e))}function ao(e,t,r){return new e({type:"array",element:t,...Pe(r)})}function io(e,t,r){return new e({type:"custom",check:"custom",fn:t,...Pe(r)})}function so(e){const t=/* @__PURE__ */co(r=>(r.addIssue=e=>{if("string"==typeof e)r.issues.push(We(e,r.value,t._zod.def));else{const n=e;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=r.value),n.inst??(n.inst=t),n.continue??(n.continue=!t._zod.def.abort),r.issues.push(We(n))}},e(r.value,r)));return t}function co(e,t){const r=new Nt({check:"custom",...Pe(t)});return r._zod.check=e,r}function lo(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??an,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:/* @__PURE__ */new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function uo(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,a=t.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;const i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);const s=e._zod.toJSONSchema?.();if(s)i.schema=s;else{const n={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,n);else{const r=i.schema,a=t.processors[o.type];if(!a)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);a(e,t,r,n)}const a=e._zod.parent;a&&(i.ref||(i.ref=a),uo(a,t,n),t.seen.get(a).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(i.schema,c),"input"===t.io&&ho(e)&&(delete i.schema.examples,delete i.schema.default),"input"===t.io&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function po(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=/* @__PURE__ */new Map;for(const a of e.seen.entries()){const t=e.metadataRegistry.get(a[0])?.id;if(t){const e=n.get(t);if(e&&e!==a[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(t,a[0])}}const o=t=>{if(t[1].schema.$ref)return;const n=t[1],{ref:o,defId:a}=(t=>{const n="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const r=e.external.registry.get(t[0])?.id,o=e.external.uri??(e=>e);if(r)return{ref:o(r)};const a=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=a,{defId:a,ref:`${o("__shared")}#/${n}/${a}`}}if(t[1]===r)return{ref:"#"};const o=`#/${n}/`,a=t[1].schema.id??"__schema"+e.counter++;return{defId:a,ref:o+a}})(t);n.def={...n.schema},a&&(n.defId=a);const i=n.schema;for(const e in i)delete i[e];i.$ref=o};if("throw"===e.cycles)for(const a of e.seen.entries()){const e=a[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const a of e.seen.entries()){const r=a[1];if(t===a[0]){o(a);continue}if(e.external){const r=e.external.registry.get(a[0])?.id;if(t!==a[0]&&r){o(a);continue}}const n=e.metadataRegistry.get(a[0])?.id;(n||r.cycle||r.count>1&&"ref"===e.reused)&&o(a)}}function go(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=t=>{const r=e.seen.get(t);if(null===r.ref)return;const o=r.def??r.schema,a={...o},i=r.ref;if(r.ref=null,i){n(i);const r=e.seen.get(i),s=r.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(o,s):(o.allOf=o.allOf??[],o.allOf.push(s)),Object.assign(o,a),t._zod.parent===i)for(const e in o)"$ref"!==e&&"allOf"!==e&&(e in a||delete o[e]);if(s.$ref&&r.def)for(const e in o)"$ref"!==e&&"allOf"!==e&&e in r.def&&JSON.stringify(o[e])===JSON.stringify(r.def[e])&&delete o[e]}const s=t._zod.parent;if(s&&s!==i){n(s);const t=e.seen.get(s);if(t?.schema.$ref&&(o.$ref=t.schema.$ref,t.def))for(const e in o)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(o[e])===JSON.stringify(t.def[e])&&delete o[e]}e.override({zodSchema:t,jsonSchema:o,path:r.path??[]})};for(const s of[...e.seen.entries()].reverse())n(s[0]);const o={};if("draft-2020-12"===e.target?o.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?o.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const r=e.external.registry.get(t)?.id;if(!r)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(r)}Object.assign(o,r.def??r.schema);const a=e.external?.defs??{};for(const s of e.seen.entries()){const e=s[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?o.$defs=a:o.definitions=a);try{const r=JSON.parse(JSON.stringify(o));return Object.defineProperty(r,"~standard",{value:{...t["~standard"],jsonSchema:{input:mo(t,"input",e.processors),output:mo(t,"output",e.processors)}},enumerable:!1,writable:!1}),r}catch(i){throw new Error("Error converting schema to JSON.")}}function ho(e,t){const r=t??{seen:/* @__PURE__ */new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if("transform"===n.type)return!0;if("array"===n.type)return ho(n.element,r);if("set"===n.type)return ho(n.valueType,r);if("lazy"===n.type)return ho(n.getter(),r);if("promise"===n.type||"optional"===n.type||"nonoptional"===n.type||"nullable"===n.type||"readonly"===n.type||"default"===n.type||"prefault"===n.type)return ho(n.innerType,r);if("intersection"===n.type)return ho(n.left,r)||ho(n.right,r);if("record"===n.type||"map"===n.type)return ho(n.keyType,r)||ho(n.valueType,r);if("pipe"===n.type)return ho(n.in,r)||ho(n.out,r);if("object"===n.type){for(const e in n.shape)if(ho(n.shape[e],r))return!0;return!1}if("union"===n.type){for(const e of n.options)if(ho(e,r))return!0;return!1}if("tuple"===n.type){for(const e of n.items)if(ho(e,r))return!0;return!(!n.rest||!ho(n.rest,r))}return!1}const mo=(e,t,r={})=>n=>{const{libraryOptions:o,target:a}=n??{},i=lo({...o??{},target:a,io:t,processors:r});return uo(e,i),po(i,e),go(i,e)},fo={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},wo=(e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType},vo=/* @__PURE__ */ge("ZodISODateTime",(e,t)=>{dr.init(e,t),Do.init(e,t)}),bo=/* @__PURE__ */ge("ZodISODate",(e,t)=>{ur.init(e,t),Do.init(e,t)}),yo=/* @__PURE__ */ge("ZodISOTime",(e,t)=>{pr.init(e,t),Do.init(e,t)}),xo=/* @__PURE__ */ge("ZodISODuration",(e,t)=>{gr.init(e,t),Do.init(e,t)}),ko=ge("ZodError",(e,t)=>{Je.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const r={_errors:[]},n=e=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>n({issues:e}));else if("invalid_key"===o.code)n({issues:o.issues});else if("invalid_element"===o.code)n({issues:o.issues});else if(0===o.path.length)r._errors.push(t(o));else{let e=r,n=0;for(;n<o.path.length;){const r=o.path[n];n===o.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(t(o))):e[r]=e[r]||{_errors:[]},e=e[r],n++}}};return n(e),r}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,be,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,be,2)}},isEmpty:{get:()=>0===e.issues.length}})},{Parent:Error}),_o=/* @__PURE__ */qe(ko),zo=/* @__PURE__ */Ge(ko),So=/* @__PURE__ */Ke(ko),Eo=/* @__PURE__ */Ye(ko),Oo=/* @__PURE__ */Qe(ko),Io=/* @__PURE__ */et(ko),$o=/* @__PURE__ */tt(ko),Co=/* @__PURE__ */rt(ko),No=/* @__PURE__ */nt(ko),To=/* @__PURE__ */ot(ko),Ao=/* @__PURE__ */at(ko),jo=/* @__PURE__ */it(ko),Mo=/* @__PURE__ */ge("ZodType",(e,t)=>(Ht.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:mo(e,"input"),output:mo(e,"output")}}),e.toJSONSchema=((e,t={})=>r=>{const n=lo({...r,processors:t});return uo(e,n),po(n,e),go(n,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(Ee(t,{checks:[...t.checks??[],...r.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,r)=>Me(e,t,r),e.brand=()=>e,e.register=(t,r)=>(t.add(e,r),e),e.parse=(t,r)=>_o(e,t,r,{callee:e.parse}),e.safeParse=(t,r)=>So(e,t,r),e.parseAsync=async(t,r)=>zo(e,t,r,{callee:e.parseAsync}),e.safeParseAsync=async(t,r)=>Eo(e,t,r),e.spa=e.safeParseAsync,e.encode=(t,r)=>Oo(e,t,r),e.decode=(t,r)=>Io(e,t,r),e.encodeAsync=async(t,r)=>$o(e,t,r),e.decodeAsync=async(t,r)=>Co(e,t,r),e.safeEncode=(t,r)=>No(e,t,r),e.safeDecode=(t,r)=>To(e,t,r),e.safeEncodeAsync=async(t,r)=>Ao(e,t,r),e.safeDecodeAsync=async(t,r)=>jo(e,t,r),e.refine=(t,r)=>e.check(function(e,t={}){/* @__PURE__ */
|
|
20
|
+
return io(Ta,e,t)}(t,r)),e.superRefine=t=>e.check(/* @__PURE__ */so(t)),e.overwrite=t=>e.check(/* @__PURE__ */Qn(t)),e.optional=()=>xa(e),e.exactOptional=()=>new ka({type:"optional",innerType:e}),e.nullable=()=>za(e),e.nullish=()=>xa(za(e)),e.nonoptional=t=>function(e,t){return new Oa({type:"nonoptional",innerType:e,...Pe(t)})}(e,t),e.array=()=>/* @__PURE__ */ao(ga,e,void 0),e.or=t=>new ma({type:"union",options:[e,t],...Pe(void 0)}),e.and=t=>new fa({type:"intersection",left:e,right:t}),e.transform=t=>Ca(e,new ba({type:"transform",transform:t})),e.default=t=>{return r=t,new Sa({type:"default",innerType:e,get defaultValue(){return"function"==typeof r?r():Te(r)}});var r},e.prefault=t=>{return r=t,new Ea({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof r?r():Te(r)}});var r},e.catch=t=>{return new Ia({type:"catch",innerType:e,catchValue:"function"==typeof(r=t)?r:()=>r});var r},e.pipe=t=>Ca(e,t),e.readonly=()=>new Na({type:"readonly",innerType:e}),e.describe=t=>{const r=e.clone();return an.add(r,{description:t}),r},Object.defineProperty(e,"description",{get:()=>an.get(e)?.description,configurable:!0}),e.meta=(...t)=>{if(0===t.length)return an.get(e);const r=e.clone();return an.add(r,t[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),Po=/* @__PURE__ */ge("_ZodString",(e,t)=>{Yt.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r)=>{const n=r;n.type="string";const{minimum:o,maximum:a,format:i,patterns:s,contentEncoding:c}=e._zod.bag;if("number"==typeof o&&(n.minLength=o),"number"==typeof a&&(n.maxLength=a),i&&(n.format=fo[i]??i,""===n.format&&delete n.format,"time"===i&&delete n.format),c&&(n.contentEncoding=c),s&&s.size>0){const e=[...s];1===e.length?n.pattern=e[0].source:e.length>1&&(n.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,r);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...t)=>e.check(/* @__PURE__ */qn(...t)),e.includes=(...t)=>e.check(/* @__PURE__ */Hn(...t)),e.startsWith=(...t)=>e.check(/* @__PURE__ */Yn(...t)),e.endsWith=(...t)=>e.check(/* @__PURE__ */Xn(...t)),e.min=(...t)=>e.check(/* @__PURE__ */Jn(...t)),e.max=(...t)=>e.check(/* @__PURE__ */Bn(...t)),e.length=(...t)=>e.check(/* @__PURE__ */Vn(...t)),e.nonempty=(...t)=>e.check(/* @__PURE__ */Jn(1,...t)),e.lowercase=t=>e.check(/* @__PURE__ */Gn(t)),e.uppercase=t=>e.check(/* @__PURE__ */Kn(t)),e.trim=()=>e.check(/* @__PURE__ */to()),e.normalize=(...t)=>e.check(/* @__PURE__ */eo(...t)),e.toLowerCase=()=>e.check(/* @__PURE__ */ro()),e.toUpperCase=()=>e.check(/* @__PURE__ */no()),e.slugify=()=>e.check(/* @__PURE__ */oo())}),Fo=/* @__PURE__ */ge("ZodString",(e,t)=>{Yt.init(e,t),Po.init(e,t),e.email=t=>e.check(/* @__PURE__ */cn(Ro,t)),e.url=t=>e.check(/* @__PURE__ */hn(Wo,t)),e.jwt=t=>e.check(/* @__PURE__ */$n(oa,t)),e.emoji=t=>e.check(/* @__PURE__ */mn(Bo,t)),e.guid=t=>e.check(/* @__PURE__ */ln(Uo,t)),e.uuid=t=>e.check(/* @__PURE__ */dn(Lo,t)),e.uuidv4=t=>e.check(/* @__PURE__ */un(Lo,t)),e.uuidv6=t=>e.check(/* @__PURE__ */pn(Lo,t)),e.uuidv7=t=>e.check(/* @__PURE__ */gn(Lo,t)),e.nanoid=t=>e.check(/* @__PURE__ */fn(Jo,t)),e.guid=t=>e.check(/* @__PURE__ */ln(Uo,t)),e.cuid=t=>e.check(/* @__PURE__ */wn(Vo,t)),e.cuid2=t=>e.check(/* @__PURE__ */vn(qo,t)),e.ulid=t=>e.check(/* @__PURE__ */bn(Go,t)),e.base64=t=>e.check(/* @__PURE__ */En(ta,t)),e.base64url=t=>e.check(/* @__PURE__ */On(ra,t)),e.xid=t=>e.check(/* @__PURE__ */yn(Ko,t)),e.ksuid=t=>e.check(/* @__PURE__ */xn(Ho,t)),e.ipv4=t=>e.check(/* @__PURE__ */kn(Yo,t)),e.ipv6=t=>e.check(/* @__PURE__ */_n(Xo,t)),e.cidrv4=t=>e.check(/* @__PURE__ */zn(Qo,t)),e.cidrv6=t=>e.check(/* @__PURE__ */Sn(ea,t)),e.e164=t=>e.check(/* @__PURE__ */In(na,t)),e.datetime=t=>e.check(function(e){/* @__PURE__ */
|
|
22
21
|
return Cn(vo,e)}(t)),e.date=t=>e.check(function(e){/* @__PURE__ */
|
|
23
22
|
return Nn(bo,e)}(t)),e.time=t=>e.check(function(e){/* @__PURE__ */
|
|
24
23
|
return Tn(yo,e)}(t)),e.duration=t=>e.check(function(e){/* @__PURE__ */
|
|
25
|
-
return
|
|
26
|
-
return sn(
|
|
27
|
-
return
|
|
24
|
+
return An(xo,e)}(t))});function Zo(e){/* @__PURE__ */
|
|
25
|
+
return sn(Fo,e)}const Do=/* @__PURE__ */ge("ZodStringFormat",(e,t)=>{Xt.init(e,t),Po.init(e,t)}),Ro=/* @__PURE__ */ge("ZodEmail",(e,t)=>{tr.init(e,t),Do.init(e,t)}),Uo=/* @__PURE__ */ge("ZodGUID",(e,t)=>{Qt.init(e,t),Do.init(e,t)}),Lo=/* @__PURE__ */ge("ZodUUID",(e,t)=>{er.init(e,t),Do.init(e,t)}),Wo=/* @__PURE__ */ge("ZodURL",(e,t)=>{rr.init(e,t),Do.init(e,t)}),Bo=/* @__PURE__ */ge("ZodEmoji",(e,t)=>{nr.init(e,t),Do.init(e,t)}),Jo=/* @__PURE__ */ge("ZodNanoID",(e,t)=>{or.init(e,t),Do.init(e,t)}),Vo=/* @__PURE__ */ge("ZodCUID",(e,t)=>{ar.init(e,t),Do.init(e,t)}),qo=/* @__PURE__ */ge("ZodCUID2",(e,t)=>{ir.init(e,t),Do.init(e,t)}),Go=/* @__PURE__ */ge("ZodULID",(e,t)=>{sr.init(e,t),Do.init(e,t)}),Ko=/* @__PURE__ */ge("ZodXID",(e,t)=>{cr.init(e,t),Do.init(e,t)}),Ho=/* @__PURE__ */ge("ZodKSUID",(e,t)=>{lr.init(e,t),Do.init(e,t)}),Yo=/* @__PURE__ */ge("ZodIPv4",(e,t)=>{hr.init(e,t),Do.init(e,t)}),Xo=/* @__PURE__ */ge("ZodIPv6",(e,t)=>{mr.init(e,t),Do.init(e,t)}),Qo=/* @__PURE__ */ge("ZodCIDRv4",(e,t)=>{fr.init(e,t),Do.init(e,t)}),ea=/* @__PURE__ */ge("ZodCIDRv6",(e,t)=>{wr.init(e,t),Do.init(e,t)}),ta=/* @__PURE__ */ge("ZodBase64",(e,t)=>{br.init(e,t),Do.init(e,t)}),ra=/* @__PURE__ */ge("ZodBase64URL",(e,t)=>{yr.init(e,t),Do.init(e,t)}),na=/* @__PURE__ */ge("ZodE164",(e,t)=>{xr.init(e,t),Do.init(e,t)}),oa=/* @__PURE__ */ge("ZodJWT",(e,t)=>{kr.init(e,t),Do.init(e,t)}),aa=/* @__PURE__ */ge("ZodNumber",(e,t)=>{_r.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r)=>{const n=r,{minimum:o,maximum:a,format:i,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l}=e._zod.bag;"string"==typeof i&&i.includes("int")?n.type="integer":n.type="number","number"==typeof l&&("draft-04"===t.target||"openapi-3.0"===t.target?(n.minimum=l,n.exclusiveMinimum=!0):n.exclusiveMinimum=l),"number"==typeof o&&(n.minimum=o,"number"==typeof l&&"draft-04"!==t.target&&(l>=o?delete n.minimum:delete n.exclusiveMinimum)),"number"==typeof c&&("draft-04"===t.target||"openapi-3.0"===t.target?(n.maximum=c,n.exclusiveMaximum=!0):n.exclusiveMaximum=c),"number"==typeof a&&(n.maximum=a,"number"==typeof c&&"draft-04"!==t.target&&(c<=a?delete n.maximum:delete n.exclusiveMaximum)),"number"==typeof s&&(n.multipleOf=s)})(e,t,r),e.gt=(t,r)=>e.check(/* @__PURE__ */Un(t,r)),e.gte=(t,r)=>e.check(/* @__PURE__ */Ln(t,r)),e.min=(t,r)=>e.check(/* @__PURE__ */Ln(t,r)),e.lt=(t,r)=>e.check(/* @__PURE__ */Dn(t,r)),e.lte=(t,r)=>e.check(/* @__PURE__ */Rn(t,r)),e.max=(t,r)=>e.check(/* @__PURE__ */Rn(t,r)),e.int=t=>e.check(ca(t)),e.safe=t=>e.check(ca(t)),e.positive=t=>e.check(/* @__PURE__ */Un(0,t)),e.nonnegative=t=>e.check(/* @__PURE__ */Ln(0,t)),e.negative=t=>e.check(/* @__PURE__ */Dn(0,t)),e.nonpositive=t=>e.check(/* @__PURE__ */Rn(0,t)),e.multipleOf=(t,r)=>e.check(/* @__PURE__ */Wn(t,r)),e.step=(t,r)=>e.check(/* @__PURE__ */Wn(t,r)),e.finite=()=>e;const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function ia(e){/* @__PURE__ */
|
|
26
|
+
return jn(aa,e)}const sa=/* @__PURE__ */ge("ZodNumberFormat",(e,t)=>{zr.init(e,t),aa.init(e,t)});function ca(e){/* @__PURE__ */
|
|
28
27
|
return Mn(sa,e)}const la=/* @__PURE__ */ge("ZodAny",(e,t)=>{Sr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>{}}),da=/* @__PURE__ */ge("ZodUnknown",(e,t)=>{Er.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>{}});function ua(){/* @__PURE__ */
|
|
29
|
-
return Zn(da)}const pa=/* @__PURE__ */ge("ZodNever",(e,t)=>{Or.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>((e,t,r)=>{r.not={}})(0,0,t)}),ga=/* @__PURE__ */ge("ZodArray",(e,t)=>{$r.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=r,a=e._zod.def,{minimum:i,maximum:s}=e._zod.bag;"number"==typeof i&&(o.minItems=i),"number"==typeof s&&(o.maxItems=s),o.type="array",o.items=uo(a.element,t,{...n,path:[...n.path,"items"]})})(e,t,r,n),e.element=t.element,e.min=(t,r)=>e.check(/* @__PURE__ */Jn(t,r)),e.nonempty=t=>e.check(/* @__PURE__ */Jn(1,t)),e.max=(t,r)=>e.check(/* @__PURE__ */Bn(t,r)),e.length=(t,r)=>e.check(/* @__PURE__ */Vn(t,r)),e.unwrap=()=>e.element}),ha=/* @__PURE__ */ge("ZodObject",(e,t)=>{Ar.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=r,a=e._zod.def;o.type="object",o.properties={};const i=a.shape;for(const l in i)o.properties[l]=uo(i[l],t,{...n,path:[...n.path,"properties",l]});const s=new Set(Object.keys(i)),c=new Set([...s].filter(e=>{const r=a.shape[e]._zod;return"input"===t.io?void 0===r.optin:void 0===r.optout}));c.size>0&&(o.required=Array.from(c)),"never"===a.catchall?._zod.def.type?o.additionalProperties=!1:a.catchall?a.catchall&&(o.additionalProperties=uo(a.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):"output"===t.io&&(o.additionalProperties=!1)})(e,t,r,n),ze(e,"shape",()=>t.shape),e.keyof=()=>va(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ua()}),e.loose=()=>e.clone({...e._zod.def,catchall:ua()}),e.strict=()=>e.clone({...e._zod.def,catchall:/* @__PURE__ */Fn(pa,void 0)}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>function(e,t){if(!Ne(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const r=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(r,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const n=Ee(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return Se(this,"shape",r),r}});return Me(e,n)}(e,t),e.safeExtend=t=>function(e,t){if(!Ne(t))throw new Error("Invalid input to safeExtend: expected a plain object");const r=Ee(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return Se(this,"shape",r),r}});return Me(e,r)}(e,t),e.merge=t=>function(e,t){const r=Ee(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return Se(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return Me(e,r)}(e,t),e.pick=t=>function(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Me(e,Ee(e._zod.def,{get shape(){const e={};for(const n in t){if(!(n in r.shape))throw new Error(`Unrecognized key: "${n}"`);t[n]&&(e[n]=r.shape[n])}return Se(this,"shape",e),e},checks:[]}))}(e,t),e.omit=t=>function(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const o=Ee(e._zod.def,{get shape(){const n={...e._zod.def.shape};for(const e in t){if(!(e in r.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete n[e]}return Se(this,"shape",n),n},checks:[]});return Me(e,o)}(e,t),e.partial=(...t)=>function(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const o=Ee(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const t in r){if(!(t in n))throw new Error(`Unrecognized key: "${t}"`);r[t]&&(o[t]=e?new e({type:"optional",innerType:n[t]}):n[t])}else for(const t in n)o[t]=e?new e({type:"optional",innerType:n[t]}):n[t];return Se(this,"shape",o),o},checks:[]});return Me(t,o)}(ya,e,t[0]),e.required=(...t)=>function(e,t,r){const n=Ee(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const t in r){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);r[t]&&(o[t]=new e({type:"nonoptional",innerType:n[t]}))}else for(const t in n)o[t]=new e({type:"nonoptional",innerType:n[t]});return Se(this,"shape",o),o}});return Me(t,n)}(Oa,e,t[0])}),ma=/* @__PURE__ */ge("ZodUnion",(e,t)=>{Pr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a=!1===o.inclusive,i=o.options.map((e,r)=>uo(e,t,{...n,path:[...n.path,a?"oneOf":"anyOf",r]}));a?r.oneOf=i:r.anyOf=i})(e,t,r,n),e.options=t.options}),fa=/* @__PURE__ */ge("ZodIntersection",(e,t)=>{Zr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a=uo(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=uo(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length,c=[...s(a)?a.allOf:[a],...s(i)?i.allOf:[i]];r.allOf=c})(e,t,r,n)}),wa=/* @__PURE__ */ge("ZodEnum",(e,t)=>{Rr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r)=>{const n=ve(e._zod.def.entries);n.every(e=>"number"==typeof e)&&(r.type="number"),n.every(e=>"string"==typeof e)&&(r.type="string"),r.enum=n})(e,0,r),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(e,n)=>{const o={};for(const a of e){if(!r.has(a))throw new Error(`Key ${a} not found in enum`);o[a]=t.entries[a]}return new wa({...t,checks:[],...Pe(n),entries:o})},e.exclude=(e,n)=>{const o={...t.entries};for(const t of e){if(!r.has(t))throw new Error(`Key ${t} not found in enum`);delete o[t]}return new wa({...t,checks:[],...Pe(n),entries:o})}});function va(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new wa({type:"enum",entries:r,...Pe(t)})}const ba=/* @__PURE__ */ge("ZodTransform",(e,t)=>{Ur.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(r,n)=>{if("backward"===n.direction)throw new me(e.constructor.name);r.addIssue=n=>{if("string"==typeof n)r.issues.push(We(n,r.value,t));else{const t=n;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=r.value),t.inst??(t.inst=e),r.issues.push(We(t))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(e=>(r.value=e,r)):(r.value=o,r)}}),ya=/* @__PURE__ */ge("ZodOptional",(e,t)=>{Wr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>wo(e,t,0,n),e.unwrap=()=>e._zod.def.innerType});function xa(e){return new ya({type:"optional",innerType:e})}const ka=/* @__PURE__ */ge("ZodExactOptional",(e,t)=>{Br.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>wo(e,t,0,n),e.unwrap=()=>e._zod.def.innerType}),_a=/* @__PURE__ */ge("ZodNullable",(e,t)=>{Jr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a=uo(o.innerType,t,n),i=t.seen.get(e);"openapi-3.0"===t.target?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType});function za(e){return new _a({type:"nullable",innerType:e})}const Sa=/* @__PURE__ */ge("ZodDefault",(e,t)=>{Vr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap}),Ea=/* @__PURE__ */ge("ZodPrefault",(e,t)=>{Gr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType,"input"===t.io&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType}),Oa=/* @__PURE__ */ge("ZodNonOptional",(e,t)=>{Kr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType})(e,t,0,n),e.unwrap=()=>e._zod.def.innerType}),Ia=/* @__PURE__ */ge("ZodCatch",(e,t)=>{Yr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;let a;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap}),$a=/* @__PURE__ */ge("ZodPipe",(e,t)=>{Xr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a="input"===t.io?"transform"===o.in._zod.def.type?o.out:o.in:o.out;uo(a,t,n),t.seen.get(e).ref=a})(e,t,0,n),e.in=t.in,e.out=t.out});function Ca(e,t){return new $a({type:"pipe",in:e,out:t})}const Na=/* @__PURE__ */ge("ZodReadonly",(e,t)=>{en.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType,r.readOnly=!0})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType}),Ta=/* @__PURE__ */ge("ZodCustom",(e,t)=>{rn.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)}),ja="chat_device_id";function Aa(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}const Ma=function(){const e={type:"object",shape:{id:Fo().optional(),type:va(["text","image","audio","location","system"]).default("text"),content:Fo().optional(),imageUrl:Fo().url().optional(),audioUrl:Fo().url().optional(),latitude:ia().optional(),longitude:ia().optional(),timestamp:Fo().optional(),sender:va(["bot","user","system"]).optional(),emotion:/* @__PURE__ */Pn(la).optional()}??{},...Pe(void 0)};return new ha(e)}();class Pa{queue=[];endpoint;apiKey;flushInterval=null;isFlushing=!1;isDisabled=!1;MAX_QUEUE_SIZE=100;FLUSH_INTERVAL_MS=3e4;BATCH_SIZE=10;constructor(e,t){this.endpoint=e,this.apiKey=t,this.startAutoFlush()}startAutoFlush(){this.flushInterval=setInterval(()=>{!this.isDisabled&&this.queue.length>0&&this.flush()},this.FLUSH_INTERVAL_MS)}trackOpen(){this.track("chat_opened")}trackClose(){this.track("chat_closed")}trackMessageSent(e){this.track("message_sent",{type:e})}trackMessageReceived(e,t){this.track("message_received",{type:e,latency:t})}trackError(e,t){this.track("error",{error:e,context:t})}trackConnectionStatus(e){this.track("connection_status",{isConnected:e})}trackFeatureUsed(e){this.track("feature_used",{feature:e})}trackTypingStarted(){this.track("typing_started")}trackAttachmentSent(e,t){this.track("attachment_sent",{type:e,size:t})}track(e,t){this.isDisabled||(this.queue.push({event:e,properties:{...t,userAgent:"undefined"!=typeof navigator?navigator.userAgent:void 0,url:"undefined"!=typeof window?window.location.href:void 0},timestamp:Date.now()}),this.queue.length>=this.BATCH_SIZE&&this.flush(),this.queue.length>this.MAX_QUEUE_SIZE&&(this.queue=this.queue.slice(-this.MAX_QUEUE_SIZE),x.warn("Analytics queue overflow, dropping old events")))}async flush(){if(this.isDisabled||0===this.queue.length||this.isFlushing)return;this.isFlushing=!0;const e=[...this.queue];this.queue=[];try{const t=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({events:e}),keepalive:!0});t.ok?x.debug(`Analytics: Flushed ${e.length} events`):(this.isDisabled=!0,this.queue=[],x.debug(`Analytics disabled: endpoint returned ${t.status}`))}catch(t){this.isDisabled=!0,this.queue=[],x.debug("Analytics disabled due to network error")}finally{this.isFlushing=!1}}destroy(){this.flushInterval&&clearInterval(this.flushInterval),this.flush()}}let Za=null,Fa=null;function Da(e){Za=e}function Ra(e){Fa=e}const Ua=l(null);function La({children:e,defaultLocale:t,initialState:n,onStateChange:o,...i}){const[s,c]=r(n?.isOpen??!1),[l,d]=r(0),u=a(()=>{c(!0),d(0),o?.(!0)},[o]),p=a(()=>{c(!1),o?.(!1)},[o]),g=a(()=>{c(e=>{const t=!e;return t&&d(0),o?.(t),t})},[o]),h=a(e=>{Za?(Za(e),x.debug("ChatWidgetProvider sendMessage:",e)):x.warn("sendMessage called but no handler registered")},[]),m=a(()=>{Fa?(Fa(),x.debug("ChatWidgetProvider clearMessages called")):x.warn("clearMessages called but no handler registered")},[]),f={isOpen:s,open:u,close:p,toggle:g,sendMessage:h,clearMessages:m,unreadCount:l},w=a((e,t)=>{"message:received"!==e||s||d(e=>e+1),i.onEvent?.(e,t)},[s,i]);/* @__PURE__ */
|
|
28
|
+
return Fn(da)}const pa=/* @__PURE__ */ge("ZodNever",(e,t)=>{Or.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>((e,t,r)=>{r.not={}})(0,0,t)}),ga=/* @__PURE__ */ge("ZodArray",(e,t)=>{$r.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=r,a=e._zod.def,{minimum:i,maximum:s}=e._zod.bag;"number"==typeof i&&(o.minItems=i),"number"==typeof s&&(o.maxItems=s),o.type="array",o.items=uo(a.element,t,{...n,path:[...n.path,"items"]})})(e,t,r,n),e.element=t.element,e.min=(t,r)=>e.check(/* @__PURE__ */Jn(t,r)),e.nonempty=t=>e.check(/* @__PURE__ */Jn(1,t)),e.max=(t,r)=>e.check(/* @__PURE__ */Bn(t,r)),e.length=(t,r)=>e.check(/* @__PURE__ */Vn(t,r)),e.unwrap=()=>e.element}),ha=/* @__PURE__ */ge("ZodObject",(e,t)=>{jr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=r,a=e._zod.def;o.type="object",o.properties={};const i=a.shape;for(const l in i)o.properties[l]=uo(i[l],t,{...n,path:[...n.path,"properties",l]});const s=new Set(Object.keys(i)),c=new Set([...s].filter(e=>{const r=a.shape[e]._zod;return"input"===t.io?void 0===r.optin:void 0===r.optout}));c.size>0&&(o.required=Array.from(c)),"never"===a.catchall?._zod.def.type?o.additionalProperties=!1:a.catchall?a.catchall&&(o.additionalProperties=uo(a.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):"output"===t.io&&(o.additionalProperties=!1)})(e,t,r,n),ze(e,"shape",()=>t.shape),e.keyof=()=>va(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ua()}),e.loose=()=>e.clone({...e._zod.def,catchall:ua()}),e.strict=()=>e.clone({...e._zod.def,catchall:/* @__PURE__ */Zn(pa,void 0)}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>function(e,t){if(!Ne(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const r=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(r,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const n=Ee(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return Se(this,"shape",r),r}});return Me(e,n)}(e,t),e.safeExtend=t=>function(e,t){if(!Ne(t))throw new Error("Invalid input to safeExtend: expected a plain object");const r=Ee(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return Se(this,"shape",r),r}});return Me(e,r)}(e,t),e.merge=t=>function(e,t){const r=Ee(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return Se(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return Me(e,r)}(e,t),e.pick=t=>function(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Me(e,Ee(e._zod.def,{get shape(){const e={};for(const n in t){if(!(n in r.shape))throw new Error(`Unrecognized key: "${n}"`);t[n]&&(e[n]=r.shape[n])}return Se(this,"shape",e),e},checks:[]}))}(e,t),e.omit=t=>function(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const o=Ee(e._zod.def,{get shape(){const n={...e._zod.def.shape};for(const e in t){if(!(e in r.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete n[e]}return Se(this,"shape",n),n},checks:[]});return Me(e,o)}(e,t),e.partial=(...t)=>function(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const o=Ee(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const t in r){if(!(t in n))throw new Error(`Unrecognized key: "${t}"`);r[t]&&(o[t]=e?new e({type:"optional",innerType:n[t]}):n[t])}else for(const t in n)o[t]=e?new e({type:"optional",innerType:n[t]}):n[t];return Se(this,"shape",o),o},checks:[]});return Me(t,o)}(ya,e,t[0]),e.required=(...t)=>function(e,t,r){const n=Ee(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const t in r){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);r[t]&&(o[t]=new e({type:"nonoptional",innerType:n[t]}))}else for(const t in n)o[t]=new e({type:"nonoptional",innerType:n[t]});return Se(this,"shape",o),o}});return Me(t,n)}(Oa,e,t[0])}),ma=/* @__PURE__ */ge("ZodUnion",(e,t)=>{Pr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a=!1===o.inclusive,i=o.options.map((e,r)=>uo(e,t,{...n,path:[...n.path,a?"oneOf":"anyOf",r]}));a?r.oneOf=i:r.anyOf=i})(e,t,r,n),e.options=t.options}),fa=/* @__PURE__ */ge("ZodIntersection",(e,t)=>{Fr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a=uo(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=uo(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length,c=[...s(a)?a.allOf:[a],...s(i)?i.allOf:[i]];r.allOf=c})(e,t,r,n)}),wa=/* @__PURE__ */ge("ZodEnum",(e,t)=>{Rr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r)=>{const n=ve(e._zod.def.entries);n.every(e=>"number"==typeof e)&&(r.type="number"),n.every(e=>"string"==typeof e)&&(r.type="string"),r.enum=n})(e,0,r),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(e,n)=>{const o={};for(const a of e){if(!r.has(a))throw new Error(`Key ${a} not found in enum`);o[a]=t.entries[a]}return new wa({...t,checks:[],...Pe(n),entries:o})},e.exclude=(e,n)=>{const o={...t.entries};for(const t of e){if(!r.has(t))throw new Error(`Key ${t} not found in enum`);delete o[t]}return new wa({...t,checks:[],...Pe(n),entries:o})}});function va(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new wa({type:"enum",entries:r,...Pe(t)})}const ba=/* @__PURE__ */ge("ZodTransform",(e,t)=>{Ur.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(r,n)=>{if("backward"===n.direction)throw new me(e.constructor.name);r.addIssue=n=>{if("string"==typeof n)r.issues.push(We(n,r.value,t));else{const t=n;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=r.value),t.inst??(t.inst=e),r.issues.push(We(t))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(e=>(r.value=e,r)):(r.value=o,r)}}),ya=/* @__PURE__ */ge("ZodOptional",(e,t)=>{Wr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>wo(e,t,0,n),e.unwrap=()=>e._zod.def.innerType});function xa(e){return new ya({type:"optional",innerType:e})}const ka=/* @__PURE__ */ge("ZodExactOptional",(e,t)=>{Br.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>wo(e,t,0,n),e.unwrap=()=>e._zod.def.innerType}),_a=/* @__PURE__ */ge("ZodNullable",(e,t)=>{Jr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a=uo(o.innerType,t,n),i=t.seen.get(e);"openapi-3.0"===t.target?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType});function za(e){return new _a({type:"nullable",innerType:e})}const Sa=/* @__PURE__ */ge("ZodDefault",(e,t)=>{Vr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap}),Ea=/* @__PURE__ */ge("ZodPrefault",(e,t)=>{Gr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType,"input"===t.io&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType}),Oa=/* @__PURE__ */ge("ZodNonOptional",(e,t)=>{Kr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType})(e,t,0,n),e.unwrap=()=>e._zod.def.innerType}),Ia=/* @__PURE__ */ge("ZodCatch",(e,t)=>{Yr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;let a;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap}),$a=/* @__PURE__ */ge("ZodPipe",(e,t)=>{Xr.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def,a="input"===t.io?"transform"===o.in._zod.def.type?o.out:o.in:o.out;uo(a,t,n),t.seen.get(e).ref=a})(e,t,0,n),e.in=t.in,e.out=t.out});function Ca(e,t){return new $a({type:"pipe",in:e,out:t})}const Na=/* @__PURE__ */ge("ZodReadonly",(e,t)=>{en.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(t,r,n)=>((e,t,r,n)=>{const o=e._zod.def;uo(o.innerType,t,n),t.seen.get(e).ref=o.innerType,r.readOnly=!0})(e,t,r,n),e.unwrap=()=>e._zod.def.innerType}),Ta=/* @__PURE__ */ge("ZodCustom",(e,t)=>{rn.init(e,t),Mo.init(e,t),e._zod.processJSONSchema=(e,t,r)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)}),Aa="chat_device_id";function ja(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}const Ma=function(){const e={type:"object",shape:{id:Zo().optional(),type:va(["text","image","audio","location","system"]).default("text"),content:Zo().optional(),imageUrl:Zo().url().optional(),audioUrl:Zo().url().optional(),latitude:ia().optional(),longitude:ia().optional(),timestamp:Zo().optional(),sender:va(["bot","user","system"]).optional(),emotion:/* @__PURE__ */Pn(la).optional()}??{},...Pe(void 0)};return new ha(e)}();class Pa{queue=[];endpoint;apiKey;flushInterval=null;isFlushing=!1;isDisabled=!1;MAX_QUEUE_SIZE=100;FLUSH_INTERVAL_MS=3e4;BATCH_SIZE=10;constructor(e,t){this.endpoint=e,this.apiKey=t,this.startAutoFlush()}startAutoFlush(){this.flushInterval=setInterval(()=>{!this.isDisabled&&this.queue.length>0&&this.flush()},this.FLUSH_INTERVAL_MS)}trackOpen(){this.track("chat_opened")}trackClose(){this.track("chat_closed")}trackMessageSent(e){this.track("message_sent",{type:e})}trackMessageReceived(e,t){this.track("message_received",{type:e,latency:t})}trackError(e,t){this.track("error",{error:e,context:t})}trackConnectionStatus(e){this.track("connection_status",{isConnected:e})}trackFeatureUsed(e){this.track("feature_used",{feature:e})}trackTypingStarted(){this.track("typing_started")}trackAttachmentSent(e,t){this.track("attachment_sent",{type:e,size:t})}track(e,t){this.isDisabled||(this.queue.push({event:e,properties:{...t,userAgent:"undefined"!=typeof navigator?navigator.userAgent:void 0,url:"undefined"!=typeof window?window.location.href:void 0},timestamp:Date.now()}),this.queue.length>=this.BATCH_SIZE&&this.flush(),this.queue.length>this.MAX_QUEUE_SIZE&&(this.queue=this.queue.slice(-this.MAX_QUEUE_SIZE),x.warn("Analytics queue overflow, dropping old events")))}async flush(){if(this.isDisabled||0===this.queue.length||this.isFlushing)return;this.isFlushing=!0;const e=[...this.queue];this.queue=[];try{const t=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({events:e}),keepalive:!0});t.ok?x.debug(`Analytics: Flushed ${e.length} events`):(this.isDisabled=!0,this.queue=[],x.debug(`Analytics disabled: endpoint returned ${t.status}`))}catch(t){this.isDisabled=!0,this.queue=[],x.debug("Analytics disabled due to network error")}finally{this.isFlushing=!1}}destroy(){this.flushInterval&&clearInterval(this.flushInterval),this.flush()}}let Fa=null,Za=null;function Da(e){Fa=e}function Ra(e){Za=e}const Ua=l(null);function La({children:e,defaultLocale:t,initialState:n,onStateChange:o,...i}){const[s,c]=r(n?.isOpen??!1),[l,d]=r(0),u=a(()=>{c(!0),d(0),o?.(!0)},[o]),p=a(()=>{c(!1),o?.(!1)},[o]),g=a(()=>{c(e=>{const t=!e;return t&&d(0),o?.(t),t})},[o]),h=a(e=>{Fa?(Fa(e),x.debug("ChatWidgetProvider sendMessage:",e)):x.warn("sendMessage called but no handler registered")},[]),m=a(()=>{Za?(Za(),x.debug("ChatWidgetProvider clearMessages called")):x.warn("clearMessages called but no handler registered")},[]),f={isOpen:s,open:u,close:p,toggle:g,sendMessage:h,clearMessages:m,unreadCount:l},w=a((e,t)=>{"message:received"!==e||s||d(e=>e+1),i.onEvent?.(e,t)},[s,i]);/* @__PURE__ */
|
|
30
29
|
return N(S,{defaultLocale:t,children:/* @__PURE__ */C(Ua.Provider,{value:f,children:[e,
|
|
31
|
-
/* @__PURE__ */N(Va,{...i,onStateChange:e=>{c(e),e&&d(0),o?.(e)},onEvent:w})]})})}function Wa(){const e=d(Ua);if(!e)throw new Error("useChatWidget must be used within a ChatWidgetProvider. Wrap your app with <ChatWidgetProvider>...</ChatWidgetProvider>");return e}const Ba=e=>new Promise((t,r)=>{const n=new FileReader;n.readAsDataURL(e),n.onload=()=>t(n.result),n.onerror=e=>r(e)});function Ja(e){const{apiKey:t,apiBaseUrl:i,pageContext:l,includeSEOMetadata:d=!1,theme:u,userContext:p,onLogin:h,onNavigate:m,onEvent:f,onStateChange:v,onThemeUpdate:b}=e,[y,k]=r(0),S=c(0),{t:E}=g(),O=function(e,t,r=!0){const n=c(null);return o(()=>{if(!r||!e||!t)return;const o=`${e}/analytics`;n.current=new Pa(o,t);const a=()=>n.current?.flush(),i=()=>{"hidden"===document.visibilityState&&n.current?.flush()};return window.addEventListener("beforeunload",a),window.addEventListener("visibilitychange",i),()=>{window.removeEventListener("beforeunload",a),window.removeEventListener("visibilitychange",i),n.current?.destroy()}},[e,t,r]),{trackOpen:a(()=>{n.current?.trackOpen()},[]),trackClose:a(()=>{n.current?.trackClose()},[]),trackMessageSent:a(e=>{n.current?.trackMessageSent(e)},[]),trackMessageReceived:a((e,t)=>{n.current?.trackMessageReceived(e,t)},[]),trackError:a((e,t)=>{n.current?.trackError(e,t)},[]),trackConnectionStatus:a(e=>{n.current?.trackConnectionStatus(e)},[]),trackFeatureUsed:a(e=>{n.current?.trackFeatureUsed(e)},[])}}(i,t,!0),I=function({enabled:e=!0,soundEnabled:t=!0,desktopEnabled:n=!0,botName:i="Asistente",logoUrl:s,notificationSoundUrl:l}={}){const[d,u]=r("default"),p=c(null),g=s||w,h=l||z;o(()=>{t&&"undefined"!=typeof window&&(p.current=new Audio(h),p.current.volume=.3)},[t,h]),o(()=>{"undefined"!=typeof window&&"Notification"in window&&u(Notification.permission)},[]);const m=a(async()=>{if("undefined"==typeof window||!("Notification"in window))return x.warn("Notifications API not available"),!1;try{const e=await Notification.requestPermission();return u(e),x.info("Notification permission:",e),"granted"===e}catch(e){return x.error("Error requesting notification permission:",e),!1}},[]),f=a(t=>{if(e&&n&&"granted"===d&&("undefined"==typeof document||!document.hasFocus()))try{const e=`Nuevo mensaje de ${i}`;let r="Mensaje recibido";"text"===t.type&&"content"in t?r=t.content?.slice(0,100)||"Mensaje recibido":"image"===t.type?r="📷 Imagen":"audio"===t.type?r="🎵 Audio":"location"===t.type&&(r="📍 Ubicación");const n=new Notification(e,{body:r,icon:g,tag:"chat-message",requireInteraction:!1,silent:!1});n.onclick=()=>{window.focus(),n.close()},setTimeout(()=>n.close(),5e3)}catch(r){x.error("Error showing notification:",r)}},[e,n,d,i,g]),v=a(()=>{if(e&&t&&("undefined"==typeof document||!document.hasFocus()))try{p.current?.play().catch(e=>{x.debug("Audio playback blocked:",e)})}catch(r){x.error("Error playing sound:",r)}},[e,t]),b=a(e=>{f(e),v()},[f,v]);return{permission:d,requestPermission:m,notify:f,playSound:v,notifyWithSound:b}}({enabled:!0,soundEnabled:!0,desktopEnabled:!0,botName:u?.botName||"Asistente",logoUrl:u?.logoUrl}),$=function(e=10,t=6e4){const r=c([]);return{isAllowed:a(()=>{const n=Date.now();return r.current=r.current.filter(e=>n-e<t),!(r.current.length>=e||(r.current.push(n),0))},[e,t]),getRemainingAttempts:a(()=>{const n=Date.now();return r.current=r.current.filter(e=>n-e<t),Math.max(0,e-r.current.length)},[e,t]),getTimeUntilReset:a(()=>{if(0===r.current.length)return 0;const e=Date.now(),n=r.current[0],o=t-(e-n);return Math.max(0,o)},[t]),reset:a(()=>{r.current=[]},[])}}(10,6e4),{state:C,actions:N}=function(){const[e,t]=s(pe,ue),[n,i]=r(!1);o(()=>{"undefined"==typeof window||n||(async()=>{try{await le.migrateFromLocalStorage();const e=await le.getMessages(100),r=await le.getMetadata();if(e.length>0||r){const n={messages:e.map(e=>({...e,timestamp:new Date(e.timestamp)})),sessionId:r?.sessionId||null,isOpen:r?.isOpen||!1};t({type:"RESTORE_SESSION",payload:n})}}catch(e){x.warn("Chat: Error rehydrating from IndexedDB",e);try{const e=localStorage.getItem(de);if(e){const r=JSON.parse(e);r.messages&&(r.messages=r.messages.map(e=>({...e,timestamp:new Date(e.timestamp)}))),t({type:"RESTORE_SESSION",payload:r})}}catch(r){x.error("Chat: Fallback rehydration failed",r)}}finally{i(!0)}})()},[n]),o(()=>{if(!n)return;const t=setTimeout(async()=>{try{await le.saveMessages(e.messages),await le.setMetadata({isOpen:e.isOpen,sessionId:e.sessionId})}catch(t){x.error("Chat Persistence Error:",t);try{const t={isOpen:e.isOpen,messages:e.messages,sessionId:e.sessionId};localStorage.setItem(de,JSON.stringify(t))}catch(r){x.error("Chat: Fallback persistence failed",r)}}},500);return()=>clearTimeout(t)},[e.isOpen,e.messages,e.sessionId,n]);const c=a(e=>{t({type:"ADD_MESSAGE",payload:e})},[]),l=a(()=>t({type:"TOGGLE_WINDOW"}),[]),d=a(()=>t({type:"OPEN_WINDOW"}),[]),u=a(()=>t({type:"CLOSE_WINDOW"}),[]),p=a(e=>t({type:"SET_CONNECTED",payload:e}),[]),g=a(e=>t({type:"SET_TYPING",payload:e}),[]),h=a(e=>t({type:"SET_MESSAGES",payload:e}),[]),m=a(e=>t({type:"SET_ERROR",payload:e}),[]),f=a(e=>t({type:"SET_SESSION_ID",payload:e}),[]),w=a(()=>{localStorage.removeItem(de),t({type:"CLEAR_CHAT"})},[]),v=a(()=>{t({type:"SET_MESSAGES",payload:[]})},[]);return{state:e,isHydrated:n,actions:{toggleWindow:l,openWindow:d,closeWindow:u,setConnected:p,setTyping:g,addMessage:c,setMessages:h,setError:m,setSessionId:f,clearChat:w,clearMessages:v}}}(),j=function(e=!1){const t="undefined"!=typeof window?window.location.pathname:"",a=n(()=>t,[t]),[i,s]=r({});return o(()=>{if(!e)return void s({});const t=setTimeout(()=>{const e=function(){if("undefined"==typeof window)return{};const e={};e.title=document.title,document.querySelectorAll("meta").forEach(t=>{const r=t.getAttribute("name"),n=t.getAttribute("property"),o=t.getAttribute("content");if(o){if(r)switch(r){case"description":e.description=o;break;case"keywords":e.keywords=o.split(",").map(e=>e.trim());break;case"author":e.author=o}if(n){if(n.startsWith("og:")){const t=n.replace("og:","og_");e[t]=o}if(n.startsWith("twitter:")){const t=n.replace("twitter:","twitter_");e[t]=o}}}});try{const t=document.querySelectorAll('script[type="application/ld+json"]');if(t.length>0){const r=[];t.forEach(e=>{try{const t=JSON.parse(e.textContent||"");r.push(t)}catch{}}),r.length>0&&(e.structuredData=r)}}catch{}return e}();s(e)},100);return()=>clearTimeout(t)},[a,e]),e&&Object.keys(i).length>0?i:void 0}(d),A=function(e){const{apiKey:t,apiBaseUrl:i,pageContext:s,userContext:l}=e,d=c(e);o(()=>{d.current=e},[e]);const u=c(null),[p,g]=r(!1),[h,m]=r(!1),f=c(function(){try{const e=localStorage.getItem(ja);if(e)return e;const t=Aa();return localStorage.setItem(ja,t),t}catch{return x.warn("localStorage not available, using session-only device ID"),Aa()}}()),w=c(s);o(()=>{w.current=s},[s]);const v=a(e=>{const t=Ma.safeParse(e),r=t.success&&t.data.id?t.data.id:`msg-${Math.random().toString(36).slice(2,11)}`,n=t.success&&t.data.sender?t.data.sender:"bot",o=t.success&&t.data.timestamp?new Date(t.data.timestamp):/* @__PURE__ */new Date,a=t.success?t.data:{type:"text"};switch(a.type){case"image":return{id:r,type:"image",sender:n,timestamp:o,imageUrl:a.imageUrl||a.content||"",altText:"Imagen enviada"};case"audio":return{id:r,type:"audio",sender:n,timestamp:o,content:a.audioUrl||a.content||""};case"location":return{id:r,type:"location",sender:n,timestamp:o,latitude:Number(a.latitude||0),longitude:Number(a.longitude||0),name:a.content||"Ubicación compartida"};case"system":return{id:r,type:"system",sender:"system",timestamp:o,content:String(a.content||"")};default:return{id:r,type:"text",sender:n,timestamp:o,content:String(a.content||"Sin contenido"),emotion:a.emotion}}},[]),b=a(()=>{if(!t||!i)return;if(u.current?.connected)return;g(!0);const e=T(`${i}/webchat`,{auth:{apiKey:t,deviceId:f.current,token:l?.token,metadata:l?.metadata},transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,extraHeaders:{"bypass-tunnel-reminder":"true","X-Tunnel-Skip-Anti-Phishing-Page":"true"}});e.on("connect",()=>{g(!1),m(!0),d.current.onConnected(`temp-${Date.now()}`,void 0)}),e.on("disconnect",e=>{g(!1),m(!1),d.current.onDisconnected()}),e.on("connect_error",e=>{g(!1),d.current.onError(`Error de conexión: ${e.message}`)}),e.on("connection_ack",e=>{d.current.onConnected(e.sessionId,e.config)}),e.on("bot_message",e=>{try{d.current.onMessage(v(e))}catch(t){x.error("ChatSocket Error processing bot_message:",t)}}),e.on("chat_history",e=>{e.messages&&Array.isArray(e.messages)&&e.messages.forEach(e=>{try{d.current.onMessage(v(e))}catch(t){x.debug("Error processing history message:",t)}}),d.current.onEvent&&d.current.onEvent("history_loaded",e)}),e.on("bot_typing",e=>d.current.onTyping(e)),e.on("auth_success",e=>{d.current.onLogin&&d.current.onLogin(e),e.theme&&d.current.onThemeUpdate&&d.current.onThemeUpdate(e.theme)}),u.current=e},[t,i]),y=a(()=>{u.current&&(u.current.disconnect(),u.current=null,m(!1))},[]),k=c(b);k.current=b,o(()=>(k.current(),()=>{u.current&&(u.current.disconnect(),u.current=null)}),[]);const z=c([]),S=c([]),E=a(()=>`msg_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,[]),O=a(()=>{if(u.current?.connected)for(;z.current.length>0;){const e=z.current.shift();u.current.emit("user_message",e)}},[]);o(()=>{h&&O()},[h,O]),o(()=>{if(!h)return;const e=setInterval(()=>{const e=Date.now();S.current=S.current.filter(t=>e<t.nextRetryAt||(t.attempts>=t.maxAttempts?(d.current.onEvent?.("message_failed",{id:t.id,payload:t.payload}),x.error("Message failed after max retries:",t.id),!1):!u.current?.connected||(u.current.emit("user_message",t.payload,e=>{e?.success&&d.current.onEvent?.("message_sent",{id:t.id})}),t.attempts++,t.nextRetryAt=e+1e3*Math.pow(2,t.attempts),t.attempts<t.maxAttempts)))},500);return()=>clearInterval(e)},[h]);const I=a((e,t="text")=>{const r=E(),n={...w.current,currentUrl:"undefined"!=typeof window?window.location.href:void 0,sentAt:/* @__PURE__ */(new Date).toISOString(),deviceId:f.current},o={id:r,content:e.trim(),type:t,metadata:n};return u.current?.connected?(u.current.emit("user_message",o,e=>{!1!==e?.success&&e?d.current.onEvent?.("message_sent",{id:r}):(S.current.push({id:r,payload:o,attempts:0,maxAttempts:3,nextRetryAt:Date.now()+1e3}),d.current.onEvent?.("message_retry_queued",{id:r}))}),r):(z.current.push(o),d.current.onEvent?.("queued_message",{id:r,payload:o}),r)},[E]),$=n(()=>_(e=>{u.current?.emit("typing",e)},250),[]);return{isConnected:h,isConnecting:p,sendMessage:I,sendTyping:$,requestHistory:a(()=>{u.current?.emit("request_history")},[]),reconnect:b,disconnect:y}}({apiKey:t,apiBaseUrl:i,pageContext:n(()=>j?{...l||{},seo:{...j||{}}}:l,[l,j]),userContext:p,onMessage:a(e=>{const t=Date.now(),r=S.current>0?t-S.current:void 0;S.current=t,N.addMessage(e),O.trackMessageReceived(e.type,r),C.isOpen||"bot"!==e.sender||(k(e=>e+1),I.notifyWithSound(e))},[N,C.isOpen,O,I]),onConnected:a((e,t)=>{N.setConnected(!0),N.setSessionId(e),O.trackConnectionStatus(!0),t&&f&&f("backend_config",t)},[N,f,O]),onDisconnected:a(()=>{N.setConnected(!1),O.trackConnectionStatus(!1)},[N,O]),onTyping:a(e=>N.setTyping(e),[N]),onError:a(e=>{N.setError(e),O.trackError(e)},[N,O]),onLogin:h,onNavigate:m,onEvent:f,onThemeUpdate:b}),M=a(()=>{x.debug("ChatWidget handleToggle called, current isOpen:",C.isOpen),C.isOpen?(N.closeWindow(),O.trackClose(),v?.(!1),x.debug("ChatWidget Closing window")):(N.openWindow(),k(0),O.trackOpen(),v?.(!0),x.debug("ChatWidget Opening window"))},[C.isOpen,N,v,O]),P=a(e=>{if(!$.isAllowed()){const e=$.getTimeUntilReset(),t=Math.ceil(e/1e3);return void N.setError(E("rate_limit_exceeded")+` Espera ${t}s.`)}const t={id:`temp-${Date.now()}-${Math.random()}`,type:"text",sender:"user",timestamp:/* @__PURE__ */new Date,content:e};N.addMessage(t),O.trackMessageSent("text"),A.sendMessage(e,"text")},[N,A,$,O,E]),Z=a(async(e,t)=>{let r;r="audio"===t?{id:`temp-${Date.now()}-${Math.random()}`,type:"audio",sender:"user",timestamp:/* @__PURE__ */new Date,content:URL.createObjectURL(e)}:"image"===t?{id:`temp-${Date.now()}-${Math.random()}`,type:"image",sender:"user",timestamp:/* @__PURE__ */new Date,imageUrl:URL.createObjectURL(e)}:{id:`temp-${Date.now()}-${Math.random()}`,type:"text",sender:"user",timestamp:/* @__PURE__ */new Date,content:`📎 ${e.name}`},N.addMessage(r);const n=await Ba(e);A.sendMessage(n,t)},[N,A]),F=a(e=>{const t={id:`temp-${Date.now()}-${Math.random()}`,type:"location",sender:"user",timestamp:/* @__PURE__ */new Date,latitude:e.latitude,longitude:e.longitude,name:"Mi ubicación"};N.addMessage(t),A.sendMessage(JSON.stringify(e),"location")},[N,A]);o(()=>{const e=()=>{C.isOpen||N.openWindow()},t=()=>{C.isOpen&&N.closeWindow()},r=()=>{C.isOpen?N.closeWindow():N.openWindow()},n=e=>{e.detail?.message&&P(e.detail.message)};return window.addEventListener("botuyo-chat:open",e),window.addEventListener("botuyo-chat:close",t),window.addEventListener("botuyo-chat:toggle",r),window.addEventListener("botuyo-chat:send-message",n),()=>{window.removeEventListener("botuyo-chat:open",e),window.removeEventListener("botuyo-chat:close",t),window.removeEventListener("botuyo-chat:toggle",r),window.removeEventListener("botuyo-chat:send-message",n)}},[C.isOpen,N,P]),o(()=>(Da(P),()=>Da(null)),[P]);const D=a(()=>{N.clearMessages(),x.info("Chat history cleared")},[N]);o(()=>(Ra(D),()=>Ra(null)),[D]);const R=n(()=>{if(C.isTyping)return"thinking";const e=[...C.messages].reverse().find(e=>"bot"===e.sender&&"text"===e.type);return"text"===e?.type&&e.emotion?e.emotion:"default"},[C.isTyping,C.messages]);return{state:C,actions:N,unreadCount:y,currentBotEmotion:R,isConnected:A.isConnected,handleToggle:M,handleSendText:P,handleSendAttachment:Z,handleSendLocation:F}}function Va(e){const{apiKey:t,apiBaseUrl:i,pageContext:s,includeSEOMetadata:l=!1,theme:d,mediaConfig:u,userContext:p,onLogin:g,onNavigate:h,onEvent:m,onStateChange:f,onVoiceCall:w}=e,b=c(null),y=E();!function(e){const[t,n]=r(!1);o(()=>{let t=null;const r=()=>{if(!e.current)return;const t=!!e.current.parentElement?.closest(".dark"),r=!!document.getElementById("botuyo-chat-widget-root")?.classList.contains("dark"),o=document.getElementById("botuyo-chat-widget-root"),a=!!o?.parentElement?.closest(".dark"),i=document.documentElement.classList.contains("dark"),s=document.body.classList.contains("dark"),c=window.matchMedia("(prefers-color-scheme: dark)").matches,l=t||r||a||i||s||c;e.current&&(l?e.current.classList.add("dark"):e.current.classList.remove("dark")),n(l)};r();const o=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>r();o.addEventListener("change",a);const i=new MutationObserver(()=>{r()}),s=document.getElementById("botuyo-chat-widget-root");s&&(i.observe(s,{attributes:!0,attributeFilter:["class"]}),s.parentElement&&(i.observe(s.parentElement,{attributes:!0,attributeFilter:["class"],childList:!0}),t=s.parentElement)),i.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),i.observe(document.body,{attributes:!0,attributeFilter:["class"]});let c=e.current?.parentElement;for(;c;)i.observe(c,{attributes:!0,attributeFilter:["class"]}),c=c.parentElement;const l=setInterval(()=>{const e=document.getElementById("botuyo-chat-widget-root");e&&e.parentElement!==t&&(t&&e.parentElement&&(i.observe(e.parentElement,{attributes:!0,attributeFilter:["class"],childList:!0}),t=e.parentElement),r())},100);return()=>{i.disconnect(),o.removeEventListener("change",a),clearInterval(l)}},[e])}(b);const[x,_]=r(),{mergedTheme:z,mergedStyles:S,getContainerStyle:$}=function(e,t){const a=function(){const[e,t]=r(()=>"undefined"!=typeof window&&(window.matchMedia("(prefers-contrast: high)").matches||window.matchMedia("(prefers-contrast: more)").matches));return o(()=>{const e=window.matchMedia("(prefers-contrast: high)"),r=window.matchMedia("(prefers-contrast: more)"),n=e=>{t(e.matches)};return e.addEventListener("change",n),r.addEventListener("change",n),()=>{e.removeEventListener("change",n),r.removeEventListener("change",n)}},[]),e}(),i=n(()=>{const r=k(e,t);return a?{...r,primaryColor:"#000000",cssVariables:{...r.cssVariables,background:"#FFFFFF",foreground:"#000000",card:"#FFFFFF",cardForeground:"#000000",primary:"#000000",primaryForeground:"#FFFFFF",muted:"#F5F5F5",mutedForeground:"#000000",border:"#000000"}}:r},[e,t,a]),s=n(()=>({radius:{...F,...e?.bubbleStyles?.radius},bot:{...D,...e?.bubbleStyles?.bot},user:{...R,...e?.bubbleStyles?.user},launcher:{...e?.bubbleStyles?.launcher},mapCard:{...e?.bubbleStyles?.mapCard}}),[e?.bubbleStyles]);return{mergedTheme:i,mergedStyles:s,getContainerStyle:(e,t,r)=>({"--chat-primary":i.primaryColor,zIndex:e?2147483647:9999,position:"fixed",top:t&&e?0:"auto",left:t&&e?0:"bottom-left"===r?"24px":"auto",right:t&&e?0:"bottom-right"!==r&&r?"auto":"24px",bottom:t&&e?0:"24px",width:t&&e?"100%":"auto",height:t&&e?"100%":"auto"})}}(d,x),{state:T,actions:j,unreadCount:A,currentBotEmotion:M,isConnected:U,handleToggle:L,handleSendText:W,handleSendAttachment:B,handleSendLocation:J}=Ja({apiKey:t,apiBaseUrl:i,pageContext:s,includeSEOMetadata:l,theme:d,userContext:p,onLogin:g,onNavigate:h,onEvent:m,onStateChange:f,onThemeUpdate:_}),V=a(e=>{e.stopPropagation()},[]),q=$(T.isOpen,y,d?.position),G=n(()=>{if(!z.cssVariables)return{};const e={},t=z.cssVariables;return t.background&&(e["--background"]=t.background),t.foreground&&(e["--foreground"]=t.foreground),t.card&&(e["--card"]=t.card),t.cardForeground&&(e["--card-foreground"]=t.cardForeground),t.primary&&(e["--primary"]=t.primary),t.primaryForeground&&(e["--primary-foreground"]=t.primaryForeground),t.muted&&(e["--muted"]=t.muted),t.mutedForeground&&(e["--muted-foreground"]=t.mutedForeground),t.border&&(e["--border"]=t.border),t.destructive&&(e["--destructive"]=t.destructive),t.radius&&(e["--radius"]=t.radius),t.spacing1&&(e["--spacing-1"]=t.spacing1),t.spacing2&&(e["--spacing-2"]=t.spacing2),t.spacing3&&(e["--spacing-3"]=t.spacing3),t.spacing4&&(e["--spacing-4"]=t.spacing4),t.spacing5&&(e["--spacing-5"]=t.spacing5),t.spacing6&&(e["--spacing-6"]=t.spacing6),t.spacing8&&(e["--spacing-8"]=t.spacing8),e},[z.cssVariables]);/* @__PURE__ */
|
|
30
|
+
/* @__PURE__ */N(Va,{...i,onStateChange:e=>{c(e),e&&d(0),o?.(e)},onEvent:w})]})})}function Wa(){const e=d(Ua);if(!e)throw new Error("useChatWidget must be used within a ChatWidgetProvider. Wrap your app with <ChatWidgetProvider>...</ChatWidgetProvider>");return e}const Ba=e=>new Promise((t,r)=>{const n=new FileReader;n.readAsDataURL(e),n.onload=()=>t(n.result),n.onerror=e=>r(e)});function Ja(e){const{apiKey:t,apiBaseUrl:i,pageContext:l,includeSEOMetadata:d=!1,theme:u,userContext:p,onLogin:h,onNavigate:m,onEvent:f,onStateChange:v,onThemeUpdate:b}=e,[y,k]=r(0),S=c(0),{t:E}=g(),O=function(e,t,r=!0){const n=c(null);return o(()=>{if(!r||!e||!t)return;const o=`${e}/analytics`;n.current=new Pa(o,t);const a=()=>n.current?.flush(),i=()=>{"hidden"===document.visibilityState&&n.current?.flush()};return window.addEventListener("beforeunload",a),window.addEventListener("visibilitychange",i),()=>{window.removeEventListener("beforeunload",a),window.removeEventListener("visibilitychange",i),n.current?.destroy()}},[e,t,r]),{trackOpen:a(()=>{n.current?.trackOpen()},[]),trackClose:a(()=>{n.current?.trackClose()},[]),trackMessageSent:a(e=>{n.current?.trackMessageSent(e)},[]),trackMessageReceived:a((e,t)=>{n.current?.trackMessageReceived(e,t)},[]),trackError:a((e,t)=>{n.current?.trackError(e,t)},[]),trackConnectionStatus:a(e=>{n.current?.trackConnectionStatus(e)},[]),trackFeatureUsed:a(e=>{n.current?.trackFeatureUsed(e)},[])}}(i,t,!0),I=function({enabled:e=!0,soundEnabled:t=!0,desktopEnabled:n=!0,botName:i="Asistente",logoUrl:s,notificationSoundUrl:l}={}){const[d,u]=r("default"),p=c(null),g=s||w,h=l||z;o(()=>{t&&"undefined"!=typeof window&&(p.current=new Audio(h),p.current.volume=.3)},[t,h]),o(()=>{"undefined"!=typeof window&&"Notification"in window&&u(Notification.permission)},[]);const m=a(async()=>{if("undefined"==typeof window||!("Notification"in window))return x.warn("Notifications API not available"),!1;try{const e=await Notification.requestPermission();return u(e),x.info("Notification permission:",e),"granted"===e}catch(e){return x.error("Error requesting notification permission:",e),!1}},[]),f=a(t=>{if(e&&n&&"granted"===d&&("undefined"==typeof document||!document.hasFocus()))try{const e=`Nuevo mensaje de ${i}`;let r="Mensaje recibido";"text"===t.type&&"content"in t?r=t.content?.slice(0,100)||"Mensaje recibido":"image"===t.type?r="📷 Imagen":"audio"===t.type?r="🎵 Audio":"location"===t.type&&(r="📍 Ubicación");const n=new Notification(e,{body:r,icon:g,tag:"chat-message",requireInteraction:!1,silent:!1});n.onclick=()=>{window.focus(),n.close()},setTimeout(()=>n.close(),5e3)}catch(r){x.error("Error showing notification:",r)}},[e,n,d,i,g]),v=a(()=>{if(e&&t&&("undefined"==typeof document||!document.hasFocus()))try{p.current?.play().catch(e=>{x.debug("Audio playback blocked:",e)})}catch(r){x.error("Error playing sound:",r)}},[e,t]),b=a(e=>{f(e),v()},[f,v]);return{permission:d,requestPermission:m,notify:f,playSound:v,notifyWithSound:b}}({enabled:!0,soundEnabled:!0,desktopEnabled:!0,botName:u?.botName||"Asistente",logoUrl:u?.logoUrl}),$=function(e=10,t=6e4){const r=c([]);return{isAllowed:a(()=>{const n=Date.now();return r.current=r.current.filter(e=>n-e<t),!(r.current.length>=e||(r.current.push(n),0))},[e,t]),getRemainingAttempts:a(()=>{const n=Date.now();return r.current=r.current.filter(e=>n-e<t),Math.max(0,e-r.current.length)},[e,t]),getTimeUntilReset:a(()=>{if(0===r.current.length)return 0;const e=Date.now(),n=r.current[0],o=t-(e-n);return Math.max(0,o)},[t]),reset:a(()=>{r.current=[]},[])}}(10,6e4),{state:C,actions:N}=function(){const[e,t]=s(pe,ue),[n,i]=r(!1);o(()=>{"undefined"==typeof window||n||(async()=>{try{await le.migrateFromLocalStorage();const e=await le.getMessages(100),r=await le.getMetadata();if(e.length>0||r){const n={messages:e.map(e=>({...e,timestamp:new Date(e.timestamp)})),sessionId:r?.sessionId||null,isOpen:r?.isOpen||!1};t({type:"RESTORE_SESSION",payload:n})}}catch(e){x.warn("Chat: Error rehydrating from IndexedDB",e);try{const e=localStorage.getItem(de);if(e){const r=JSON.parse(e);r.messages&&(r.messages=r.messages.map(e=>({...e,timestamp:new Date(e.timestamp)}))),t({type:"RESTORE_SESSION",payload:r})}}catch(r){x.error("Chat: Fallback rehydration failed",r)}}finally{i(!0)}})()},[n]),o(()=>{if(!n)return;const t=setTimeout(async()=>{try{await le.saveMessages(e.messages),await le.setMetadata({isOpen:e.isOpen,sessionId:e.sessionId})}catch(t){x.error("Chat Persistence Error:",t);try{const t={isOpen:e.isOpen,messages:e.messages,sessionId:e.sessionId};localStorage.setItem(de,JSON.stringify(t))}catch(r){x.error("Chat: Fallback persistence failed",r)}}},500);return()=>clearTimeout(t)},[e.isOpen,e.messages,e.sessionId,n]);const c=a(e=>{t({type:"ADD_MESSAGE",payload:e})},[]),l=a(()=>t({type:"TOGGLE_WINDOW"}),[]),d=a(()=>t({type:"OPEN_WINDOW"}),[]),u=a(()=>t({type:"CLOSE_WINDOW"}),[]),p=a(e=>t({type:"SET_CONNECTED",payload:e}),[]),g=a(e=>t({type:"SET_TYPING",payload:e}),[]),h=a(e=>t({type:"SET_MESSAGES",payload:e}),[]),m=a(e=>t({type:"SET_ERROR",payload:e}),[]),f=a(e=>t({type:"SET_SESSION_ID",payload:e}),[]),w=a(()=>{localStorage.removeItem(de),t({type:"CLEAR_CHAT"})},[]),v=a(()=>{t({type:"SET_MESSAGES",payload:[]})},[]);return{state:e,isHydrated:n,actions:{toggleWindow:l,openWindow:d,closeWindow:u,setConnected:p,setTyping:g,addMessage:c,setMessages:h,setError:m,setSessionId:f,clearChat:w,clearMessages:v}}}(),A=function(e=!1){const t="undefined"!=typeof window?window.location.pathname:"",a=n(()=>t,[t]),[i,s]=r({});return o(()=>{if(!e)return void s({});const t=setTimeout(()=>{const e=function(){if("undefined"==typeof window)return{};const e={};e.title=document.title,document.querySelectorAll("meta").forEach(t=>{const r=t.getAttribute("name"),n=t.getAttribute("property"),o=t.getAttribute("content");if(o){if(r)switch(r){case"description":e.description=o;break;case"keywords":e.keywords=o.split(",").map(e=>e.trim());break;case"author":e.author=o}if(n){if(n.startsWith("og:")){const t=n.replace("og:","og_");e[t]=o}if(n.startsWith("twitter:")){const t=n.replace("twitter:","twitter_");e[t]=o}}}});try{const t=document.querySelectorAll('script[type="application/ld+json"]');if(t.length>0){const r=[];t.forEach(e=>{try{const t=JSON.parse(e.textContent||"");r.push(t)}catch{}}),r.length>0&&(e.structuredData=r)}}catch{}return e}();s(e)},100);return()=>clearTimeout(t)},[a,e]),e&&Object.keys(i).length>0?i:void 0}(d),j=function(e){const{apiKey:t,apiBaseUrl:i,pageContext:s,userContext:l}=e,d=c(e);o(()=>{d.current=e},[e]);const u=c(null),[p,g]=r(!1),[h,m]=r(!1),f=c(function(){try{const e=localStorage.getItem(Aa);if(e)return e;const t=ja();return localStorage.setItem(Aa,t),t}catch{return x.warn("localStorage not available, using session-only device ID"),ja()}}()),w=c(s);o(()=>{w.current=s},[s]);const v=a(e=>{const t=Ma.safeParse(e),r=t.success&&t.data.id?t.data.id:`msg-${Math.random().toString(36).slice(2,11)}`,n=t.success&&t.data.sender?t.data.sender:"bot",o=t.success&&t.data.timestamp?new Date(t.data.timestamp):/* @__PURE__ */new Date,a=t.success?t.data:{type:"text"};switch(a.type){case"image":return{id:r,type:"image",sender:n,timestamp:o,imageUrl:a.imageUrl||a.content||"",altText:"Imagen enviada"};case"audio":return{id:r,type:"audio",sender:n,timestamp:o,content:a.audioUrl||a.content||""};case"location":return{id:r,type:"location",sender:n,timestamp:o,latitude:Number(a.latitude||0),longitude:Number(a.longitude||0),name:a.content||"Ubicación compartida"};case"system":return{id:r,type:"system",sender:"system",timestamp:o,content:String(a.content||"")};default:return{id:r,type:"text",sender:n,timestamp:o,content:String(a.content||"Sin contenido"),emotion:a.emotion}}},[]),b=a(()=>{if(!t||!i)return;if(u.current?.connected)return;g(!0);const e=T(`${i}/webchat`,{auth:{apiKey:t,deviceId:f.current,token:l?.token,metadata:l?.metadata},transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,extraHeaders:{"bypass-tunnel-reminder":"true","X-Tunnel-Skip-Anti-Phishing-Page":"true"}});e.on("connect",()=>{g(!1),m(!0),d.current.onConnected(`temp-${Date.now()}`,void 0)}),e.on("disconnect",e=>{g(!1),m(!1),d.current.onDisconnected()}),e.on("connect_error",e=>{g(!1),d.current.onError(`Error de conexión: ${e.message}`)}),e.on("connection_ack",e=>{d.current.onConnected(e.sessionId,e.config)}),e.on("bot_message",e=>{try{d.current.onMessage(v(e))}catch(t){x.error("ChatSocket Error processing bot_message:",t)}}),e.on("chat_history",e=>{e.messages&&Array.isArray(e.messages)&&e.messages.forEach(e=>{try{d.current.onMessage(v(e))}catch(t){x.debug("Error processing history message:",t)}}),d.current.onEvent&&d.current.onEvent("history_loaded",e)}),e.on("bot_typing",e=>d.current.onTyping(e)),e.on("auth_success",e=>{d.current.onLogin&&d.current.onLogin(e),e.theme&&d.current.onThemeUpdate&&d.current.onThemeUpdate(e.theme)}),u.current=e},[t,i]),y=a(()=>{u.current&&(u.current.disconnect(),u.current=null,m(!1))},[]),k=c(b);k.current=b,o(()=>(k.current(),()=>{u.current&&(u.current.disconnect(),u.current=null)}),[]);const z=c([]),S=c([]),E=a(()=>`msg_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,[]),O=a(()=>{if(u.current?.connected)for(;z.current.length>0;){const e=z.current.shift();u.current.emit("user_message",e)}},[]);o(()=>{h&&O()},[h,O]),o(()=>{if(!h)return;const e=setInterval(()=>{const e=Date.now();S.current=S.current.filter(t=>e<t.nextRetryAt||(t.attempts>=t.maxAttempts?(d.current.onEvent?.("message_failed",{id:t.id,payload:t.payload}),x.error("Message failed after max retries:",t.id),!1):!u.current?.connected||(u.current.emit("user_message",t.payload,e=>{e?.success&&d.current.onEvent?.("message_sent",{id:t.id})}),t.attempts++,t.nextRetryAt=e+1e3*Math.pow(2,t.attempts),t.attempts<t.maxAttempts)))},500);return()=>clearInterval(e)},[h]);const I=a((e,t="text")=>{const r=E(),n={...w.current,currentUrl:"undefined"!=typeof window?window.location.href:void 0,sentAt:/* @__PURE__ */(new Date).toISOString(),deviceId:f.current},o={id:r,content:e.trim(),type:t,metadata:n};return u.current?.connected?(u.current.emit("user_message",o,e=>{!1!==e?.success&&e?d.current.onEvent?.("message_sent",{id:r}):(S.current.push({id:r,payload:o,attempts:0,maxAttempts:3,nextRetryAt:Date.now()+1e3}),d.current.onEvent?.("message_retry_queued",{id:r}))}),r):(z.current.push(o),d.current.onEvent?.("queued_message",{id:r,payload:o}),r)},[E]),$=n(()=>_(e=>{u.current?.emit("typing",e)},250),[]);return{isConnected:h,isConnecting:p,sendMessage:I,sendTyping:$,requestHistory:a(()=>{u.current?.emit("request_history")},[]),reconnect:b,disconnect:y}}({apiKey:t,apiBaseUrl:i,pageContext:n(()=>A?{...l||{},seo:{...A||{}}}:l,[l,A]),userContext:p,onMessage:a(e=>{const t=Date.now(),r=S.current>0?t-S.current:void 0;S.current=t,N.addMessage(e),O.trackMessageReceived(e.type,r),C.isOpen||"bot"!==e.sender||(k(e=>e+1),I.notifyWithSound(e))},[N,C.isOpen,O,I]),onConnected:a((e,t)=>{N.setConnected(!0),N.setSessionId(e),O.trackConnectionStatus(!0),t&&f&&f("backend_config",t)},[N,f,O]),onDisconnected:a(()=>{N.setConnected(!1),O.trackConnectionStatus(!1)},[N,O]),onTyping:a(e=>N.setTyping(e),[N]),onError:a(e=>{N.setError(e),O.trackError(e)},[N,O]),onLogin:h,onNavigate:m,onEvent:f,onThemeUpdate:b}),M=a(()=>{x.debug("ChatWidget handleToggle called, current isOpen:",C.isOpen),C.isOpen?(N.closeWindow(),O.trackClose(),v?.(!1),x.debug("ChatWidget Closing window")):(N.openWindow(),k(0),O.trackOpen(),v?.(!0),x.debug("ChatWidget Opening window"))},[C.isOpen,N,v,O]),P=a(e=>{if(!$.isAllowed()){const e=$.getTimeUntilReset(),t=Math.ceil(e/1e3);return void N.setError(E("rate_limit_exceeded")+` Espera ${t}s.`)}const t={id:`temp-${Date.now()}-${Math.random()}`,type:"text",sender:"user",timestamp:/* @__PURE__ */new Date,content:e};N.addMessage(t),O.trackMessageSent("text"),j.sendMessage(e,"text")},[N,j,$,O,E]),F=a(async(e,t)=>{let r;r="audio"===t?{id:`temp-${Date.now()}-${Math.random()}`,type:"audio",sender:"user",timestamp:/* @__PURE__ */new Date,content:URL.createObjectURL(e)}:"image"===t?{id:`temp-${Date.now()}-${Math.random()}`,type:"image",sender:"user",timestamp:/* @__PURE__ */new Date,imageUrl:URL.createObjectURL(e)}:{id:`temp-${Date.now()}-${Math.random()}`,type:"text",sender:"user",timestamp:/* @__PURE__ */new Date,content:`📎 ${e.name}`},N.addMessage(r);const n=await Ba(e);j.sendMessage(n,t)},[N,j]),Z=a(e=>{const t={id:`temp-${Date.now()}-${Math.random()}`,type:"location",sender:"user",timestamp:/* @__PURE__ */new Date,latitude:e.latitude,longitude:e.longitude,name:"Mi ubicación"};N.addMessage(t),j.sendMessage(JSON.stringify(e),"location")},[N,j]);o(()=>{const e=()=>{C.isOpen||N.openWindow()},t=()=>{C.isOpen&&N.closeWindow()},r=()=>{C.isOpen?N.closeWindow():N.openWindow()},n=e=>{e.detail?.message&&P(e.detail.message)};return window.addEventListener("botuyo-chat:open",e),window.addEventListener("botuyo-chat:close",t),window.addEventListener("botuyo-chat:toggle",r),window.addEventListener("botuyo-chat:send-message",n),()=>{window.removeEventListener("botuyo-chat:open",e),window.removeEventListener("botuyo-chat:close",t),window.removeEventListener("botuyo-chat:toggle",r),window.removeEventListener("botuyo-chat:send-message",n)}},[C.isOpen,N,P]),o(()=>(Da(P),()=>Da(null)),[P]);const D=a(()=>{N.clearMessages(),x.info("Chat history cleared")},[N]);o(()=>(Ra(D),()=>Ra(null)),[D]);const R=n(()=>{if(C.isTyping)return"thinking";const e=[...C.messages].reverse().find(e=>"bot"===e.sender&&"text"===e.type);return"text"===e?.type&&e.emotion?e.emotion:"default"},[C.isTyping,C.messages]);return{state:C,actions:N,unreadCount:y,currentBotEmotion:R,isConnected:j.isConnected,handleToggle:M,handleSendText:P,handleSendAttachment:F,handleSendLocation:Z}}function Va(e){const{apiKey:t,apiBaseUrl:i,pageContext:s,includeSEOMetadata:l=!1,theme:d,mediaConfig:u,userContext:p,onLogin:g,onNavigate:h,onEvent:m,onStateChange:f,onVoiceCall:w}=e,b=c(null),y=E();!function(e){const[t,n]=r(!1);o(()=>{let t=null;const r=()=>{if(!e.current)return;const t=!!e.current.parentElement?.closest(".dark"),r=!!document.getElementById("botuyo-chat-widget-root")?.classList.contains("dark"),o=document.getElementById("botuyo-chat-widget-root"),a=!!o?.parentElement?.closest(".dark"),i=document.documentElement.classList.contains("dark"),s=document.body.classList.contains("dark"),c=window.matchMedia("(prefers-color-scheme: dark)").matches,l=t||r||a||i||s||c;e.current&&(l?e.current.classList.add("dark"):e.current.classList.remove("dark")),n(l)};r();const o=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>r();o.addEventListener("change",a);const i=new MutationObserver(()=>{r()}),s=document.getElementById("botuyo-chat-widget-root");s&&(i.observe(s,{attributes:!0,attributeFilter:["class"]}),s.parentElement&&(i.observe(s.parentElement,{attributes:!0,attributeFilter:["class"],childList:!0}),t=s.parentElement)),i.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),i.observe(document.body,{attributes:!0,attributeFilter:["class"]});let c=e.current?.parentElement;for(;c;)i.observe(c,{attributes:!0,attributeFilter:["class"]}),c=c.parentElement;const l=setInterval(()=>{const e=document.getElementById("botuyo-chat-widget-root");e&&e.parentElement!==t&&(t&&e.parentElement&&(i.observe(e.parentElement,{attributes:!0,attributeFilter:["class"],childList:!0}),t=e.parentElement),r())},100);return()=>{i.disconnect(),o.removeEventListener("change",a),clearInterval(l)}},[e])}(b);const[x,_]=r(),{mergedTheme:z,mergedStyles:S,getContainerStyle:$}=function(e,t){const a=function(){const[e,t]=r(()=>"undefined"!=typeof window&&(window.matchMedia("(prefers-contrast: high)").matches||window.matchMedia("(prefers-contrast: more)").matches));return o(()=>{const e=window.matchMedia("(prefers-contrast: high)"),r=window.matchMedia("(prefers-contrast: more)"),n=e=>{t(e.matches)};return e.addEventListener("change",n),r.addEventListener("change",n),()=>{e.removeEventListener("change",n),r.removeEventListener("change",n)}},[]),e}(),i=n(()=>{const r=k(e,t);return a?{...r,primaryColor:"#000000",cssVariables:{...r.cssVariables,background:"#FFFFFF",foreground:"#000000",card:"#FFFFFF",cardForeground:"#000000",primary:"#000000",primaryForeground:"#FFFFFF",muted:"#F5F5F5",mutedForeground:"#000000",border:"#000000"}}:r},[e,t,a]),s=n(()=>({radius:{...Z,...e?.bubbleStyles?.radius},bot:{...D,...e?.bubbleStyles?.bot},user:{...R,...e?.bubbleStyles?.user},launcher:{...e?.bubbleStyles?.launcher},mapCard:{...e?.bubbleStyles?.mapCard}}),[e?.bubbleStyles]);return{mergedTheme:i,mergedStyles:s,getContainerStyle:(e,t,r)=>({"--chat-primary":i.primaryColor,zIndex:e?2147483647:9999,position:"fixed",top:t&&e?0:"auto",left:t&&e?0:"bottom-left"===r?"24px":"auto",right:t&&e?0:"bottom-right"!==r&&r?"auto":"24px",bottom:t&&e?0:"24px",width:t&&e?"100%":"auto",height:t&&e?"100%":"auto"})}}(d,x),{state:T,actions:A,unreadCount:j,currentBotEmotion:M,isConnected:U,handleToggle:L,handleSendText:W,handleSendAttachment:B,handleSendLocation:J}=Ja({apiKey:t,apiBaseUrl:i,pageContext:s,includeSEOMetadata:l,theme:d,userContext:p,onLogin:g,onNavigate:h,onEvent:m,onStateChange:f,onThemeUpdate:_}),V=a(e=>{e.stopPropagation()},[]),q=$(T.isOpen,y,d?.position),G=n(()=>{if(!z.cssVariables)return{};const e={},t=z.cssVariables;return t.background&&(e["--background"]=t.background),t.foreground&&(e["--foreground"]=t.foreground),t.card&&(e["--card"]=t.card),t.cardForeground&&(e["--card-foreground"]=t.cardForeground),t.primary&&(e["--primary"]=t.primary),t.primaryForeground&&(e["--primary-foreground"]=t.primaryForeground),t.muted&&(e["--muted"]=t.muted),t.mutedForeground&&(e["--muted-foreground"]=t.mutedForeground),t.border&&(e["--border"]=t.border),t.destructive&&(e["--destructive"]=t.destructive),t.radius&&(e["--radius"]=t.radius),t.spacing1&&(e["--spacing-1"]=t.spacing1),t.spacing2&&(e["--spacing-2"]=t.spacing2),t.spacing3&&(e["--spacing-3"]=t.spacing3),t.spacing4&&(e["--spacing-4"]=t.spacing4),t.spacing5&&(e["--spacing-5"]=t.spacing5),t.spacing6&&(e["--spacing-6"]=t.spacing6),t.spacing8&&(e["--spacing-8"]=t.spacing8),e},[z.cssVariables]);/* @__PURE__ */
|
|
32
31
|
return N(O,{animations:d?.animations,effects:d?.effects,children:/* @__PURE__ */C("div",{ref:b,id:"botuyo-chat-widget",className:v("botuyo-chat-widget flex flex-col",!y&&("bottom-left"===d?.position?"items-start":"items-end")),style:{...q,...G,pointerEvents:"auto",backgroundColor:"transparent"},"data-animations-disabled":!1===d?.animations?.enabled?"true":void 0,"data-effects-glassmorphism":!1===d?.effects?.glassmorphism?"false":void 0,"data-effects-shadows":!1===d?.effects?.softShadows?"false":void 0,children:[
|
|
33
|
-
/* @__PURE__ */N("div",{className:v("transition-all duration-400 ease-[cubic-bezier(0.34,1.56,0.64,1)]",y?"bottom-left"===d?.position?"origin-bottom-left":"origin-bottom-right":"origin-bottom",T.isOpen?"opacity-100 scale-100 h-full w-full translate-y-0 pointer-events-auto":"opacity-0 scale-[0.85] pointer-events-none translate-y-8 h-0 w-0"),style:{pointerEvents:T.isOpen?"auto":"none"},onMouseDown:V,onTouchStart:V,children:/* @__PURE__ */N(
|
|
34
|
-
/* @__PURE__ */N("div",{className:v(T.isOpen?"hidden":"block",!y&&"mt-4"),style:{pointerEvents:"auto"},onMouseDown:V,onTouchStart:V,children:/* @__PURE__ */N(P,{isOpen:T.isOpen,onClick:L,unreadCount:A,position:d?.position||"bottom-right",primaryColor:d?.primaryColor,logoUrl:d?.logoUrl,starterPrompt:d?.starterPrompt,avatars:d?.avatars,emotion:M,styles:S,promptPersistence:d?.promptPersistence,avatarScale:d?.avatarScale})})]})})}const qa=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,ChatWidget:Va},Symbol.toStringTag,{value:"Module"}));function Ga(){if("undefined"==typeof document)return;if(document.getElementById("botuyo-widget-styles"))return;const e=document.createElement("style");e.id="botuyo-widget-styles",e.textContent='@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-900:oklch(39.6% .141 25.723);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--text-4xl:2.25rem;--text-4xl--line-height:1.11111;--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;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);line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}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,pre,samp{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-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-1\\.5{top:calc(var(--spacing)*-1.5)}.top-0{top:calc(var(--spacing)*0)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-right-1{right:calc(var(--spacing)*-1)}.-right-1\\.5{right:calc(var(--spacing)*-1.5)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.bottom-3{bottom:calc(var(--spacing)*3)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-1\\/2{left:50%}.left-4{left:calc(var(--spacing)*4)}.left-6{left:calc(var(--spacing)*6)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\\[60\\]{z-index:60}.z-\\[9999\\]{z-index:9999}.z-\\[100000\\]{z-index:100000}.float-left{float:left}.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}}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-3{margin:calc(var(--spacing)*3)}.m-4{margin:calc(var(--spacing)*4)}.m-5{margin:calc(var(--spacing)*5)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-5{margin-inline:calc(var(--spacing)*5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-5{margin-block:calc(var(--spacing)*5)}.my-8{margin-block:calc(var(--spacing)*8)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mr-5{margin-right:calc(var(--spacing)*5)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-5{margin-left:calc(var(--spacing)*5)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0{height:calc(var(--spacing)*0)}.h-1{height:calc(var(--spacing)*1)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.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-56{height:calc(var(--spacing)*56)}.h-\\[44px\\]{height:44px}.h-auto{height:auto}.h-full{height:100%}.max-h-\\[90vh\\]{max-height:90vh}.max-h-\\[120px\\]{max-height:120px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\\[40px\\]{min-height:40px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-\\[3px\\]{width:3px}.w-\\[350px\\]{width:350px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-0{max-width:calc(var(--spacing)*0)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[60px\\]{max-width:60px}.max-w-\\[85\\%\\]{max-width:85%}.max-w-\\[90\\%\\]{max-width:90%}.max-w-\\[350px\\]{max-width:350px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[200px\\]{min-width:200px}.min-w-\\[350px\\]{min-width:350px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-bottom{transform-origin:bottom}.origin-bottom-left{transform-origin:0 100%}.origin-bottom-right{transform-origin:100% 100%}.-translate-x-1\\/2{--tw-translate-x:-50%}.-translate-x-1\\/2,.-translate-x-4{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-4{--tw-translate-x:calc(var(--spacing)*-4)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-0,.translate-x-4{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4)}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.translate-y-0{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-8{--tw-translate-y:calc(var(--spacing)*8);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-50{--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%}.scale-50,.scale-95{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%}.scale-100,.scale-105{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\\[0\\.85\\]{scale:.85}.-rotate-90{rotate:-90deg}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize{resize:both}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.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-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-\\[2px\\]{gap:2px}.gap-\\[3px\\]{gap:3px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*1*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*1*var(--tw-space-y-reverse))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*3*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*3*var(--tw-space-y-reverse))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*4*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*4*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[18px\\]{border-radius:18px}.rounded-\\[24px\\]{border-radius:24px}.rounded-\\[28px\\]{border-radius:28px}.rounded-\\[32px\\]{border-radius:32px}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-\\[4px\\]{border-bottom-left-radius:4px}.rounded-l-\\[4px\\],.rounded-tl-\\[4px\\]{border-top-left-radius:4px}.rounded-r-\\[4px\\]{border-bottom-right-radius:4px}.rounded-r-\\[4px\\],.rounded-tr-\\[4px\\]{border-top-right-radius:4px}.rounded-br-\\[4px\\]{border-bottom-right-radius:4px}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-\\[4px\\]{border-bottom-left-radius:4px}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\\[hsl\\(210\\,90\\%\\,50\\%\\)\\]{border-color:#0d80f2}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-green-200{border-color:var(--color-green-200)}.border-red-200{border-color:var(--color-red-200)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-300{border-color:var(--color-yellow-300)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-black\\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\\/5{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-black\\/95{background-color:#000000f2}@supports (color:color-mix(in lab,red,red)){.bg-black\\/95{background-color:color-mix(in oklab,var(--color-black)95%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\\/20{background-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-current,.bg-current\\/20{background-color:currentColor}@supports (color:color-mix(in lab,red,red)){.bg-current\\/20{background-color:color-mix(in oklab,currentcolor 20%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-500\\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\\/20{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\\/20{background-color:#6a728233}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\\/20{background-color:color-mix(in oklab,var(--color-gray-500)20%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-green-500\\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-white{background-color:var(--color-white)}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab}.bg-gradient-to-b,.bg-gradient-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.bg-gradient-to-r,.bg-gradient-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab}.from-black\\/40{--tw-gradient-from:#0006}@supports (color:color-mix(in lab,red,red)){.from-black\\/40{--tw-gradient-from:color-mix(in oklab,var(--color-black)40%,transparent)}}.from-black\\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\\/60{--tw-gradient-from:#0009}@supports (color:color-mix(in lab,red,red)){.from-black\\/60{--tw-gradient-from:color-mix(in oklab,var(--color-black)60%,transparent)}}.from-black\\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-black\\/20{--tw-gradient-to:#0003}@supports (color:color-mix(in lab,red,red)){.to-black\\/20{--tw-gradient-to:color-mix(in oklab,var(--color-black)20%,transparent)}}.to-black\\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-green-50{--tw-gradient-to:var(--color-green-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-500{--tw-gradient-to:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-600{--tw-gradient-to:var(--color-teal-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.stroke-\\[2\\.5\\]{stroke-width:2.5px}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-5{padding-right:calc(var(--spacing)*5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[7px\\]{font-size:7px}.text-\\[8px\\]{font-size:8px}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\\[0\\.2em\\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-amber-500{color:var(--color-amber-500)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-900{color:var(--color-green-900)}.text-purple-500{color:var(--color-purple-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-white\\/30{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.text-white\\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.text-yellow-900{color:var(--color-yellow-900)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.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)}.shadow,.shadow-inner{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow-sm{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)}.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-\\[hsl\\(210\\,90\\%\\,50\\%\\)\\]\\/30{--tw-ring-color:oklab(60.6854% -.0507387 -.187037/.3)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.blur-2xl{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,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl))}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));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,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));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-opacity{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-\\[cubic-bezier\\(0\\.16\\,1\\,0\\.3\\,1\\)\\]{--tw-ease:cubic-bezier(.16,1,.3,1);transition-timing-function:cubic-bezier(.16,1,.3,1)}.ease-\\[cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\\[animation-delay\\:-0\\.3s\\]{animation-delay:-.3s}.\\[animation-delay\\:-0\\.15s\\]{animation-delay:-.15s}@media(hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.last\\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}@media(hover:hover){.hover\\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.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\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:rotate-6:hover{rotate:6deg}.hover\\:border-\\[hsl\\(210\\,90\\%\\,70\\%\\)\\]:hover{border-color:#6eb3f7}.hover\\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-emerald-500\\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-emerald-500\\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.hover\\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\\:bg-red-500\\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-red-500\\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-white\\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/15:hover{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px 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)}}.focus\\:underline:focus{text-decoration-line:underline}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-emerald-500:focus{--tw-ring-color:var(--color-emerald-500)}.focus\\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:grayscale:disabled{--tw-grayscale:grayscale(100%);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,)}@media(min-width:40rem){.sm\\:h-8{height:calc(var(--spacing)*8)}.sm\\:h-16{height:calc(var(--spacing)*16)}.sm\\:w-8{width:calc(var(--spacing)*8)}.sm\\:w-16{width:calc(var(--spacing)*16)}.sm\\:w-auto{width:auto}.sm\\:max-w-\\[75\\%\\]{max-width:75%}}@media(prefers-color-scheme:dark){.dark\\:border-emerald-800{border-color:var(--color-emerald-800)}.dark\\:bg-black\\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-black\\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.dark\\:bg-emerald-950{background-color:var(--color-emerald-950)}.dark\\:bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\\:text-emerald-50{color:var(--color-emerald-50)}}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(prefers-contrast:high){:root{--border-width:2px;--focus-ring-width:3px;--focus-ring-color:hsl(var(--primary))}[role=button],[role=dialog],button,input,textarea{border-width:var(--border-width)!important}:focus-visible{outline:var(--focus-ring-width)solid var(--focus-ring-color)!important;outline-offset:2px!important}body{--foreground:0 0% 0%;--background:0 0% 100%;--muted-foreground:0 0% 20%}.dark{--foreground:0 0% 100%;--background:0 0% 0%;--muted-foreground:0 0% 80%}[class*=opacity-],[style*=opacity]{opacity:1!important}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.animate-pulse,[data-state=closed],[data-state=open]{animation:none!important}.scroll-smooth{scroll-behavior:auto!important}}:focus-visible{border-radius:var(--radius,.5rem);outline:2px solid hsl(var(--primary));outline-offset:2px}[role=button]:focus-visible,button:focus-visible{box-shadow:0 0 0 4px hsl(var(--primary)/.1);outline:2px solid hsl(var(--primary));outline-offset:2px}input:focus-visible,textarea:focus-visible{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.1);outline:2px solid hsl(var(--primary));outline-offset:0}body:has(:focus-visible) [tabindex]:not([tabindex="-1"]){position:relative}.skip-link{background:hsl(var(--primary));border-radius:0 0 4px;color:hsl(var(--primary-foreground));left:0;padding:8px;position:absolute;text-decoration:none;top:-40px;z-index:100000}.skip-link:focus{top:0}@media(prefers-color-scheme:dark)and (prefers-contrast:high){:root{--primary:48 96% 89%;--destructive:0 84% 60%;--success:142 76% 36%}}[data-state]:after{content:attr(data-state);clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(min-resolution:192dpi){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}}[data-tooltip]:focus:after,[data-tooltip]:hover:after{background:hsl(var(--popover));border-radius:4px;bottom:100%;color:hsl(var(--popover-foreground));content:attr(data-tooltip);font-size:12px;left:50%;padding:4px 8px;pointer-events:none;position:absolute;transform:translate(-50%);white-space:nowrap;z-index:1000}[aria-live=assertive],[aria-live=polite]{position:relative}@keyframes live-region-update{0%{opacity:.8}to{opacity:1}}[aria-live]:not([aria-atomic=false]):has(:new){animation:live-region-update .2s ease-in-out}.scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-none::-webkit-scrollbar{display:none;height:0;width:0}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{height:4px;width:4px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:2px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground)/.5)}.hidden{display:none!important}.block{display:block!important}.flex{display:flex!important}.inline-flex{display:inline-flex!important}.grid{display:grid!important}.flex-row{flex-direction:row!important}.flex-col{flex-direction:column!important}.flex-1{flex:1!important}.flex-none{flex:none!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.items-center{align-items:center!important}.items-start{align-items:flex-start!important}.items-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.justify-end{justify-content:flex-end!important}.relative{position:relative!important}.absolute{position:absolute!important}.fixed{position:fixed!important}.inset-0{inset:0!important}.w-full{width:100%!important}.h-full{height:100%!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.h-0{height:0!important}.w-0{width:0!important}.h-6{height:1.5rem!important}.w-6{width:1.5rem!important}.h-7{height:1.75rem!important}.w-7{width:1.75rem!important}.h-8{height:2rem!important}.w-8{width:2rem!important}.h-14{height:3.5rem!important}.w-14{width:3.5rem!important}.min-h-0{min-height:0!important}.min-w-0{min-width:0!important}.overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto!important}.overflow-y-auto{overflow-y:auto!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:.75rem!important}.gap-4{gap:1rem!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:.75rem!important}.p-4{padding:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.m-0{margin:0!important}.mt-2{margin-top:.5rem!important}.mt-4{margin-top:1rem!important}.mb-2{margin-bottom:.5rem!important}.ml-auto{margin-left:auto!important}.rounded{border-radius:.25rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.rounded-2xl{border-radius:1rem!important}.rounded-full{border-radius:9999px!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.font-black{font-weight:900!important}.uppercase{text-transform:uppercase!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.text-foreground{color:hsl(var(--foreground))!important}.text-muted-foreground{color:hsl(var(--muted-foreground))!important}.text-primary{color:hsl(var(--primary))!important}.text-primary-foreground{color:hsl(var(--primary-foreground))!important}.text-destructive{color:hsl(var(--destructive))!important}.text-white{color:#fff!important}.bg-background{background-color:hsl(var(--background))!important}.bg-muted{background-color:hsl(var(--muted))!important}.bg-primary{background-color:hsl(var(--primary))!important}.bg-card{background-color:hsl(var(--card))!important}.bg-transparent{background-color:#0000!important}.border{border-width:1px!important}.border-2{border-width:2px!important}.border-b{border-bottom-width:1px!important}.border-t{border-top-width:1px!important}.border-border{border-color:hsl(var(--border))!important}.shadow{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition,.transition-all{transition-duration:.15s!important}.transition-all{transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.duration-300{transition-duration:.3s!important}.duration-500{transition-duration:.5s!important}.opacity-0{opacity:0!important}.opacity-100{opacity:1!important}.scale-95{transform:scale(.95)!important}.scale-100{transform:scale(1)!important}.translate-y-full{transform:translateY(100%)!important}.z-10{z-index:10!important}.z-20{z-index:20!important}.z-50{z-index:50!important}.pointer-events-none{pointer-events:none!important}.pointer-events-auto{pointer-events:auto!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}@keyframes spin{to{transform:rotate(1turn)}}#botuyo-chat-widget,#botuyo-chat-widget-root,:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:160 84% 39%;--primary-foreground:0 0% 100%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:240 5.9% 90%;--input:240 5.9% 90%;--ring:160 84% 39%;--radius:.5rem;--spacing1:.25rem;--spacing2:.5rem;--spacing3:.75rem;--spacing4:1rem;--spacing5:.75rem;--spacing6:1.5rem;--spacing8:2rem}#botuyo-chat-widget-root.dark,#botuyo-chat-widget.dark,.dark{--background:240 10% 3.9%;--foreground:0 0% 98%;--card:240 10% 3.9%;--card-foreground:0 0% 98%;--popover:240 10% 3.9%;--popover-foreground:0 0% 98%;--primary:160 84% 39%;--primary-foreground:0 0% 100%;--muted:240 3.7% 15.9%;--muted-foreground:240 5% 64.9%;--accent:240 3.7% 15.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:240 3.7% 15.9%;--input:240 3.7% 15.9%;--ring:160 84% 39%}#botuyo-chat-widget-root,#botuyo-chat-widget-root *{box-sizing:border-box;margin:0;padding:0}#botuyo-chat-widget-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:hsl(var(--foreground));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#botuyo-chat-widget-root .chat-launcher{align-items:center;background-color:hsl(var(--primary));border-radius:50%;bottom:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;color:#fff;cursor:pointer;display:flex;height:60px;justify-content:center;position:fixed;right:1.5rem;transition:all .2s;width:60px;z-index:999999}#botuyo-chat-widget-root .chat-launcher:hover{box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;transform:scale(1.05)}#botuyo-chat-widget-root .chat-launcher.position-bottom-left{left:1.5rem;right:auto}#botuyo-chat-widget-root .chat-launcher.position-top-right{bottom:auto;top:1.5rem}#botuyo-chat-widget-root .chat-launcher.position-top-left{inset:1.5rem auto auto 1.5rem}#botuyo-chat-widget-root .chat-window{animation:slideInRight .3s ease-out;background-color:hsl(var(--background));border-radius:1rem;bottom:6rem;box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;height:600px;max-height:calc(100vh - 8rem);overflow:hidden;position:fixed;right:1.5rem;width:400px;z-index:999999}#botuyo-chat-widget-root .chat-window.closing{animation:slideOutRight .2s ease-in}@media(max-width:640px){#botuyo-chat-widget-root .chat-window{animation:slideInUp .3s ease-out;border-radius:0;height:100%;inset:0;max-height:100vh;width:100%}}#botuyo-chat-widget-root .message-bubble{word-wrap:break-word;border-radius:1rem;max-width:80%;padding:.75rem 1rem}#botuyo-chat-widget-root .message-bubble.user{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));margin-left:auto}#botuyo-chat-widget-root .message-bubble.bot{background-color:hsl(var(--muted));color:hsl(var(--foreground))}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar{width:6px}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar-track{background:0 0}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:3px}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground))}#botuyo-chat-widget-root .chat-input{background-color:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:.5rem;color:hsl(var(--foreground));outline:none;padding:.75rem;transition:border-color .2s;width:100%}#botuyo-chat-widget-root .chat-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.1)}@media(max-width:640px){#botuyo-chat-widget-root .chat-launcher{bottom:1rem;height:56px;right:1rem;width:56px}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}',document.head.appendChild(e)}Ga();const Ka=u(()=>Promise.resolve().then(()=>qa).then(e=>({default:e.ChatWidget})));class Ha{root=null;container=null;config=null;init(e){return Ga(),this.config=e,this.render(),this}render(){if(!this.config)return void console.error("[BotUyoChat] No configuration provided");if(this.container||(this.container=document.createElement("div"),this.container.id="botuyo-chat-widget-root",this.container.style.position="fixed",this.container.style.zIndex="999999",document.body.appendChild(this.container)),this.config.theme?.cssVariables){const e=this.config.theme.cssVariables,t={background:e.background,foreground:e.foreground,card:e.card,cardForeground:e.cardForeground,primary:e.primary,primaryForeground:e.primaryForeground,muted:e.muted,mutedForeground:e.mutedForeground,border:e.border,destructive:e.destructive,radius:e.radius,spacing1:e.spacing1,spacing2:e.spacing2,spacing3:e.spacing3,spacing4:e.spacing4,spacing5:e.spacing5,spacing6:e.spacing6,spacing8:e.spacing8};Object.entries(t).forEach(([e,t])=>{void 0!==t&&this.container.style.setProperty(`--${e}`,t)})}this.root||(this.root=M.createRoot(this.container));const e={apiKey:this.config.apiKey,apiBaseUrl:this.config.apiBaseUrl,theme:{primaryColor:"#10b981",botName:"Asistente Virtual",position:"bottom-right",welcomeMessage:"¡Hola! 👋 ¿En qué puedo ayudarte?",inputPlaceholder:"Escribe tu mensaje...",borderRadius:"0.75rem",launcherBorderRadius:"50%",...this.config.theme},userContext:this.config.userContext,pageContext:this.config.pageContext,includeSEOMetadata:this.config.includeSEOMetadata??!1,mediaConfig:this.config.mediaConfig,onNavigate:this.config.onNavigate,onLogin:this.config.onLogin,onEvent:this.config.onEvent,onStateChange:this.config.onStateChange,onVoiceCall:this.config.onVoiceCall},r=t.createElement(p,{fallback:t.createElement("div",{style:{position:"fixed",bottom:"24px",right:"24px",width:"60px",height:"60px",borderRadius:"50%",backgroundColor:e.theme?.primaryColor||"#10b981",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",cursor:"wait"}},t.createElement("div",{style:{width:"24px",height:"24px",border:"3px solid rgba(255, 255, 255, 0.3)",borderTopColor:"#fff",borderRadius:"50%",animation:"spin 1s linear infinite"}}))},t.createElement(Ka,e));this.root.render(t.createElement(S,{defaultLocale:this.config.theme?.defaultLocale,children:r})),console.log("[BotUyoChat] Widget initialized",e)}update(e){this.config?(this.config={...this.config,...e,theme:{...this.config.theme,...e.theme}},this.render()):console.error("[BotUyoChat] Widget not initialized")}destroy(){this.root&&(this.root.unmount(),this.root=null),this.container&&this.container.parentNode&&(this.container.parentNode.removeChild(this.container),this.container=null),this.config=null,console.log("[BotUyoChat] Widget destroyed")}open(){window.dispatchEvent(new CustomEvent("botuyo-chat:open"))}close(){window.dispatchEvent(new CustomEvent("botuyo-chat:close"))}sendMessage(e){window.dispatchEvent(new CustomEvent("botuyo-chat:send-message",{detail:{message:e}}))}getState(){return null}}const Ya=new Ha;window.BotUyoChat=Ya;export{Ha as BotUyoChatWidget,Va as ChatWidget,La as ChatWidgetProvider,S as LanguageProvider,Ya as default,Wa as useChatWidget,$ as useLanguage};
|
|
32
|
+
/* @__PURE__ */N("div",{className:v("transition-all duration-400 ease-[cubic-bezier(0.34,1.56,0.64,1)]",y?"bottom-left"===d?.position?"origin-bottom-left":"origin-bottom-right":"origin-bottom",T.isOpen?"opacity-100 scale-100 h-full w-full translate-y-0 pointer-events-auto":"opacity-0 scale-[0.85] pointer-events-none translate-y-8 h-0 w-0"),style:{pointerEvents:T.isOpen?"auto":"none"},onMouseDown:V,onTouchStart:V,children:/* @__PURE__ */N(F,{children:/* @__PURE__ */N(I,{isOpen:T.isOpen,isConnected:U,isTyping:T.isTyping,messages:T.messages,onClose:()=>A.closeWindow(),onSendMessage:W,onSendAttachment:B,onSendLocation:J,botName:d?.botName,logoUrl:d?.logoUrl,welcomeMessage:d?.welcomeMessage,inputPlaceholder:d?.inputPlaceholder,primaryColor:d?.primaryColor,position:d?.position,bubbleStyles:S,avatars:d?.avatars,mediaConfig:u,theme:z,onVoiceCall:w})})}),
|
|
33
|
+
/* @__PURE__ */N("div",{className:v(T.isOpen?"hidden":"block",!y&&"mt-4"),style:{pointerEvents:"auto"},onMouseDown:V,onTouchStart:V,children:/* @__PURE__ */N(P,{isOpen:T.isOpen,onClick:L,unreadCount:j,position:d?.position||"bottom-right",primaryColor:d?.primaryColor,logoUrl:d?.logoUrl,starterPrompt:d?.starterPrompt,avatars:d?.avatars,emotion:M,styles:S,promptPersistence:d?.promptPersistence,avatarScale:d?.avatarScale,showPromptAvatar:d?.showPromptAvatar})})]})})}const qa=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,ChatWidget:Va},Symbol.toStringTag,{value:"Module"}));function Ga(){if("undefined"==typeof document)return;if(document.getElementById("botuyo-widget-styles"))return;const e=document.createElement("style");e.id="botuyo-widget-styles",e.textContent='@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-900:oklch(39.6% .141 25.723);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--text-4xl:2.25rem;--text-4xl--line-height:1.11111;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;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);line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}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,pre,samp{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-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-1\\.5{top:calc(var(--spacing)*-1.5)}.top-0{top:calc(var(--spacing)*0)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-right-1{right:calc(var(--spacing)*-1)}.-right-1\\.5{right:calc(var(--spacing)*-1.5)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.bottom-3{bottom:calc(var(--spacing)*3)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-1\\/2{left:50%}.left-4{left:calc(var(--spacing)*4)}.left-6{left:calc(var(--spacing)*6)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\\[60\\]{z-index:60}.z-\\[9999\\]{z-index:9999}.z-\\[100000\\]{z-index:100000}.float-left{float:left}.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}}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-3{margin:calc(var(--spacing)*3)}.m-4{margin:calc(var(--spacing)*4)}.m-5{margin:calc(var(--spacing)*5)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-5{margin-inline:calc(var(--spacing)*5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-5{margin-block:calc(var(--spacing)*5)}.my-8{margin-block:calc(var(--spacing)*8)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mr-5{margin-right:calc(var(--spacing)*5)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-5{margin-left:calc(var(--spacing)*5)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0{height:calc(var(--spacing)*0)}.h-1{height:calc(var(--spacing)*1)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.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-56{height:calc(var(--spacing)*56)}.h-\\[44px\\]{height:44px}.h-auto{height:auto}.h-full{height:100%}.max-h-\\[90vh\\]{max-height:90vh}.max-h-\\[120px\\]{max-height:120px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\\[40px\\]{min-height:40px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-\\[3px\\]{width:3px}.w-\\[350px\\]{width:350px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-0{max-width:calc(var(--spacing)*0)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[60px\\]{max-width:60px}.max-w-\\[85\\%\\]{max-width:85%}.max-w-\\[90\\%\\]{max-width:90%}.max-w-\\[350px\\]{max-width:350px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[200px\\]{min-width:200px}.min-w-\\[350px\\]{min-width:350px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-bottom{transform-origin:bottom}.origin-bottom-left{transform-origin:0 100%}.origin-bottom-right{transform-origin:100% 100%}.-translate-x-1\\/2{--tw-translate-x:-50%}.-translate-x-1\\/2,.-translate-x-4{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-4{--tw-translate-x:calc(var(--spacing)*-4)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-0,.translate-x-4{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4)}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.translate-y-0{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-8{--tw-translate-y:calc(var(--spacing)*8);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-50{--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%}.scale-50,.scale-95{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%}.scale-100,.scale-105{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\\[0\\.85\\]{scale:.85}.-rotate-90{rotate:-90deg}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize{resize:both}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.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-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-\\[2px\\]{gap:2px}.gap-\\[3px\\]{gap:3px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*1*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*1*var(--tw-space-y-reverse))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*3*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*3*var(--tw-space-y-reverse))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*4*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*4*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[18px\\]{border-radius:18px}.rounded-\\[24px\\]{border-radius:24px}.rounded-\\[28px\\]{border-radius:28px}.rounded-\\[32px\\]{border-radius:32px}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-\\[4px\\]{border-bottom-left-radius:4px}.rounded-l-\\[4px\\],.rounded-tl-\\[4px\\]{border-top-left-radius:4px}.rounded-r-\\[4px\\]{border-bottom-right-radius:4px}.rounded-r-\\[4px\\],.rounded-tr-\\[4px\\]{border-top-right-radius:4px}.rounded-br-\\[4px\\]{border-bottom-right-radius:4px}.rounded-bl-\\[4px\\]{border-bottom-left-radius:4px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\\[hsl\\(210\\,90\\%\\,50\\%\\)\\]{border-color:#0d80f2}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-green-200{border-color:var(--color-green-200)}.border-red-200{border-color:var(--color-red-200)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-300{border-color:var(--color-yellow-300)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-black\\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\\/5{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-black\\/95{background-color:#000000f2}@supports (color:color-mix(in lab,red,red)){.bg-black\\/95{background-color:color-mix(in oklab,var(--color-black)95%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\\/20{background-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-current,.bg-current\\/20{background-color:currentColor}@supports (color:color-mix(in lab,red,red)){.bg-current\\/20{background-color:color-mix(in oklab,currentcolor 20%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\\/20{background-color:#6a728233}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\\/20{background-color:color-mix(in oklab,var(--color-gray-500)20%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-green-500\\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\\/80{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab}.bg-gradient-to-b,.bg-gradient-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.bg-gradient-to-r,.bg-gradient-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab}.from-black\\/40{--tw-gradient-from:#0006}@supports (color:color-mix(in lab,red,red)){.from-black\\/40{--tw-gradient-from:color-mix(in oklab,var(--color-black)40%,transparent)}}.from-black\\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\\/60{--tw-gradient-from:#0009}@supports (color:color-mix(in lab,red,red)){.from-black\\/60{--tw-gradient-from:color-mix(in oklab,var(--color-black)60%,transparent)}}.from-black\\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-400{--tw-gradient-from:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-black\\/20{--tw-gradient-to:#0003}@supports (color:color-mix(in lab,red,red)){.to-black\\/20{--tw-gradient-to:color-mix(in oklab,var(--color-black)20%,transparent)}}.to-black\\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-green-50{--tw-gradient-to:var(--color-green-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-500{--tw-gradient-to:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-600{--tw-gradient-to:var(--color-teal-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.stroke-\\[2\\.5\\]{stroke-width:2.5px}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-5{padding-right:calc(var(--spacing)*5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[7px\\]{font-size:7px}.text-\\[8px\\]{font-size:8px}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\\[0\\.2em\\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-amber-500{color:var(--color-amber-500)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-900{color:var(--color-green-900)}.text-purple-500{color:var(--color-purple-500)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.text-yellow-900{color:var(--color-yellow-900)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.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)}.shadow,.shadow-inner{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow-sm{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)}.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-\\[hsl\\(210\\,90\\%\\,50\\%\\)\\]\\/30{--tw-ring-color:oklab(60.6854% -.0507387 -.187037/.3)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.blur-2xl{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,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl))}.filter{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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));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,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));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-opacity{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-\\[cubic-bezier\\(0\\.16\\,1\\,0\\.3\\,1\\)\\]{--tw-ease:cubic-bezier(.16,1,.3,1);transition-timing-function:cubic-bezier(.16,1,.3,1)}.ease-\\[cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\\[animation-delay\\:-0\\.3s\\]{animation-delay:-.3s}.\\[animation-delay\\:-0\\.15s\\]{animation-delay:-.15s}@media(hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.last\\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}@media(hover:hover){.hover\\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.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\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:rotate-6:hover{rotate:6deg}.hover\\:border-\\[hsl\\(210\\,90\\%\\,70\\%\\)\\]:hover{border-color:#6eb3f7}.hover\\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-emerald-500\\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-emerald-500\\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.hover\\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\\:bg-red-500\\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-red-500\\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px 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)}}.focus\\:underline:focus{text-decoration-line:underline}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-emerald-500:focus{--tw-ring-color:var(--color-emerald-500)}.focus\\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:grayscale:disabled{--tw-grayscale:grayscale(100%);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,)}@media(min-width:40rem){.sm\\:h-8{height:calc(var(--spacing)*8)}.sm\\:h-16{height:calc(var(--spacing)*16)}.sm\\:w-8{width:calc(var(--spacing)*8)}.sm\\:w-16{width:calc(var(--spacing)*16)}.sm\\:w-auto{width:auto}.sm\\:max-w-\\[75\\%\\]{max-width:75%}}@media(prefers-color-scheme:dark){.dark\\:border-emerald-800{border-color:var(--color-emerald-800)}.dark\\:bg-black\\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-black\\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.dark\\:bg-emerald-950{background-color:var(--color-emerald-950)}.dark\\:bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\\:text-emerald-50{color:var(--color-emerald-50)}}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(prefers-contrast:high){:root{--border-width:2px;--focus-ring-width:3px;--focus-ring-color:hsl(var(--primary))}[role=button],[role=dialog],button,input,textarea{border-width:var(--border-width)!important}:focus-visible{outline:var(--focus-ring-width)solid var(--focus-ring-color)!important;outline-offset:2px!important}body{--foreground:0 0% 0%;--background:0 0% 100%;--muted-foreground:0 0% 20%}.dark{--foreground:0 0% 100%;--background:0 0% 0%;--muted-foreground:0 0% 80%}[class*=opacity-],[style*=opacity]{opacity:1!important}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.animate-pulse,[data-state=closed],[data-state=open]{animation:none!important}.scroll-smooth{scroll-behavior:auto!important}}:focus-visible{border-radius:var(--radius,.5rem);outline:2px solid hsl(var(--primary));outline-offset:2px}[role=button]:focus-visible,button:focus-visible{box-shadow:0 0 0 4px hsl(var(--primary)/.1);outline:2px solid hsl(var(--primary));outline-offset:2px}input:focus-visible,textarea:focus-visible{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.1);outline:2px solid hsl(var(--primary));outline-offset:0}body:has(:focus-visible) [tabindex]:not([tabindex="-1"]){position:relative}.skip-link{background:hsl(var(--primary));border-radius:0 0 4px;color:hsl(var(--primary-foreground));left:0;padding:8px;position:absolute;text-decoration:none;top:-40px;z-index:100000}.skip-link:focus{top:0}@media(prefers-color-scheme:dark)and (prefers-contrast:high){:root{--primary:48 96% 89%;--destructive:0 84% 60%;--success:142 76% 36%}}[data-state]:after{content:attr(data-state);clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(min-resolution:192dpi){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}}[data-tooltip]:focus:after,[data-tooltip]:hover:after{background:hsl(var(--popover));border-radius:4px;bottom:100%;color:hsl(var(--popover-foreground));content:attr(data-tooltip);font-size:12px;left:50%;padding:4px 8px;pointer-events:none;position:absolute;transform:translate(-50%);white-space:nowrap;z-index:1000}[aria-live=assertive],[aria-live=polite]{position:relative}@keyframes live-region-update{0%{opacity:.8}to{opacity:1}}[aria-live]:not([aria-atomic=false]):has(:new){animation:live-region-update .2s ease-in-out}.scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-none::-webkit-scrollbar{display:none;height:0;width:0}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{height:4px;width:4px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:2px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground)/.5)}.hidden{display:none!important}.block{display:block!important}.flex{display:flex!important}.inline-flex{display:inline-flex!important}.grid{display:grid!important}.flex-row{flex-direction:row!important}.flex-col{flex-direction:column!important}.flex-1{flex:1!important}.flex-none{flex:none!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.items-center{align-items:center!important}.items-start{align-items:flex-start!important}.items-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.justify-end{justify-content:flex-end!important}.relative{position:relative!important}.absolute{position:absolute!important}.fixed{position:fixed!important}.inset-0{inset:0!important}.w-full{width:100%!important}.h-full{height:100%!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.h-0{height:0!important}.w-0{width:0!important}.h-6{height:1.5rem!important}.w-6{width:1.5rem!important}.h-7{height:1.75rem!important}.w-7{width:1.75rem!important}.h-8{height:2rem!important}.w-8{width:2rem!important}.h-14{height:3.5rem!important}.w-14{width:3.5rem!important}.min-h-0{min-height:0!important}.min-w-0{min-width:0!important}.overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto!important}.overflow-y-auto{overflow-y:auto!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:.75rem!important}.gap-4{gap:1rem!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:.75rem!important}.p-4{padding:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.m-0{margin:0!important}.mt-2{margin-top:.5rem!important}.mt-4{margin-top:1rem!important}.mb-2{margin-bottom:.5rem!important}.ml-auto{margin-left:auto!important}.rounded{border-radius:.25rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.rounded-2xl{border-radius:1rem!important}.rounded-full{border-radius:9999px!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.font-black{font-weight:900!important}.uppercase{text-transform:uppercase!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.text-foreground{color:hsl(var(--foreground))!important}.text-muted-foreground{color:hsl(var(--muted-foreground))!important}.text-primary{color:hsl(var(--primary))!important}.text-primary-foreground{color:hsl(var(--primary-foreground))!important}.text-destructive{color:hsl(var(--destructive))!important}.text-white{color:#fff!important}.bg-background{background-color:hsl(var(--background))!important}.bg-muted{background-color:hsl(var(--muted))!important}.bg-primary{background-color:hsl(var(--primary))!important}.bg-card{background-color:hsl(var(--card))!important}.bg-transparent{background-color:#0000!important}.border{border-width:1px!important}.border-2{border-width:2px!important}.border-b{border-bottom-width:1px!important}.border-t{border-top-width:1px!important}.border-border{border-color:hsl(var(--border))!important}.shadow{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition,.transition-all{transition-duration:.15s!important}.transition-all{transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.duration-300{transition-duration:.3s!important}.duration-500{transition-duration:.5s!important}.opacity-0{opacity:0!important}.opacity-100{opacity:1!important}.scale-95{transform:scale(.95)!important}.scale-100{transform:scale(1)!important}.translate-y-full{transform:translateY(100%)!important}.z-10{z-index:10!important}.z-20{z-index:20!important}.z-50{z-index:50!important}.pointer-events-none{pointer-events:none!important}.pointer-events-auto{pointer-events:auto!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}@keyframes spin{to{transform:rotate(1turn)}}#botuyo-chat-widget,#botuyo-chat-widget-root,:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:160 84% 39%;--primary-foreground:0 0% 100%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:240 5.9% 90%;--input:240 5.9% 90%;--ring:160 84% 39%;--radius:.5rem;--spacing1:.25rem;--spacing2:.5rem;--spacing3:.75rem;--spacing4:1rem;--spacing5:.75rem;--spacing6:1.5rem;--spacing8:2rem}#botuyo-chat-widget-root.dark,#botuyo-chat-widget.dark,.dark{--background:240 10% 3.9%;--foreground:0 0% 98%;--card:240 10% 3.9%;--card-foreground:0 0% 98%;--popover:240 10% 3.9%;--popover-foreground:0 0% 98%;--primary:160 84% 39%;--primary-foreground:0 0% 100%;--muted:240 3.7% 15.9%;--muted-foreground:240 5% 64.9%;--accent:240 3.7% 15.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:240 3.7% 15.9%;--input:240 3.7% 15.9%;--ring:160 84% 39%}#botuyo-chat-widget-root,#botuyo-chat-widget-root *{box-sizing:border-box;margin:0;padding:0}#botuyo-chat-widget-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:hsl(var(--foreground));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#botuyo-chat-widget-root .chat-launcher{align-items:center;background-color:hsl(var(--primary));border-radius:50%;bottom:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;color:#fff;cursor:pointer;display:flex;height:60px;justify-content:center;position:fixed;right:1.5rem;transition:all .2s;width:60px;z-index:999999}#botuyo-chat-widget-root .chat-launcher:hover{box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;transform:scale(1.05)}#botuyo-chat-widget-root .chat-launcher.position-bottom-left{left:1.5rem;right:auto}#botuyo-chat-widget-root .chat-launcher.position-top-right{bottom:auto;top:1.5rem}#botuyo-chat-widget-root .chat-launcher.position-top-left{inset:1.5rem auto auto 1.5rem}#botuyo-chat-widget-root .chat-window{animation:slideInRight .3s ease-out;background-color:hsl(var(--background));border-radius:1rem;bottom:6rem;box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;height:600px;max-height:calc(100vh - 8rem);overflow:hidden;position:fixed;right:1.5rem;width:400px;z-index:999999}#botuyo-chat-widget-root .chat-window.closing{animation:slideOutRight .2s ease-in}@media(max-width:640px){#botuyo-chat-widget-root .chat-window{animation:slideInUp .3s ease-out;border-radius:0;height:100%;inset:0;max-height:100vh;width:100%}}#botuyo-chat-widget-root .message-bubble{word-wrap:break-word;border-radius:1rem;max-width:80%;padding:.75rem 1rem}#botuyo-chat-widget-root .message-bubble.user{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));margin-left:auto}#botuyo-chat-widget-root .message-bubble.bot{background-color:hsl(var(--muted));color:hsl(var(--foreground))}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar{width:6px}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar-track{background:0 0}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:3px}#botuyo-chat-widget-root .chat-messages::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground))}#botuyo-chat-widget-root .chat-input{background-color:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:.5rem;color:hsl(var(--foreground));outline:none;padding:.75rem;transition:border-color .2s;width:100%}#botuyo-chat-widget-root .chat-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.1)}@media(max-width:640px){#botuyo-chat-widget-root .chat-launcher{bottom:1rem;height:56px;right:1rem;width:56px}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}',document.head.appendChild(e)}Ga();const Ka=u(()=>Promise.resolve().then(()=>qa).then(e=>({default:e.ChatWidget})));class Ha{root=null;container=null;config=null;init(e){return Ga(),this.config=e,this.render(),this}render(){if(!this.config)return void console.error("[BotUyoChat] No configuration provided");if(this.container||(this.container=document.createElement("div"),this.container.id="botuyo-chat-widget-root",this.container.style.position="fixed",this.container.style.zIndex="999999",document.body.appendChild(this.container)),this.config.theme?.cssVariables){const e=this.config.theme.cssVariables,t={background:e.background,foreground:e.foreground,card:e.card,cardForeground:e.cardForeground,primary:e.primary,primaryForeground:e.primaryForeground,muted:e.muted,mutedForeground:e.mutedForeground,border:e.border,destructive:e.destructive,radius:e.radius,spacing1:e.spacing1,spacing2:e.spacing2,spacing3:e.spacing3,spacing4:e.spacing4,spacing5:e.spacing5,spacing6:e.spacing6,spacing8:e.spacing8};Object.entries(t).forEach(([e,t])=>{void 0!==t&&this.container.style.setProperty(`--${e}`,t)})}this.root||(this.root=M.createRoot(this.container));const e={apiKey:this.config.apiKey,apiBaseUrl:this.config.apiBaseUrl,theme:{primaryColor:"#10b981",botName:"Asistente Virtual",position:"bottom-right",welcomeMessage:"¡Hola! 👋 ¿En qué puedo ayudarte?",inputPlaceholder:"Escribe tu mensaje...",borderRadius:"0.75rem",launcherBorderRadius:"50%",...this.config.theme},userContext:this.config.userContext,pageContext:this.config.pageContext,includeSEOMetadata:this.config.includeSEOMetadata??!1,mediaConfig:this.config.mediaConfig,onNavigate:this.config.onNavigate,onLogin:this.config.onLogin,onEvent:this.config.onEvent,onStateChange:this.config.onStateChange,onVoiceCall:this.config.onVoiceCall},r=t.createElement(p,{fallback:t.createElement("div",{style:{position:"fixed",bottom:"24px",right:"24px",width:"60px",height:"60px",borderRadius:"50%",backgroundColor:e.theme?.primaryColor||"#10b981",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",cursor:"wait"}},t.createElement("div",{style:{width:"24px",height:"24px",border:"3px solid rgba(255, 255, 255, 0.3)",borderTopColor:"#fff",borderRadius:"50%",animation:"spin 1s linear infinite"}}))},t.createElement(Ka,e));this.root.render(t.createElement(S,{defaultLocale:this.config.theme?.defaultLocale,children:r})),console.log("[BotUyoChat] Widget initialized",e)}update(e){this.config?(this.config={...this.config,...e,theme:{...this.config.theme,...e.theme}},this.render()):console.error("[BotUyoChat] Widget not initialized")}destroy(){this.root&&(this.root.unmount(),this.root=null),this.container&&this.container.parentNode&&(this.container.parentNode.removeChild(this.container),this.container=null),this.config=null,console.log("[BotUyoChat] Widget destroyed")}open(){window.dispatchEvent(new CustomEvent("botuyo-chat:open"))}close(){window.dispatchEvent(new CustomEvent("botuyo-chat:close"))}sendMessage(e){window.dispatchEvent(new CustomEvent("botuyo-chat:send-message",{detail:{message:e}}))}getState(){return null}}const Ya=new Ha;window.BotUyoChat=Ya;export{Ha as BotUyoChatWidget,Va as ChatWidget,La as ChatWidgetProvider,S as LanguageProvider,Ya as default,Wa as useChatWidget,$ as useLanguage};
|
|
35
34
|
//# sourceMappingURL=botuyo-chat.es.js.map
|