@chronowl/widget 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/favicon.svg CHANGED
@@ -1,21 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
- <!-- Cuerpo del buho -->
3
- <circle cx="32" cy="34" r="22" fill="#2C3E50"/>
4
- <!-- Orejas -->
5
- <path d="M14 18 L20 28 L10 28Z" fill="#2C3E50"/>
6
- <path d="M50 18 L54 28 L44 28Z" fill="#2C3E50"/>
7
- <!-- Ojos - fondo -->
8
- <circle cx="24" cy="32" r="8" fill="#E8F4F8"/>
9
- <circle cx="40" cy="32" r="8" fill="#E8F4F8"/>
10
- <!-- Ojos - pupila -->
11
- <circle cx="24" cy="32" r="4" fill="#1A252F"/>
12
- <circle cx="40" cy="32" r="4" fill="#1A252F"/>
13
- <!-- Ojos - brillo -->
14
- <circle cx="22" cy="30" r="1.5" fill="#FFFFFF"/>
15
- <circle cx="38" cy="30" r="1.5" fill="#FFFFFF"/>
16
- <!-- Pico -->
17
- <path d="M29 40 L32 46 L35 40Z" fill="#F39C12"/>
18
- <!-- Patas -->
19
- <path d="M24 54 L22 58 M24 54 L24 58 M24 54 L26 58" stroke="#F39C12" stroke-width="1.5" stroke-linecap="round"/>
20
- <path d="M40 54 L38 58 M40 54 L40 58 M40 54 L42 58" stroke="#F39C12" stroke-width="1.5" stroke-linecap="round"/>
21
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="64" viewBox="0 -960 960 960" width="64" fill="#2C3E50"><path d="M480-80q-134 0-227-93t-93-227v-200q0-122 96-201t224-79q128 0 224 79t96 201v520H480Zm0-80h80q-19-25-29.5-55.5T520-280v-42q-10 1-20 1.5t-20 .5q-67 0-129.5-23.5T240-415v15q0 100 70 170t170 70Zm120-120q0 50 35 85t85 35v-255q-26 26-56 44.5T600-340v60ZM440-560q0-66-45-111t-109-48q-22 24-34 54t-12 65q0 89 72.5 144.5T480-400q95 0 167.5-55.5T720-600q0-35-12-65.5T674-720q-64 2-109 48t-45 112h-80Zm-128.5-11.5Q300-583 300-600t11.5-28.5Q323-640 340-640t28.5 11.5Q380-617 380-600t-11.5 28.5Q357-560 340-560t-28.5-11.5Zm280 0Q580-583 580-600t11.5-28.5Q603-640 620-640t28.5 11.5Q660-617 660-600t-11.5 28.5Q637-560 620-560t-28.5-11.5ZM370-778q34 14 62 37t48 52q20-29 47.5-52t61.5-37q-25-11-52.5-16.5T480-800q-29 0-56.5 5.5T370-778Zm430 618H520h280Zm-320 0q-100 0-170-70t-70-170q0 100 70 170t170 70h80-80Zm120-120q0 50 35 85t85 35q-50 0-85-35t-35-85ZM480-689Z"/></svg>
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),d=require("react"),ke={"display-lg":"text-display-lg","display-md":"text-display-md","display-sm":"text-display-sm","headline-lg":"text-headline-lg","headline-md":"text-headline-md","headline-sm":"text-headline-sm","title-lg":"text-title-lg","title-md":"text-title-md","title-sm":"text-title-sm","body-lg":"text-body-lg","body-md":"text-body-md","body-sm":"text-body-sm","label-lg":"text-label-lg","label-md":"text-label-md","label-sm":"text-label-sm"},Fe={"display-lg":"h1","display-md":"h1","display-sm":"h2","headline-lg":"h2","headline-md":"h3","headline-sm":"h4","title-lg":"h5","title-md":"h6","title-sm":"h6","body-lg":"p","body-md":"p","body-sm":"p","label-lg":"span","label-md":"span","label-sm":"small"},Ee={left:"text-left",center:"text-center",right:"text-right"};function c({variant:a="body-md",as:r,color:t,truncate:n=!1,align:s,children:i,className:l="",...o}){const u=r||Fe[a];return e.jsx(u,{className:["font-sans",ke[a],s?Ee[s]:"",n?"truncate":"",l].filter(Boolean).join(" "),style:t?{color:t}:void 0,...o,children:i})}const Le={sm:"h-8 px-3 text-label-md min-w-[44px]",md:"h-10 px-5 text-label-lg min-w-[44px]",lg:"h-12 px-6 text-label-lg min-w-[44px]"},Me={filled:{primary:"bg-primary text-primary-on hover:bg-tertiary active:bg-tertiary shadow-elevation-1 hover:shadow-elevation-2",secondary:"bg-secondary text-secondary-on hover:bg-secondary-container active:bg-secondary-container shadow-elevation-1",error:"bg-error text-error-on hover:bg-red-800 active:bg-red-900 shadow-elevation-1",success:"bg-success text-success-on hover:bg-green-700 active:bg-green-800 shadow-elevation-1",warning:"bg-warning text-warning-on hover:bg-yellow-600 active:bg-yellow-700 shadow-elevation-1"},tonal:{primary:"bg-primary-container text-primary-on-container hover:bg-secondary-container",secondary:"bg-secondary-container text-secondary-on-container hover:bg-secondary",error:"bg-error-container text-error-on-container hover:bg-red-200",success:"bg-success-container text-success-on-container hover:bg-green-200",warning:"bg-warning-container text-warning-on-container hover:bg-yellow-200"},outlined:{primary:"border border-primary text-primary hover:bg-primary-container",secondary:"border border-neutral-variant text-neutral hover:bg-surface-variant",error:"border border-error text-error hover:bg-error-container",success:"border border-success text-success hover:bg-success-container",warning:"border border-warning text-warning hover:bg-warning-container"},text:{primary:"text-primary hover:bg-primary-container",secondary:"text-neutral hover:bg-surface-variant",error:"text-error hover:bg-error-container",success:"text-success hover:bg-success-container",warning:"text-warning hover:bg-warning-container"}},y=d.forwardRef(({variant:a="filled",color:r="primary",size:t="md",fullWidth:n=!1,loading:s=!1,icon:i,iconPosition:l="start",disabled:o,children:u,className:h="",...b},m)=>{var L;const p=o||s,C="inline-flex items-center justify-center gap-2 font-sans font-bold rounded-full transition-all duration-medium-1 ease-standard focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary select-none cursor-pointer",N=p?"opacity-40 pointer-events-none cursor-not-allowed":"",v=n?"w-full":"",E=[C,Le[t],((L=Me[a])==null?void 0:L[r])??"",N,v,h].filter(Boolean).join(" ");return e.jsx("button",{ref:m,className:E,disabled:p,...b,children:s?e.jsxs("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),e.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}):e.jsxs(e.Fragment,{children:[i&&l==="start"&&e.jsx("span",{className:"inline-flex shrink-0",children:i}),u&&e.jsx("span",{children:u}),i&&l==="end"&&e.jsx("span",{className:"inline-flex shrink-0",children:i})]})})});y.displayName="Button";const Be={sm:16,md:20,lg:24},De={calendar:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z",clock:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z",check:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z",close:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z","chevron-left":"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12l4.58-4.59z","chevron-right":"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z","chevron-down":"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z",search:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z",user:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z",mail:"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z",phone:"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z",notes:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z",alert:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",info:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",star:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27z",location:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z",edit:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",trash:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z","arrow-left":"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z","arrow-right":"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z",spinner:"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z",owl:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-1-3h6l-1 3H10zm5-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-5c-2.76 0-5 1.12-5 2.5h10C17 8.12 14.76 7 12 7z"};function f({name:a,size:r="md",color:t,className:n="",...s}){const i=Be[r],l=De[a];return e.jsx("svg",{width:i,height:i,viewBox:"0 0 24 24",fill:t||"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",className:n,...s,children:e.jsx("path",{d:l})})}function H({title:a="ChronOwl",subtitle:r,onBack:t,actions:n}){return e.jsxs("header",{className:"flex items-center gap-3 px-4 py-3 bg-surface border-b border-neutral-variant/30",children:[t&&e.jsx(y,{variant:"text",size:"sm",onClick:t,"aria-label":"Volver",className:"shrink-0 -ml-2",children:e.jsx(f,{name:"arrow-left",size:"md"})}),e.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary flex items-center justify-center shrink-0",children:e.jsx(f,{name:"owl",size:"sm",color:"#FFFFFF"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(c,{variant:"title-md",as:"h1",truncate:!0,className:"text-surface-on",children:a}),r&&e.jsx(c,{variant:"body-sm",as:"p",truncate:!0,className:"text-surface-on-variant",children:r})]})]}),n&&e.jsx("div",{className:"flex items-center gap-1 shrink-0",children:n})]})}function X({steps:a,currentStep:r,onStepClick:t}){return e.jsx("nav",{"aria-label":"Progreso de reserva",className:"px-4 py-3",children:e.jsx("ol",{className:"flex items-center w-full",children:a.map((n,s)=>{const i=s<r,l=s===r,o=t&&i;return e.jsxs("li",{className:["flex items-center",s<a.length-1?"flex-1":""].join(" "),children:[e.jsxs("button",{type:"button",disabled:!o,onClick:()=>o&&t(s),"aria-current":l?"step":void 0,className:["flex items-center gap-2 group",o?"cursor-pointer":"cursor-default","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary rounded"].join(" "),children:[e.jsx("span",{className:["flex items-center justify-center w-7 h-7 rounded-full text-label-sm font-bold shrink-0","transition-all duration-medium-1 ease-standard",i?"bg-primary text-primary-on":l?"bg-primary text-primary-on ring-2 ring-primary/30 ring-offset-2":"bg-surface-variant text-surface-on-variant"].join(" "),children:i?"✓":s+1}),e.jsx(c,{variant:"label-md",as:"span",className:["hidden sm:inline",l?"text-primary font-bold":i?"text-surface-on":"text-surface-on-variant"].join(" "),children:n})]}),s<a.length-1&&e.jsx("div",{className:["flex-1 h-0.5 mx-2","transition-colors duration-medium-1 ease-standard",i?"bg-primary":"bg-neutral-variant/40"].join(" ")})]},n)})})})}function W({companyName:a,poweredBy:r=!0}){return e.jsx("footer",{className:"px-4 py-3 border-t border-neutral-variant/30 bg-surface",children:e.jsxs("div",{className:"flex items-center justify-between",children:[a&&e.jsxs(c,{variant:"body-sm",className:"text-surface-on-variant",children:["© ",a]}),r&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsx(f,{name:"owl",size:"sm",color:"#7F8C8D"}),e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Powered by ChronOwl"})]})]})})}function Z({steps:a,currentStep:r,onStepClick:t,onBack:n,title:s="ChronOwl",children:i,footer:l}){return e.jsxs("div",{className:"chronowl-widget flex flex-col w-full max-w-[480px] mx-auto min-h-[400px] max-h-[90vh] bg-surface rounded-xl shadow-elevation-3 overflow-hidden font-sans",children:[e.jsxs("div",{className:"shrink-0",children:[e.jsx(H,{title:s,subtitle:"Reserva tu cita",onBack:r>0?n:void 0}),e.jsx(X,{steps:a,currentStep:r,onStepClick:t})]}),e.jsx("main",{className:"flex-1 overflow-y-auto px-4 py-4",children:i}),e.jsx("div",{className:"shrink-0",children:l||e.jsx(W,{poweredBy:!0})})]})}const Te={0:"shadow-elevation-0",1:"shadow-elevation-1",2:"shadow-elevation-2",3:"shadow-elevation-3",4:"shadow-elevation-4",5:"shadow-elevation-5"},$e={sm:"p-3",md:"p-4",lg:"p-6"};function ee({elevation:a=1,outlined:r=!1,padding:t="md",children:n,className:s="",...i}){return e.jsx("div",{className:["bg-surface rounded-md font-sans","transition-shadow duration-medium-1 ease-standard",r?"border border-neutral-variant":Te[a],$e[t],s].filter(Boolean).join(" "),...i,children:n})}function ae({service:a,selected:r=!1,onSelect:t}){return e.jsx("button",{type:"button",onClick:()=>t(a),"aria-pressed":r,className:"w-full text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary rounded-md",children:e.jsx(ee,{elevation:r?2:1,className:["transition-all duration-medium-1 ease-standard cursor-pointer","hover:shadow-elevation-2",r?"ring-2 ring-primary bg-primary-container":"hover:bg-surface-variant"].join(" "),children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(c,{variant:"title-sm",className:r?"text-primary-on-container":"text-surface-on",children:a.name}),e.jsx(c,{variant:"body-sm",className:["mt-1",r?"text-primary-on-container/70":"text-surface-on-variant"].join(" "),truncate:!0,children:a.description}),e.jsxs("div",{className:"flex items-center gap-3 mt-2",children:[e.jsxs("span",{className:"inline-flex items-center gap-1 text-body-sm text-surface-on-variant",children:[e.jsx(f,{name:"clock",size:"sm"}),a.duration," min"]}),a.category&&e.jsx("span",{className:"text-body-sm text-surface-on-variant",children:a.category})]})]}),e.jsxs("div",{className:"text-right shrink-0",children:[e.jsxs(c,{variant:"title-md",className:"text-primary",children:[a.currency,a.price]}),r&&e.jsx("span",{className:"inline-flex mt-1",children:e.jsx(f,{name:"check",size:"sm",color:"#2C3E50"})})]})]})})})}const Ie={sm:"h-4 w-4 border-2",md:"h-6 w-6 border-2",lg:"h-10 w-10 border-3"};function Y({size:a="md",color:r,className:t="",...n}){return e.jsx("div",{role:"progressbar","aria-label":"Cargando",className:["inline-block rounded-full border-solid border-current border-r-transparent animate-spin",Ie[a],t].filter(Boolean).join(" "),style:r?{borderColor:r,borderRightColor:"transparent"}:void 0,...n})}function O({message:a="Cargando...",size:r="md"}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[e.jsx(Y,{size:r}),e.jsx(c,{variant:"body-md",className:"text-surface-on-variant",children:a})]})}function U({icon:a="calendar",title:r,description:t,action:n}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-4 text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-surface-variant flex items-center justify-center mb-4",children:e.jsx(f,{name:a,size:"lg",color:"#7F8C8D"})}),e.jsx(c,{variant:"title-md",className:"text-surface-on mb-2",children:r}),t&&e.jsx(c,{variant:"body-md",className:"text-surface-on-variant mb-6 max-w-xs",children:t}),n&&e.jsx(y,{variant:"tonal",onClick:n.onClick,children:n.label})]})}function re({services:a,selectedServiceId:r,onSelectService:t,loading:n=!1}){return n?e.jsx(O,{message:"Cargando servicios..."}):a.length===0?e.jsx(U,{icon:"info",title:"Sin servicios disponibles",description:"No hay servicios configurados en este momento."}):e.jsxs("div",{className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-3 px-1 text-surface-on",children:"Selecciona un servicio"}),e.jsx("div",{className:"flex flex-col gap-3",children:a.map(s=>e.jsx(ae,{service:s,selected:s.id===r,onSelect:t},s.id))})]})}const Ae=["Lu","Ma","Mi","Ju","Vi","Sa","Do"],K=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];function J(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function Q(a,r){return a.getFullYear()===r.getFullYear()&&a.getMonth()===r.getMonth()&&a.getDate()===r.getDate()}function te({selectedDate:a,onSelectDate:r,minDate:t,maxDate:n,disabledDates:s=[],availableDates:i=[]}){const l=new Date,[o,u]=d.useState((a==null?void 0:a.getMonth())??l.getMonth()),[h,b]=d.useState((a==null?void 0:a.getFullYear())??l.getFullYear()),m=d.useMemo(()=>new Set(s),[s]),p=d.useMemo(()=>new Set(i),[i]),C=new Date(h,o+1,0).getDate(),N=(new Date(h,o,1).getDay()+6)%7,v=()=>{o===0?(u(11),b(h-1)):u(o-1)},E=()=>{o===11?(u(0),b(h+1)):u(o+1)},L=x=>{const S=new Date(h,o,x),k=J(S);if(m.has(k)||t&&S<new Date(t.getFullYear(),t.getMonth(),t.getDate())||n&&S>n)return!0;const F=new Date(l.getFullYear(),l.getMonth(),l.getDate());return S<F},g=x=>{if(p.size===0)return!0;const S=J(new Date(h,o,x));return p.has(S)},j=[];for(let x=0;x<N;x++)j.push(null);for(let x=1;x<=C;x++)j.push(x);return e.jsxs("div",{className:"w-full max-w-[320px] mx-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx(y,{variant:"text",size:"sm",onClick:v,"aria-label":"Mes anterior",children:e.jsx(f,{name:"chevron-left",size:"md"})}),e.jsxs(c,{variant:"title-sm",className:"text-surface-on",children:[K[o]," ",h]}),e.jsx(y,{variant:"text",size:"sm",onClick:E,"aria-label":"Mes siguiente",children:e.jsx(f,{name:"chevron-right",size:"md"})})]}),e.jsx("div",{className:"grid grid-cols-7 gap-0.5 mb-1",children:Ae.map(x=>e.jsx("div",{className:"text-center text-label-sm text-surface-on-variant py-1",children:x},x))}),e.jsx("div",{className:"grid grid-cols-7 gap-0.5",children:j.map((x,S)=>{if(x===null)return e.jsx("div",{},`empty-${S}`);const k=new Date(h,o,x),F=L(x),M=g(x)&&!F,D=a?Q(k,a):!1,R=Q(k,l);return e.jsx("button",{type:"button",disabled:F,onClick:()=>M&&r(k),"aria-pressed":D,"aria-label":`${x} de ${K[o]}${F?", no disponible":""}`,className:["aspect-square flex items-center justify-center rounded-full","text-body-sm font-sans min-h-[36px] min-w-[36px]","transition-all duration-short-2 ease-standard","focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-primary",D?"bg-primary text-primary-on font-bold":R&&!F?"border border-primary text-primary font-bold":M?"text-surface-on hover:bg-primary-container cursor-pointer":"text-surface-on-variant opacity-30 cursor-not-allowed"].join(" "),children:x},x)})})]})}function ne({selectedDate:a,onSelectDate:r,minDate:t,maxDate:n,disabledDates:s,availableDates:i}){return e.jsxs("div",{className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-3 px-1 text-surface-on",children:"Selecciona una fecha"}),e.jsx("div",{className:"bg-surface rounded-md shadow-elevation-1 p-4",children:e.jsx(te,{selectedDate:a,onSelectDate:r,minDate:t,maxDate:n,disabledDates:s,availableDates:i})}),a&&e.jsxs(c,{variant:"body-sm",className:"mt-2 px-1 text-surface-on-variant text-center",children:["Fecha seleccionada:"," ",e.jsx("span",{className:"font-bold text-primary",children:a.toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long"})})]})]})}function se({slots:a,selectedSlotId:r,onSelectSlot:t,columns:n=4}){const s=a.filter(o=>parseInt(o.startTime.split(":")[0],10)<12),i=a.filter(o=>parseInt(o.startTime.split(":")[0],10)>=12),l=o=>e.jsx("div",{className:"grid gap-2",style:{gridTemplateColumns:`repeat(${n}, 1fr)`},children:o.map(u=>{const h=u.id===r;return e.jsx("button",{type:"button",disabled:!u.available,onClick:()=>u.available&&t(u),"aria-pressed":h,className:["py-2 px-2 rounded-sm text-label-lg font-sans text-center","transition-all duration-short-2 ease-standard","min-h-[44px] min-w-[44px]","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",h?"bg-primary text-primary-on shadow-elevation-1":u.available?"bg-surface border border-neutral-variant/40 text-surface-on hover:bg-primary-container hover:border-primary/30":"bg-surface-variant text-surface-on-variant opacity-30 cursor-not-allowed"].join(" "),children:u.startTime},u.id)})});return e.jsxs("div",{className:"w-full space-y-4",children:[s.length>0&&e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"mb-2 text-surface-on-variant",children:"Mañana"}),l(s)]}),i.length>0&&e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"mb-2 text-surface-on-variant",children:"Tarde"}),l(i)]})]})}const B=d.forwardRef(({label:a,error:r,helperText:t,leadingIcon:n,trailingIcon:s,fullWidth:i=!0,className:l="",id:o,...u},h)=>{const b=d.useId(),m=o??b,p=!!r,C=["relative",i?"w-full":"inline-flex"].join(" "),N=["peer w-full h-12 px-4 rounded-xs bg-surface border font-sans text-body-lg","text-surface-on placeholder-transparent","transition-all duration-medium-1 ease-standard","focus:outline-none focus:ring-2",n?"pl-11":"",s?"pr-11":"",p?"border-error focus:ring-error focus:border-error":"border-neutral-variant focus:ring-primary focus:border-primary","disabled:opacity-40 disabled:cursor-not-allowed",l].filter(Boolean).join(" "),v=["absolute left-4 top-1/2 -translate-y-1/2 text-body-lg font-sans pointer-events-none","transition-all duration-medium-1 ease-standard origin-left","peer-focus:top-0 peer-focus:text-label-sm peer-focus:bg-surface peer-focus:px-1 peer-focus:-translate-y-1/2 peer-focus:scale-90","peer-[:not(:placeholder-shown)]:top-0 peer-[:not(:placeholder-shown)]:text-label-sm peer-[:not(:placeholder-shown)]:bg-surface peer-[:not(:placeholder-shown)]:px-1 peer-[:not(:placeholder-shown)]:-translate-y-1/2 peer-[:not(:placeholder-shown)]:scale-90",n?"left-11":"",p?"text-error peer-focus:text-error":"text-surface-on-variant peer-focus:text-primary"].filter(Boolean).join(" ");return e.jsxs("div",{className:C,children:[e.jsxs("div",{className:"relative",children:[n&&e.jsx("span",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-surface-on-variant",children:n}),e.jsx("input",{ref:h,id:m,className:N,placeholder:a||" ","aria-invalid":p,"aria-describedby":r?`${m}-error`:t?`${m}-helper`:void 0,...u}),a&&e.jsx("label",{htmlFor:m,className:v,children:a}),s&&e.jsx("span",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-surface-on-variant",children:s})]}),(r||t)&&e.jsx("p",{id:r?`${m}-error`:`${m}-helper`,className:["mt-1 px-4 text-body-sm",p?"text-error":"text-surface-on-variant"].join(" "),children:r||t})]})});B.displayName="Input";function Pe(a){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a)}function He(a){return/^[\d\s\-+()]{7,20}$/.test(a)}function We(a,r="es-ES"){return a.toLocaleDateString(r,{weekday:"long",day:"numeric",month:"long",year:"numeric"})}function Oe(a,r="es-ES"){return a.toLocaleDateString(r,{weekday:"short",day:"numeric",month:"short"})}function ie(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function le({onSubmit:a,loading:r=!1,initialValues:t}){const[n,s]=d.useState((t==null?void 0:t.clientName)??""),[i,l]=d.useState((t==null?void 0:t.clientEmail)??""),[o,u]=d.useState((t==null?void 0:t.clientPhone)??""),[h,b]=d.useState((t==null?void 0:t.notes)??""),[m,p]=d.useState({}),C=()=>{const v={};return n.trim()||(v.clientName="El nombre es requerido"),i.trim()?Pe(i)||(v.clientEmail="Email no válido"):v.clientEmail="El email es requerido",o.trim()?He(o)||(v.clientPhone="Teléfono no válido"):v.clientPhone="El teléfono es requerido",p(v),Object.keys(v).length===0},N=v=>{v.preventDefault(),C()&&a({clientName:n.trim(),clientEmail:i.trim(),clientPhone:o.trim(),notes:h.trim()||void 0})};return e.jsxs("form",{onSubmit:N,noValidate:!0,className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-4 text-surface-on",children:"Tus datos"}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(B,{label:"Nombre completo",type:"text",value:n,onChange:v=>s(v.target.value),error:m.clientName,leadingIcon:e.jsx(f,{name:"user",size:"sm"}),autoComplete:"name",maxLength:100,required:!0}),e.jsx(B,{label:"Email",type:"email",value:i,onChange:v=>l(v.target.value),error:m.clientEmail,leadingIcon:e.jsx(f,{name:"mail",size:"sm"}),autoComplete:"email",maxLength:254,required:!0}),e.jsx(B,{label:"Teléfono",type:"tel",value:o,onChange:v=>u(v.target.value),error:m.clientPhone,leadingIcon:e.jsx(f,{name:"phone",size:"sm"}),autoComplete:"tel",maxLength:20,required:!0}),e.jsx(B,{label:"Notas (opcional)",type:"text",value:h,onChange:v=>b(v.target.value),leadingIcon:e.jsx(f,{name:"notes",size:"sm"}),maxLength:500})]}),e.jsx(y,{type:"submit",variant:"filled",color:"primary",size:"lg",fullWidth:!0,loading:r,className:"mt-6",children:"Confirmar reserva"})]})}function T({orientation:a="horizontal",inset:r=!1,className:t="",...n}){const s=a==="horizontal";return e.jsx("hr",{role:"separator","aria-orientation":a,className:["border-0 bg-neutral-variant",s?"h-px w-full":"w-px h-full",r&&s?"mx-4":"",r&&!s?"my-4":"",t].filter(Boolean).join(" "),...n})}const Re={confirmed:"bg-success-container text-success-on-container",pending:"bg-warning-container text-warning-on-container",cancelled:"bg-error-container text-error-on-container",completed:"bg-primary-container text-primary-on-container",info:"bg-secondary-container text-secondary-on-container"},qe={sm:"text-label-sm px-2 py-0.5",md:"text-label-md px-3 py-1",lg:"text-label-lg px-4 py-1.5"};function oe({variant:a,size:r="md",icon:t,children:n,className:s="",...i}){return e.jsxs("span",{className:["inline-flex items-center gap-1.5 font-sans font-bold rounded-full whitespace-nowrap",Re[a],qe[r],s].filter(Boolean).join(" "),...i,children:[t&&e.jsx("span",{className:"inline-flex shrink-0",children:t}),n]})}const Ye={confirmed:"check",pending:"clock",cancelled:"close",completed:"check",info:"info"};function V({status:a,label:r}){return e.jsx(oe,{variant:a,icon:e.jsx(f,{name:Ye[a],size:"sm"}),children:r})}function ce({open:a,onClose:r,confirmation:t,onNewBooking:n}){const s=d.useRef(null);return d.useEffect(()=>{const i=s.current;i&&(a?i.showModal():i.close())},[a]),d.useEffect(()=>{const i=s.current;if(!i)return;const l=()=>r();return i.addEventListener("close",l),()=>i.removeEventListener("close",l)},[r]),t?e.jsx("dialog",{ref:s,className:["w-[90vw] max-w-md rounded-xl bg-surface shadow-elevation-5 p-0","backdrop:bg-scrim/40 backdrop:backdrop-blur-sm","animate-in fade-in slide-in-from-bottom-4"].join(" "),"aria-labelledby":"confirmation-title",children:e.jsxs("div",{className:"p-6",children:[e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx("div",{className:"w-16 h-16 rounded-full bg-success-container flex items-center justify-center",children:e.jsx(f,{name:"check",size:"lg",color:"#27AE60"})})}),e.jsx(c,{variant:"headline-sm",as:"h2",align:"center",id:"confirmation-title",className:"text-surface-on mb-1",children:"¡Reserva confirmada!"}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-4",children:"Tu cita ha sido agendada exitosamente."}),e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx(V,{status:t.status,label:"Confirmada"})}),e.jsx(T,{className:"my-4"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"star",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Servicio"}),e.jsx(c,{variant:"body-md",className:"text-surface-on",children:t.service.name})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"calendar",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Fecha"}),e.jsx(c,{variant:"body-md",className:"text-surface-on",children:new Date(t.date).toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long",year:"numeric"})})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"clock",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Hora"}),e.jsxs(c,{variant:"body-md",className:"text-surface-on",children:[t.timeSlot.startTime," - ",t.timeSlot.endTime]})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"user",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Cliente"}),e.jsx(c,{variant:"body-md",className:"text-surface-on",children:t.clientName}),e.jsx(c,{variant:"body-sm",className:"text-surface-on-variant",children:t.clientEmail})]})]})]}),e.jsx(T,{className:"my-4"}),e.jsxs(c,{variant:"body-sm",align:"center",className:"text-surface-on-variant mb-4",children:["ID de reserva: ",e.jsx("span",{className:"font-bold",children:t.id})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(y,{variant:"filled",fullWidth:!0,onClick:r,children:"Cerrar"}),n&&e.jsx(y,{variant:"tonal",fullWidth:!0,onClick:n,children:"Nueva reserva"})]})]})}):null}function de({open:a,onClose:r,title:t="Ha ocurrido un error",message:n,onRetry:s}){const i=d.useRef(null);return d.useEffect(()=>{const l=i.current;l&&(a?l.showModal():l.close())},[a]),d.useEffect(()=>{const l=i.current;if(!l)return;const o=()=>r();return l.addEventListener("close",o),()=>l.removeEventListener("close",o)},[r]),e.jsx("dialog",{ref:i,className:["w-[90vw] max-w-sm rounded-xl bg-surface shadow-elevation-5 p-0","backdrop:bg-scrim/40 backdrop:backdrop-blur-sm"].join(" "),"aria-labelledby":"error-title",children:e.jsxs("div",{className:"p-6",children:[e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx("div",{className:"w-14 h-14 rounded-full bg-error-container flex items-center justify-center",children:e.jsx(f,{name:"alert",size:"lg",color:"#C0392B"})})}),e.jsx(c,{variant:"title-lg",as:"h2",align:"center",id:"error-title",className:"text-surface-on mb-2",children:t}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-6",children:n}),e.jsxs("div",{className:"flex flex-col gap-2",children:[s&&e.jsx(y,{variant:"filled",fullWidth:!0,onClick:s,children:"Reintentar"}),e.jsx(y,{variant:s?"tonal":"filled",fullWidth:!0,onClick:r,children:"Cerrar"})]})]})})}const Ue=["Servicio","Fecha y hora","Datos","Confirmación"],Ve={service:0,datetime:1,form:2,confirmation:3};function me({services:a,onFetchSlots:r,onSubmitBooking:t,companyName:n="ChronOwl",title:s=n}){const[i,l]=d.useState("service"),[o,u]=d.useState(null),[h,b]=d.useState(),[m,p]=d.useState(null),[C,N]=d.useState([]),[v,E]=d.useState(!1),[L,g]=d.useState(!1),[j,x]=d.useState(null),[S,k]=d.useState(!1),[F,M]=d.useState(null),D=Ve[i],R=d.useCallback(()=>{i==="datetime"?(l("service"),b(void 0),p(null),N([])):i==="form"&&l("datetime")},[i]),ge=d.useCallback(w=>{const $=["service","datetime","form","confirmation"];w<D&&l($[w])},[D]),be=d.useCallback(w=>{u(w)},[]),ye=d.useCallback(()=>{o&&(l("datetime"),b(void 0),p(null),N([]))},[o]),je=d.useCallback(async w=>{if(b(w),p(null),!o)return;const $=`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`;E(!0);try{const q=await r(o.id,$);N(q)}catch{M("No se pudieron cargar los horarios. Intenta de nuevo."),N([])}finally{E(!1)}},[o,r]),Ne=d.useCallback(w=>{p(w)},[]),Se=d.useCallback(()=>{h&&m&&l("form")},[h,m]),we=d.useCallback(async w=>{if(!o||!h||!m)return;const $=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}`,q={serviceId:o.id,date:$,timeSlotId:m.id,...w};g(!0);try{const ze=await t(q);x(ze),k(!0),l("confirmation")}catch{M("No se pudo completar la reserva. Por favor, intenta de nuevo.")}finally{g(!1)}},[o,h,m,t]),G=d.useCallback(()=>{l("service"),u(null),b(void 0),p(null),N([]),x(null),k(!1)},[]),Ce=()=>{switch(i){case"service":return e.jsxs("div",{children:[e.jsx(re,{services:a,selectedServiceId:o==null?void 0:o.id,onSelectService:be}),o&&e.jsx("div",{className:"mt-6",children:e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:ye,icon:e.jsx(f,{name:"arrow-right",size:"sm"}),iconPosition:"end",children:"Continuar"})})]});case"datetime":return e.jsxs("div",{className:"space-y-6",children:[o&&e.jsxs("div",{className:"bg-primary-container rounded-sm px-4 py-3",children:[e.jsx(c,{variant:"label-md",className:"text-primary-on-container/70",children:"Servicio seleccionado"}),e.jsxs(c,{variant:"title-sm",className:"text-primary-on-container",children:[o.name," — ",o.currency,o.price]})]}),e.jsx(ne,{selectedDate:h,onSelectDate:je}),h&&e.jsxs(e.Fragment,{children:[e.jsx(T,{}),v?e.jsx(O,{message:"Buscando horarios...",size:"sm"}):e.jsx(se,{slots:C,selectedSlotId:m==null?void 0:m.id,onSelectSlot:Ne,columns:4})]}),m&&e.jsx("div",{className:"mt-4",children:e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:Se,icon:e.jsx(f,{name:"arrow-right",size:"sm"}),iconPosition:"end",children:"Continuar"})})]});case"form":return e.jsxs("div",{className:"space-y-4",children:[o&&h&&m&&e.jsxs("div",{className:"bg-primary-container rounded-sm px-4 py-3 space-y-1",children:[e.jsx(c,{variant:"label-md",className:"text-primary-on-container/70",children:"Resumen de tu reserva"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{name:"star",size:"sm",color:"#2C3E50"}),e.jsx(c,{variant:"body-sm",className:"text-primary-on-container",children:o.name})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{name:"calendar",size:"sm",color:"#2C3E50"}),e.jsx(c,{variant:"body-sm",className:"text-primary-on-container",children:h.toLocaleDateString("es-ES",{weekday:"short",day:"numeric",month:"short"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{name:"clock",size:"sm",color:"#2C3E50"}),e.jsxs(c,{variant:"body-sm",className:"text-primary-on-container",children:[m.startTime," - ",m.endTime]})]})]}),e.jsx(T,{}),e.jsx(le,{onSubmit:we,loading:L})]});case"confirmation":return e.jsxs("div",{className:"flex flex-col items-center justify-center py-8",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-success-container flex items-center justify-center mb-4",children:e.jsx(f,{name:"check",size:"lg",color:"#27AE60"})}),e.jsx(c,{variant:"headline-sm",align:"center",className:"text-surface-on mb-2",children:"¡Reserva confirmada!"}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-6",children:"Revisa tu email para los detalles."}),e.jsx(y,{variant:"tonal",onClick:G,children:"Nueva reserva"})]})}};return e.jsxs(e.Fragment,{children:[e.jsx(Z,{steps:Ue,currentStep:D,onStepClick:ge,onBack:R,title:s,footer:void 0,children:Ce()}),e.jsx(ce,{open:S,onClose:()=>k(!1),confirmation:j,onNewBooking:G}),e.jsx(de,{open:!!F,onClose:()=>M(null),message:F??"",onRetry:()=>M(null)})]})}function ue({services:a,onFetchSlots:r,onSubmitBooking:t,theme:n="light",companyName:s,className:i=""}){return e.jsx("div",{className:["chronowl-root w-full max-w-[480px]",n==="dark"?"chronowl-dark":"chronowl-light",i].filter(Boolean).join(" "),style:{width:"100%",maxWidth:480},"data-theme":n,children:e.jsx(me,{services:a,onFetchSlots:r,onSubmitBooking:t,companyName:s})})}function xe({htmlFor:a,required:r,children:t,className:n="",...s}){return e.jsxs("label",{htmlFor:a,className:["block text-label-lg text-surface-on font-sans mb-1",n].filter(Boolean).join(" "),...s,children:[t,r&&e.jsx("span",{className:"text-error ml-0.5","aria-label":"requerido",children:"*"})]})}function _e({label:a,htmlFor:r,error:t,helperText:n,required:s,children:i}){return e.jsxs("div",{className:"mb-4 w-full",children:[e.jsx(xe,{htmlFor:r,required:s,children:a}),i,t&&e.jsx(c,{variant:"body-sm",className:"mt-1 px-1 text-error",children:t}),!t&&n&&e.jsx(c,{variant:"body-sm",className:"mt-1 px-1 text-surface-on-variant",children:n})]})}function Ge({slots:a,selectedSlotId:r,onSelectSlot:t,loading:n=!1}){return n?e.jsxs("div",{className:"flex items-center justify-center py-8",children:[e.jsx(Y,{size:"md"}),e.jsx(c,{variant:"body-md",className:"ml-3 text-surface-on-variant",children:"Cargando horarios..."})]}):a.length===0?e.jsx(c,{variant:"body-md",className:"text-center py-8 text-surface-on-variant",children:"No hay horarios disponibles para esta fecha."}):e.jsxs("div",{className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-3 text-surface-on",children:"Selecciona un horario"}),e.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-2",children:a.map(s=>{const i=s.id===r,l=s.available;return e.jsx("button",{type:"button",disabled:!l,onClick:()=>l&&t(s),"aria-pressed":i,"aria-label":`${s.startTime} - ${s.endTime}${l?"":", no disponible"}`,className:["py-2.5 px-3 rounded-sm text-label-lg font-sans text-center","transition-all duration-medium-1 ease-standard","min-h-[44px] min-w-[44px]","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",i?"bg-primary text-primary-on shadow-elevation-1":l?"bg-surface-variant text-surface-on hover:bg-primary-container hover:text-primary-on-container":"bg-surface-variant text-surface-on-variant opacity-40 cursor-not-allowed"].join(" "),children:s.startTime},s.id)})})]})}function he({slot:a,selected:r=!1,onSelect:t}){return e.jsxs("button",{type:"button",disabled:!a.available,onClick:()=>a.available&&t(a),"aria-pressed":r,"aria-label":`${a.startTime} a ${a.endTime}${a.available?"":", no disponible"}`,className:["flex flex-col items-center justify-center py-3 px-4 rounded-sm","min-h-[56px] min-w-[44px]","transition-all duration-medium-1 ease-standard","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",r?"bg-primary text-primary-on shadow-elevation-1":a.available?"bg-surface-variant text-surface-on hover:bg-primary-container hover:text-primary-on-container border border-transparent hover:border-primary/20":"bg-surface-variant text-surface-on-variant opacity-40 cursor-not-allowed line-through"].join(" "),children:[e.jsx(c,{variant:"label-lg",as:"span",className:"inherit",children:a.startTime}),e.jsx(c,{variant:"body-sm",as:"span",className:"opacity-70",children:a.endTime})]})}const fe=d.forwardRef(({icon:a,iconPosition:r="start",...t},n)=>e.jsx(B,{ref:n,leadingIcon:r==="start"?a:void 0,trailingIcon:r==="end"?a:void 0,...t}));fe.displayName="InputWithIcon";function Ke({children:a,orientation:r="horizontal",fullWidth:t=!1}){return e.jsx("div",{className:["flex gap-3",r==="vertical"?"flex-col":"flex-row items-center",t?"w-full [&>*]:flex-1":""].filter(Boolean).join(" "),role:"group",children:a})}function Je({slots:a,selectedSlotId:r,onSelectSlot:t,loading:n=!1}){if(n)return e.jsx(O,{message:"Buscando horarios disponibles..."});const s=a.filter(i=>i.available);return a.length===0||s.length===0?e.jsx(U,{icon:"clock",title:"Sin horarios disponibles",description:"No hay horarios disponibles para la fecha seleccionada. Intenta con otra fecha."}):e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3 px-1",children:[e.jsx(c,{variant:"title-sm",className:"text-surface-on",children:"Horarios disponibles"}),e.jsxs(c,{variant:"label-sm",className:"text-surface-on-variant",children:[s.length," disponible",s.length!==1?"s":""]})]}),e.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2",children:a.map(i=>e.jsx(he,{slot:i,selected:i.id===r,onSelect:t},i.id))})]})}function _({header:a,footer:r,children:t}){return e.jsxs("div",{className:"chronowl-widget flex flex-col w-full max-w-[480px] mx-auto min-h-[400px] max-h-[90vh] bg-surface rounded-xl shadow-elevation-3 overflow-hidden font-sans",children:[a&&e.jsx("div",{className:"shrink-0",children:a}),e.jsx("main",{className:"flex-1 overflow-y-auto px-4 py-4",children:t}),r&&e.jsx("div",{className:"shrink-0",children:r})]})}function Qe({children:a,maxWidth:r="480px"}){return e.jsx("div",{className:"flex items-center justify-center min-h-screen p-4 bg-scrim/40",children:e.jsx("div",{className:"w-full bg-surface rounded-xl shadow-elevation-5 overflow-hidden font-sans",style:{maxWidth:r},children:a})})}function Xe({confirmation:a,onNewBooking:r,onClose:t,companyName:n}){return e.jsx(_,{header:e.jsx(H,{title:"ChronOwl",subtitle:"Reserva confirmada"}),footer:e.jsx(W,{companyName:n,poweredBy:!0}),children:e.jsxs("div",{className:"flex flex-col items-center py-4",children:[e.jsx("div",{className:"w-20 h-20 rounded-full bg-success-container flex items-center justify-center mb-5 animate-bounce",children:e.jsx(f,{name:"check",size:"lg",color:"#27AE60"})}),e.jsx(c,{variant:"headline-sm",align:"center",className:"text-surface-on mb-1",children:"¡Reserva confirmada!"}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-4",children:"Tu cita ha sido agendada exitosamente."}),e.jsx(V,{status:a.status,label:"Confirmada"}),e.jsx(T,{className:"my-5 w-full"}),e.jsxs("div",{className:"w-full space-y-4 bg-surface-variant rounded-md p-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary-container flex items-center justify-center shrink-0",children:e.jsx(f,{name:"star",size:"sm",color:"#2C3E50"})}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Servicio"}),e.jsx(c,{variant:"body-lg",className:"text-surface-on font-bold",children:a.service.name}),e.jsxs(c,{variant:"body-sm",className:"text-surface-on-variant",children:[a.service.duration," min — ",a.service.currency,a.service.price]})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary-container flex items-center justify-center shrink-0",children:e.jsx(f,{name:"calendar",size:"sm",color:"#2C3E50"})}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Fecha y hora"}),e.jsx(c,{variant:"body-lg",className:"text-surface-on font-bold",children:new Date(a.date).toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long",year:"numeric"})}),e.jsxs(c,{variant:"body-sm",className:"text-surface-on-variant",children:[a.timeSlot.startTime," - ",a.timeSlot.endTime]})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary-container flex items-center justify-center shrink-0",children:e.jsx(f,{name:"user",size:"sm",color:"#2C3E50"})}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Cliente"}),e.jsx(c,{variant:"body-lg",className:"text-surface-on font-bold",children:a.clientName}),e.jsx(c,{variant:"body-sm",className:"text-surface-on-variant",children:a.clientEmail})]})]})]}),e.jsxs(c,{variant:"body-sm",align:"center",className:"text-surface-on-variant mt-4",children:["ID de reserva: ",e.jsx("span",{className:"font-bold font-mono",children:a.id})]}),e.jsx(c,{variant:"body-sm",align:"center",className:"text-surface-on-variant mt-1 mb-6",children:"Te hemos enviado un email de confirmación."}),e.jsxs("div",{className:"w-full space-y-2",children:[r&&e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:r,children:"Nueva reserva"}),t&&e.jsx(y,{variant:"tonal",fullWidth:!0,size:"lg",onClick:t,children:"Cerrar"})]})]})})}function Ze({title:a="Sin disponibilidad",message:r="No hay horarios disponibles en este momento. Por favor, intenta más tarde.",onRetry:t,onBack:n,companyName:s}){return e.jsx(_,{header:e.jsx(H,{title:"ChronOwl",onBack:n}),footer:e.jsx(W,{companyName:s,poweredBy:!0}),children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-4",children:[e.jsx("div",{className:"w-20 h-20 rounded-full bg-error-container flex items-center justify-center mb-5",children:e.jsx(f,{name:"alert",size:"lg",color:"#C0392B"})}),e.jsx(c,{variant:"headline-sm",align:"center",className:"text-surface-on mb-2",children:a}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-8 max-w-xs",children:r}),e.jsxs("div",{className:"flex items-center gap-2 mb-8 opacity-30",children:[e.jsx(f,{name:"calendar",size:"lg",color:"#7F8C8D"}),e.jsx(f,{name:"close",size:"md",color:"#C0392B"}),e.jsx(f,{name:"clock",size:"lg",color:"#7F8C8D"})]}),e.jsxs("div",{className:"w-full max-w-xs space-y-3",children:[t&&e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:t,icon:e.jsx(f,{name:"spinner",size:"sm"}),iconPosition:"start",children:"Reintentar"}),n&&e.jsx(y,{variant:"tonal",fullWidth:!0,size:"lg",onClick:n,icon:e.jsx(f,{name:"arrow-left",size:"sm"}),iconPosition:"start",children:"Volver al inicio"})]})]})})}const ea={primary:"#2C3E50",onPrimary:"#FFFFFF",primaryContainer:"#E8F4F8",onPrimaryContainer:"#2C3E50",secondary:"#E8F4F8",onSecondary:"#2C3E50",secondaryContainer:"#D1E8F0",onSecondaryContainer:"#1A252F",tertiary:"#1A252F",onTertiary:"#FFFFFF",tertiaryContainer:"#34495E",onTertiaryContainer:"#E8F4F8",neutral:"#7F8C8D",onNeutral:"#FFFFFF",neutralVariant:"#BDC3C7",onNeutralVariant:"#2C3E50",surface:"#FFFFFF",onSurface:"#2C3E50",surfaceVariant:"#F0F3F5",onSurfaceVariant:"#7F8C8D",surfaceDim:"#E0E3E5",surfaceBright:"#FFFFFF",surfaceContainerLowest:"#FFFFFF",surfaceContainerLow:"#F8F9FA",surfaceContainer:"#F0F3F5",surfaceContainerHigh:"#E8EBEE",surfaceContainerHighest:"#E0E3E5",outline:"#BDC3C7",outlineVariant:"#E0E3E5",error:"#C0392B",onError:"#FFFFFF",errorContainer:"#FADBD8",onErrorContainer:"#78281F",warning:"#F39C12",onWarning:"#FFFFFF",warningContainer:"#FEF5E7",onWarningContainer:"#7E5109",success:"#27AE60",onSuccess:"#FFFFFF",successContainer:"#D5F5E3",onSuccessContainer:"#1E8449",inverseSurface:"#2C3E50",inverseOnSurface:"#FFFFFF",inversePrimary:"#A3C4D4",scrim:"#000000",shadow:"#000000"},aa={displayLarge:{fontSize:"57px",lineHeight:"64px",fontWeight:700,letterSpacing:"-0.25px"},displayMedium:{fontSize:"45px",lineHeight:"52px",fontWeight:700,letterSpacing:"0px"},displaySmall:{fontSize:"36px",lineHeight:"44px",fontWeight:700,letterSpacing:"0px"},headlineLarge:{fontSize:"32px",lineHeight:"40px",fontWeight:700,letterSpacing:"0px"},headlineMedium:{fontSize:"28px",lineHeight:"36px",fontWeight:700,letterSpacing:"0px"},headlineSmall:{fontSize:"24px",lineHeight:"32px",fontWeight:700,letterSpacing:"0px"},titleLarge:{fontSize:"22px",lineHeight:"28px",fontWeight:700,letterSpacing:"0px"},titleMedium:{fontSize:"18px",lineHeight:"24px",fontWeight:700,letterSpacing:"0.15px"},titleSmall:{fontSize:"14px",lineHeight:"20px",fontWeight:700,letterSpacing:"0.1px"},bodyLarge:{fontSize:"16px",lineHeight:"24px",fontWeight:400,letterSpacing:"0.15px"},bodyMedium:{fontSize:"14px",lineHeight:"20px",fontWeight:400,letterSpacing:"0.25px"},bodySmall:{fontSize:"12px",lineHeight:"16px",fontWeight:400,letterSpacing:"0.4px"},labelLarge:{fontSize:"14px",lineHeight:"20px",fontWeight:700,letterSpacing:"0.1px"},labelMedium:{fontSize:"12px",lineHeight:"16px",fontWeight:700,letterSpacing:"0.5px"},labelSmall:{fontSize:"11px",lineHeight:"16px",fontWeight:700,letterSpacing:"0.5px"}},ra="'Inter', 'Roboto', system-ui, sans-serif",ta={size0:"0px",size1:"4px",size2:"8px",size3:"12px",size4:"16px",size5:"24px",size6:"32px",size7:"40px",size8:"48px"},na={size0:0,size1:4,size2:8,size3:12,size4:16,size5:24,size6:32,size7:40,size8:48},sa={level0:"none",level1:"0 1px 3px rgba(44, 62, 80, 0.12)",level2:"0 3px 6px rgba(44, 62, 80, 0.16)",level3:"0 6px 10px rgba(44, 62, 80, 0.2)",level4:"0 8px 16px rgba(44, 62, 80, 0.24)",level5:"0 12px 28px rgba(44, 62, 80, 0.3)"},ve={short1:"50ms",short2:"100ms",medium1:"200ms",medium2:"300ms",long1:"400ms",long2:"500ms"},pe={standard:"cubic-bezier(0.2, 0, 0, 1)",emphasized:"cubic-bezier(0.2, 0, 0, 1)",decelerate:"cubic-bezier(0.05, 0.7, 0.1, 1)",accelerate:"cubic-bezier(0.3, 0, 0.8, 0.15)"},ia={duration:ve,easing:pe},la={extraSmall:"4px",small:"8px",medium:"12px",large:"16px",extraLarge:"28px",full:"999px"},I={services:a=>`/api/services/${a}`,availability:(a,r,t)=>`/api/availability/${a}/${r}/${t}`,bookings:"/api/bookings",bookingDetail:(a,r)=>`/api/bookings/${a}/${r}`,cancelBooking:(a,r)=>`/api/bookings/${a}/${r}/cancel`},oa="",ca=3e4;let z={baseUrl:oa,saasId:""};function da(a){if(a.baseUrl!==void 0){const r=a.baseUrl;r&&!r.startsWith("https://")&&!r.includes("localhost")&&!r.includes("127.0.0.1")&&console.warn("[ChronOwl] La URL del API no usa HTTPS. Las API keys se enviarán en texto plano.")}z={...z,...a}}async function P(a,r){if(!z.baseUrl)throw new Error('[ChronOwl] API URL no configurada. Llama a configureApi({ baseUrl: "..." }) primero.');const t=`${z.baseUrl}${a}`,n={"Content-Type":"application/json"};z.apiKey&&(n["x-api-key"]=z.apiKey);const s=new AbortController,i=setTimeout(()=>s.abort(),ca);try{const l=await fetch(t,{...r,headers:{...n,...r==null?void 0:r.headers},signal:s.signal}),o=await l.json();if(!l.ok||!o.success)throw new Error(o.error||`Error ${l.status}`);return o.data}catch(l){throw l.name==="AbortError"?new Error("La solicitud tardó demasiado. Intenta de nuevo."):l}finally{clearTimeout(i)}}const A={async getServices(a){const r=a||z.saasId;return P(I.services(r))},async getAvailability(a,r,t){const n=t||z.saasId;return P(I.availability(n,a,r))},async createBooking(a){return P(I.bookings,{method:"POST",body:JSON.stringify({...a,saasId:a.saasId||z.saasId})})},async cancelBooking(a,r){const t=r||z.saasId;return P(I.cancelBooking(t,a),{method:"PATCH"})}};function ma(a){const[r,t]=d.useState([]),[n,s]=d.useState(!0),[i,l]=d.useState(null),o=d.useCallback(async()=>{s(!0),l(null);try{const u=await A.getServices(a);t(u)}catch(u){l(u instanceof Error?u.message:"Error al cargar servicios")}finally{s(!1)}},[a]);return d.useEffect(()=>{a&&o()},[a,o]),{services:r,loading:n,error:i,refetch:o}}function ua(a){const[r,t]=d.useState([]),[n,s]=d.useState(!1),[i,l]=d.useState(null),o=d.useCallback(async(h,b)=>{s(!0),l(null);try{const m=ie(b),p=await A.getAvailability(h,m,a);t(p)}catch(m){l(m instanceof Error?m.message:"Error al cargar horarios"),t([])}finally{s(!1)}},[a]),u=d.useCallback(()=>{t([]),l(null)},[]);return{slots:r,loading:n,error:i,fetchSlots:o,clearSlots:u}}function xa(a){const[r,t]=d.useState(null),[n,s]=d.useState(!1),[i,l]=d.useState(null),o=d.useCallback(async b=>{s(!0),l(null);try{const m=await A.createBooking({...b,saasId:a});return t(m),m}catch(m){const p=m instanceof Error?m.message:"Error al crear reserva";return l(p),null}finally{s(!1)}},[a]),u=d.useCallback(async b=>{s(!0),l(null);try{await A.cancelBooking(b,a),t(null)}catch(m){l(m instanceof Error?m.message:"Error al cancelar reserva")}finally{s(!1)}},[a]),h=d.useCallback(()=>{t(null),l(null)},[]);return{booking:r,loading:n,error:i,createBooking:o,cancelBooking:u,reset:h}}function ha({initialValues:a,validationRules:r={},onSubmit:t}){const[n,s]=d.useState(a),[i,l]=d.useState({}),[o,u]=d.useState({}),[h,b]=d.useState(!1),m=d.useCallback((g,j)=>{const x=r[g];if(x)return x(j,n)},[r,n]),p=d.useCallback(()=>{const g={};let j=!0;for(const x of Object.keys(n)){const S=m(x,n[x]);S&&(g[x]=S,j=!1)}return l(g),j},[n,m]),C=d.useCallback((g,j)=>{if(s(x=>({...x,[g]:j})),o[g]){const x=m(g,j);l(S=>({...S,[g]:x}))}},[o,m]),N=d.useCallback(g=>{u(x=>({...x,[g]:!0}));const j=m(g,n[g]);l(x=>({...x,[g]:j}))},[n,m]),v=d.useCallback(async()=>{const g={};for(const j of Object.keys(n))g[j]=!0;if(u(g),!!p()){b(!0);try{await t(n)}finally{b(!1)}}},[n,p,t]),E=d.useCallback(()=>{s(a),l({}),u({})},[a]),L=Object.values(i).every(g=>!g);return{values:n,errors:i,touched:o,isValid:L,isSubmitting:h,handleChange:C,handleBlur:N,handleSubmit:v,reset:E}}function fa(...a){return a.filter(Boolean).join(" ")}function va(a,r="$"){return`${r}${a.toLocaleString()}`}function pa(a){if(a<60)return`${a} min`;const r=Math.floor(a/60),t=a%60;return t>0?`${r}h ${t}min`:`${r}h`}const ga=["Servicio","Fecha y hora","Datos","Confirmación"],ba={xs:320,sm:480,md:768,lg:1024,xl:1200},ya={es:{steps:["Servicio","Fecha y hora","Datos","Confirmación"],selectService:"Selecciona un servicio",selectDate:"Selecciona una fecha",selectTime:"Selecciona un horario",yourData:"Tus datos",confirm:"Confirmar reserva",continue:"Continuar",back:"Volver",close:"Cerrar",newBooking:"Nueva reserva",loading:"Cargando...",noSlots:"No hay horarios disponibles",noServices:"No hay servicios disponibles",bookingConfirmed:"Reserva confirmada",bookingError:"Error al crear la reserva",required:"Este campo es requerido",invalidEmail:"Email no válido",poweredBy:"Powered by ChronOwl"},en:{steps:["Service","Date & Time","Details","Confirmation"],selectService:"Select a service",selectDate:"Select a date",selectTime:"Select a time slot",yourData:"Your details",confirm:"Confirm booking",continue:"Continue",back:"Back",close:"Close",newBooking:"New booking",loading:"Loading...",noSlots:"No available time slots",noServices:"No services available",bookingConfirmed:"Booking confirmed",bookingError:"Error creating booking",required:"This field is required",invalidEmail:"Invalid email",poweredBy:"Powered by ChronOwl"}};exports.API_ENDPOINTS=I;exports.AvailabilityGrid=Je;exports.AvailabilitySlot=he;exports.BOOKING_STEPS=ga;exports.BREAKPOINTS=ba;exports.Badge=oe;exports.BookingForm=le;exports.BookingPage=me;exports.BookingPageTemplate=Z;exports.Button=y;exports.ButtonGroup=Ke;exports.Calendar=ne;exports.Card=ee;exports.CenteredLayout=Qe;exports.ChronOwlWidget=ue;exports.ConfirmationBadge=V;exports.ConfirmationModal=ce;exports.ConfirmationPage=Xe;exports.DateSelector=te;exports.Divider=T;exports.EmptyState=U;exports.ErrorModal=de;exports.ErrorPage=Ze;exports.Footer=W;exports.FormGroup=_e;exports.Header=H;exports.Icon=f;exports.Input=B;exports.InputWithIcon=fe;exports.LOCALE=ya;exports.Label=xe;exports.LoadingState=O;exports.MainLayout=_;exports.ServiceCard=ae;exports.ServiceList=re;exports.Spinner=Y;exports.Stepper=X;exports.TimeSelector=Ge;exports.TimeSlotSelector=se;exports.Typography=c;exports.chronowlApi=A;exports.cn=fa;exports.colors=ea;exports.configureApi=da;exports.corners=la;exports.dateToString=ie;exports.default=ue;exports.duration=ve;exports.easing=pe;exports.elevation=sa;exports.fontFamily=ra;exports.formatCurrency=va;exports.formatDate=We;exports.formatDateShort=Oe;exports.formatDuration=pa;exports.motion=ia;exports.spacing=ta;exports.spacingValues=na;exports.typescale=aa;exports.useAvailability=ua;exports.useBooking=xa;exports.useForm=ha;exports.useServices=ma;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),d=require("react"),ze={"display-lg":"text-display-lg","display-md":"text-display-md","display-sm":"text-display-sm","headline-lg":"text-headline-lg","headline-md":"text-headline-md","headline-sm":"text-headline-sm","title-lg":"text-title-lg","title-md":"text-title-md","title-sm":"text-title-sm","body-lg":"text-body-lg","body-md":"text-body-md","body-sm":"text-body-sm","label-lg":"text-label-lg","label-md":"text-label-md","label-sm":"text-label-sm"},Fe={"display-lg":"h1","display-md":"h1","display-sm":"h2","headline-lg":"h2","headline-md":"h3","headline-sm":"h4","title-lg":"h5","title-md":"h6","title-sm":"h6","body-lg":"p","body-md":"p","body-sm":"p","label-lg":"span","label-md":"span","label-sm":"small"},Ee={left:"text-left",center:"text-center",right:"text-right"};function c({variant:a="body-md",as:r,color:t,truncate:n=!1,align:s,children:i,className:l="",...o}){const u=r||Fe[a];return e.jsx(u,{className:["font-sans",ze[a],s?Ee[s]:"",n?"truncate":"",l].filter(Boolean).join(" "),style:t?{color:t}:void 0,...o,children:i})}const Le={sm:"h-8 px-3 text-label-md min-w-[44px]",md:"h-10 px-5 text-label-lg min-w-[44px]",lg:"h-12 px-6 text-label-lg min-w-[44px]"},Me={filled:{primary:"bg-primary text-primary-on hover:bg-tertiary active:bg-tertiary shadow-elevation-1 hover:shadow-elevation-2",secondary:"bg-secondary text-secondary-on hover:bg-secondary-container active:bg-secondary-container shadow-elevation-1",error:"bg-error text-error-on hover:bg-red-800 active:bg-red-900 shadow-elevation-1",success:"bg-success text-success-on hover:bg-green-700 active:bg-green-800 shadow-elevation-1",warning:"bg-warning text-warning-on hover:bg-yellow-600 active:bg-yellow-700 shadow-elevation-1"},tonal:{primary:"bg-primary-container text-primary-on-container hover:bg-secondary-container",secondary:"bg-secondary-container text-secondary-on-container hover:bg-secondary",error:"bg-error-container text-error-on-container hover:bg-red-200",success:"bg-success-container text-success-on-container hover:bg-green-200",warning:"bg-warning-container text-warning-on-container hover:bg-yellow-200"},outlined:{primary:"border border-primary text-primary hover:bg-primary-container",secondary:"border border-neutral-variant text-neutral hover:bg-surface-variant",error:"border border-error text-error hover:bg-error-container",success:"border border-success text-success hover:bg-success-container",warning:"border border-warning text-warning hover:bg-warning-container"},text:{primary:"text-primary hover:bg-primary-container",secondary:"text-neutral hover:bg-surface-variant",error:"text-error hover:bg-error-container",success:"text-success hover:bg-success-container",warning:"text-warning hover:bg-warning-container"}},y=d.forwardRef(({variant:a="filled",color:r="primary",size:t="md",fullWidth:n=!1,loading:s=!1,icon:i,iconPosition:l="start",disabled:o,children:u,className:h="",...b},m)=>{var L;const v=o||s,C="inline-flex items-center justify-center gap-2 font-sans font-bold rounded-full transition-all duration-medium-1 ease-standard focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary select-none cursor-pointer",N=v?"opacity-40 pointer-events-none cursor-not-allowed":"",p=n?"w-full":"",E=[C,Le[t],((L=Me[a])==null?void 0:L[r])??"",N,p,h].filter(Boolean).join(" ");return e.jsx("button",{ref:m,className:E,disabled:v,...b,children:s?e.jsxs("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),e.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}):e.jsxs(e.Fragment,{children:[i&&l==="start"&&e.jsx("span",{className:"inline-flex shrink-0",children:i}),u&&e.jsx("span",{children:u}),i&&l==="end"&&e.jsx("span",{className:"inline-flex shrink-0",children:i})]})})});y.displayName="Button";const Be={sm:16,md:20,lg:24},De={calendar:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z",clock:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z",check:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z",close:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z","chevron-left":"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12l4.58-4.59z","chevron-right":"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z","chevron-down":"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z",search:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z",user:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z",mail:"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z",phone:"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z",notes:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z",alert:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",info:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",star:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27z",location:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z",edit:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",trash:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z","arrow-left":"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z","arrow-right":"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z",spinner:"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z",owl:"OWL_MULTIPATH"};function f({name:a,size:r="md",color:t,className:n="",...s}){const i=Be[r],l=t||"currentColor";if(a==="owl")return e.jsx("span",{className:`material-symbols-outlined ${n}`,style:{fontSize:`${i}px`,color:l,fontVariationSettings:"'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24",lineHeight:1,display:"inline-flex",alignItems:"center",justifyContent:"center",width:i,height:i},"aria-hidden":"true",children:"owl"});const o=De[a];return e.jsx("svg",{width:i,height:i,viewBox:"0 0 24 24",fill:l,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",className:n,...s,children:e.jsx("path",{d:o})})}function H({title:a="ChronOwl",subtitle:r,onBack:t,actions:n}){return e.jsxs("header",{className:"flex items-center gap-3 px-4 py-3 bg-surface border-b border-neutral-variant/30",children:[t&&e.jsx(y,{variant:"text",size:"sm",onClick:t,"aria-label":"Volver",className:"shrink-0 -ml-2",children:e.jsx(f,{name:"arrow-left",size:"md"})}),e.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary flex items-center justify-center shrink-0",children:e.jsx(f,{name:"owl",size:"sm",color:"#FFFFFF"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(c,{variant:"title-md",as:"h1",truncate:!0,className:"text-surface-on",children:a}),r&&e.jsx(c,{variant:"body-sm",as:"p",truncate:!0,className:"text-surface-on-variant",children:r})]})]}),n&&e.jsx("div",{className:"flex items-center gap-1 shrink-0",children:n})]})}function X({steps:a,currentStep:r,onStepClick:t}){return e.jsx("nav",{"aria-label":"Progreso de reserva",className:"px-4 py-3",children:e.jsx("ol",{className:"flex items-center w-full",children:a.map((n,s)=>{const i=s<r,l=s===r,o=t&&i;return e.jsxs("li",{className:["flex items-center",s<a.length-1?"flex-1":""].join(" "),children:[e.jsxs("button",{type:"button",disabled:!o,onClick:()=>o&&t(s),"aria-current":l?"step":void 0,className:["flex items-center gap-2 group",o?"cursor-pointer":"cursor-default","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary rounded"].join(" "),children:[e.jsx("span",{className:["flex items-center justify-center w-7 h-7 rounded-full text-label-sm font-bold shrink-0","transition-all duration-medium-1 ease-standard",i?"bg-primary text-primary-on":l?"bg-primary text-primary-on ring-2 ring-primary/30 ring-offset-2":"bg-surface-variant text-surface-on-variant"].join(" "),children:i?"✓":s+1}),e.jsx(c,{variant:"label-md",as:"span",className:["hidden sm:inline",l?"text-primary font-bold":i?"text-surface-on":"text-surface-on-variant"].join(" "),children:n})]}),s<a.length-1&&e.jsx("div",{className:["flex-1 h-0.5 mx-2","transition-colors duration-medium-1 ease-standard",i?"bg-primary":"bg-neutral-variant/40"].join(" ")})]},n)})})})}function W({companyName:a,poweredBy:r=!0}){return e.jsx("footer",{className:"px-4 py-3 border-t border-neutral-variant/30 bg-surface",children:e.jsxs("div",{className:"flex items-center justify-between",children:[a&&e.jsxs(c,{variant:"body-sm",className:"text-surface-on-variant",children:["© ",a]}),r&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsx(f,{name:"owl",size:"sm",color:"#7F8C8D"}),e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Powered by ChronOwl"})]})]})})}function Z({steps:a,currentStep:r,onStepClick:t,onBack:n,title:s="ChronOwl",children:i,footer:l}){return e.jsxs("div",{className:"chronowl-widget flex flex-col w-full max-w-[480px] mx-auto min-h-[400px] max-h-[90vh] bg-surface rounded-xl shadow-elevation-3 overflow-hidden font-sans",children:[e.jsxs("div",{className:"shrink-0",children:[e.jsx(H,{title:s,subtitle:"Reserva tu cita",onBack:r>0?n:void 0}),e.jsx(X,{steps:a,currentStep:r,onStepClick:t})]}),e.jsx("main",{className:"flex-1 overflow-y-auto px-4 py-4",children:i}),e.jsx("div",{className:"shrink-0",children:l||e.jsx(W,{poweredBy:!0})})]})}const Te={0:"shadow-elevation-0",1:"shadow-elevation-1",2:"shadow-elevation-2",3:"shadow-elevation-3",4:"shadow-elevation-4",5:"shadow-elevation-5"},$e={sm:"p-3",md:"p-4",lg:"p-6"};function ee({elevation:a=1,outlined:r=!1,padding:t="md",children:n,className:s="",...i}){return e.jsx("div",{className:["bg-surface rounded-md font-sans","transition-shadow duration-medium-1 ease-standard",r?"border border-neutral-variant":Te[a],$e[t],s].filter(Boolean).join(" "),...i,children:n})}function ae({service:a,selected:r=!1,onSelect:t}){return e.jsx("button",{type:"button",onClick:()=>t(a),"aria-pressed":r,className:"w-full text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary rounded-md",children:e.jsx(ee,{elevation:r?2:1,className:["transition-all duration-medium-1 ease-standard cursor-pointer","hover:shadow-elevation-2",r?"ring-2 ring-primary bg-primary-container":"hover:bg-surface-variant"].join(" "),children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(c,{variant:"title-sm",className:r?"text-primary-on-container":"text-surface-on",children:a.name}),e.jsx(c,{variant:"body-sm",className:["mt-1",r?"text-primary-on-container/70":"text-surface-on-variant"].join(" "),truncate:!0,children:a.description}),e.jsxs("div",{className:"flex items-center gap-3 mt-2",children:[e.jsxs("span",{className:"inline-flex items-center gap-1 text-body-sm text-surface-on-variant",children:[e.jsx(f,{name:"clock",size:"sm"}),a.duration," min"]}),a.category&&e.jsx("span",{className:"text-body-sm text-surface-on-variant",children:a.category})]})]}),e.jsxs("div",{className:"text-right shrink-0",children:[e.jsxs(c,{variant:"title-md",className:"text-primary",children:[a.currency,a.price]}),r&&e.jsx("span",{className:"inline-flex mt-1",children:e.jsx(f,{name:"check",size:"sm",color:"#2C3E50"})})]})]})})})}const Ie={sm:"h-4 w-4 border-2",md:"h-6 w-6 border-2",lg:"h-10 w-10 border-3"};function U({size:a="md",color:r,className:t="",...n}){return e.jsx("div",{role:"progressbar","aria-label":"Cargando",className:["inline-block rounded-full border-solid border-current border-r-transparent animate-spin",Ie[a],t].filter(Boolean).join(" "),style:r?{borderColor:r,borderRightColor:"transparent"}:void 0,...n})}function O({message:a="Cargando...",size:r="md"}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[e.jsx(U,{size:r}),e.jsx(c,{variant:"body-md",className:"text-surface-on-variant",children:a})]})}function V({icon:a="calendar",title:r,description:t,action:n}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-4 text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-surface-variant flex items-center justify-center mb-4",children:e.jsx(f,{name:a,size:"lg",color:"#7F8C8D"})}),e.jsx(c,{variant:"title-md",className:"text-surface-on mb-2",children:r}),t&&e.jsx(c,{variant:"body-md",className:"text-surface-on-variant mb-6 max-w-xs",children:t}),n&&e.jsx(y,{variant:"tonal",onClick:n.onClick,children:n.label})]})}function re({services:a,selectedServiceId:r,onSelectService:t,loading:n=!1}){return n?e.jsx(O,{message:"Cargando servicios..."}):a.length===0?e.jsx(V,{icon:"info",title:"Sin servicios disponibles",description:"No hay servicios configurados en este momento."}):e.jsxs("div",{className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-3 px-1 text-surface-on",children:"Selecciona un servicio"}),e.jsx("div",{className:"flex flex-col gap-3",children:a.map(s=>e.jsx(ae,{service:s,selected:s.id===r,onSelect:t},s.id))})]})}const Ae=["Lu","Ma","Mi","Ju","Vi","Sa","Do"],K=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];function J(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function Q(a,r){return a.getFullYear()===r.getFullYear()&&a.getMonth()===r.getMonth()&&a.getDate()===r.getDate()}function te({selectedDate:a,onSelectDate:r,minDate:t,maxDate:n,disabledDates:s=[],availableDates:i=[]}){const l=new Date,[o,u]=d.useState((a==null?void 0:a.getMonth())??l.getMonth()),[h,b]=d.useState((a==null?void 0:a.getFullYear())??l.getFullYear()),m=d.useMemo(()=>new Set(s),[s]),v=d.useMemo(()=>new Set(i),[i]),C=new Date(h,o+1,0).getDate(),N=(new Date(h,o,1).getDay()+6)%7,p=()=>{o===0?(u(11),b(h-1)):u(o-1)},E=()=>{o===11?(u(0),b(h+1)):u(o+1)},L=x=>{const S=new Date(h,o,x),z=J(S);if(m.has(z)||t&&S<new Date(t.getFullYear(),t.getMonth(),t.getDate())||n&&S>n)return!0;const F=new Date(l.getFullYear(),l.getMonth(),l.getDate());return S<F},g=x=>{if(v.size===0)return!0;const S=J(new Date(h,o,x));return v.has(S)},j=[];for(let x=0;x<N;x++)j.push(null);for(let x=1;x<=C;x++)j.push(x);return e.jsxs("div",{className:"w-full max-w-[320px] mx-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx(y,{variant:"text",size:"sm",onClick:p,"aria-label":"Mes anterior",children:e.jsx(f,{name:"chevron-left",size:"md"})}),e.jsxs(c,{variant:"title-sm",className:"text-surface-on",children:[K[o]," ",h]}),e.jsx(y,{variant:"text",size:"sm",onClick:E,"aria-label":"Mes siguiente",children:e.jsx(f,{name:"chevron-right",size:"md"})})]}),e.jsx("div",{className:"grid grid-cols-7 gap-0.5 mb-1",children:Ae.map(x=>e.jsx("div",{className:"text-center text-label-sm text-surface-on-variant py-1",children:x},x))}),e.jsx("div",{className:"grid grid-cols-7 gap-0.5",children:j.map((x,S)=>{if(x===null)return e.jsx("div",{},`empty-${S}`);const z=new Date(h,o,x),F=L(x),M=g(x)&&!F,D=a?Q(z,a):!1,R=Q(z,l);return e.jsx("button",{type:"button",disabled:F,onClick:()=>M&&r(z),"aria-pressed":D,"aria-label":`${x} de ${K[o]}${F?", no disponible":""}`,className:["aspect-square flex items-center justify-center rounded-full","text-body-sm font-sans min-h-[36px] min-w-[36px]","transition-all duration-short-2 ease-standard","focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-primary",D?"bg-primary text-primary-on font-bold":R&&!F?"border border-primary text-primary font-bold":M?"text-surface-on hover:bg-primary-container cursor-pointer":"text-surface-on-variant opacity-30 cursor-not-allowed"].join(" "),children:x},x)})})]})}function ne({selectedDate:a,onSelectDate:r,minDate:t,maxDate:n,disabledDates:s,availableDates:i}){return e.jsxs("div",{className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-3 px-1 text-surface-on",children:"Selecciona una fecha"}),e.jsx("div",{className:"bg-surface rounded-md shadow-elevation-1 p-4",children:e.jsx(te,{selectedDate:a,onSelectDate:r,minDate:t,maxDate:n,disabledDates:s,availableDates:i})}),a&&e.jsxs(c,{variant:"body-sm",className:"mt-2 px-1 text-surface-on-variant text-center",children:["Fecha seleccionada:"," ",e.jsx("span",{className:"font-bold text-primary",children:a.toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long"})})]})]})}function se({slots:a,selectedSlotId:r,onSelectSlot:t,columns:n=4}){const s=a.filter(o=>parseInt(o.startTime.split(":")[0],10)<12),i=a.filter(o=>parseInt(o.startTime.split(":")[0],10)>=12),l=o=>e.jsx("div",{className:"grid gap-2",style:{gridTemplateColumns:`repeat(${n}, 1fr)`},children:o.map(u=>{const h=u.id===r;return e.jsx("button",{type:"button",disabled:!u.available,onClick:()=>u.available&&t(u),"aria-pressed":h,className:["py-2 px-2 rounded-sm text-label-lg font-sans text-center","transition-all duration-short-2 ease-standard","min-h-[44px] min-w-[44px]","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",h?"bg-primary text-primary-on shadow-elevation-1":u.available?"bg-surface border border-neutral-variant/40 text-surface-on hover:bg-primary-container hover:border-primary/30":"bg-surface-variant text-surface-on-variant opacity-30 cursor-not-allowed"].join(" "),children:u.startTime},u.id)})});return e.jsxs("div",{className:"w-full space-y-4",children:[s.length>0&&e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"mb-2 text-surface-on-variant",children:"Mañana"}),l(s)]}),i.length>0&&e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"mb-2 text-surface-on-variant",children:"Tarde"}),l(i)]})]})}const B=d.forwardRef(({label:a,error:r,helperText:t,leadingIcon:n,trailingIcon:s,fullWidth:i=!0,className:l="",id:o,...u},h)=>{const b=d.useId(),m=o??b,v=!!r,C=["relative",i?"w-full":"inline-flex"].join(" "),N=["peer w-full h-12 px-4 rounded-xs bg-surface border font-sans text-body-lg","text-surface-on placeholder-transparent","transition-all duration-medium-1 ease-standard","focus:outline-none focus:ring-2",n?"pl-11":"",s?"pr-11":"",v?"border-error focus:ring-error focus:border-error":"border-neutral-variant focus:ring-primary focus:border-primary","disabled:opacity-40 disabled:cursor-not-allowed",l].filter(Boolean).join(" "),p=["absolute left-4 top-1/2 -translate-y-1/2 text-body-lg font-sans pointer-events-none","transition-all duration-medium-1 ease-standard origin-left","peer-focus:top-0 peer-focus:text-label-sm peer-focus:bg-surface peer-focus:px-1 peer-focus:-translate-y-1/2 peer-focus:scale-90","peer-[:not(:placeholder-shown)]:top-0 peer-[:not(:placeholder-shown)]:text-label-sm peer-[:not(:placeholder-shown)]:bg-surface peer-[:not(:placeholder-shown)]:px-1 peer-[:not(:placeholder-shown)]:-translate-y-1/2 peer-[:not(:placeholder-shown)]:scale-90",n?"left-11":"",v?"text-error peer-focus:text-error":"text-surface-on-variant peer-focus:text-primary"].filter(Boolean).join(" ");return e.jsxs("div",{className:C,children:[e.jsxs("div",{className:"relative",children:[n&&e.jsx("span",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-surface-on-variant",children:n}),e.jsx("input",{ref:h,id:m,className:N,placeholder:a||" ","aria-invalid":v,"aria-describedby":r?`${m}-error`:t?`${m}-helper`:void 0,...u}),a&&e.jsx("label",{htmlFor:m,className:p,children:a}),s&&e.jsx("span",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-surface-on-variant",children:s})]}),(r||t)&&e.jsx("p",{id:r?`${m}-error`:`${m}-helper`,className:["mt-1 px-4 text-body-sm",v?"text-error":"text-surface-on-variant"].join(" "),children:r||t})]})});B.displayName="Input";function Pe(a){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a)}function He(a){return/^[\d\s\-+()]{7,20}$/.test(a)}function We(a,r="es-ES"){return a.toLocaleDateString(r,{weekday:"long",day:"numeric",month:"long",year:"numeric"})}function Oe(a,r="es-ES"){return a.toLocaleDateString(r,{weekday:"short",day:"numeric",month:"short"})}function ie(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function le({onSubmit:a,loading:r=!1,initialValues:t}){const[n,s]=d.useState((t==null?void 0:t.clientName)??""),[i,l]=d.useState((t==null?void 0:t.clientEmail)??""),[o,u]=d.useState((t==null?void 0:t.clientPhone)??""),[h,b]=d.useState((t==null?void 0:t.notes)??""),[m,v]=d.useState({}),C=()=>{const p={};return n.trim()||(p.clientName="El nombre es requerido"),i.trim()?Pe(i)||(p.clientEmail="Email no válido"):p.clientEmail="El email es requerido",o.trim()?He(o)||(p.clientPhone="Teléfono no válido"):p.clientPhone="El teléfono es requerido",v(p),Object.keys(p).length===0},N=p=>{p.preventDefault(),C()&&a({clientName:n.trim(),clientEmail:i.trim(),clientPhone:o.trim(),notes:h.trim()||void 0})};return e.jsxs("form",{onSubmit:N,noValidate:!0,className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-4 text-surface-on",children:"Tus datos"}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(B,{label:"Nombre completo",type:"text",value:n,onChange:p=>s(p.target.value),error:m.clientName,leadingIcon:e.jsx(f,{name:"user",size:"sm"}),autoComplete:"name",maxLength:100,required:!0}),e.jsx(B,{label:"Email",type:"email",value:i,onChange:p=>l(p.target.value),error:m.clientEmail,leadingIcon:e.jsx(f,{name:"mail",size:"sm"}),autoComplete:"email",maxLength:254,required:!0}),e.jsx(B,{label:"Teléfono",type:"tel",value:o,onChange:p=>u(p.target.value),error:m.clientPhone,leadingIcon:e.jsx(f,{name:"phone",size:"sm"}),autoComplete:"tel",maxLength:20,required:!0}),e.jsx(B,{label:"Notas (opcional)",type:"text",value:h,onChange:p=>b(p.target.value),leadingIcon:e.jsx(f,{name:"notes",size:"sm"}),maxLength:500})]}),e.jsx(y,{type:"submit",variant:"filled",color:"primary",size:"lg",fullWidth:!0,loading:r,className:"mt-6",children:"Confirmar reserva"})]})}function T({orientation:a="horizontal",inset:r=!1,className:t="",...n}){const s=a==="horizontal";return e.jsx("hr",{role:"separator","aria-orientation":a,className:["border-0 bg-neutral-variant",s?"h-px w-full":"w-px h-full",r&&s?"mx-4":"",r&&!s?"my-4":"",t].filter(Boolean).join(" "),...n})}const Re={confirmed:"bg-success-container text-success-on-container",pending:"bg-warning-container text-warning-on-container",cancelled:"bg-error-container text-error-on-container",completed:"bg-primary-container text-primary-on-container",info:"bg-secondary-container text-secondary-on-container"},qe={sm:"text-label-sm px-2 py-0.5",md:"text-label-md px-3 py-1",lg:"text-label-lg px-4 py-1.5"};function oe({variant:a,size:r="md",icon:t,children:n,className:s="",...i}){return e.jsxs("span",{className:["inline-flex items-center gap-1.5 font-sans font-bold rounded-full whitespace-nowrap",Re[a],qe[r],s].filter(Boolean).join(" "),...i,children:[t&&e.jsx("span",{className:"inline-flex shrink-0",children:t}),n]})}const Ue={confirmed:"check",pending:"clock",cancelled:"close",completed:"check",info:"info"};function Y({status:a,label:r}){return e.jsx(oe,{variant:a,icon:e.jsx(f,{name:Ue[a],size:"sm"}),children:r})}function ce({open:a,onClose:r,confirmation:t,onNewBooking:n}){const s=d.useRef(null);return d.useEffect(()=>{const i=s.current;i&&(a?i.showModal():i.close())},[a]),d.useEffect(()=>{const i=s.current;if(!i)return;const l=()=>r();return i.addEventListener("close",l),()=>i.removeEventListener("close",l)},[r]),t?e.jsx("dialog",{ref:s,className:["w-[90vw] max-w-md rounded-xl bg-surface shadow-elevation-5 p-0","backdrop:bg-scrim/40 backdrop:backdrop-blur-sm","animate-in fade-in slide-in-from-bottom-4"].join(" "),"aria-labelledby":"confirmation-title",children:e.jsxs("div",{className:"p-6",children:[e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx("div",{className:"w-16 h-16 rounded-full bg-success-container flex items-center justify-center",children:e.jsx(f,{name:"check",size:"lg",color:"#27AE60"})})}),e.jsx(c,{variant:"headline-sm",as:"h2",align:"center",id:"confirmation-title",className:"text-surface-on mb-1",children:"¡Reserva confirmada!"}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-4",children:"Tu cita ha sido agendada exitosamente."}),e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx(Y,{status:t.status,label:"Confirmada"})}),e.jsx(T,{className:"my-4"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"star",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Servicio"}),e.jsx(c,{variant:"body-md",className:"text-surface-on",children:t.service.name})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"calendar",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Fecha"}),e.jsx(c,{variant:"body-md",className:"text-surface-on",children:new Date(t.date).toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long",year:"numeric"})})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"clock",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Hora"}),e.jsxs(c,{variant:"body-md",className:"text-surface-on",children:[t.timeSlot.startTime," - ",t.timeSlot.endTime]})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(f,{name:"user",size:"sm",color:"#7F8C8D"}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-md",className:"text-surface-on-variant",children:"Cliente"}),e.jsx(c,{variant:"body-md",className:"text-surface-on",children:t.clientName}),e.jsx(c,{variant:"body-sm",className:"text-surface-on-variant",children:t.clientEmail})]})]})]}),e.jsx(T,{className:"my-4"}),e.jsxs(c,{variant:"body-sm",align:"center",className:"text-surface-on-variant mb-4",children:["ID de reserva: ",e.jsx("span",{className:"font-bold",children:t.id})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(y,{variant:"filled",fullWidth:!0,onClick:r,children:"Cerrar"}),n&&e.jsx(y,{variant:"tonal",fullWidth:!0,onClick:n,children:"Nueva reserva"})]})]})}):null}function de({open:a,onClose:r,title:t="Ha ocurrido un error",message:n,onRetry:s}){const i=d.useRef(null);return d.useEffect(()=>{const l=i.current;l&&(a?l.showModal():l.close())},[a]),d.useEffect(()=>{const l=i.current;if(!l)return;const o=()=>r();return l.addEventListener("close",o),()=>l.removeEventListener("close",o)},[r]),e.jsx("dialog",{ref:i,className:["w-[90vw] max-w-sm rounded-xl bg-surface shadow-elevation-5 p-0","backdrop:bg-scrim/40 backdrop:backdrop-blur-sm"].join(" "),"aria-labelledby":"error-title",children:e.jsxs("div",{className:"p-6",children:[e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx("div",{className:"w-14 h-14 rounded-full bg-error-container flex items-center justify-center",children:e.jsx(f,{name:"alert",size:"lg",color:"#C0392B"})})}),e.jsx(c,{variant:"title-lg",as:"h2",align:"center",id:"error-title",className:"text-surface-on mb-2",children:t}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-6",children:n}),e.jsxs("div",{className:"flex flex-col gap-2",children:[s&&e.jsx(y,{variant:"filled",fullWidth:!0,onClick:s,children:"Reintentar"}),e.jsx(y,{variant:s?"tonal":"filled",fullWidth:!0,onClick:r,children:"Cerrar"})]})]})})}const Ve=["Servicio","Fecha y hora","Datos","Confirmación"],Ye={service:0,datetime:1,form:2,confirmation:3};function me({services:a,onFetchSlots:r,onSubmitBooking:t,companyName:n="ChronOwl",title:s=n}){const[i,l]=d.useState("service"),[o,u]=d.useState(null),[h,b]=d.useState(),[m,v]=d.useState(null),[C,N]=d.useState([]),[p,E]=d.useState(!1),[L,g]=d.useState(!1),[j,x]=d.useState(null),[S,z]=d.useState(!1),[F,M]=d.useState(null),D=Ye[i],R=d.useCallback(()=>{i==="datetime"?(l("service"),b(void 0),v(null),N([])):i==="form"&&l("datetime")},[i]),ge=d.useCallback(w=>{const $=["service","datetime","form","confirmation"];w<D&&l($[w])},[D]),be=d.useCallback(w=>{u(w)},[]),ye=d.useCallback(()=>{o&&(l("datetime"),b(void 0),v(null),N([]))},[o]),je=d.useCallback(async w=>{if(b(w),v(null),!o)return;const $=`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`;E(!0);try{const q=await r(o.id,$);N(q)}catch{M("No se pudieron cargar los horarios. Intenta de nuevo."),N([])}finally{E(!1)}},[o,r]),Ne=d.useCallback(w=>{v(w)},[]),Se=d.useCallback(()=>{h&&m&&l("form")},[h,m]),we=d.useCallback(async w=>{if(!o||!h||!m)return;const $=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}`,q={serviceId:o.id,date:$,timeSlotId:m.id,...w};g(!0);try{const ke=await t(q);x(ke),z(!0),l("confirmation")}catch{M("No se pudo completar la reserva. Por favor, intenta de nuevo.")}finally{g(!1)}},[o,h,m,t]),G=d.useCallback(()=>{l("service"),u(null),b(void 0),v(null),N([]),x(null),z(!1)},[]),Ce=()=>{switch(i){case"service":return e.jsxs("div",{children:[e.jsx(re,{services:a,selectedServiceId:o==null?void 0:o.id,onSelectService:be}),o&&e.jsx("div",{className:"mt-6",children:e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:ye,icon:e.jsx(f,{name:"arrow-right",size:"sm"}),iconPosition:"end",children:"Continuar"})})]});case"datetime":return e.jsxs("div",{className:"space-y-6",children:[o&&e.jsxs("div",{className:"bg-primary-container rounded-sm px-4 py-3",children:[e.jsx(c,{variant:"label-md",className:"text-primary-on-container/70",children:"Servicio seleccionado"}),e.jsxs(c,{variant:"title-sm",className:"text-primary-on-container",children:[o.name," — ",o.currency,o.price]})]}),e.jsx(ne,{selectedDate:h,onSelectDate:je}),h&&e.jsxs(e.Fragment,{children:[e.jsx(T,{}),p?e.jsx(O,{message:"Buscando horarios...",size:"sm"}):e.jsx(se,{slots:C,selectedSlotId:m==null?void 0:m.id,onSelectSlot:Ne,columns:4})]}),m&&e.jsx("div",{className:"mt-4",children:e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:Se,icon:e.jsx(f,{name:"arrow-right",size:"sm"}),iconPosition:"end",children:"Continuar"})})]});case"form":return e.jsxs("div",{className:"space-y-4",children:[o&&h&&m&&e.jsxs("div",{className:"bg-primary-container rounded-sm px-4 py-3 space-y-1",children:[e.jsx(c,{variant:"label-md",className:"text-primary-on-container/70",children:"Resumen de tu reserva"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{name:"star",size:"sm",color:"#2C3E50"}),e.jsx(c,{variant:"body-sm",className:"text-primary-on-container",children:o.name})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{name:"calendar",size:"sm",color:"#2C3E50"}),e.jsx(c,{variant:"body-sm",className:"text-primary-on-container",children:h.toLocaleDateString("es-ES",{weekday:"short",day:"numeric",month:"short"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{name:"clock",size:"sm",color:"#2C3E50"}),e.jsxs(c,{variant:"body-sm",className:"text-primary-on-container",children:[m.startTime," - ",m.endTime]})]})]}),e.jsx(T,{}),e.jsx(le,{onSubmit:we,loading:L})]});case"confirmation":return e.jsxs("div",{className:"flex flex-col items-center justify-center py-8",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-success-container flex items-center justify-center mb-4",children:e.jsx(f,{name:"check",size:"lg",color:"#27AE60"})}),e.jsx(c,{variant:"headline-sm",align:"center",className:"text-surface-on mb-2",children:"¡Reserva confirmada!"}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-6",children:"Revisa tu email para los detalles."}),e.jsx(y,{variant:"tonal",onClick:G,children:"Nueva reserva"})]})}};return e.jsxs(e.Fragment,{children:[e.jsx(Z,{steps:Ve,currentStep:D,onStepClick:ge,onBack:R,title:s,footer:void 0,children:Ce()}),e.jsx(ce,{open:S,onClose:()=>z(!1),confirmation:j,onNewBooking:G}),e.jsx(de,{open:!!F,onClose:()=>M(null),message:F??"",onRetry:()=>M(null)})]})}function ue({services:a,onFetchSlots:r,onSubmitBooking:t,theme:n="light",companyName:s,className:i=""}){return e.jsx("div",{className:["chronowl-root w-full max-w-[480px]",n==="dark"?"chronowl-dark":"chronowl-light",i].filter(Boolean).join(" "),style:{width:"100%",maxWidth:480},"data-theme":n,children:e.jsx(me,{services:a,onFetchSlots:r,onSubmitBooking:t,companyName:s})})}function xe({htmlFor:a,required:r,children:t,className:n="",...s}){return e.jsxs("label",{htmlFor:a,className:["block text-label-lg text-surface-on font-sans mb-1",n].filter(Boolean).join(" "),...s,children:[t,r&&e.jsx("span",{className:"text-error ml-0.5","aria-label":"requerido",children:"*"})]})}function _e({label:a,htmlFor:r,error:t,helperText:n,required:s,children:i}){return e.jsxs("div",{className:"mb-4 w-full",children:[e.jsx(xe,{htmlFor:r,required:s,children:a}),i,t&&e.jsx(c,{variant:"body-sm",className:"mt-1 px-1 text-error",children:t}),!t&&n&&e.jsx(c,{variant:"body-sm",className:"mt-1 px-1 text-surface-on-variant",children:n})]})}function Ge({slots:a,selectedSlotId:r,onSelectSlot:t,loading:n=!1}){return n?e.jsxs("div",{className:"flex items-center justify-center py-8",children:[e.jsx(U,{size:"md"}),e.jsx(c,{variant:"body-md",className:"ml-3 text-surface-on-variant",children:"Cargando horarios..."})]}):a.length===0?e.jsx(c,{variant:"body-md",className:"text-center py-8 text-surface-on-variant",children:"No hay horarios disponibles para esta fecha."}):e.jsxs("div",{className:"w-full",children:[e.jsx(c,{variant:"title-sm",className:"mb-3 text-surface-on",children:"Selecciona un horario"}),e.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-2",children:a.map(s=>{const i=s.id===r,l=s.available;return e.jsx("button",{type:"button",disabled:!l,onClick:()=>l&&t(s),"aria-pressed":i,"aria-label":`${s.startTime} - ${s.endTime}${l?"":", no disponible"}`,className:["py-2.5 px-3 rounded-sm text-label-lg font-sans text-center","transition-all duration-medium-1 ease-standard","min-h-[44px] min-w-[44px]","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",i?"bg-primary text-primary-on shadow-elevation-1":l?"bg-surface-variant text-surface-on hover:bg-primary-container hover:text-primary-on-container":"bg-surface-variant text-surface-on-variant opacity-40 cursor-not-allowed"].join(" "),children:s.startTime},s.id)})})]})}function he({slot:a,selected:r=!1,onSelect:t}){return e.jsxs("button",{type:"button",disabled:!a.available,onClick:()=>a.available&&t(a),"aria-pressed":r,"aria-label":`${a.startTime} a ${a.endTime}${a.available?"":", no disponible"}`,className:["flex flex-col items-center justify-center py-3 px-4 rounded-sm","min-h-[56px] min-w-[44px]","transition-all duration-medium-1 ease-standard","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",r?"bg-primary text-primary-on shadow-elevation-1":a.available?"bg-surface-variant text-surface-on hover:bg-primary-container hover:text-primary-on-container border border-transparent hover:border-primary/20":"bg-surface-variant text-surface-on-variant opacity-40 cursor-not-allowed line-through"].join(" "),children:[e.jsx(c,{variant:"label-lg",as:"span",className:"inherit",children:a.startTime}),e.jsx(c,{variant:"body-sm",as:"span",className:"opacity-70",children:a.endTime})]})}const fe=d.forwardRef(({icon:a,iconPosition:r="start",...t},n)=>e.jsx(B,{ref:n,leadingIcon:r==="start"?a:void 0,trailingIcon:r==="end"?a:void 0,...t}));fe.displayName="InputWithIcon";function Ke({children:a,orientation:r="horizontal",fullWidth:t=!1}){return e.jsx("div",{className:["flex gap-3",r==="vertical"?"flex-col":"flex-row items-center",t?"w-full [&>*]:flex-1":""].filter(Boolean).join(" "),role:"group",children:a})}function Je({slots:a,selectedSlotId:r,onSelectSlot:t,loading:n=!1}){if(n)return e.jsx(O,{message:"Buscando horarios disponibles..."});const s=a.filter(i=>i.available);return a.length===0||s.length===0?e.jsx(V,{icon:"clock",title:"Sin horarios disponibles",description:"No hay horarios disponibles para la fecha seleccionada. Intenta con otra fecha."}):e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3 px-1",children:[e.jsx(c,{variant:"title-sm",className:"text-surface-on",children:"Horarios disponibles"}),e.jsxs(c,{variant:"label-sm",className:"text-surface-on-variant",children:[s.length," disponible",s.length!==1?"s":""]})]}),e.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2",children:a.map(i=>e.jsx(he,{slot:i,selected:i.id===r,onSelect:t},i.id))})]})}function _({header:a,footer:r,children:t}){return e.jsxs("div",{className:"chronowl-widget flex flex-col w-full max-w-[480px] mx-auto min-h-[400px] max-h-[90vh] bg-surface rounded-xl shadow-elevation-3 overflow-hidden font-sans",children:[a&&e.jsx("div",{className:"shrink-0",children:a}),e.jsx("main",{className:"flex-1 overflow-y-auto px-4 py-4",children:t}),r&&e.jsx("div",{className:"shrink-0",children:r})]})}function Qe({children:a,maxWidth:r="480px"}){return e.jsx("div",{className:"flex items-center justify-center min-h-screen p-4 bg-scrim/40",children:e.jsx("div",{className:"w-full bg-surface rounded-xl shadow-elevation-5 overflow-hidden font-sans",style:{maxWidth:r},children:a})})}function Xe({confirmation:a,onNewBooking:r,onClose:t,companyName:n}){return e.jsx(_,{header:e.jsx(H,{title:"ChronOwl",subtitle:"Reserva confirmada"}),footer:e.jsx(W,{companyName:n,poweredBy:!0}),children:e.jsxs("div",{className:"flex flex-col items-center py-4",children:[e.jsx("div",{className:"w-20 h-20 rounded-full bg-success-container flex items-center justify-center mb-5 animate-bounce",children:e.jsx(f,{name:"check",size:"lg",color:"#27AE60"})}),e.jsx(c,{variant:"headline-sm",align:"center",className:"text-surface-on mb-1",children:"¡Reserva confirmada!"}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-4",children:"Tu cita ha sido agendada exitosamente."}),e.jsx(Y,{status:a.status,label:"Confirmada"}),e.jsx(T,{className:"my-5 w-full"}),e.jsxs("div",{className:"w-full space-y-4 bg-surface-variant rounded-md p-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary-container flex items-center justify-center shrink-0",children:e.jsx(f,{name:"star",size:"sm",color:"#2C3E50"})}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Servicio"}),e.jsx(c,{variant:"body-lg",className:"text-surface-on font-bold",children:a.service.name}),e.jsxs(c,{variant:"body-sm",className:"text-surface-on-variant",children:[a.service.duration," min — ",a.service.currency,a.service.price]})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary-container flex items-center justify-center shrink-0",children:e.jsx(f,{name:"calendar",size:"sm",color:"#2C3E50"})}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Fecha y hora"}),e.jsx(c,{variant:"body-lg",className:"text-surface-on font-bold",children:new Date(a.date).toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long",year:"numeric"})}),e.jsxs(c,{variant:"body-sm",className:"text-surface-on-variant",children:[a.timeSlot.startTime," - ",a.timeSlot.endTime]})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary-container flex items-center justify-center shrink-0",children:e.jsx(f,{name:"user",size:"sm",color:"#2C3E50"})}),e.jsxs("div",{children:[e.jsx(c,{variant:"label-sm",className:"text-surface-on-variant",children:"Cliente"}),e.jsx(c,{variant:"body-lg",className:"text-surface-on font-bold",children:a.clientName}),e.jsx(c,{variant:"body-sm",className:"text-surface-on-variant",children:a.clientEmail})]})]})]}),e.jsxs(c,{variant:"body-sm",align:"center",className:"text-surface-on-variant mt-4",children:["ID de reserva: ",e.jsx("span",{className:"font-bold font-mono",children:a.id})]}),e.jsx(c,{variant:"body-sm",align:"center",className:"text-surface-on-variant mt-1 mb-6",children:"Te hemos enviado un email de confirmación."}),e.jsxs("div",{className:"w-full space-y-2",children:[r&&e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:r,children:"Nueva reserva"}),t&&e.jsx(y,{variant:"tonal",fullWidth:!0,size:"lg",onClick:t,children:"Cerrar"})]})]})})}function Ze({title:a="Sin disponibilidad",message:r="No hay horarios disponibles en este momento. Por favor, intenta más tarde.",onRetry:t,onBack:n,companyName:s}){return e.jsx(_,{header:e.jsx(H,{title:"ChronOwl",onBack:n}),footer:e.jsx(W,{companyName:s,poweredBy:!0}),children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-4",children:[e.jsx("div",{className:"w-20 h-20 rounded-full bg-error-container flex items-center justify-center mb-5",children:e.jsx(f,{name:"alert",size:"lg",color:"#C0392B"})}),e.jsx(c,{variant:"headline-sm",align:"center",className:"text-surface-on mb-2",children:a}),e.jsx(c,{variant:"body-md",align:"center",className:"text-surface-on-variant mb-8 max-w-xs",children:r}),e.jsxs("div",{className:"flex items-center gap-2 mb-8 opacity-30",children:[e.jsx(f,{name:"calendar",size:"lg",color:"#7F8C8D"}),e.jsx(f,{name:"close",size:"md",color:"#C0392B"}),e.jsx(f,{name:"clock",size:"lg",color:"#7F8C8D"})]}),e.jsxs("div",{className:"w-full max-w-xs space-y-3",children:[t&&e.jsx(y,{variant:"filled",fullWidth:!0,size:"lg",onClick:t,icon:e.jsx(f,{name:"spinner",size:"sm"}),iconPosition:"start",children:"Reintentar"}),n&&e.jsx(y,{variant:"tonal",fullWidth:!0,size:"lg",onClick:n,icon:e.jsx(f,{name:"arrow-left",size:"sm"}),iconPosition:"start",children:"Volver al inicio"})]})]})})}const ea={primary:"#2C3E50",onPrimary:"#FFFFFF",primaryContainer:"#E8F4F8",onPrimaryContainer:"#2C3E50",secondary:"#E8F4F8",onSecondary:"#2C3E50",secondaryContainer:"#D1E8F0",onSecondaryContainer:"#1A252F",tertiary:"#1A252F",onTertiary:"#FFFFFF",tertiaryContainer:"#34495E",onTertiaryContainer:"#E8F4F8",neutral:"#7F8C8D",onNeutral:"#FFFFFF",neutralVariant:"#BDC3C7",onNeutralVariant:"#2C3E50",surface:"#FFFFFF",onSurface:"#2C3E50",surfaceVariant:"#F0F3F5",onSurfaceVariant:"#7F8C8D",surfaceDim:"#E0E3E5",surfaceBright:"#FFFFFF",surfaceContainerLowest:"#FFFFFF",surfaceContainerLow:"#F8F9FA",surfaceContainer:"#F0F3F5",surfaceContainerHigh:"#E8EBEE",surfaceContainerHighest:"#E0E3E5",outline:"#BDC3C7",outlineVariant:"#E0E3E5",error:"#C0392B",onError:"#FFFFFF",errorContainer:"#FADBD8",onErrorContainer:"#78281F",warning:"#F39C12",onWarning:"#FFFFFF",warningContainer:"#FEF5E7",onWarningContainer:"#7E5109",success:"#27AE60",onSuccess:"#FFFFFF",successContainer:"#D5F5E3",onSuccessContainer:"#1E8449",inverseSurface:"#2C3E50",inverseOnSurface:"#FFFFFF",inversePrimary:"#A3C4D4",scrim:"#000000",shadow:"#000000"},aa={displayLarge:{fontSize:"57px",lineHeight:"64px",fontWeight:700,letterSpacing:"-0.25px"},displayMedium:{fontSize:"45px",lineHeight:"52px",fontWeight:700,letterSpacing:"0px"},displaySmall:{fontSize:"36px",lineHeight:"44px",fontWeight:700,letterSpacing:"0px"},headlineLarge:{fontSize:"32px",lineHeight:"40px",fontWeight:700,letterSpacing:"0px"},headlineMedium:{fontSize:"28px",lineHeight:"36px",fontWeight:700,letterSpacing:"0px"},headlineSmall:{fontSize:"24px",lineHeight:"32px",fontWeight:700,letterSpacing:"0px"},titleLarge:{fontSize:"22px",lineHeight:"28px",fontWeight:700,letterSpacing:"0px"},titleMedium:{fontSize:"18px",lineHeight:"24px",fontWeight:700,letterSpacing:"0.15px"},titleSmall:{fontSize:"14px",lineHeight:"20px",fontWeight:700,letterSpacing:"0.1px"},bodyLarge:{fontSize:"16px",lineHeight:"24px",fontWeight:400,letterSpacing:"0.15px"},bodyMedium:{fontSize:"14px",lineHeight:"20px",fontWeight:400,letterSpacing:"0.25px"},bodySmall:{fontSize:"12px",lineHeight:"16px",fontWeight:400,letterSpacing:"0.4px"},labelLarge:{fontSize:"14px",lineHeight:"20px",fontWeight:700,letterSpacing:"0.1px"},labelMedium:{fontSize:"12px",lineHeight:"16px",fontWeight:700,letterSpacing:"0.5px"},labelSmall:{fontSize:"11px",lineHeight:"16px",fontWeight:700,letterSpacing:"0.5px"}},ra="'Inter', 'Roboto', system-ui, sans-serif",ta={size0:"0px",size1:"4px",size2:"8px",size3:"12px",size4:"16px",size5:"24px",size6:"32px",size7:"40px",size8:"48px"},na={size0:0,size1:4,size2:8,size3:12,size4:16,size5:24,size6:32,size7:40,size8:48},sa={level0:"none",level1:"0 1px 3px rgba(44, 62, 80, 0.12)",level2:"0 3px 6px rgba(44, 62, 80, 0.16)",level3:"0 6px 10px rgba(44, 62, 80, 0.2)",level4:"0 8px 16px rgba(44, 62, 80, 0.24)",level5:"0 12px 28px rgba(44, 62, 80, 0.3)"},pe={short1:"50ms",short2:"100ms",medium1:"200ms",medium2:"300ms",long1:"400ms",long2:"500ms"},ve={standard:"cubic-bezier(0.2, 0, 0, 1)",emphasized:"cubic-bezier(0.2, 0, 0, 1)",decelerate:"cubic-bezier(0.05, 0.7, 0.1, 1)",accelerate:"cubic-bezier(0.3, 0, 0.8, 0.15)"},ia={duration:pe,easing:ve},la={extraSmall:"4px",small:"8px",medium:"12px",large:"16px",extraLarge:"28px",full:"999px"},I={services:a=>`/api/services/${a}`,availability:(a,r,t)=>`/api/availability/${a}/${r}/${t}`,bookings:"/api/bookings",bookingDetail:(a,r)=>`/api/bookings/${a}/${r}`,cancelBooking:(a,r)=>`/api/bookings/${a}/${r}/cancel`},oa="",ca=3e4;let k={baseUrl:oa,saasId:""};function da(a){if(a.baseUrl!==void 0){const r=a.baseUrl;r&&!r.startsWith("https://")&&!r.includes("localhost")&&!r.includes("127.0.0.1")&&console.warn("[ChronOwl] La URL del API no usa HTTPS. Las API keys se enviarán en texto plano.")}k={...k,...a}}async function P(a,r){if(!k.baseUrl)throw new Error('[ChronOwl] API URL no configurada. Llama a configureApi({ baseUrl: "..." }) primero.');const t=`${k.baseUrl}${a}`,n={"Content-Type":"application/json"};k.apiKey&&(n["x-api-key"]=k.apiKey);const s=new AbortController,i=setTimeout(()=>s.abort(),ca);try{const l=await fetch(t,{...r,headers:{...n,...r==null?void 0:r.headers},signal:s.signal}),o=await l.json();if(!l.ok||!o.success)throw new Error(o.error||`Error ${l.status}`);return o.data}catch(l){throw l.name==="AbortError"?new Error("La solicitud tardó demasiado. Intenta de nuevo."):l}finally{clearTimeout(i)}}const A={async getServices(a){const r=a||k.saasId;return P(I.services(r))},async getAvailability(a,r,t){const n=t||k.saasId;return P(I.availability(n,a,r))},async createBooking(a){return P(I.bookings,{method:"POST",body:JSON.stringify({...a,saasId:a.saasId||k.saasId})})},async cancelBooking(a,r){const t=r||k.saasId;return P(I.cancelBooking(t,a),{method:"PATCH"})}};function ma(a){const[r,t]=d.useState([]),[n,s]=d.useState(!0),[i,l]=d.useState(null),o=d.useCallback(async()=>{s(!0),l(null);try{const u=await A.getServices(a);t(u)}catch(u){l(u instanceof Error?u.message:"Error al cargar servicios")}finally{s(!1)}},[a]);return d.useEffect(()=>{a&&o()},[a,o]),{services:r,loading:n,error:i,refetch:o}}function ua(a){const[r,t]=d.useState([]),[n,s]=d.useState(!1),[i,l]=d.useState(null),o=d.useCallback(async(h,b)=>{s(!0),l(null);try{const m=ie(b),v=await A.getAvailability(h,m,a);t(v)}catch(m){l(m instanceof Error?m.message:"Error al cargar horarios"),t([])}finally{s(!1)}},[a]),u=d.useCallback(()=>{t([]),l(null)},[]);return{slots:r,loading:n,error:i,fetchSlots:o,clearSlots:u}}function xa(a){const[r,t]=d.useState(null),[n,s]=d.useState(!1),[i,l]=d.useState(null),o=d.useCallback(async b=>{s(!0),l(null);try{const m=await A.createBooking({...b,saasId:a});return t(m),m}catch(m){const v=m instanceof Error?m.message:"Error al crear reserva";return l(v),null}finally{s(!1)}},[a]),u=d.useCallback(async b=>{s(!0),l(null);try{await A.cancelBooking(b,a),t(null)}catch(m){l(m instanceof Error?m.message:"Error al cancelar reserva")}finally{s(!1)}},[a]),h=d.useCallback(()=>{t(null),l(null)},[]);return{booking:r,loading:n,error:i,createBooking:o,cancelBooking:u,reset:h}}function ha({initialValues:a,validationRules:r={},onSubmit:t}){const[n,s]=d.useState(a),[i,l]=d.useState({}),[o,u]=d.useState({}),[h,b]=d.useState(!1),m=d.useCallback((g,j)=>{const x=r[g];if(x)return x(j,n)},[r,n]),v=d.useCallback(()=>{const g={};let j=!0;for(const x of Object.keys(n)){const S=m(x,n[x]);S&&(g[x]=S,j=!1)}return l(g),j},[n,m]),C=d.useCallback((g,j)=>{if(s(x=>({...x,[g]:j})),o[g]){const x=m(g,j);l(S=>({...S,[g]:x}))}},[o,m]),N=d.useCallback(g=>{u(x=>({...x,[g]:!0}));const j=m(g,n[g]);l(x=>({...x,[g]:j}))},[n,m]),p=d.useCallback(async()=>{const g={};for(const j of Object.keys(n))g[j]=!0;if(u(g),!!v()){b(!0);try{await t(n)}finally{b(!1)}}},[n,v,t]),E=d.useCallback(()=>{s(a),l({}),u({})},[a]),L=Object.values(i).every(g=>!g);return{values:n,errors:i,touched:o,isValid:L,isSubmitting:h,handleChange:C,handleBlur:N,handleSubmit:p,reset:E}}function fa(...a){return a.filter(Boolean).join(" ")}function pa(a,r="$"){return`${r}${a.toLocaleString()}`}function va(a){if(a<60)return`${a} min`;const r=Math.floor(a/60),t=a%60;return t>0?`${r}h ${t}min`:`${r}h`}const ga=["Servicio","Fecha y hora","Datos","Confirmación"],ba={xs:320,sm:480,md:768,lg:1024,xl:1200},ya={es:{steps:["Servicio","Fecha y hora","Datos","Confirmación"],selectService:"Selecciona un servicio",selectDate:"Selecciona una fecha",selectTime:"Selecciona un horario",yourData:"Tus datos",confirm:"Confirmar reserva",continue:"Continuar",back:"Volver",close:"Cerrar",newBooking:"Nueva reserva",loading:"Cargando...",noSlots:"No hay horarios disponibles",noServices:"No hay servicios disponibles",bookingConfirmed:"Reserva confirmada",bookingError:"Error al crear la reserva",required:"Este campo es requerido",invalidEmail:"Email no válido",poweredBy:"Powered by ChronOwl"},en:{steps:["Service","Date & Time","Details","Confirmation"],selectService:"Select a service",selectDate:"Select a date",selectTime:"Select a time slot",yourData:"Your details",confirm:"Confirm booking",continue:"Continue",back:"Back",close:"Close",newBooking:"New booking",loading:"Loading...",noSlots:"No available time slots",noServices:"No services available",bookingConfirmed:"Booking confirmed",bookingError:"Error creating booking",required:"This field is required",invalidEmail:"Invalid email",poweredBy:"Powered by ChronOwl"}};exports.API_ENDPOINTS=I;exports.AvailabilityGrid=Je;exports.AvailabilitySlot=he;exports.BOOKING_STEPS=ga;exports.BREAKPOINTS=ba;exports.Badge=oe;exports.BookingForm=le;exports.BookingPage=me;exports.BookingPageTemplate=Z;exports.Button=y;exports.ButtonGroup=Ke;exports.Calendar=ne;exports.Card=ee;exports.CenteredLayout=Qe;exports.ChronOwlWidget=ue;exports.ConfirmationBadge=Y;exports.ConfirmationModal=ce;exports.ConfirmationPage=Xe;exports.DateSelector=te;exports.Divider=T;exports.EmptyState=V;exports.ErrorModal=de;exports.ErrorPage=Ze;exports.Footer=W;exports.FormGroup=_e;exports.Header=H;exports.Icon=f;exports.Input=B;exports.InputWithIcon=fe;exports.LOCALE=ya;exports.Label=xe;exports.LoadingState=O;exports.MainLayout=_;exports.ServiceCard=ae;exports.ServiceList=re;exports.Spinner=U;exports.Stepper=X;exports.TimeSelector=Ge;exports.TimeSlotSelector=se;exports.Typography=c;exports.chronowlApi=A;exports.cn=fa;exports.colors=ea;exports.configureApi=da;exports.corners=la;exports.dateToString=ie;exports.default=ue;exports.duration=pe;exports.easing=ve;exports.elevation=sa;exports.fontFamily=ra;exports.formatCurrency=pa;exports.formatDate=We;exports.formatDateShort=Oe;exports.formatDuration=va;exports.motion=ia;exports.spacing=ta;exports.spacingValues=na;exports.typescale=aa;exports.useAvailability=ua;exports.useBooking=xa;exports.useForm=ha;exports.useServices=ma;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { jsx as e, jsxs as s, Fragment as q } from "react/jsx-runtime";
2
- import { forwardRef as U, useState as p, useMemo as J, useId as he, useRef as ee, useEffect as I, useCallback as N } from "react";
1
+ import { jsx as e, jsxs as s, Fragment as Y } from "react/jsx-runtime";
2
+ import { forwardRef as q, useState as p, useMemo as J, useId as he, useRef as ee, useEffect as I, useCallback as N } from "react";
3
3
  const fe = {
4
4
  "display-lg": "text-display-lg",
5
5
  "display-md": "text-display-md",
@@ -97,7 +97,7 @@ const ge = {
97
97
  success: "text-success hover:bg-success-container",
98
98
  warning: "text-warning hover:bg-warning-container"
99
99
  }
100
- }, S = U(
100
+ }, S = q(
101
101
  ({
102
102
  variant: r = "filled",
103
103
  color: a = "primary",
@@ -149,7 +149,7 @@ const ge = {
149
149
  )
150
150
  ]
151
151
  }
152
- ) : /* @__PURE__ */ s(q, { children: [
152
+ ) : /* @__PURE__ */ s(Y, { children: [
153
153
  l && o === "start" && /* @__PURE__ */ e("span", { className: "inline-flex shrink-0", children: l }),
154
154
  u && /* @__PURE__ */ e("span", { children: u }),
155
155
  l && o === "end" && /* @__PURE__ */ e("span", { className: "inline-flex shrink-0", children: l })
@@ -183,22 +183,43 @@ const xe = {
183
183
  "arrow-left": "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z",
184
184
  "arrow-right": "M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z",
185
185
  spinner: "M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z",
186
- owl: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-1-3h6l-1 3H10zm5-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-5c-2.76 0-5 1.12-5 2.5h10C17 8.12 14.76 7 12 7z"
186
+ owl: "OWL_MULTIPATH"
187
187
  };
188
188
  function v({ name: r, size: a = "md", color: n, className: t = "", ...i }) {
189
- const l = xe[a], o = ye[r];
189
+ const l = xe[a], o = n || "currentColor";
190
+ if (r === "owl")
191
+ return /* @__PURE__ */ e(
192
+ "span",
193
+ {
194
+ className: `material-symbols-outlined ${t}`,
195
+ style: {
196
+ fontSize: `${l}px`,
197
+ color: o,
198
+ fontVariationSettings: "'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24",
199
+ lineHeight: 1,
200
+ display: "inline-flex",
201
+ alignItems: "center",
202
+ justifyContent: "center",
203
+ width: l,
204
+ height: l
205
+ },
206
+ "aria-hidden": "true",
207
+ children: "owl"
208
+ }
209
+ );
210
+ const c = ye[r];
190
211
  return /* @__PURE__ */ e(
191
212
  "svg",
192
213
  {
193
214
  width: l,
194
215
  height: l,
195
216
  viewBox: "0 0 24 24",
196
- fill: n || "currentColor",
217
+ fill: o,
197
218
  xmlns: "http://www.w3.org/2000/svg",
198
219
  "aria-hidden": "true",
199
220
  className: t,
200
221
  ...i,
201
- children: /* @__PURE__ */ e("path", { d: o })
222
+ children: /* @__PURE__ */ e("path", { d: c })
202
223
  }
203
224
  );
204
225
  }
@@ -542,21 +563,21 @@ function Me({
542
563
  /* @__PURE__ */ e("div", { className: "grid grid-cols-7 gap-0.5 mb-1", children: Le.map((h) => /* @__PURE__ */ e("div", { className: "text-center text-label-sm text-surface-on-variant py-1", children: h }, h)) }),
543
564
  /* @__PURE__ */ e("div", { className: "grid grid-cols-7 gap-0.5", children: w.map((h, C) => {
544
565
  if (h === null) return /* @__PURE__ */ e("div", {}, `empty-${C}`);
545
- const L = new Date(f, c, h), M = D(h), B = x(h) && !M, T = r ? Z(L, r) : !1, R = Z(L, o);
566
+ const L = new Date(f, c, h), M = D(h), T = x(h) && !M, B = r ? Z(L, r) : !1, R = Z(L, o);
546
567
  return /* @__PURE__ */ e(
547
568
  "button",
548
569
  {
549
570
  type: "button",
550
571
  disabled: M,
551
- onClick: () => B && a(L),
552
- "aria-pressed": T,
572
+ onClick: () => T && a(L),
573
+ "aria-pressed": B,
553
574
  "aria-label": `${h} de ${Q[c]}${M ? ", no disponible" : ""}`,
554
575
  className: [
555
576
  "aspect-square flex items-center justify-center rounded-full",
556
577
  "text-body-sm font-sans min-h-[36px] min-w-[36px]",
557
578
  "transition-all duration-short-2 ease-standard",
558
579
  "focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-primary",
559
- T ? "bg-primary text-primary-on font-bold" : R && !M ? "border border-primary text-primary font-bold" : B ? "text-surface-on hover:bg-primary-container cursor-pointer" : "text-surface-on-variant opacity-30 cursor-not-allowed"
580
+ B ? "bg-primary text-primary-on font-bold" : R && !M ? "border border-primary text-primary font-bold" : T ? "text-surface-on hover:bg-primary-container cursor-pointer" : "text-surface-on-variant opacity-30 cursor-not-allowed"
560
581
  ].join(" "),
561
582
  children: h
562
583
  },
@@ -642,7 +663,7 @@ function De({
642
663
  ] })
643
664
  ] });
644
665
  }
645
- const $ = U(
666
+ const $ = q(
646
667
  ({
647
668
  label: r,
648
669
  error: a,
@@ -708,10 +729,10 @@ const $ = U(
708
729
  }
709
730
  );
710
731
  $.displayName = "Input";
711
- function Be(r) {
732
+ function Te(r) {
712
733
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r);
713
734
  }
714
- function Te(r) {
735
+ function Be(r) {
715
736
  return /^[\d\s\-+()]{7,20}$/.test(r);
716
737
  }
717
738
  function ar(r, a = "es-ES") {
@@ -735,7 +756,7 @@ function $e(r) {
735
756
  function He({ onSubmit: r, loading: a = !1, initialValues: n }) {
736
757
  const [t, i] = p((n == null ? void 0 : n.clientName) ?? ""), [l, o] = p((n == null ? void 0 : n.clientEmail) ?? ""), [c, u] = p((n == null ? void 0 : n.clientPhone) ?? ""), [f, y] = p((n == null ? void 0 : n.notes) ?? ""), [m, b] = p({}), k = () => {
737
758
  const g = {};
738
- return t.trim() || (g.clientName = "El nombre es requerido"), l.trim() ? Be(l) || (g.clientEmail = "Email no válido") : g.clientEmail = "El email es requerido", c.trim() ? Te(c) || (g.clientPhone = "Teléfono no válido") : g.clientPhone = "El teléfono es requerido", b(g), Object.keys(g).length === 0;
759
+ return t.trim() || (g.clientName = "El nombre es requerido"), l.trim() ? Te(l) || (g.clientEmail = "Email no válido") : g.clientEmail = "El email es requerido", c.trim() ? Be(c) || (g.clientPhone = "Teléfono no válido") : g.clientPhone = "El teléfono es requerido", b(g), Object.keys(g).length === 0;
739
760
  };
740
761
  return /* @__PURE__ */ s("form", { onSubmit: (g) => {
741
762
  g.preventDefault(), k() && r({
@@ -1026,25 +1047,25 @@ function Re({
1026
1047
  }
1027
1048
  );
1028
1049
  }
1029
- const Ye = ["Servicio", "Fecha y hora", "Datos", "Confirmación"], qe = {
1050
+ const Ue = ["Servicio", "Fecha y hora", "Datos", "Confirmación"], Ye = {
1030
1051
  service: 0,
1031
1052
  datetime: 1,
1032
1053
  form: 2,
1033
1054
  confirmation: 3
1034
1055
  };
1035
- function Ue({
1056
+ function qe({
1036
1057
  services: r,
1037
1058
  onFetchSlots: a,
1038
1059
  onSubmitBooking: n,
1039
1060
  companyName: t = "ChronOwl",
1040
1061
  title: i = t
1041
1062
  }) {
1042
- const [l, o] = p("service"), [c, u] = p(null), [f, y] = p(), [m, b] = p(null), [k, z] = p([]), [g, j] = p(!1), [D, x] = p(!1), [w, h] = p(null), [C, L] = p(!1), [M, B] = p(null), T = qe[l], R = N(() => {
1063
+ const [l, o] = p("service"), [c, u] = p(null), [f, y] = p(), [m, b] = p(null), [k, z] = p([]), [g, j] = p(!1), [D, x] = p(!1), [w, h] = p(null), [C, L] = p(!1), [M, T] = p(null), B = Ye[l], R = N(() => {
1043
1064
  l === "datetime" ? (o("service"), y(void 0), b(null), z([])) : l === "form" && o("datetime");
1044
1065
  }, [l]), ie = N((F) => {
1045
1066
  const H = ["service", "datetime", "form", "confirmation"];
1046
- F < T && o(H[F]);
1047
- }, [T]), se = N((F) => {
1067
+ F < B && o(H[F]);
1068
+ }, [B]), se = N((F) => {
1048
1069
  u(F);
1049
1070
  }, []), le = N(() => {
1050
1071
  c && (o("datetime"), y(void 0), b(null), z([]));
@@ -1054,10 +1075,10 @@ function Ue({
1054
1075
  const H = `${F.getFullYear()}-${String(F.getMonth() + 1).padStart(2, "0")}-${String(F.getDate()).padStart(2, "0")}`;
1055
1076
  j(!0);
1056
1077
  try {
1057
- const Y = await a(c.id, H);
1058
- z(Y);
1078
+ const U = await a(c.id, H);
1079
+ z(U);
1059
1080
  } catch {
1060
- B("No se pudieron cargar los horarios. Intenta de nuevo."), z([]);
1081
+ T("No se pudieron cargar los horarios. Intenta de nuevo."), z([]);
1061
1082
  } finally {
1062
1083
  j(!1);
1063
1084
  }
@@ -1070,7 +1091,7 @@ function Ue({
1070
1091
  }, [f, m]), me = N(
1071
1092
  async (F) => {
1072
1093
  if (!c || !f || !m) return;
1073
- const H = `${f.getFullYear()}-${String(f.getMonth() + 1).padStart(2, "0")}-${String(f.getDate()).padStart(2, "0")}`, Y = {
1094
+ const H = `${f.getFullYear()}-${String(f.getMonth() + 1).padStart(2, "0")}-${String(f.getDate()).padStart(2, "0")}`, U = {
1074
1095
  serviceId: c.id,
1075
1096
  date: H,
1076
1097
  timeSlotId: m.id,
@@ -1078,10 +1099,10 @@ function Ue({
1078
1099
  };
1079
1100
  x(!0);
1080
1101
  try {
1081
- const ue = await n(Y);
1102
+ const ue = await n(U);
1082
1103
  h(ue), L(!0), o("confirmation");
1083
1104
  } catch {
1084
- B("No se pudo completar la reserva. Por favor, intenta de nuevo.");
1105
+ T("No se pudo completar la reserva. Por favor, intenta de nuevo.");
1085
1106
  } finally {
1086
1107
  x(!1);
1087
1108
  }
@@ -1090,12 +1111,12 @@ function Ue({
1090
1111
  ), G = N(() => {
1091
1112
  o("service"), u(null), y(void 0), b(null), z([]), h(null), L(!1);
1092
1113
  }, []);
1093
- return /* @__PURE__ */ s(q, { children: [
1114
+ return /* @__PURE__ */ s(Y, { children: [
1094
1115
  /* @__PURE__ */ e(
1095
1116
  we,
1096
1117
  {
1097
- steps: Ye,
1098
- currentStep: T,
1118
+ steps: Ue,
1119
+ currentStep: B,
1099
1120
  onStepClick: ie,
1100
1121
  onBack: R,
1101
1122
  title: i,
@@ -1143,7 +1164,7 @@ function Ue({
1143
1164
  onSelectDate: oe
1144
1165
  }
1145
1166
  ),
1146
- f && /* @__PURE__ */ s(q, { children: [
1167
+ f && /* @__PURE__ */ s(Y, { children: [
1147
1168
  /* @__PURE__ */ e(A, {}),
1148
1169
  g ? /* @__PURE__ */ e(K, { message: "Buscando horarios...", size: "sm" }) : /* @__PURE__ */ e(
1149
1170
  De,
@@ -1220,9 +1241,9 @@ function Ue({
1220
1241
  Re,
1221
1242
  {
1222
1243
  open: !!M,
1223
- onClose: () => B(null),
1244
+ onClose: () => T(null),
1224
1245
  message: M ?? "",
1225
- onRetry: () => B(null)
1246
+ onRetry: () => T(null)
1226
1247
  }
1227
1248
  )
1228
1249
  ] });
@@ -1246,7 +1267,7 @@ function tr({
1246
1267
  style: { width: "100%", maxWidth: 480 },
1247
1268
  "data-theme": t,
1248
1269
  children: /* @__PURE__ */ e(
1249
- Ue,
1270
+ qe,
1250
1271
  {
1251
1272
  services: r,
1252
1273
  onFetchSlots: a,
@@ -1347,7 +1368,7 @@ function _e({ slot: r, selected: a = !1, onSelect: n }) {
1347
1368
  }
1348
1369
  );
1349
1370
  }
1350
- const Ke = U(
1371
+ const Ke = q(
1351
1372
  ({ icon: r, iconPosition: a = "start", ...n }, t) => /* @__PURE__ */ e(
1352
1373
  $,
1353
1374
  {
@@ -1994,7 +2015,7 @@ export {
1994
2015
  Lr as BREAKPOINTS,
1995
2016
  We as Badge,
1996
2017
  He as BookingForm,
1997
- Ue as BookingPage,
2018
+ qe as BookingPage,
1998
2019
  we as BookingPageTemplate,
1999
2020
  S as Button,
2000
2021
  lr as ButtonGroup,
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- :root,.chronowl-light{--co-primary: #2C3E50;--co-on-primary: #FFFFFF;--co-primary-container: #E8F4F8;--co-on-primary-container: #2C3E50;--co-secondary: #E8F4F8;--co-on-secondary: #2C3E50;--co-secondary-container: #D1E8F0;--co-on-secondary-container: #1A252F;--co-tertiary: #1A252F;--co-on-tertiary: #FFFFFF;--co-tertiary-container: #34495E;--co-on-tertiary-container: #E8F4F8;--co-neutral: #7F8C8D;--co-on-neutral: #FFFFFF;--co-neutral-variant: #BDC3C7;--co-on-neutral-variant: #2C3E50;--co-surface: #FFFFFF;--co-on-surface: #2C3E50;--co-surface-variant: #F0F3F5;--co-on-surface-variant: #7F8C8D;--co-surface-dim: #E0E3E5;--co-surface-bright: #FFFFFF;--co-surface-container-lowest: #FFFFFF;--co-surface-container-low: #F8F9FA;--co-surface-container: #F0F3F5;--co-surface-container-high: #E8EBEE;--co-surface-container-highest: #E0E3E5;--co-outline: #BDC3C7;--co-outline-variant: #E0E3E5;--co-error: #C0392B;--co-on-error: #FFFFFF;--co-error-container: #FADBD8;--co-on-error-container: #78281F;--co-warning: #F39C12;--co-on-warning: #FFFFFF;--co-warning-container: #FEF5E7;--co-on-warning-container: #7E5109;--co-success: #27AE60;--co-on-success: #FFFFFF;--co-success-container: #D5F5E3;--co-on-success-container: #1E8449;--co-inverse-surface: #2C3E50;--co-inverse-on-surface: #FFFFFF;--co-inverse-primary: #A3C4D4;--co-scrim: #000000;--co-shadow: #000000;--co-font-family: "Inter", "Roboto", system-ui, sans-serif;--co-elevation-0: none;--co-elevation-1: 0 1px 3px rgba(44, 62, 80, .12);--co-elevation-2: 0 3px 6px rgba(44, 62, 80, .16);--co-elevation-3: 0 6px 10px rgba(44, 62, 80, .2);--co-elevation-4: 0 8px 16px rgba(44, 62, 80, .24);--co-elevation-5: 0 12px 28px rgba(44, 62, 80, .3);--co-space-0: 0px;--co-space-1: 4px;--co-space-2: 8px;--co-space-3: 12px;--co-space-4: 16px;--co-space-5: 24px;--co-space-6: 32px;--co-space-7: 40px;--co-space-8: 48px;--co-corner-xs: 4px;--co-corner-sm: 8px;--co-corner-md: 12px;--co-corner-lg: 16px;--co-corner-xl: 28px;--co-corner-full: 999px;--co-duration-short-1: 50ms;--co-duration-short-2: .1s;--co-duration-medium-1: .2s;--co-duration-medium-2: .3s;--co-duration-long-1: .4s;--co-duration-long-2: .5s;--co-easing-standard: cubic-bezier(.2, 0, 0, 1);--co-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--co-easing-decelerate: cubic-bezier(.05, .7, .1, 1);--co-easing-accelerate: cubic-bezier(.3, 0, .8, .15)}.chronowl-dark{--co-primary: #A3C4D4;--co-on-primary: #1A252F;--co-primary-container: #2C3E50;--co-on-primary-container: #E8F4F8;--co-secondary: #34495E;--co-on-secondary: #E8F4F8;--co-secondary-container: #1A252F;--co-on-secondary-container: #D1E8F0;--co-tertiary: #E8F4F8;--co-on-tertiary: #1A252F;--co-neutral: #95A5A6;--co-on-neutral: #1A252F;--co-neutral-variant: #5D6D7E;--co-on-neutral-variant: #E8F4F8;--co-surface: #1A252F;--co-on-surface: #E8F4F8;--co-surface-variant: #2C3E50;--co-on-surface-variant: #95A5A6;--co-surface-dim: #141C23;--co-surface-bright: #34495E;--co-surface-container-lowest: #0F161B;--co-surface-container-low: #1A252F;--co-surface-container: #212F3C;--co-surface-container-high: #2C3E50;--co-surface-container-highest: #34495E;--co-outline: #5D6D7E;--co-outline-variant: #34495E;--co-error: #E74C3C;--co-on-error: #FFFFFF;--co-error-container: #78281F;--co-on-error-container: #FADBD8;--co-warning: #F5B041;--co-on-warning: #1A252F;--co-warning-container: #7E5109;--co-on-warning-container: #FEF5E7;--co-success: #2ECC71;--co-on-success: #1A252F;--co-success-container: #1E8449;--co-on-success-container: #D5F5E3;--co-inverse-surface: #E8F4F8;--co-inverse-on-surface: #1A252F;--co-inverse-primary: #2C3E50;--co-elevation-1: 0 1px 3px rgba(0, 0, 0, .3);--co-elevation-2: 0 3px 6px rgba(0, 0, 0, .4);--co-elevation-3: 0 6px 10px rgba(0, 0, 0, .45);--co-elevation-4: 0 8px 16px rgba(0, 0, 0, .5);--co-elevation-5: 0 12px 28px rgba(0, 0, 0, .6)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Roboto,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.chronowl-root{font-family:var(--co-font-family);color:var(--co-on-surface);background-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.chronowl-root *,.chronowl-root *:before,.chronowl-root *:after{box-sizing:border-box}.chronowl-root :focus-visible{outline:2px solid var(--co-primary);outline-offset:2px}.chronowl-root{scroll-behavior:smooth}.chronowl-root ::-webkit-scrollbar{width:4px}.chronowl-root ::-webkit-scrollbar-track{background:transparent}.chronowl-root ::-webkit-scrollbar-thumb{background-color:var(--co-neutral-variant);border-radius:var(--co-corner-full)}.container{width:100%}@media (min-width: 320px){.container{max-width:320px}}@media (min-width: 480px){.container{max-width:480px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1200px){.container{max-width:1200px}}@media (min-width: 1536px){.container{max-width:1536px}}.chronowl-widget{container-name:chronowl}@keyframes chronowl-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes chronowl-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes chronowl-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes chronowl-pulse{0%,to{opacity:1}50%{opacity:.6}}.chronowl-root dialog::backdrop{background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chronowl-root dialog[open]{animation:chronowl-scale-in var(--co-duration-medium-2) var(--co-easing-decelerate) both}@container chronowl (max-width: 360px){.chronowl-widget{font-size:14px}}@container chronowl (min-width: 480px){.chronowl-widget{font-size:16px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.left-11{left:2.75rem}.left-3{left:.75rem}.left-4{left:1rem}.right-3{right:.75rem}.top-1\/2{top:50%}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.max-h-\[90vh\]{max-height:90vh}.min-h-\[36px\]{min-height:36px}.min-h-\[400px\]{min-height:400px}.min-h-\[44px\]{min-height:44px}.min-h-\[56px\]{min-height:56px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[90vw\]{width:90vw}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[36px\]{min-width:36px}.min-w-\[44px\]{min-width:44px}.max-w-\[320px\]{max-width:320px}.max-w-\[480px\]{max-width:480px}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.origin-left{transform-origin:left}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:999px}.rounded-md{border-radius:12px}.rounded-sm{border-radius:8px}.rounded-xl{border-radius:28px}.rounded-xs{border-radius:4px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-current{border-color:currentColor}.border-error{--tw-border-opacity: 1;border-color:rgb(192 57 43 / var(--tw-border-opacity, 1))}.border-neutral-variant{--tw-border-opacity: 1;border-color:rgb(189 195 199 / var(--tw-border-opacity, 1))}.border-neutral-variant\/30{border-color:#bdc3c74d}.border-neutral-variant\/40{border-color:#bdc3c766}.border-primary{--tw-border-opacity: 1;border-color:rgb(44 62 80 / var(--tw-border-opacity, 1))}.border-success{--tw-border-opacity: 1;border-color:rgb(39 174 96 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-warning{--tw-border-opacity: 1;border-color:rgb(243 156 18 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.bg-error{--tw-bg-opacity: 1;background-color:rgb(192 57 43 / var(--tw-bg-opacity, 1))}.bg-error-container{--tw-bg-opacity: 1;background-color:rgb(250 219 216 / var(--tw-bg-opacity, 1))}.bg-neutral-variant{--tw-bg-opacity: 1;background-color:rgb(189 195 199 / var(--tw-bg-opacity, 1))}.bg-neutral-variant\/40{background-color:#bdc3c766}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(44 62 80 / var(--tw-bg-opacity, 1))}.bg-primary-container,.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.bg-secondary-container{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.bg-success{--tw-bg-opacity: 1;background-color:rgb(39 174 96 / var(--tw-bg-opacity, 1))}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-surface-variant{--tw-bg-opacity: 1;background-color:rgb(240 243 245 / var(--tw-bg-opacity, 1))}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(243 156 18 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-11{padding-left:2.75rem}.pr-11{padding-right:2.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Inter,Roboto,system-ui,sans-serif}.text-body-lg{font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:400}.text-body-md{font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}.text-body-sm{font-size:12px;line-height:16px;letter-spacing:.4px;font-weight:400}.text-display-lg{font-size:57px;line-height:64px;letter-spacing:-.25px;font-weight:700}.text-display-md{font-size:45px;line-height:52px;letter-spacing:0px;font-weight:700}.text-display-sm{font-size:36px;line-height:44px;letter-spacing:0px;font-weight:700}.text-headline-lg{font-size:32px;line-height:40px;letter-spacing:0px;font-weight:700}.text-headline-md{font-size:28px;line-height:36px;letter-spacing:0px;font-weight:700}.text-headline-sm{font-size:24px;line-height:32px;letter-spacing:0px;font-weight:700}.text-label-lg{font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:700}.text-label-md{font-size:12px;line-height:16px;letter-spacing:.5px;font-weight:700}.text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.text-title-lg{font-size:22px;line-height:28px;letter-spacing:0px;font-weight:700}.text-title-md{font-size:18px;line-height:24px;letter-spacing:.15px;font-weight:700}.text-title-sm{font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:700}.font-bold{font-weight:700}.text-error{--tw-text-opacity: 1;color:rgb(192 57 43 / var(--tw-text-opacity, 1))}.text-error-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-error-on-container{--tw-text-opacity: 1;color:rgb(120 40 31 / var(--tw-text-opacity, 1))}.text-neutral{--tw-text-opacity: 1;color:rgb(127 140 141 / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-primary-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-primary-on-container{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-primary-on-container\/70{color:#2c3e50b3}.text-secondary-on{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-secondary-on-container{--tw-text-opacity: 1;color:rgb(26 37 47 / var(--tw-text-opacity, 1))}.text-success{--tw-text-opacity: 1;color:rgb(39 174 96 / var(--tw-text-opacity, 1))}.text-success-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-surface-on{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-surface-on-variant{--tw-text-opacity: 1;color:rgb(127 140 141 / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(243 156 18 / var(--tw-text-opacity, 1))}.text-warning-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.placeholder-transparent::-moz-placeholder{color:transparent}.placeholder-transparent::placeholder{color:transparent}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-0{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-1{--tw-shadow: 0 1px 3px rgba(44, 62, 80, .12);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-2{--tw-shadow: 0 3px 6px rgba(44, 62, 80, .16);--tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-3{--tw-shadow: 0 6px 10px rgba(44, 62, 80, .2);--tw-shadow-colored: 0 6px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-4{--tw-shadow: 0 8px 16px rgba(44, 62, 80, .24);--tw-shadow-colored: 0 8px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-5{--tw-shadow: 0 12px 28px rgba(44, 62, 80, .3);--tw-shadow-colored: 0 12px 28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary{--tw-ring-opacity: 1;--tw-ring-color: rgb(44 62 80 / var(--tw-ring-opacity, 1))}.ring-primary\/30{--tw-ring-color: rgb(44 62 80 / .3)}.ring-offset-2{--tw-ring-offset-width: 2px}.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)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-medium-1{transition-duration:.2s}.duration-short-2{transition-duration:.1s}.ease-standard{transition-timing-function:cubic-bezier(.2,0,0,1)}.chronowl-root ::-moz-selection{background-color:var(--co-primary-container);color:var(--co-on-primary-container)}.chronowl-root ::selection{background-color:var(--co-primary-container);color:var(--co-on-primary-container)}.backdrop\:backdrop-blur-sm::backdrop{--tw-backdrop-blur: blur(4px);-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)}.hover\:border-primary\/20:hover{border-color:#2c3e5033}.hover\:border-primary\/30:hover{border-color:#2c3e504d}.hover\:bg-error-container:hover{--tw-bg-opacity: 1;background-color:rgb(250 219 216 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-container:hover{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-800:hover{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary-container:hover{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-surface-variant:hover{--tw-bg-opacity: 1;background-color:rgb(240 243 245 / var(--tw-bg-opacity, 1))}.hover\:bg-tertiary:hover{--tw-bg-opacity: 1;background-color:rgb(26 37 47 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.hover\:text-primary-on-container:hover{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.hover\:shadow-elevation-2:hover{--tw-shadow: 0 3px 6px rgba(44, 62, 80, .16);--tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-error:focus{--tw-border-opacity: 1;border-color:rgb(192 57 43 / var(--tw-border-opacity, 1))}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(44 62 80 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-error:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(192 57 43 / var(--tw-ring-opacity, 1))}.focus\:ring-primary:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(44 62 80 / var(--tw-ring-opacity, 1))}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary:focus-visible{outline-color:#2c3e50}.active\:bg-green-800:active{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity, 1))}.active\:bg-red-900:active{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.active\:bg-secondary-container:active{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.active\:bg-tertiary:active{--tw-bg-opacity: 1;background-color:rgb(26 37 47 / var(--tw-bg-opacity, 1))}.active\:bg-yellow-700:active{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.peer:focus~.peer-focus\:top-0{top:0}.peer:focus~.peer-focus\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:focus~.peer-focus\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:focus~.peer-focus\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:focus~.peer-focus\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:focus~.peer-focus\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.peer:focus~.peer-focus\:text-error{--tw-text-opacity: 1;color:rgb(192 57 43 / var(--tw-text-opacity, 1))}.peer:focus~.peer-focus\:text-primary{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:top-0{top:0}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:top-0{top:0}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}@media (min-width: 480px){.sm\:inline{display:inline}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.\[\&\>\*\]\:flex-1>*{flex:1 1 0%}
1
+ @import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&icon_names=owl&display=swap";:root,.chronowl-light{--co-primary: #2C3E50;--co-on-primary: #FFFFFF;--co-primary-container: #E8F4F8;--co-on-primary-container: #2C3E50;--co-secondary: #E8F4F8;--co-on-secondary: #2C3E50;--co-secondary-container: #D1E8F0;--co-on-secondary-container: #1A252F;--co-tertiary: #1A252F;--co-on-tertiary: #FFFFFF;--co-tertiary-container: #34495E;--co-on-tertiary-container: #E8F4F8;--co-neutral: #7F8C8D;--co-on-neutral: #FFFFFF;--co-neutral-variant: #BDC3C7;--co-on-neutral-variant: #2C3E50;--co-surface: #FFFFFF;--co-on-surface: #2C3E50;--co-surface-variant: #F0F3F5;--co-on-surface-variant: #7F8C8D;--co-surface-dim: #E0E3E5;--co-surface-bright: #FFFFFF;--co-surface-container-lowest: #FFFFFF;--co-surface-container-low: #F8F9FA;--co-surface-container: #F0F3F5;--co-surface-container-high: #E8EBEE;--co-surface-container-highest: #E0E3E5;--co-outline: #BDC3C7;--co-outline-variant: #E0E3E5;--co-error: #C0392B;--co-on-error: #FFFFFF;--co-error-container: #FADBD8;--co-on-error-container: #78281F;--co-warning: #F39C12;--co-on-warning: #FFFFFF;--co-warning-container: #FEF5E7;--co-on-warning-container: #7E5109;--co-success: #27AE60;--co-on-success: #FFFFFF;--co-success-container: #D5F5E3;--co-on-success-container: #1E8449;--co-inverse-surface: #2C3E50;--co-inverse-on-surface: #FFFFFF;--co-inverse-primary: #A3C4D4;--co-scrim: #000000;--co-shadow: #000000;--co-font-family: "Inter", "Roboto", system-ui, sans-serif;--co-elevation-0: none;--co-elevation-1: 0 1px 3px rgba(44, 62, 80, .12);--co-elevation-2: 0 3px 6px rgba(44, 62, 80, .16);--co-elevation-3: 0 6px 10px rgba(44, 62, 80, .2);--co-elevation-4: 0 8px 16px rgba(44, 62, 80, .24);--co-elevation-5: 0 12px 28px rgba(44, 62, 80, .3);--co-space-0: 0px;--co-space-1: 4px;--co-space-2: 8px;--co-space-3: 12px;--co-space-4: 16px;--co-space-5: 24px;--co-space-6: 32px;--co-space-7: 40px;--co-space-8: 48px;--co-corner-xs: 4px;--co-corner-sm: 8px;--co-corner-md: 12px;--co-corner-lg: 16px;--co-corner-xl: 28px;--co-corner-full: 999px;--co-duration-short-1: 50ms;--co-duration-short-2: .1s;--co-duration-medium-1: .2s;--co-duration-medium-2: .3s;--co-duration-long-1: .4s;--co-duration-long-2: .5s;--co-easing-standard: cubic-bezier(.2, 0, 0, 1);--co-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--co-easing-decelerate: cubic-bezier(.05, .7, .1, 1);--co-easing-accelerate: cubic-bezier(.3, 0, .8, .15)}.chronowl-dark{--co-primary: #A3C4D4;--co-on-primary: #1A252F;--co-primary-container: #2C3E50;--co-on-primary-container: #E8F4F8;--co-secondary: #34495E;--co-on-secondary: #E8F4F8;--co-secondary-container: #1A252F;--co-on-secondary-container: #D1E8F0;--co-tertiary: #E8F4F8;--co-on-tertiary: #1A252F;--co-neutral: #95A5A6;--co-on-neutral: #1A252F;--co-neutral-variant: #5D6D7E;--co-on-neutral-variant: #E8F4F8;--co-surface: #1A252F;--co-on-surface: #E8F4F8;--co-surface-variant: #2C3E50;--co-on-surface-variant: #95A5A6;--co-surface-dim: #141C23;--co-surface-bright: #34495E;--co-surface-container-lowest: #0F161B;--co-surface-container-low: #1A252F;--co-surface-container: #212F3C;--co-surface-container-high: #2C3E50;--co-surface-container-highest: #34495E;--co-outline: #5D6D7E;--co-outline-variant: #34495E;--co-error: #E74C3C;--co-on-error: #FFFFFF;--co-error-container: #78281F;--co-on-error-container: #FADBD8;--co-warning: #F5B041;--co-on-warning: #1A252F;--co-warning-container: #7E5109;--co-on-warning-container: #FEF5E7;--co-success: #2ECC71;--co-on-success: #1A252F;--co-success-container: #1E8449;--co-on-success-container: #D5F5E3;--co-inverse-surface: #E8F4F8;--co-inverse-on-surface: #1A252F;--co-inverse-primary: #2C3E50;--co-elevation-1: 0 1px 3px rgba(0, 0, 0, .3);--co-elevation-2: 0 3px 6px rgba(0, 0, 0, .4);--co-elevation-3: 0 6px 10px rgba(0, 0, 0, .45);--co-elevation-4: 0 8px 16px rgba(0, 0, 0, .5);--co-elevation-5: 0 12px 28px rgba(0, 0, 0, .6)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Roboto,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.chronowl-root{font-family:var(--co-font-family);color:var(--co-on-surface);background-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.chronowl-root *,.chronowl-root *:before,.chronowl-root *:after{box-sizing:border-box}.chronowl-root :focus-visible{outline:2px solid var(--co-primary);outline-offset:2px}.chronowl-root{scroll-behavior:smooth}.chronowl-root ::-webkit-scrollbar{width:4px}.chronowl-root ::-webkit-scrollbar-track{background:transparent}.chronowl-root ::-webkit-scrollbar-thumb{background-color:var(--co-neutral-variant);border-radius:var(--co-corner-full)}.container{width:100%}@media (min-width: 320px){.container{max-width:320px}}@media (min-width: 480px){.container{max-width:480px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1200px){.container{max-width:1200px}}@media (min-width: 1536px){.container{max-width:1536px}}.chronowl-widget{container-name:chronowl}@keyframes chronowl-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes chronowl-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes chronowl-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes chronowl-pulse{0%,to{opacity:1}50%{opacity:.6}}.chronowl-root dialog::backdrop{background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chronowl-root dialog[open]{animation:chronowl-scale-in var(--co-duration-medium-2) var(--co-easing-decelerate) both}@container chronowl (max-width: 360px){.chronowl-widget{font-size:14px}}@container chronowl (min-width: 480px){.chronowl-widget{font-size:16px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.left-11{left:2.75rem}.left-3{left:.75rem}.left-4{left:1rem}.right-3{right:.75rem}.top-1\/2{top:50%}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.max-h-\[90vh\]{max-height:90vh}.min-h-\[36px\]{min-height:36px}.min-h-\[400px\]{min-height:400px}.min-h-\[44px\]{min-height:44px}.min-h-\[56px\]{min-height:56px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[90vw\]{width:90vw}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[36px\]{min-width:36px}.min-w-\[44px\]{min-width:44px}.max-w-\[320px\]{max-width:320px}.max-w-\[480px\]{max-width:480px}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.origin-left{transform-origin:left}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:999px}.rounded-md{border-radius:12px}.rounded-sm{border-radius:8px}.rounded-xl{border-radius:28px}.rounded-xs{border-radius:4px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-current{border-color:currentColor}.border-error{--tw-border-opacity: 1;border-color:rgb(192 57 43 / var(--tw-border-opacity, 1))}.border-neutral-variant{--tw-border-opacity: 1;border-color:rgb(189 195 199 / var(--tw-border-opacity, 1))}.border-neutral-variant\/30{border-color:#bdc3c74d}.border-neutral-variant\/40{border-color:#bdc3c766}.border-primary{--tw-border-opacity: 1;border-color:rgb(44 62 80 / var(--tw-border-opacity, 1))}.border-success{--tw-border-opacity: 1;border-color:rgb(39 174 96 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-warning{--tw-border-opacity: 1;border-color:rgb(243 156 18 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.bg-error{--tw-bg-opacity: 1;background-color:rgb(192 57 43 / var(--tw-bg-opacity, 1))}.bg-error-container{--tw-bg-opacity: 1;background-color:rgb(250 219 216 / var(--tw-bg-opacity, 1))}.bg-neutral-variant{--tw-bg-opacity: 1;background-color:rgb(189 195 199 / var(--tw-bg-opacity, 1))}.bg-neutral-variant\/40{background-color:#bdc3c766}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(44 62 80 / var(--tw-bg-opacity, 1))}.bg-primary-container,.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.bg-secondary-container{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.bg-success{--tw-bg-opacity: 1;background-color:rgb(39 174 96 / var(--tw-bg-opacity, 1))}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-surface-variant{--tw-bg-opacity: 1;background-color:rgb(240 243 245 / var(--tw-bg-opacity, 1))}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(243 156 18 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-11{padding-left:2.75rem}.pr-11{padding-right:2.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Inter,Roboto,system-ui,sans-serif}.text-body-lg{font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:400}.text-body-md{font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}.text-body-sm{font-size:12px;line-height:16px;letter-spacing:.4px;font-weight:400}.text-display-lg{font-size:57px;line-height:64px;letter-spacing:-.25px;font-weight:700}.text-display-md{font-size:45px;line-height:52px;letter-spacing:0px;font-weight:700}.text-display-sm{font-size:36px;line-height:44px;letter-spacing:0px;font-weight:700}.text-headline-lg{font-size:32px;line-height:40px;letter-spacing:0px;font-weight:700}.text-headline-md{font-size:28px;line-height:36px;letter-spacing:0px;font-weight:700}.text-headline-sm{font-size:24px;line-height:32px;letter-spacing:0px;font-weight:700}.text-label-lg{font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:700}.text-label-md{font-size:12px;line-height:16px;letter-spacing:.5px;font-weight:700}.text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.text-title-lg{font-size:22px;line-height:28px;letter-spacing:0px;font-weight:700}.text-title-md{font-size:18px;line-height:24px;letter-spacing:.15px;font-weight:700}.text-title-sm{font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:700}.font-bold{font-weight:700}.text-error{--tw-text-opacity: 1;color:rgb(192 57 43 / var(--tw-text-opacity, 1))}.text-error-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-error-on-container{--tw-text-opacity: 1;color:rgb(120 40 31 / var(--tw-text-opacity, 1))}.text-neutral{--tw-text-opacity: 1;color:rgb(127 140 141 / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-primary-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-primary-on-container{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-primary-on-container\/70{color:#2c3e50b3}.text-secondary-on{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-secondary-on-container{--tw-text-opacity: 1;color:rgb(26 37 47 / var(--tw-text-opacity, 1))}.text-success{--tw-text-opacity: 1;color:rgb(39 174 96 / var(--tw-text-opacity, 1))}.text-success-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-surface-on{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-surface-on-variant{--tw-text-opacity: 1;color:rgb(127 140 141 / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(243 156 18 / var(--tw-text-opacity, 1))}.text-warning-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.placeholder-transparent::-moz-placeholder{color:transparent}.placeholder-transparent::placeholder{color:transparent}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-0{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-1{--tw-shadow: 0 1px 3px rgba(44, 62, 80, .12);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-2{--tw-shadow: 0 3px 6px rgba(44, 62, 80, .16);--tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-3{--tw-shadow: 0 6px 10px rgba(44, 62, 80, .2);--tw-shadow-colored: 0 6px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-4{--tw-shadow: 0 8px 16px rgba(44, 62, 80, .24);--tw-shadow-colored: 0 8px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-5{--tw-shadow: 0 12px 28px rgba(44, 62, 80, .3);--tw-shadow-colored: 0 12px 28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary{--tw-ring-opacity: 1;--tw-ring-color: rgb(44 62 80 / var(--tw-ring-opacity, 1))}.ring-primary\/30{--tw-ring-color: rgb(44 62 80 / .3)}.ring-offset-2{--tw-ring-offset-width: 2px}.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)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-medium-1{transition-duration:.2s}.duration-short-2{transition-duration:.1s}.ease-standard{transition-timing-function:cubic-bezier(.2,0,0,1)}.chronowl-root ::-moz-selection{background-color:var(--co-primary-container);color:var(--co-on-primary-container)}.chronowl-root ::selection{background-color:var(--co-primary-container);color:var(--co-on-primary-container)}.backdrop\:backdrop-blur-sm::backdrop{--tw-backdrop-blur: blur(4px);-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)}.hover\:border-primary\/20:hover{border-color:#2c3e5033}.hover\:border-primary\/30:hover{border-color:#2c3e504d}.hover\:bg-error-container:hover{--tw-bg-opacity: 1;background-color:rgb(250 219 216 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-container:hover{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-800:hover{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary-container:hover{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-surface-variant:hover{--tw-bg-opacity: 1;background-color:rgb(240 243 245 / var(--tw-bg-opacity, 1))}.hover\:bg-tertiary:hover{--tw-bg-opacity: 1;background-color:rgb(26 37 47 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.hover\:text-primary-on-container:hover{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.hover\:shadow-elevation-2:hover{--tw-shadow: 0 3px 6px rgba(44, 62, 80, .16);--tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-error:focus{--tw-border-opacity: 1;border-color:rgb(192 57 43 / var(--tw-border-opacity, 1))}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(44 62 80 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-error:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(192 57 43 / var(--tw-ring-opacity, 1))}.focus\:ring-primary:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(44 62 80 / var(--tw-ring-opacity, 1))}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary:focus-visible{outline-color:#2c3e50}.active\:bg-green-800:active{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity, 1))}.active\:bg-red-900:active{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.active\:bg-secondary-container:active{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.active\:bg-tertiary:active{--tw-bg-opacity: 1;background-color:rgb(26 37 47 / var(--tw-bg-opacity, 1))}.active\:bg-yellow-700:active{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.peer:focus~.peer-focus\:top-0{top:0}.peer:focus~.peer-focus\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:focus~.peer-focus\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:focus~.peer-focus\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:focus~.peer-focus\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:focus~.peer-focus\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.peer:focus~.peer-focus\:text-error{--tw-text-opacity: 1;color:rgb(192 57 43 / var(--tw-text-opacity, 1))}.peer:focus~.peer-focus\:text-primary{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:top-0{top:0}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:top-0{top:0}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}@media (min-width: 480px){.sm\:inline{display:inline}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.\[\&\>\*\]\:flex-1>*{flex:1 1 0%}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chronowl/widget",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "description": "ChronOwl - Sabia gestión del tiempo para tus citas. Widget de reservas/citas reutilizable.",
6
6
  "main": "dist/index.js",