@anthonybir/birhaus-primitives
Version:
BIRHAUS Primitive Components - Enhanced base UI components with cognitive load reduction
7 lines • 57.5 kB
JavaScript
import {forwardRef,useState,useRef,useEffect,useMemo}from'react';import {AlertTriangle,Undo2,Loader2,Check,CheckCircle2,AlertCircle,EyeOff,Eye,X,Info,ChevronDown,Search,Clock,MoreVertical,ChevronUp,MoreHorizontal,Minus}from'lucide-react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function Pt(...e){return e.filter(Boolean).join(" ")}var at=forwardRef(({label:e,labelEs:s,labelEn:n,variant:a="secondary",size:l="md",isPrimaryAction:S=false,loading:c=false,loadingText:R,loadingTextEs:v,loadingTextEn:h,destructive:K=false,undoAction:Z,undoTimeoutMs:j=1e4,showSuccessState:T=false,successText:H,successTextEs:V,successTextEn:o,describedBy:_,describedByEs:b,describedByEn:q,icon:B,iconPosition:F="left",fullWidth:se=false,trackCognitiveLoad:Y=false,cognitiveLoadLevel:z="medium",className:D,disabled:ae,onClick:P,children:J,...U},Q)=>{let[E,N]=useState(false),[w,O]=useState(false),[y,X]=useState(false),t=useRef(),m=(ie,r,p)=>ie||s||r||n||p||"",u=m(s,n,e),i=m(v||"Procesando...",h||"Processing...",R),d=m(V||"Completado",o||"Completed",H),L=m(b,q,_),ee=`
inline-flex items-center justify-center gap-2 rounded-lg font-medium
transition-all duration-200 ease-in-out
focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2
disabled:pointer-events-none disabled:opacity-50
${se?"w-full":""}
`.trim(),M={xs:"h-7 px-2 text-xs",sm:"h-8 px-3 text-sm",md:"h-10 px-4 text-sm",lg:"h-11 px-6 text-base",xl:"h-12 px-8 text-base"},A={primary:S?"bg-blue-600 text-white hover:bg-blue-700 focus-visible:ring-blue-500 shadow-md hover:shadow-lg":"bg-blue-600 text-white hover:bg-blue-700 focus-visible:ring-blue-500",secondary:"bg-white border border-gray-300 text-gray-700 hover:bg-gray-50 focus-visible:ring-gray-500",destructive:"bg-red-600 text-white hover:bg-red-700 focus-visible:ring-red-500",outline:"border border-gray-300 bg-transparent text-gray-700 hover:bg-gray-50 focus-visible:ring-gray-500",ghost:"text-gray-600 hover:text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-500"},ue=Y?{low:"ring-1 ring-green-300",medium:"ring-1 ring-yellow-300",high:"ring-1 ring-red-300"}[z]:"",pe=async ie=>{if(K&&Z&&!E){await P?.(ie),N(true),t.current=setTimeout(()=>{N(false);},j);return}let r=P?.(ie);if(T&&r&&typeof r=="object"&&"then"in r)try{await r,X(!0),setTimeout(()=>X(!1),2e3);}catch(p){console.error("Action failed:",p);}},ge=async()=>{if(Z){O(true);try{await Z(),N(!1),t.current&&clearTimeout(t.current);}catch(ie){console.error("Undo failed:",ie);}finally{O(false);}}};return useEffect(()=>()=>{t.current&&clearTimeout(t.current);},[]),E?jsxs("div",{className:"inline-flex items-center gap-2 p-2 bg-red-50 border border-red-200 rounded-lg",children:[jsx(AlertTriangle,{className:"h-4 w-4 text-red-600"}),jsx("span",{className:"text-sm text-red-800",children:"Acci\xF3n completada"}),jsxs("button",{onClick:ge,disabled:w,className:"inline-flex items-center gap-1 px-3 py-1 text-sm font-medium text-red-700 bg-white border border-red-300 rounded hover:bg-red-50 disabled:opacity-50",children:[jsx(Undo2,{className:"h-3 w-3"}),w?"Deshaciendo...":"Deshacer"]})]}):jsxs("button",{ref:Q,className:Pt(ee,M[l],A[a],ue,D),disabled:ae||c,onClick:pe,"aria-describedby":L?`${U.id}-desc`:void 0,"data-birhaus-component":"button","data-birhaus-variant":a,"data-birhaus-primary":S,"data-cognitive-load":Y?z:void 0,...U,children:[c&&jsx(Loader2,{className:"h-4 w-4 animate-spin"}),y&&jsx(Check,{className:"h-4 w-4 text-green-600"}),B&&F==="left"&&!c&&!y&&jsx("span",{className:"flex-shrink-0",children:B}),jsx("span",{children:c?i:y?d:J||u}),B&&F==="right"&&!c&&!y&&jsx("span",{className:"flex-shrink-0",children:B}),L&&jsx("span",{id:`${U.id}-desc`,className:"sr-only",children:L})]})});at.displayName="BirhausButton";function Ut(){let[e,s]=useState(false),[n,a]=useState(false);return {loading:e,success:n,executeAction:async S=>{s(true);try{await S(),a(!0),setTimeout(()=>a(!1),2e3);}catch(c){throw console.error("Button action failed:",c),c}finally{s(false);}},setLoading:s,setSuccess:a}}function st(...e){return e.filter(Boolean).join(" ")}var lt=forwardRef(({label:e,labelEs:s,labelEn:n,description:a,descriptionEs:l,descriptionEn:S,error:c,errorEs:R,errorEn:v,solution:h,solutionEs:K,solutionEn:Z,autoSave:j=false,autoSaveDelay:T=1e3,onAutoSave:H,validateOnChange:V=true,validateOnBlur:o=true,validationRules:_=[],size:b="md",variant:q="default",prefix:B,suffix:F,showPasswordToggle:se=false,showClearButton:Y=false,helpText:z,helpTextEs:D,helpTextEn:ae,loading:P=false,success:J=false,fieldPriority:U="optional",cognitiveWeight:Q=1,className:E,type:N="text",value:w,defaultValue:O,onChange:y,onBlur:X$1,onFocus:t,disabled:m,required:u,...i},d)=>{let[L,ee]=useState(w||O||""),[M,A]=useState(false),[ue,pe]=useState(false),[ge,ie]=useState(""),[r,p]=useState(""),[f,$]=useState("idle"),C=useRef(),be=useRef(null),le=(we,Ce,It)=>we||Ce||It||"",ye=le(s,n,e),Se=le(l,S,a),Me=le(R,v,c)||ge,Ie=le(K,Z,h)||r,Ne=le(D,ae,z),Re=we=>{if(_.length){for(let Ce of _)if(!Ce.test(we)){ie(Ce.errorEs||Ce.errorEn||""),p(Ce.solutionEs||Ce.solutionEn||"");return}ie(""),p("");}},Xe=we=>{!j||!H||(C.current&&clearTimeout(C.current),C.current=setTimeout(async()=>{$("saving");try{await H(we),$("saved"),setTimeout(()=>$("idle"),2e3);}catch{$("error"),setTimeout(()=>$("idle"),3e3);}},T));},g=we=>{let Ce=we.target.value;ee(Ce),V&&Re(Ce),j&&Xe(Ce),y?.(we);},W=we=>{pe(false),o&&Re(L),X$1?.(we);},Ee=we=>{pe(true),t?.(we);},x=()=>{ee(""),ie(""),p(""),be.current&&be.current.focus();};useEffect(()=>()=>{C.current&&clearTimeout(C.current);},[]);let k={sm:"h-8 px-3 text-sm",md:"h-10 px-4 text-sm",lg:"h-12 px-4 text-base"},he={default:"border border-gray-300 bg-white",filled:"border-0 bg-gray-100",minimal:"border-0 border-b border-gray-300 bg-transparent rounded-none"},Ae=!!(Me||c),Ze=J&&!Ae,St=Ae?"border-red-500 focus:border-red-500 focus:ring-red-500":Ze?"border-green-500 focus:border-green-500 focus:ring-green-500":"focus:border-blue-500 focus:ring-blue-500",Bt={required:"ring-2 ring-red-100",optional:"",progressive:"ring-1 ring-blue-100"},Mt=st("w-full rounded-lg transition-all duration-200","focus:outline-none focus:ring-2 focus:ring-offset-1","disabled:cursor-not-allowed disabled:opacity-50","placeholder:text-gray-400",k[b],he[q],St,Bt[U],E);return jsxs("div",{className:"space-y-2",children:[ye&&jsxs("div",{className:"flex items-center justify-between",children:[jsxs("label",{htmlFor:i.id,className:st("block text-sm font-medium text-gray-700",u&&"after:content-['*'] after:ml-1 after:text-red-500"),children:[ye,U==="required"&&jsx("span",{className:"ml-1 text-xs text-red-600",children:"(requerido)"}),U==="optional"&&jsx("span",{className:"ml-1 text-xs text-gray-500",children:"(opcional)"})]}),j&&jsxs("div",{className:"flex items-center gap-1 text-xs",children:[f==="saving"&&jsx("span",{className:"text-blue-600",children:"Guardando..."}),f==="saved"&&jsxs("span",{className:"text-green-600 flex items-center gap-1",children:[jsx(CheckCircle2,{className:"h-3 w-3"}),"Guardado"]}),f==="error"&&jsx("span",{className:"text-red-600",children:"Error al guardar"})]})]}),Se&&jsx("p",{className:"text-sm text-gray-600",children:Se}),jsxs("div",{className:"relative",children:[B&&jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400",children:B}),jsx("input",{ref:d||be,type:se?M?"text":"password":N,value:w||L,onChange:g,onBlur:W,onFocus:Ee,disabled:m||P,required:u,className:st(Mt,B?"pl-10":"",F||se||Y?"pr-10":""),"data-birhaus-component":"input","data-birhaus-priority":U,"data-cognitive-weight":Q,...i}),P&&jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2",children:jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-blue-600"})}),Ze&&jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2",children:jsx(CheckCircle2,{className:"h-4 w-4 text-green-500"})}),Ae&&jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2",children:jsx(AlertCircle,{className:"h-4 w-4 text-red-500"})}),se&&N==="password"&&!P&&!Ae&&!Ze&&jsx("button",{type:"button",onClick:()=>A(!M),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600","aria-label":M?"Ocultar contrase\xF1a":"Mostrar contrase\xF1a",children:M?jsx(EyeOff,{className:"h-4 w-4"}):jsx(Eye,{className:"h-4 w-4"})}),Y&&L&&!P&&!Ae&&!se&&jsx("button",{type:"button",onClick:x,className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600","aria-label":"Limpiar campo",children:jsx(X,{className:"h-4 w-4"})}),F&&!se&&!Y&&!P&&!Ae&&!Ze&&jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400",children:F})]}),Me&&jsxs("div",{className:"flex items-start gap-2 p-3 bg-red-50 border border-red-200 rounded-lg",children:[jsx(AlertCircle,{className:"h-4 w-4 text-red-600 mt-0.5 flex-shrink-0"}),jsxs("div",{className:"flex-1 text-sm",children:[jsxs("p",{className:"text-red-800 font-medium",children:["Qu\xE9 pas\xF3: ",Me]}),Ie&&jsxs("p",{className:"text-red-700 mt-1",children:["C\xF3mo resolver: ",Ie]})]})]}),Ne&&!Me&&jsxs("div",{className:"flex items-start gap-2 text-sm text-gray-600",children:[jsx(Info,{className:"h-4 w-4 mt-0.5 flex-shrink-0"}),jsx("p",{children:Ne})]})]})});lt.displayName="BirhausInput";var Gt={required:e=>({test:s=>s.trim().length>0,errorEs:`${e} es requerido`,errorEn:`${e} is required`,solutionEs:`Ingrese un valor para ${e.toLowerCase()}`,solutionEn:`Enter a value for ${e.toLowerCase()}`}),email:()=>({test:e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),errorEs:"El formato del email no es v\xE1lido",errorEn:"Email format is not valid",solutionEs:"Use el formato: usuario@ejemplo.com",solutionEn:"Use the format: user@example.com"}),minLength:e=>({test:s=>s.length>=e,errorEs:`Debe tener al menos ${e} caracteres`,errorEn:`Must be at least ${e} characters`,solutionEs:`Agregue al menos ${e} caracteres`,solutionEn:`Add at least ${e} characters`}),paraguayPhone:()=>({test:e=>/^(\+595|0)(9[0-9]{8}|[2-9][1-8][0-9]{5,6})$/.test(e.replace(/\s/g,"")),errorEs:"El n\xFAmero de tel\xE9fono no es v\xE1lido para Paraguay",errorEn:"Phone number is not valid for Paraguay",solutionEs:"Use el formato: 0981123456 o +595981123456",solutionEn:"Use the format: 0981123456 or +595981123456"}),ruc:()=>({test:e=>/^[0-9]{1,8}-[0-9]$/.test(e),errorEs:"El formato de RUC no es v\xE1lido",errorEn:"RUC format is not valid",solutionEs:"Use el formato: 12345678-9",solutionEn:"Use the format: 12345678-9"})};function Ge(...e){return e.filter(Boolean).join(" ")}var gt=forwardRef(({label:e,labelEs:s,labelEn:n,description:a,descriptionEs:l,descriptionEn:S,options:c=[],value:R,defaultValue:v,onChange:h,error:K,errorEs:Z,errorEn:j,placeholder:T,placeholderEs:H,placeholderEn:V,multiple:o=false,maxSelections:_,searchable:b=false,searchPlaceholder:q,searchPlaceholderEs:B,searchPlaceholderEn:F,size:se="md",variant:Y="default",helpText:z,helpTextEs:D,helpTextEn:ae,disabled:P=false,required:J=false,loading:U=false,cognitiveLoadLevel:Q="medium",showCognitiveWarning:E=true,clearable:N=false,closeOnSelect:w=true,className:O,id:y},X$1)=>{let[t,m]=useState(false),[u,i]=useState(""),[d,L]=useState(Array.isArray(R)?R:Array.isArray(v)?v:R?[R]:v?[v]:[]),ee=useRef(null),M=useRef(null),A=(x,k,he)=>x||k||he||"",ue=A(s,n,e),pe=A(l,S,a),ge=A(Z,j,K),ie=A(H||"Seleccionar opci\xF3n...",V||"Select option...",T),r=A(B||"Buscar opciones...",F||"Search options...",q),p=A(D,ae,z),f=7,$=c.filter(x=>u===""||x.label.toLowerCase().includes(u.toLowerCase())||x.labelEs?.toLowerCase().includes(u.toLowerCase())||x.labelEn?.toLowerCase().includes(u.toLowerCase())),C=$.slice(0,b?$.length:f),be=$.length>f,le=c.length>f?"high":c.length>4?"medium":"low",ye=x=>{let k;if(o)if(d.includes(x))k=d.filter(he=>he!==x);else {if(_&&d.length>=_)return;k=[...d,x];}else k=[x],w&&m(false);L(k),h?.(o?k:k[0]||"");},Se=()=>{L([]),h?.(o?[]:"");};useEffect(()=>{let x=k=>{ee.current&&!ee.current.contains(k.target)&&m(false);};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]),useEffect(()=>{t&&b&&M.current&&M.current.focus();},[t,b]);let Ie=d.map(x=>{let k=c.find(he=>he.value===x);return k?k.labelEs||k.label:x}),Ne=Ie.length>0?Ie.join(", "):ie,Re={sm:"h-8 px-3 text-sm",md:"h-10 px-4 text-sm",lg:"h-12 px-4 text-base"},Xe={default:"border border-gray-300 bg-white",filled:"border-0 bg-gray-100",minimal:"border-0 border-b border-gray-300 bg-transparent rounded-none"},W=!!ge?"border-red-500 focus:border-red-500 focus:ring-red-500":"focus:border-blue-500 focus:ring-blue-500",Ee=Ge("w-full rounded-lg transition-all duration-200 flex items-center justify-between","focus:outline-none focus:ring-2 focus:ring-offset-1","disabled:cursor-not-allowed disabled:opacity-50",Re[se],Xe[Y],W,O);return jsxs("div",{className:"space-y-2",children:[(ue||E&&le==="high")&&jsxs("div",{className:"flex items-center justify-between",children:[ue&&jsx("label",{htmlFor:y,className:Ge("block text-sm font-medium text-gray-700",J&&"after:content-['*'] after:ml-1 after:text-red-500"),children:ue}),E&&le==="high"&&jsxs("div",{className:"flex items-center gap-1 text-xs text-amber-600",children:[jsx(AlertCircle,{className:"h-3 w-3"}),jsxs("span",{children:["+",c.length-f," opciones (considera agrupar)"]})]})]}),pe&&jsx("p",{className:"text-sm text-gray-600",children:pe}),jsxs("div",{ref:ee,className:"relative",children:[jsxs("button",{ref:X$1,type:"button",onClick:()=>m(!t),disabled:P||U,className:Ee,"data-birhaus-component":"select","data-cognitive-load":le,"aria-expanded":t,"aria-haspopup":"listbox",id:y,children:[jsx("span",{className:Ge("truncate text-left",d.length===0&&"text-gray-400"),children:Ne}),jsxs("div",{className:"flex items-center gap-2",children:[N&&d.length>0&&jsx("button",{type:"button",onClick:x=>{x.stopPropagation(),Se();},className:"text-gray-400 hover:text-gray-600","aria-label":"Limpiar selecci\xF3n",children:jsx(X,{className:"h-4 w-4"})}),U?jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-blue-600"}):jsx(ChevronDown,{className:Ge("h-4 w-4 text-gray-400 transition-transform duration-200",t&&"rotate-180")})]})]}),t&&jsxs("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-lg shadow-lg max-h-60 overflow-hidden",children:[b&&jsx("div",{className:"p-2 border-b border-gray-200",children:jsxs("div",{className:"relative",children:[jsx(Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400"}),jsx("input",{ref:M,type:"text",value:u,onChange:x=>i(x.target.value),placeholder:r,className:"w-full pl-9 pr-3 py-2 text-sm border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})}),jsxs("div",{className:"max-h-48 overflow-y-auto",children:[C.length===0?jsx("div",{className:"p-3 text-sm text-gray-500 text-center",children:u?"No se encontraron opciones":"No hay opciones disponibles"}):C.map(x=>{let k=d.includes(x.value),he=x.labelEs||x.label,Ae=x.descriptionEs||x.description;return jsxs("button",{type:"button",onClick:()=>ye(x.value),disabled:x.disabled,className:Ge("w-full px-3 py-2 text-left flex items-center gap-3 hover:bg-gray-50","focus:outline-none focus:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",k&&"bg-blue-50 text-blue-700"),role:"option","aria-selected":k,children:[x.icon&&jsx("span",{className:"flex-shrink-0",children:x.icon}),jsxs("div",{className:"flex-1 min-w-0",children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("span",{className:"text-sm font-medium truncate",children:he}),k&&jsx(Check,{className:"h-4 w-4 text-blue-600"})]}),Ae&&jsx("p",{className:"text-xs text-gray-500 truncate",children:Ae})]})]},x.value)}),be&&!b&&jsxs("div",{className:"p-2 border-t border-gray-200 bg-gray-50 text-center",children:[jsxs("p",{className:"text-xs text-gray-600",children:["+",$.length-f," opciones m\xE1s"]}),jsx("p",{className:"text-xs text-gray-500",children:"Habilita b\xFAsqueda para ver todas"})]})]})]})]}),ge&&jsxs("div",{className:"flex items-start gap-2 p-3 bg-red-50 border border-red-200 rounded-lg",children:[jsx(AlertCircle,{className:"h-4 w-4 text-red-600 mt-0.5 flex-shrink-0"}),jsx("p",{className:"text-sm text-red-800",children:ge})]}),p&&!ge&&jsxs("div",{className:"flex items-start gap-2 text-sm text-gray-600",children:[jsx(Info,{className:"h-4 w-4 mt-0.5 flex-shrink-0"}),jsx("p",{children:p})]}),o&&d.length>0&&jsxs("div",{className:"text-xs text-gray-600",children:[d.length," de ",_||"\u221E"," seleccionado",d.length!==1?"s":""]})]})});gt.displayName="BirhausSelect";function Jt(){let[e,s]=useState(""),[n,a]=useState(false);return {value:e,isOpen:n,handleChange:c=>{s(c);},clear:()=>{s(Array.isArray(e)?[]:"");},setValue:s,setIsOpen:a}}function Qt(e,s){let n={};return e.forEach(a=>{let l=s(a);n[l]||(n[l]=[]),n[l].push(a);}),Object.entries(n).forEach(([a,l])=>{l.length>7&&console.warn(`BIRHAUS Miller's Law Warning: Group "${a}" has ${l.length} options (max recommended: 7)`);}),n}function Ye(...e){return e.filter(Boolean).join(" ")}var mt=forwardRef(({title:e,titleEs:s,titleEn:n,subtitle:a,subtitleEs:l,subtitleEn:S,description:c,descriptionEs:R,descriptionEn:v,children:h,header:K,footer:Z,aside:j,primaryAction:T,secondaryActions:H=[],collapsible:V=false,defaultExpanded:o=true,expandedContent:_,status:b="neutral",statusMessage:q,statusMessageEs:B,statusMessageEn:F,variant:se="default",size:Y="md",loading:z=false,skeleton:D=false,lazyLoad:ae=false,selectable:P=false,selected:J=false,onSelect:U,badge:Q,badgeVariant:E="neutral",timestamp:N,author:w,category:O,informationDensity:y="medium",className:X,...t},m)=>{let[u,i]=useState(o),d=(C,be,le)=>C||be||le||"",L=d(s,n,e),ee=d(l,S,a),M=d(R,v,c),A=d(B,F,q),ue=(T?1:0)+H.length;ue>4&&console.warn(`BIRHAUS 4-3-1 Rule Warning: Card has ${ue} actions (recommended: max 4)`);let pe={sm:"p-4",md:"p-6",lg:"p-8"},ge={default:"bg-white border border-gray-200 shadow-sm",elevated:"bg-white border border-gray-200 shadow-md hover:shadow-lg transition-shadow",outlined:"bg-white border-2 border-gray-300",minimal:"bg-transparent border-0"},ie={neutral:"",success:"border-green-200 bg-green-50",warning:"border-yellow-200 bg-yellow-50",error:"border-red-200 bg-red-50",info:"border-blue-200 bg-blue-50"},r={neutral:null,success:jsx(CheckCircle2,{className:"h-4 w-4 text-green-600"}),warning:jsx(AlertTriangle,{className:"h-4 w-4 text-yellow-600"}),error:jsx(AlertTriangle,{className:"h-4 w-4 text-red-600"}),info:jsx(Info,{className:"h-4 w-4 text-blue-600"})},p={neutral:"bg-gray-100 text-gray-800",success:"bg-green-100 text-green-800",warning:"bg-yellow-100 text-yellow-800",error:"bg-red-100 text-red-800"},f={low:"space-y-6",medium:"space-y-4",high:"space-y-2"},$=Ye("rounded-lg transition-all duration-200",pe[Y],ge[se],b!=="neutral"&&ie[b],P&&"cursor-pointer hover:border-blue-300",J&&"ring-2 ring-blue-500 border-blue-300",y&&f[y],X);return D||z?jsx("div",{ref:m,className:$,...t,children:jsxs("div",{className:"animate-pulse space-y-4",children:[jsxs("div",{className:"flex items-center justify-between",children:[jsxs("div",{className:"space-y-2",children:[jsx("div",{className:"h-4 bg-gray-200 rounded w-3/4"}),jsx("div",{className:"h-3 bg-gray-200 rounded w-1/2"})]}),jsx("div",{className:"h-8 w-8 bg-gray-200 rounded"})]}),jsxs("div",{className:"space-y-2",children:[jsx("div",{className:"h-3 bg-gray-200 rounded"}),jsx("div",{className:"h-3 bg-gray-200 rounded w-5/6"})]}),jsxs("div",{className:"flex justify-end gap-2",children:[jsx("div",{className:"h-8 w-16 bg-gray-200 rounded"}),jsx("div",{className:"h-8 w-20 bg-gray-200 rounded"})]})]})}):jsxs("div",{ref:m,className:$,onClick:P?U:void 0,"data-birhaus-component":"card","data-information-density":y,"data-selected":J,...t,children:[K&&jsx("div",{className:"mb-4 pb-4 border-b border-gray-200",children:K}),jsxs("div",{className:"flex items-start justify-between mb-4",children:[jsxs("div",{className:"flex-1 min-w-0",children:[Q&&jsx("div",{className:"mb-2",children:jsx("span",{className:Ye("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium",p[E]),children:Q})}),L&&jsx("h3",{className:"text-lg font-semibold text-gray-900 truncate",children:L}),ee&&jsx("p",{className:"text-sm text-gray-600 mt-1",children:ee}),(N||w||O)&&jsxs("div",{className:"flex items-center gap-2 mt-2 text-xs text-gray-500",children:[N&&jsxs("div",{className:"flex items-center gap-1",children:[jsx(Clock,{className:"h-3 w-3"}),jsx("span",{children:N.toLocaleDateString("es-ES")})]}),w&&jsxs("span",{children:["por ",w]}),O&&jsx("span",{className:"px-2 py-0.5 bg-gray-100 rounded-full",children:O})]})]}),jsxs("div",{className:"flex items-center gap-2 ml-4",children:[T&&jsxs("button",{onClick:T.onClick,disabled:T.disabled||T.loading,className:Ye("inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium rounded-md transition-colors","focus:outline-none focus:ring-2 focus:ring-offset-2","disabled:pointer-events-none disabled:opacity-50",T.variant==="primary"&&"bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500",T.variant==="destructive"&&"bg-red-600 text-white hover:bg-red-700 focus:ring-red-500",(!T.variant||T.variant==="secondary")&&"bg-gray-100 text-gray-700 hover:bg-gray-200 focus:ring-gray-500"),children:[T.loading?jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-current"}):T.icon,T.labelEs||T.label]}),H.length>0&&jsx("div",{className:"relative",children:jsx("button",{className:"p-1 text-gray-400 hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-500 rounded","aria-label":"M\xE1s acciones",children:jsx(MoreVertical,{className:"h-4 w-4"})})}),V&&jsx("button",{onClick:()=>i(!u),className:"p-1 text-gray-400 hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-500 rounded","aria-label":u?"Contraer":"Expandir",children:u?jsx(ChevronUp,{className:"h-4 w-4"}):jsx(ChevronDown,{className:"h-4 w-4"})})]})]}),A&&jsxs("div",{className:Ye("flex items-center gap-2 p-3 rounded-lg mb-4 text-sm",b==="success"&&"bg-green-100 text-green-800",b==="warning"&&"bg-yellow-100 text-yellow-800",b==="error"&&"bg-red-100 text-red-800",b==="info"&&"bg-blue-100 text-blue-800"),children:[r[b],jsx("span",{children:A})]}),M&&jsx("p",{className:"text-gray-600 text-sm mb-4",children:M}),j&&jsx("div",{className:"mb-4 p-3 bg-gray-50 rounded-lg",children:j}),h&&jsx("div",{className:"mb-4",children:h}),V&&_&&u&&jsx("div",{className:"border-t border-gray-200 pt-4 mt-4",children:_}),Z&&jsx("div",{className:"mt-4 pt-4 border-t border-gray-200",children:Z})]})});mt.displayName="BirhausCard";function is(){let[e,s]=useState(false),[n,a]=useState(false),[l,S]=useState(false);return {expanded:e,selected:n,loading:l,setExpanded:s,setSelected:a,setLoading:S,toggleExpanded:()=>s(v=>!v),toggleSelected:()=>a(v=>!v)}}function ls(e,s,n,a){return {id:e,label:s,labelEs:s,labelEn:a?.labelEn,onClick:n,icon:a?.icon,variant:a?.variant||"secondary",disabled:a?.disabled||false,loading:false}}function Pe(...e){return e.filter(Boolean).join(" ")}var xt=forwardRef(({open:e=false,onOpenChange:s,title:n,titleEs:a,titleEn:l,description:S,descriptionEs:c,descriptionEn:R,children:v,undoConfig:h,variant:K="default",size:Z="md",position:j="center",closeOnOverlayClick:T=true,closeOnEscape:H=true,persistent:V=false,primaryAction:o,secondaryActions:_=[],role:b="dialog",ariaLabelledBy:q,ariaDescribedBy:B,className:F,overlayClassName:se},Y)=>{let[z,D]=useState(false),[ae,P]=useState(0),[J,U]=useState(false),Q=(i,d,L)=>i||d||L||"",E=Q(a,l,n),N=Q(c,R,S);useEffect(()=>{if(!z||!h?.enabled)return;let i=h.timeoutMs||1e4;P(i);let d=setInterval(()=>{P(L=>L<=1e3?(D(false),clearInterval(d),0):L-1e3);},1e3);return ()=>clearInterval(d)},[z,h?.enabled,h?.timeoutMs]),useEffect(()=>{if(!e)return;let i=d=>{d.key==="Escape"&&H&&!V&&s?.(false);};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[e,H,V,s]);let w=async()=>{if(h?.undoAction){U(true);try{await h.undoAction(),D(!1),s?.(!1);}catch(i){console.error("BIRHAUS Dialog: Undo action failed:",i);}finally{U(false);}}},O=async i=>{if(!(i.disabled||i.loading))try{await i.onClick(),i.variant==="destructive"&&h?.enabled?D(!0):s?.(!1);}catch(d){console.error("BIRHAUS Dialog: Action failed:",d);}},y=(o?1:0)+_.length;y>4&&console.warn(`BIRHAUS 4-3-1 Rule Warning: Dialog has ${y} actions (recommended: max 4)`);let X$1={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-full mx-4"},t={center:"items-center justify-center",top:"items-start justify-center pt-16",bottom:"items-end justify-center pb-16"},u={default:{icon:null,headerBg:"bg-gray-50",borderColor:"border-gray-200"},success:{icon:jsx(CheckCircle2,{className:"h-5 w-5 text-green-600"}),headerBg:"bg-green-50",borderColor:"border-green-200"},warning:{icon:jsx(AlertTriangle,{className:"h-5 w-5 text-yellow-600"}),headerBg:"bg-yellow-50",borderColor:"border-yellow-200"},error:{icon:jsx(AlertTriangle,{className:"h-5 w-5 text-red-600"}),headerBg:"bg-red-50",borderColor:"border-red-200"},info:{icon:jsx(Info,{className:"h-5 w-5 text-blue-600"}),headerBg:"bg-blue-50",borderColor:"border-blue-200"}}[K];if(!e)return null;if(z&&h?.enabled){let i=Q(h.messageEs,h.messageEn,"Acci\xF3n completada. Presiona deshacer si fue un error."),d=Q(h.labelEs,h.labelEn,"Deshacer");return jsx("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",children:jsx("div",{ref:Y,className:Pe("bg-white rounded-lg shadow-lg border-2 border-green-200 p-6 max-w-md w-full",F),role:"alertdialog","aria-labelledby":"undo-title","aria-describedby":"undo-description",children:jsxs("div",{className:"flex items-start gap-4",children:[jsx("div",{className:"flex-shrink-0",children:jsx(CheckCircle2,{className:"h-6 w-6 text-green-600"})}),jsxs("div",{className:"flex-1 min-w-0",children:[jsx("h3",{id:"undo-title",className:"text-lg font-semibold text-gray-900 mb-2",children:"\xA1Acci\xF3n completada!"}),jsx("p",{id:"undo-description",className:"text-sm text-gray-600 mb-4",children:i}),jsxs("div",{className:"flex items-center justify-between",children:[jsxs("button",{onClick:w,disabled:J,className:Pe("inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-md","bg-red-600 text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500","disabled:pointer-events-none disabled:opacity-50"),children:[J?jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-white"}):jsx(Undo2,{className:"h-4 w-4"}),J?"Deshaciendo...":d]}),jsxs("div",{className:"text-sm text-gray-500",children:["Auto-cierre en ",Math.ceil(ae/1e3),"s"]})]})]})]})})})}return jsx("div",{className:Pe("fixed inset-0 z-50 bg-black/50 flex",t[j],se),onClick:T?()=>s?.(false):void 0,children:jsxs("div",{ref:Y,className:Pe("bg-white rounded-lg shadow-xl border",X$1[Z],u.borderColor,"w-full overflow-hidden",F),onClick:i=>i.stopPropagation(),role:b,"aria-labelledby":q||"dialog-title","aria-describedby":B||"dialog-description","data-birhaus-component":"dialog","data-variant":K,children:[(E||u.icon)&&jsx("div",{className:Pe("px-6 py-4 border-b border-gray-200",u.headerBg),children:jsxs("div",{className:"flex items-center justify-between",children:[jsxs("div",{className:"flex items-center gap-3",children:[u.icon,E&&jsx("h2",{id:q||"dialog-title",className:"text-lg font-semibold text-gray-900",children:E})]}),!V&&jsx("button",{onClick:()=>s?.(false),className:"text-gray-400 hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-500 rounded p-1","aria-label":"Cerrar di\xE1logo",children:jsx(X,{className:"h-5 w-5"})})]})}),jsxs("div",{className:"px-6 py-4",children:[N&&jsx("p",{id:B||"dialog-description",className:"text-gray-600 mb-4",children:N}),v]}),(o||_.length>0)&&jsx("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-200",children:jsxs("div",{className:"flex items-center justify-end gap-3",children:[_.map(i=>jsxs("button",{onClick:()=>O(i),disabled:i.disabled||i.loading,className:Pe("inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-md","border border-gray-300 bg-white text-gray-700 hover:bg-gray-50","focus:outline-none focus:ring-2 focus:ring-gray-500","disabled:pointer-events-none disabled:opacity-50"),children:[i.loading?jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-current"}):i.icon,i.labelEs||i.label]},i.id)),o&&jsxs("button",{onClick:()=>O(o),disabled:o.disabled||o.loading,className:Pe("inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-md","focus:outline-none focus:ring-2 focus:ring-offset-2","disabled:pointer-events-none disabled:opacity-50",o.variant==="primary"&&"bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500",o.variant==="destructive"&&"bg-red-600 text-white hover:bg-red-700 focus:ring-red-500",(!o.variant||o.variant==="secondary")&&"bg-gray-600 text-white hover:bg-gray-700 focus:ring-gray-500"),children:[o.loading?jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-current"}):o.icon,o.labelEs||o.label]})]})})]})})});xt.displayName="BirhausDialog";function bs(){let[e,s]=useState(false),[n,a]=useState(false);return {open:e,undoActive:n,openDialog:()=>s(true),closeDialog:()=>s(false),activateUndo:()=>a(true),deactivateUndo:()=>a(false),setOpen:s}}function ms(e,s,n,a){return {id:e,label:s,labelEs:s,labelEn:a?.labelEn,onClick:n,icon:a?.icon,variant:a?.variant||"secondary",disabled:a?.disabled||false,loading:false}}function qe(...e){return e.filter(Boolean).join(" ")}var vt=forwardRef(({data:e,columns:s,emptyMessage:n,emptyMessageEs:a,emptyMessageEn:l,loadingMessage:S,loadingMessageEs:c,loadingMessageEn:R,maxVisibleColumns:v=7,showCognitiveWarning:h=true,sortable:K=true,filterable:Z=false,searchable:j=false,selectable:T=false,loading:H=false,selectedRows:V=new Set,onRowSelect:o,onRowsSelect:_,pagination:b,sortConfig:q,onSort:B,filters:F={},onFilter:se,searchValue:Y="",onSearch:z,getRowId:D=(E,N)=>N,rowActions:ae=[],variant:P="default",size:J="md",className:U},Q)=>{let[E,N]=useState(new Set),[w,O]=useState(Y),[y,X]=useState(q),t=(r,p,f)=>r||p||f||"",m=t(a,l,n||"No hay datos disponibles"),u=t(c,R,S||"Cargando datos..."),{visibleColumns:i,hiddenColumnCount:d,cognitiveLoad:L}=useMemo(()=>{let r={high:1,medium:2,low:3},p=[...s].sort((ye,Se)=>{let Me=r[ye.priority||"medium"],Ie=r[Se.priority||"medium"];if(Me!==Ie)return Me-Ie;let Ne=ye.cognitiveWeight||5,Re=Se.cognitiveWeight||5;return Ne-Re}),f=p.filter(ye=>!E.has(ye.id)).slice(0,v),$=p.length-f.length,be=f.reduce((ye,Se)=>ye+(Se.cognitiveWeight||5),0)/f.length,le=f.length>7?"high":f.length>5?"medium":"low";return {visibleColumns:f,hiddenColumnCount:$,cognitiveLoad:le,avgCognitiveWeight:be}},[s,E,v]);h&&i.length>7&&console.warn(`BIRHAUS Miller's Law Warning: Table shows ${i.length} columns (recommended: max 7)`);let ee=r=>{if(!s.find(C=>C.id===r)?.sortable)return;let f=y?.key===r&&y.direction==="asc"?"desc":"asc";X({key:r,direction:f}),B?.(r,f);},M=(r,p)=>{o?.(r,p);},A=r=>{let p=e.map((f,$)=>D(f,$));_?.(p,r);},ue=(r,p)=>typeof p.accessor=="function"?p.accessor(r):r[p.accessor],pe=(r,p,f)=>p.cell?p.cell(r,f):p.isCurrency&&typeof r=="number"?new Intl.NumberFormat("es-PY",{style:"currency",currency:"PYG",minimumFractionDigits:0}).format(r):p.isPercentage&&typeof r=="number"?`${(r*100).toFixed(1)}%`:p.isDate&&r?new Date(r).toLocaleDateString("es-ES"):r?.toString()||"",ge={sm:"text-xs",md:"text-sm",lg:"text-base"},ie={default:"border border-gray-200",striped:"border border-gray-200",bordered:"border-2 border-gray-300",minimal:"border-0"};return H?jsxs("div",{className:"w-full",children:[jsxs("div",{className:"animate-pulse space-y-4",children:[jsx("div",{className:"h-10 bg-gray-200 rounded"}),[...Array(5)].map((r,p)=>jsx("div",{className:"h-8 bg-gray-100 rounded"},p))]}),jsx("p",{className:"text-center text-gray-500 mt-4",children:u})]}):e.length===0?jsx("div",{className:"w-full text-center py-12",children:jsx("p",{className:"text-gray-500 text-lg",children:m})}):jsxs("div",{className:"w-full space-y-4",children:[h&&L==="high"&&jsxs("div",{className:"flex items-center gap-2 p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:[jsx(AlertTriangle,{className:"h-4 w-4 text-yellow-600"}),jsxs("span",{className:"text-sm text-yellow-800",children:["Mostrando ",i.length," columnas (m\xE1ximo recomendado: 7).",d>0&&` ${d} columnas ocultas.`]})]}),(j||Z||d>0)&&jsxs("div",{className:"flex items-center justify-between gap-4",children:[j&&jsxs("div",{className:"relative flex-1 max-w-sm",children:[jsx(Search,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),jsx("input",{type:"text",value:w,onChange:r=>{O(r.target.value),z?.(r.target.value);},placeholder:"Buscar...",className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),d>0&&jsxs("button",{onClick:()=>N(new Set),className:"inline-flex items-center gap-2 px-3 py-2 text-sm border border-gray-300 rounded-lg hover:bg-gray-50",children:[jsx(MoreHorizontal,{className:"h-4 w-4"}),"Mostrar ",d," columnas m\xE1s"]})]}),jsx("div",{className:"overflow-x-auto rounded-lg border border-gray-200",children:jsxs("table",{ref:Q,className:qe("w-full table-auto",ge[J],ie[P],U),"data-birhaus-component":"table","data-cognitive-load":L,"data-visible-columns":i.length,children:[jsx("thead",{className:"bg-gray-50",children:jsxs("tr",{children:[T&&jsx("th",{className:"px-4 py-3 text-left",children:jsx("input",{type:"checkbox",onChange:r=>A(r.target.checked),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"})}),i.map(r=>jsx("th",{className:qe("px-4 py-3 font-medium text-gray-900",r.align==="center"&&"text-center",r.align==="right"&&"text-right",r.sortable&&"cursor-pointer hover:bg-gray-100"),style:{width:r.width},onClick:()=>r.sortable&&ee(r.id),children:jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:r.headerEs||r.header}),r.sortable&&y?.key===r.id&&(y.direction==="asc"?jsx(ChevronUp,{className:"h-4 w-4"}):jsx(ChevronDown,{className:"h-4 w-4"}))]})},r.id)),ae.length>0&&jsx("th",{className:"px-4 py-3 text-right font-medium text-gray-900",children:"Acciones"})]})}),jsx("tbody",{className:"divide-y divide-gray-200",children:e.map((r,p)=>{let f=D(r,p),$=V.has(f);return jsxs("tr",{className:qe("hover:bg-gray-50",P==="striped"&&p%2===1&&"bg-gray-50",$&&"bg-blue-50"),children:[T&&jsx("td",{className:"px-4 py-3",children:jsx("input",{type:"checkbox",checked:$,onChange:C=>M(f,C.target.checked),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"})}),i.map(C=>{let be=ue(r,C),le=pe(be,C,r);return jsx("td",{className:qe("px-4 py-3 text-gray-900",C.align==="center"&&"text-center",C.align==="right"&&"text-right",C.isCurrency&&"font-mono"),children:le},C.id)}),ae.length>0&&jsx("td",{className:"px-4 py-3 text-right",children:jsx("div",{className:"flex items-center justify-end gap-2",children:ae.map(C=>jsxs("button",{onClick:()=>C.onClick(r),disabled:C.disabled?.(r),className:qe("inline-flex items-center gap-1 px-2 py-1 text-xs font-medium rounded","focus:outline-none focus:ring-2 focus:ring-offset-1","disabled:pointer-events-none disabled:opacity-50",C.variant==="primary"&&"bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500",C.variant==="destructive"&&"bg-red-600 text-white hover:bg-red-700 focus:ring-red-500",(!C.variant||C.variant==="secondary")&&"bg-gray-100 text-gray-700 hover:bg-gray-200 focus:ring-gray-500"),children:[C.icon,C.labelEs||C.label]},C.id))})})]},f)})})]})}),b&&jsxs("div",{className:"flex items-center justify-between",children:[jsxs("div",{className:"text-sm text-gray-700",children:["Mostrando ",(b.page-1)*b.pageSize+1," a"," ",Math.min(b.page*b.pageSize,b.total)," de"," ",b.total," resultados"]}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("button",{onClick:()=>b.onPageChange(b.page-1),disabled:b.page===1,className:"px-3 py-1 text-sm border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50",children:"Anterior"}),jsx("span",{className:"px-3 py-1 text-sm",children:b.page}),jsx("button",{onClick:()=>b.onPageChange(b.page+1),disabled:b.page*b.pageSize>=b.total,className:"px-3 py-1 text-sm border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50",children:"Siguiente"})]})]})]})});vt.displayName="BirhausTable";function Es(e=[]){let[s,n]=useState(e),[a,l]=useState(new Set),[S,c]=useState(),[R,v]=useState({}),[h,K]=useState("");return {data:s,setData:n,selectedRows:a,setSelectedRows:l,sortConfig:S,setSortConfig:c,filters:R,setFilters:v,searchValue:h,setSearchValue:K,handleRowSelect:(H,V)=>{let o=new Set(a);V?o.add(H):o.delete(H),l(o);},handleRowsSelect:(H,V)=>{let o=new Set(a);H.forEach(_=>{V?o.add(_):o.delete(_);}),l(o);},clearSelection:()=>l(new Set)}}function de(...e){return e.filter(Boolean).join(" ")}var Nt=forwardRef(({label:e,labelEs:s,labelEn:n,description:a,descriptionEs:l,descriptionEn:S,indeterminate:c=false,variant:R="default",size:v="md",labelPosition:h="right",showStateIcon:K=true,error:Z=false,errorMessage:j,errorMessageEs:T,errorMessageEn:H,success:V=false,successMessage:o,successMessageEs:_,successMessageEn:b,checked:q,disabled:B,onChange:F,className:se,labelClassName:Y,...z},D)=>{let[ae,P]=useState(q||false),J=q!==void 0?q:ae,U=q!==void 0,Q=(ee,M,A)=>ee||M||A||"",E=Q(s,n,e),N=Q(l,S,a),w=Q(T,H,j),O=Q(_,b,o),y=ee=>{if(!B){let M=ee.target.checked;U||P(M),F?.(ee);}},X={sm:{checkbox:"h-4 w-4",icon:"h-3 w-3",label:"text-sm",description:"text-xs"},md:{checkbox:"h-5 w-5",icon:"h-4 w-4",label:"text-base",description:"text-sm"},lg:{checkbox:"h-6 w-6",icon:"h-5 w-5",label:"text-lg",description:"text-base"}},t={default:{border:"border-gray-300",checked:"bg-blue-600 border-blue-600",focus:"focus:ring-blue-500"},success:{border:"border-green-300",checked:"bg-green-600 border-green-600",focus:"focus:ring-green-500"},warning:{border:"border-yellow-300",checked:"bg-yellow-600 border-yellow-600",focus:"focus:ring-yellow-500"},error:{border:"border-red-300",checked:"bg-red-600 border-red-600",focus:"focus:ring-red-500"}},m=X[v],u=t[Z?"error":V?"success":R],i=de("relative rounded border-2 transition-colors duration-200","focus:outline-none focus:ring-2 focus:ring-offset-2",m.checkbox,u.focus,J||c?u.checked:de("bg-white",u.border),B&&"opacity-50 cursor-not-allowed",!B&&"cursor-pointer hover:border-gray-400"),d=de("font-medium text-gray-900",m.label,B&&"text-gray-400",Y),L=de("flex items-start gap-3",h==="left"&&"flex-row-reverse",se);return jsxs("div",{className:"space-y-2",children:[jsxs("label",{className:L,children:[jsx("input",{ref:D,type:"checkbox",checked:J,onChange:y,disabled:B,className:"sr-only",...z}),jsx("div",{className:i,children:(J||c)&&K&&jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:c?jsx(Minus,{className:de(m.icon,"text-white")}):jsx(Check,{className:de(m.icon,"text-white")})})}),(E||N)&&jsxs("div",{className:"flex-1 min-w-0",children:[E&&jsx("div",{className:d,children:E}),N&&jsx("div",{className:de("text-gray-600 mt-1",m.description,B&&"text-gray-400"),children:N})]})]}),Z&&w&&jsx("div",{className:de("text-red-600 flex items-center gap-1",m.description),children:jsx("span",{children:w})}),V&&O&&jsx("div",{className:de("text-green-600 flex items-center gap-1",m.description),children:jsx("span",{children:O})})]})});Nt.displayName="BirhausCheckbox";var Et=forwardRef(({label:e,labelEs:s,labelEn:n,description:a,descriptionEs:l,descriptionEn:S,showLabels:c=false,onLabel:R="S\xED",onLabelEs:v="S\xED",onLabelEn:h="Yes",offLabel:K="No",offLabelEs:Z="No",offLabelEn:j="No",variant:T="default",size:H="md",labelPosition:V="right",error:o=false,errorMessage:_,errorMessageEs:b,errorMessageEn:q,success:B=false,successMessage:F,successMessageEs:se,successMessageEn:Y,checked:z,disabled:D,onChange:ae,className:P,labelClassName:J,...U},Q)=>{let[E,N]=useState(z||false),w=z!==void 0?z:E,O=z!==void 0,y=(r,p,f)=>r||p||f||"",X=y(s,n,e),t=y(l,S,a),m=y(b,q,_),u=y(se,Y,F),i=y(v,h,R),d=y(Z,j,K),L=r=>{if(!D){let p=r.target.checked;O||N(p),ae?.(r);}},ee={sm:{track:"h-5 w-9",thumb:"h-4 w-4",translate:"translate-x-4",label:"text-sm",description:"text-xs",switchLabel:"text-xs"},md:{track:"h-6 w-11",thumb:"h-5 w-5",translate:"translate-x-5",label:"text-base",description:"text-sm",switchLabel:"text-xs"},lg:{track:"h-7 w-13",thumb:"h-6 w-6",translate:"translate-x-6",label:"text-lg",description:"text-base",switchLabel:"text-sm"}},M={default:{trackOff:"bg-gray-200",trackOn:"bg-blue-600",focus:"focus:ring-blue-500"},success:{trackOff:"bg-gray-200",trackOn:"bg-green-600",focus:"focus:ring-green-500"},warning:{trackOff:"bg-gray-200",trackOn:"bg-yellow-600",focus:"focus:ring-yellow-500"},error:{trackOff:"bg-gray-200",trackOn:"bg-red-600",focus:"focus:ring-red-500"}},A=ee[H],ue=M[o?"error":B?"success":T],pe=de("flex items-start gap-3",V==="left"&&"flex-row-reverse",P),ge=de("relative inline-flex items-center rounded-full border-2 border-transparent transition-colors duration-200","focus:outline-none focus:ring-2 focus:ring-offset-2",A.track,ue.focus,w?ue.trackOn:ue.trackOff,D?"opacity-50 cursor-not-allowed":"cursor-pointer"),ie=de("inline-block bg-white rounded-full shadow-lg transform transition-transform duration-200",A.thumb,w?A.translate:"translate-x-0");return jsxs("div",{className:"space-y-2",children:[jsxs("label",{className:pe,children:[jsx("input",{ref:Q,type:"checkbox",checked:w,onChange:L,disabled:D,className:"sr-only",role:"switch","aria-checked":w,...U}),jsxs("div",{className:"flex items-center gap-2",children:[c&&jsx("span",{className:de(A.switchLabel,"text-gray-600",!w&&"font-medium text-gray-900"),children:d}),jsx("div",{className:ge,children:jsx("div",{className:ie})}),c&&jsx("span",{className:de(A.switchLabel,"text-gray-600",w&&"font-medium text-gray-900"),children:i})]}),(X||t)&&jsxs("div",{className:"flex-1 min-w-0",children:[X&&jsx("div",{className:de("font-medium text-gray-900",A.label,D&&"text-gray-400",J),children:X}),t&&jsx("div",{className:de("text-gray-600 mt-1",A.description,D&&"text-gray-400"),children:t})]})]}),o&&m&&jsx("div",{className:de("text-red-600 flex items-center gap-1",A.description),children:jsx("span",{children:m})}),B&&u&&jsx("div",{className:de("text-green-600 flex items-center gap-1",A.description),children:jsx("span",{children:u})})]})});Et.displayName="BirhausSwitch";function Ts(e=false){let[s,n]=useState(e),[a,l]=useState(false),[S,c]=useState(false);return {checked:s,setChecked:n,error:a,setError:l,success:S,setSuccess:c,toggle:()=>n(h=>!h),reset:()=>{n(e),l(false),c(false);}}}function He(...e){return e.filter(Boolean).join(" ")}var wt=forwardRef(({tabs:e,activeTab:s,onTabChange:n,maxVisibleTabs:a=4,showCognitiveWarning:l=true,variant:S="default",size:c="md",orientation:R="horizontal",activateOnHover:v=false,lazy:h=false,overflowBehavior:K="dropdown",contentPadding:Z=true,className:j,tabListClassName:T,tabClassName:H,contentClassName:V},o)=>{let[_,b]=useState(e[0]?.id||""),[q,B]=useState(false),F=s!==void 0?s:_,se=s!==void 0,Y=(t,m,u)=>t||m||u||"",{visibleTabs:z,overflowTabs:D,cognitiveLoad:ae}=useMemo(()=>{let m=[...e.filter(L=>!L.disabled)].sort((L,ee)=>{let M=L.cognitiveWeight||5,A=ee.cognitiveWeight||5;return M-A}),u=m.slice(0,a),i=m.slice(a),d=u.length>4?"high":u.length>3?"medium":"low";return {visibleTabs:u,overflowTabs:i,cognitiveLoad:d}},[e,a]);l&&z.length>4&&console.warn(`BIRHAUS 4-3-1 Rule Warning: Tabs show ${z.length} items (recommended: max 4)`);let P=t=>{let m=e.find(u=>u.id===t);m&&!m.disabled&&(se||b(t),n?.(t),B(false));},J=t=>{v&&P(t);},U=e.find(t=>t.id===F),Q={sm:{tab:"px-3 py-1.5 text-sm",content:"p-3",badge:"text-xs px-1.5 py-0.5"},md:{tab:"px-4 py-2 text-base",content:"p-4",badge:"text-xs px-2 py-1"},lg:{tab:"px-6 py-3 text-lg",content:"p-6",badge:"text-sm px-2.5 py-1"}},E={default:{tabList:"border-b border-gray-200",tab:"border-b-2 border-transparent hover:border-gray-300",activeTab:"border-blue-600 text-blue-600",inactiveTab:"text-gray-500 hover:text-gray-700"},pills:{tabList:"bg-gray-100 rounded-lg p-1",tab:"rounded-md transition-colors",activeTab:"bg-white text-gray-900 shadow-sm",inactiveTab:"text-gray-600 hover:text-gray-900 hover:bg-white/50"},underline:{tabList:"",tab:"border-b-2 border-transparent",activeTab:"border-blue-600 text-blue-600",inactiveTab:"text-gray-500 hover:text-gray-700 hover:border-gray-300"},bordered:{tabList:"border border-gray-200 rounded-t-lg",tab:"border-r border-gray-200 last:border-r-0",activeTab:"bg-white text-gray-900 border-b-white",inactiveTab:"bg-gray-50 text-gray-600 hover:bg-gray-100"}},N={horizontal:{container:"w-full",tabList:"flex",content:"w-full"},vertical:{container:"flex gap-4",tabList:"flex flex-col min-w-48",content:"flex-1"}},w=Q[c],O=E[S],y=N[R],X=(t,m)=>{let u=Y(t.labelEs,t.labelEn,t.label);return jsxs("button",{onClick:()=>P(t.id),onMouseEnter:()=>J(t.id),disabled:t.disabled,className:He("relative inline-flex items-center gap-2 font-medium transition-colors duration-200","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2",w.tab,O.tab,m?O.activeTab:O.inactiveTab,t.disabled&&"opacity-50 cursor-not-allowed",H),role:"tab","aria-selected":m,"aria-controls":`tabpanel-${t.id}`,id:`tab-${t.id}`,"data-birhaus-component":"tab","data-active":m,children:[t.icon&&jsx("span",{className:"flex-shrink-0",children:t.icon}),jsx("span",{children:u}),t.badge&&jsx("span",{className:He("inline-flex items-center justify-center rounded-full bg-gray-200 text-gray-800",w.badge,m&&"bg-blue-100 text-blue-800"),children:t.badge})]},t.id)};return jsxs("div",{ref:o,className:He(y.container,j),"data-birhaus-component":"tabs","data-cognitive-load":ae,"data-orientation":R,children:[l&&ae==="high"&&jsxs("div",{className:"flex items-center gap-2 p-3 mb-4 bg-yellow-50 border border-yellow-200 rounded-lg",children:[jsx(AlertTriangle,{className:"h-4 w-4 text-yellow-600"}),jsxs("span",{className:"text-sm text-yellow-800",children:["Mostrando ",z.length," pesta\xF1as (m\xE1ximo recomendado: 4).",D.length>0&&` ${D.length} pesta\xF1as en men\xFA desplegable.`]})]}),jsxs("div",{className:He(y.tabList,O.tabList,T),role:"tablist","aria-orientation":R,children:[z.map(t=>X(t,t.id===F)),D.length>0&&K==="dropdown"&&jsxs("div",{className:"relative",children:[jsxs("button",{onClick:()=>B(!q),className:He("inline-flex items-center gap-2 font-medium transition-colors duration-200","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2",w.tab,O.tab,O.inactiveTab),children:[jsx("span",{children:"M\xE1s"}),jsx(ChevronDown,{className:"h-4 w-4"})]}),q&&jsx("div",{className:"absolute top-full left-0 mt-1 w-48 bg-white border border-gray-200 rounded-lg shadow-lg z-10",children:D.map(t=>{let m=Y(t.labelEs,t.labelEn,t.label),u=t.id===F;return jsxs("button",{onClick:()=>P(t.id),disabled:t.disabled,className:He("w-full flex items-center gap-2 px-4 py-2 text-left hover:bg-gray-50","focus:outline-none focus:bg-gray-50",u&&"bg-blue-50 text-blue-600",t.disabled&&"opacity-50 cursor-not-allowed"),children:[t.icon,jsx("span",{children:m}),t.badge&&jsx("span",{className:"ml-auto text-xs bg-gray-200 text-gray-800 px-1.5 py-0.5 rounded-full",children:t.badge})]},t.id)})})]})]}),jsx("div",{className:He(y.content,Z&&w.content,V),children:U&&jsx("div",{role:"tabpanel",id:`tabpanel-${U.id}`,"aria-labelledby":`tab-${U.id}`,tabIndex:0,children:h?U.content:e.map(t=>jsx("div",{className:t.id===F?"block":"hidden",role:"tabpanel",id:`tabpanel-${t.id}`,"aria-labelledby":`tab-${t.id}`,tabIndex:t.id===F?0:-1,children:t.content},t.id))})}),q&&jsx("div",{className:"fixed inset-0 z-0",onClick:()=>B(false)})]})});wt.displayName="BirhausTabs";var Ct=({children:e})=>jsx(Fragment,{children:e});Ct.displayName="BirhausTab";function Ls(e){let[s,n]=useState(e||""),[a,l]=useState([]);return {activeTab:s,setActiveTab:v=>{l(h=>[...h.filter(K=>K!==v),s].filter(Boolean)),n(v);},tabHistory:a,goBack:()=>{if(a.length>0){let v=a[a.length-1];return l(h=>h.slice(0,-1)),n(v),v}return null},reset:v=>{n(v),l([]);}}}function Rs(e,s,n,a){return {id:e,label:s,labelEs:s,labelEn:a?.labelEn,content:n,icon:a?.icon,badge:a?.badge,disabled:a?.disabled||false,cognitiveWeight:a?.cognitiveWeight||5}}function Fe(...e){return e.filter(Boolean).join(" ")}var Tt=forwardRef(({options:e,value:s,onValueChange:n,placeholder:a,placeholderEs:l,placeholderEn:S,emptyMessage:c,emptyMessageEs:R,emptyMessageEn:v,searchPlaceholder:h,searchPlaceholderEs:K,searchPlaceholderEn:Z,maxVisibleOptions:j=7,showCognitiveWarning:T=true,searchable:H=true,clearable:V=true,disabled:o=false,loading:_=false,filterFunction:b,variant:q="default",size:B="md",error:F=false,errorMessage:se,errorMessageEs:Y,errorMessageEn:z,required:D=false,dropdownPosition:ae="auto",className:P,dropdownClassName:J,...U},Q)=>{let [E,N]=useState(false),[w,O]=useState(""),[y,X$1]=useState(-1),[t,m]=useState(s||""),u=s!==void 0?s:t,i=s!==void 0,d=useRef(null),L=useRef(null),ee=useRef(null),M=(g,W,Ee)=>g||W||Ee||"",A=M(l,S,a||"Seleccionar opci\xF3n..."),ue=M(R,v,c||"No se encontraron opciones"),ge=M(Y,z,se),r=b||((g,W)=>{let Ee=W.toLowerCase(),x=M(g.labelEs,g.labelEn,g.label).toLowerCase(),k=M(g.descriptionEs,g.descriptionEn,g.description)?.toLowerCase()||"",he=g.searchTerms?.join(" ").toLowerCase()||"";return x.includes(Ee)||k.includes(Ee)||he.includes(Ee)}),{filteredOptions:p,visibleOptions:f,hiddenCount:$,cognitiveLoad:C}=useMemo(()=>{let g=e.filter(k=>!k.disabled&&(w===""||r(k,w))),W=g.slice(0,j),Ee=g.length-W.length,x=W.length>7?"high":W.length>5?"medium":"low";return {filteredOptions:g,visibleOptions:W,hiddenCount:Ee,cognitiveLoad:x}},[e,w,j,r]);T&&f.length>7&&console.warn(`BIRHAUS Miller's Law Warning: Combobox shows ${f.length} options (recommended: max 7)`);let be=e.find(g=>g.value===u),le=g=>{i||m(g),n?.(g),N(false),O(""),X$1(-1);},ye=()=>{le("");},Se=g=>{if(!o)switch(g.key){case "ArrowDown":g.preventDefault(),E?X$1(W=>W<f.length-1?W+1:0):N(true);break;case "ArrowUp":g.preventDefault(),E&&X$1(W=>W>0?W