rharuow-ds 1.7.2 → 1.8.2
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/README.md +83 -2
- package/dist/rharuow-ds.cjs.js +1 -1
- package/dist/rharuow-ds.es.js +857 -719
- package/dist/styles.css +1 -1
- package/dist/types/src/components/Accordion.d.ts +22 -0
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/stories/Accordion.stories.d.ts +18 -0
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ Um Design System moderno em React com integração completa ao React Hook Form,
|
|
|
44
44
|
## 🌟 Características
|
|
45
45
|
|
|
46
46
|
- ⚛️ **React 18+** com TypeScript
|
|
47
|
-
- 🧩 **
|
|
47
|
+
- 🧩 **15 componentes** prontos para uso (Input, Textarea, Select, AsyncSelect, MultiSelect, MultiAsyncSelect, RadioGroup, Button, Card, Table, Tooltip, Accordion, AsideSheet, ImageInput)
|
|
48
48
|
- 💡 **Filtro digitável** em componentes Select - Digite para encontrar opções rapidamente
|
|
49
49
|
- 🔗 **Integração nativa** com React Hook Form
|
|
50
50
|
- 🎨 **Customização via CSS Variables** - Mude o tema facilmente
|
|
@@ -110,6 +110,9 @@ npm install react-hook-form
|
|
|
110
110
|
MultiSelect,
|
|
111
111
|
RadioGroup,
|
|
112
112
|
Tooltip,
|
|
113
|
+
Accordion,
|
|
114
|
+
AsideSheet,
|
|
115
|
+
ImageInput,
|
|
113
116
|
} from "rharuow-ds";
|
|
114
117
|
|
|
115
118
|
function App() {
|
|
@@ -194,6 +197,9 @@ npm install react-hook-form
|
|
|
194
197
|
RadioGroup,
|
|
195
198
|
Button,
|
|
196
199
|
Tooltip,
|
|
200
|
+
Accordion,
|
|
201
|
+
AsideSheet,
|
|
202
|
+
ImageInput,
|
|
197
203
|
} from "rharuow-ds";
|
|
198
204
|
|
|
199
205
|
function FormExample() {
|
|
@@ -439,8 +445,83 @@ Componente de tooltip inteligente e acessível:
|
|
|
439
445
|
<Tooltip content="Este não aparece" disabled>
|
|
440
446
|
<Button>Tooltip desabilitado</Button>
|
|
441
447
|
</Tooltip>
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### 🪗 **Accordion**
|
|
451
|
+
|
|
452
|
+
Componente de accordion (acordeão) flexível e acessível para expandir e colapsar seções de conteúdo:
|
|
453
|
+
|
|
454
|
+
- ✅ **Modo single**: Apenas um item aberto por vez
|
|
455
|
+
- ✅ **Modo multiple**: Vários itens podem estar abertos simultaneamente
|
|
456
|
+
- ✅ **Animações suaves**: Transições de altura com ease-in-out
|
|
457
|
+
- ✅ **Variantes visuais**: default, bordered, separated
|
|
458
|
+
- ✅ **Acessibilidade completa**: ARIA labels e navegação por teclado
|
|
459
|
+
- ✅ **Itens desabilitados**: Suporte para itens que não podem ser expandidos
|
|
460
|
+
- ✅ **Ícones customizados**: Adicione ícones aos títulos
|
|
461
|
+
- ✅ **Collapsible configurável**: Controle se todos os itens podem ser fechados
|
|
462
|
+
- ✅ **DefaultOpen**: Items podem iniciar abertos
|
|
463
|
+
- ✅ **Customização total**: Classes CSS para header e content
|
|
464
|
+
|
|
465
|
+
```tsx
|
|
466
|
+
// Accordion básico
|
|
467
|
+
<Accordion>
|
|
468
|
+
<Accordion.Item title="O que é React?">
|
|
469
|
+
<p>React é uma biblioteca JavaScript para construir interfaces de usuário.</p>
|
|
470
|
+
</Accordion.Item>
|
|
471
|
+
<Accordion.Item title="O que é TypeScript?">
|
|
472
|
+
<p>TypeScript é um superset de JavaScript que adiciona tipagem estática.</p>
|
|
473
|
+
</Accordion.Item>
|
|
474
|
+
</Accordion>
|
|
475
|
+
|
|
476
|
+
// Accordion com múltiplos itens abertos
|
|
477
|
+
<Accordion type="multiple">
|
|
478
|
+
<Accordion.Item title="Seção 1" defaultOpen>
|
|
479
|
+
<p>Esta seção inicia aberta.</p>
|
|
480
|
+
</Accordion.Item>
|
|
481
|
+
<Accordion.Item title="Seção 2" defaultOpen>
|
|
482
|
+
<p>Esta seção também inicia aberta.</p>
|
|
483
|
+
</Accordion.Item>
|
|
484
|
+
</Accordion>
|
|
485
|
+
|
|
486
|
+
// Accordion com variant bordered
|
|
487
|
+
<Accordion variant="bordered">
|
|
488
|
+
<Accordion.Item title="Recursos do Produto">
|
|
489
|
+
<ul>
|
|
490
|
+
<li>Interface intuitiva</li>
|
|
491
|
+
<li>Integração com múltiplas plataformas</li>
|
|
492
|
+
<li>Suporte 24/7</li>
|
|
493
|
+
</ul>
|
|
494
|
+
</Accordion.Item>
|
|
495
|
+
</Accordion>
|
|
496
|
+
|
|
497
|
+
// Accordion com ícones customizados
|
|
498
|
+
<Accordion variant="separated" type="multiple">
|
|
499
|
+
<Accordion.Item
|
|
500
|
+
title="Documentação"
|
|
501
|
+
icon={<DocumentIcon />}
|
|
502
|
+
>
|
|
503
|
+
<p>Acesse a documentação completa.</p>
|
|
504
|
+
</Accordion.Item>
|
|
505
|
+
<Accordion.Item
|
|
506
|
+
title="Suporte"
|
|
507
|
+
icon={<SupportIcon />}
|
|
508
|
+
>
|
|
509
|
+
<p>Entre em contato com nossa equipe.</p>
|
|
510
|
+
</Accordion.Item>
|
|
511
|
+
</Accordion>
|
|
512
|
+
|
|
513
|
+
// Accordion não collapsible (sempre mantém um aberto)
|
|
514
|
+
<Accordion collapsible={false}>
|
|
515
|
+
<Accordion.Item title="Passo 1" defaultOpen>
|
|
516
|
+
<p>Configure seu ambiente.</p>
|
|
517
|
+
</Accordion.Item>
|
|
518
|
+
<Accordion.Item title="Passo 2">
|
|
519
|
+
<p>Desenvolva sua aplicação.</p>
|
|
520
|
+
</Accordion.Item>
|
|
521
|
+
</Accordion>
|
|
522
|
+
```
|
|
442
523
|
|
|
443
|
-
### 🪟 AsideSheet
|
|
524
|
+
### 🪟 **AsideSheet**
|
|
444
525
|
|
|
445
526
|
Componente tipo painel deslizante (sheet) que abre a partir das bordas da tela.
|
|
446
527
|
|
package/dist/rharuow-ds.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),Z=require("react-hook-form"),Ee=require("react-dom");function Ae(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,a.get?a:{enumerable:!0,get:()=>t[r]})}}return n.default=t,Object.freeze(n)}const e=Ae(o);function Ce(t){var n,r,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(n=0;n<i;n++)t[n]&&(r=Ce(t[n]))&&(a&&(a+=" "),a+=r)}else for(r in t)t[r]&&(a&&(a+=" "),a+=r);return a}function $e(){for(var t,n,r=0,a="",i=arguments.length;r<i;r++)(t=arguments[r])&&(n=Ce(t))&&(a&&(a+=" "),a+=n);return a}function d(...t){return $e(...t)}const We=({children:t,variant:n="default",className:r="",...a})=>{const i="px-4 py-2 rounded font-medium transition",x={default:"bg-[var(--primary,#2563eb)] text-[var(--primary-text,#fff)] hover:bg-[var(--primary-hover,#1d4ed8)]",outline:"border border-[var(--primary,#2563eb)] text-[var(--primary,#2563eb)] bg-white hover:bg-[var(--primary-hover,#e0e7ff)]",secondary:"bg-[var(--secondary,#fbbf24)] text-[var(--secondary-text,#222)] hover:bg-[var(--secondary-hover,#f59e42)]"};return o.createElement("button",{className:d(i,x[n],r),...a},t)},Ne=t=>t.replace(/\D/g,""),ze=t=>{const r=Ne(t).slice(0,11);return r.length<=3?r:r.length<=6?`${r.slice(0,3)}.${r.slice(3)}`:r.length<=9?`${r.slice(0,3)}.${r.slice(3,6)}.${r.slice(6)}`:`${r.slice(0,3)}.${r.slice(3,6)}.${r.slice(6,9)}-${r.slice(9,11)}`},ye=t=>{const n=Ne(t);if(n.length!==11||/^(\d)\1{10}$/.test(n))return!1;let r=0;for(let i=0;i<9;i++)r+=parseInt(n.charAt(i))*(10-i);let a=r*10%11;if((a===10||a===11)&&(a=0),a!==parseInt(n.charAt(9)))return!1;r=0;for(let i=0;i<10;i++)r+=parseInt(n.charAt(i))*(11-i);return a=r*10%11,(a===10||a===11)&&(a=0),a===parseInt(n.charAt(10))},ke=e.forwardRef(({name:t,className:n,type:r="text",label:a,onFocus:i,onBlur:x,onChange:b,Icon:B,iconClassName:_,iconAction:S,containerClassName:w,cpf:y=!1,...u},M)=>{var I,P,G;const[k,F]=e.useState(!1),[g,h]=e.useState(!1),[v,E]=e.useState(null),s=Z.useFormContext(),C=s==null?void 0:s.control,N=s==null?void 0:s.register,L=C&&t?Z.useWatch({control:C,name:t}):void 0,m=u.value??L??"",H=((G=(P=(I=s==null?void 0:s.formState)==null?void 0:I.errors)==null?void 0:P[t])==null?void 0:G.message)||v,R=["date","datetime-local","time","month","week"].includes(r),J=k||!!m||R,ee=r==="password"?g?"text":"password":r,Y=()=>e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z",fill:"currentColor"})),O=()=>e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z",fill:"currentColor"})),$=()=>{h(!g)},X=W=>{if(y){const q=W.target.value,j=ze(q);W.target.value=j,j.length===14?ye(j)?E(null):E("CPF inválido"):E(null)}b&&b(W)};return e.createElement("div",{className:d("relative",w)},e.createElement("input",{id:u.id||t,type:ee,className:d("peer flex h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50",r==="password"||B?"pr-12":"",H?"border-red-500":"",n),onFocus:W=>{F(!0),i&&i(W)},maxLength:y?14:u.maxLength,inputMode:y?"numeric":u.inputMode,...s&&t?(()=>{const W=N(t,y?{validate:D=>D?D.length<14?"CPF incompleto":ye(D)?!0:"CPF inválido":"CPF é obrigatório"}:void 0),q=W.onBlur,j=W.onChange;return{...W,ref:D=>{typeof M=="function"?M(D):M&&(M.current=D),W.ref&&W.ref(D)},onBlur:D=>{F(!1),x&&x(D),q&&q(D)},onChange:D=>{X(D),j&&j(D)}}})():{ref:M,onBlur:W=>{F(!1),x&&x(W)},onChange:X},...u}),a&&e.createElement("label",{htmlFor:u.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",J?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},a),r==="password"&&e.createElement("button",{type:"button",className:"absolute top-1/2 right-3 -translate-y-1/2 text-gray-400 hover:text-[var(--primary,#2563eb)] transition-colors duration-200 focus:outline-none focus:text-[var(--primary,#2563eb)]",onClick:$,"aria-label":g?"Esconder senha":"Mostrar senha",tabIndex:-1},g?e.createElement(O,null):e.createElement(Y,null)),B&&r!=="password"&&e.createElement("div",{className:d("absolute top-1/2 right-3 -translate-y-1/2 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",_),onClick:S},e.createElement(B,null)),H&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},H))});ke.displayName="Input";const Se=e.forwardRef(({name:t,label:n,options:r,className:a,containerClassName:i,isClearable:x,searchable:b=!1,filterPlaceholder:B="Digite para filtrar...",caseSensitive:_=!1,filterFunction:S,onFocus:w,onBlur:y,...u},M)=>{var ae,oe,c,A;const[k,F]=e.useState(!1),[g,h]=e.useState(!1),[v,E]=e.useState(""),[s,C]=e.useState({top:0,left:0,width:0}),N=e.useRef(null),L=e.useRef(null),m=Z.useFormContext(),H=m==null?void 0:m.control,U=H&&t?Z.useWatch({control:H,name:t}):void 0,R=u.value??U??"",J=(c=(oe=(ae=m==null?void 0:m.formState)==null?void 0:ae.errors)==null?void 0:oe[t])==null?void 0:c.message,Y=S||((l,z)=>{const K=_?l.label:l.label.toLowerCase(),re=_?z:z.toLowerCase();return K.includes(re)}),O=v.trim()?r.filter(l=>Y(l,v.trim())):r,$=r.find(l=>l.value===R),X=b&&g?v:($==null?void 0:$.label)||"",I=k||!!R||b&&!!v,P=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),G=e.useCallback(()=>{if(N.current&&g){const l=N.current.getBoundingClientRect(),z=P(),K=window.innerHeight,re=window.innerWidth,Q=152;let p=l.bottom+4,V=l.left;if(z){const ne=K-l.bottom,f=l.top;ne<Q&&f>Q&&(p=l.top-Q-4);const T=16,te=re-l.width-T;V=Math.min(Math.max(V,T),te)}else K-l.bottom<Q&&(p=l.top-Q-4);C({top:p,left:V,width:l.width})}},[g,P]);e.useEffect(()=>{if(G(),g){const l=()=>G(),z=()=>G();return window.addEventListener("resize",l),window.addEventListener("scroll",z,!0),()=>{window.removeEventListener("resize",l),window.removeEventListener("scroll",z,!0)}}},[g,G]),e.useEffect(()=>{const l=z=>{N.current&&!N.current.contains(z.target)&&(h(!1),F(!1))};return document.addEventListener("mousedown",l),()=>{document.removeEventListener("mousedown",l)}},[]);const W=()=>{h(l=>!l),F(!0)},q=l=>{F(!0),w&&w(l)},j=l=>{y&&y(l)},D=l=>{E(l.target.value)},le=l=>{if(m&&t&&m.setValue(t,l),u.onChange){const z={target:{value:l}};u.onChange(z)}h(!1),F(!1),E("")};return e.createElement("div",{className:d("relative",i),ref:N},e.createElement("div",{id:u.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":g,className:d("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",a),onClick:b?void 0:W,onFocus:b?void 0:q,onBlur:b?void 0:j,ref:M},b?e.createElement("input",{ref:L,type:"text",value:X,onChange:D,onFocus:b?l=>{F(!0),h(!0),w&&w(l)}:void 0,onBlur:b?l=>{y&&y(l)}:void 0,placeholder:n?"":B||"Selecione...",className:d("w-full bg-transparent border-none outline-none text-sm",!R&&!v&&"text-gray-400")}):e.createElement("span",{className:d("block truncate",!R&&"text-gray-400")},((A=r.find(l=>l.value===R))==null?void 0:A.label)||!n&&"Selecione..."),x&&R&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:l=>{if(l.stopPropagation(),m&&t&&m.setValue(t,""),u.onChange){const z={target:{value:""}};u.onChange(z)}h(!1),F(!1)}},"✕")),n&&e.createElement("label",{htmlFor:u.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",I?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",g?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:g?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:g?`${s.top}px`:"auto",left:g?`${s.left}px`:"auto",width:g?`${s.width}px`:"auto",zIndex:9999,boxShadow:g?"var(--select-dropdown-shadow)":"none"}},O.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):O.map(l=>e.createElement("div",{key:l.value,className:d("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",R===l.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>le(l.value)},l.label))),J&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},J))});Se.displayName="Select";const Fe=e.forwardRef(({name:t,className:n,label:r,onFocus:a,onBlur:i,Icon:x,iconClassName:b,iconAction:B,containerClassName:_,rows:S=4,...w},y)=>{var C,N,L;const[u,M]=e.useState(!1),k=Z.useFormContext(),F=k==null?void 0:k.control,g=k==null?void 0:k.register,h=F&&t?Z.useWatch({control:F,name:t}):void 0,v=w.value??h??"",E=(L=(N=(C=k==null?void 0:k.formState)==null?void 0:C.errors)==null?void 0:N[t])==null?void 0:L.message,s=u||!!v;return e.createElement("div",{className:d("relative",_)},e.createElement("textarea",{id:w.id||t,rows:S,className:d("peer flex min-h-[80px] w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 resize-vertical",x?"pr-12":"",n),onFocus:m=>{M(!0),a&&a(m)},...k&&t?(()=>{const m=g(t),H=m.onBlur;return{...m,ref:U=>{typeof y=="function"?y(U):y&&(y.current=U),m.ref&&m.ref(U)},onBlur:U=>{M(!1),i&&i(U),H&&H(U)}}})():{ref:y,onBlur:m=>{M(!1),i&&i(m)}},...w}),r&&e.createElement("label",{htmlFor:w.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",s?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},r),x&&e.createElement("div",{className:d("absolute top-3 right-3 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",b),onClick:B},e.createElement(x,null)),E&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},E))});Fe.displayName="Textarea";const Re=e.forwardRef(({name:t,label:n,loadOptions:r,className:a,containerClassName:i,isClearable:x,defaultOptions:b=!1,loadingMessage:B="Carregando...",noOptionsMessage:_="Nenhuma opção encontrada",searchable:S=!1,debounceMs:w=300,onFocus:y,onBlur:u,...M},k)=>{var K,re,Q;const[F,g]=e.useState(!1),[h,v]=e.useState(!1),[E,s]=e.useState([]),[C,N]=e.useState(!1),[L,m]=e.useState(""),[H,U]=e.useState(""),[R,J]=e.useState({top:0,left:0,width:0}),ee=e.useRef(null),Y=e.useRef(null),O=Z.useFormContext(),$=O==null?void 0:O.control,X=$&&t?Z.useWatch({control:$,name:t}):void 0,I=M.value??X??"",P=(Q=(re=(K=O==null?void 0:O.formState)==null?void 0:K.errors)==null?void 0:re[t])==null?void 0:Q.message,G=F||!!I,W=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),q=e.useCallback(()=>{if(ee.current&&h){const p=ee.current.getBoundingClientRect(),V=W(),ne=window.innerHeight,f=window.innerWidth,T=152;let te=p.bottom+4,ie=p.left;if(V){const se=ne-p.bottom,de=p.top;se<T&&de>T&&(te=p.top-T-4);const ce=16,ue=f-p.width-ce;ie=Math.min(Math.max(ie,ce),ue)}else ne-p.bottom<T&&(te=p.top-T-4);J({top:te,left:ie,width:p.width})}},[h,W]);e.useEffect(()=>{if(q(),h){const p=()=>q(),V=()=>q();return window.addEventListener("resize",p),window.addEventListener("scroll",V,!0),()=>{window.removeEventListener("resize",p),window.removeEventListener("scroll",V,!0)}}},[h,q]),e.useEffect(()=>{const p=setTimeout(()=>{U(L)},w);return()=>clearTimeout(p)},[L,w]),e.useEffect(()=>{(h||b&&E.length===0)&&j(S?H:void 0)},[H,h]),e.useEffect(()=>{b===!0?j():Array.isArray(b)&&s(b)},[]);const j=async p=>{try{N(!0);const V=await r(p);s(V)}catch(V){console.error("Error loading options:",V),s([])}finally{N(!1)}};e.useEffect(()=>{const p=V=>{ee.current&&!ee.current.contains(V.target)&&(v(!1),g(!1),m(""))};return document.addEventListener("mousedown",p),()=>{document.removeEventListener("mousedown",p)}},[]);const D=()=>{h||(v(!0),g(!0),S&&Y.current&&setTimeout(()=>{var p;return(p=Y.current)==null?void 0:p.focus()},0))},le=p=>{g(!0),y&&y(p)},ae=p=>{u&&u(p)},oe=p=>{m(p.target.value)},c=p=>{if(O&&t&&O.setValue(t,p),M.onChange){const V={target:{value:p}};M.onChange(V)}v(!1),g(!1),m("")},A=p=>{if(p.stopPropagation(),O&&t&&O.setValue(t,""),M.onChange){const V={target:{value:""}};M.onChange(V)}v(!1),g(!1),m("")},l=E.find(p=>p.value===I),z=S&&h?L:(l==null?void 0:l.label)||"";return e.createElement("div",{className:d("relative",i),ref:ee},e.createElement("div",{id:M.id||t,tabIndex:S?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":h,className:d("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",a),onClick:D,onFocus:S?void 0:le,onBlur:S?void 0:ae,ref:k},S?e.createElement("input",{ref:Y,type:"text",value:z,onChange:oe,onFocus:le,onBlur:ae,placeholder:n?"":"Selecione...",className:d("w-full bg-transparent border-none outline-none text-sm",!I&&!L&&"text-gray-400")}):e.createElement("span",{className:d("block truncate",!I&&"text-gray-400")},(l==null?void 0:l.label)||!n&&"Selecione..."),C&&e.createElement("div",{className:"absolute right-8 top-1/2 -translate-y-1/2"},e.createElement("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-[var(--primary,#2563eb)]"})),x&&I&&!C&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:A},"✕")),n&&e.createElement("label",{htmlFor:M.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",G?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",h?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:h?"9.5rem":"0",overflowY:E.length>3?"auto":"hidden",position:"fixed",top:h?`${R.top}px`:"auto",left:h?`${R.left}px`:"auto",width:h?`${R.width}px`:"auto",zIndex:9999,boxShadow:h?"var(--select-dropdown-shadow)":"none"}},C?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},B):E.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},_):E.map(p=>e.createElement("div",{key:p.value,className:d("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",I===p.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>c(p.value)},p.label))),P&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},P))});Re.displayName="AsyncSelect";const Me=e.forwardRef(({name:t,label:n,options:r,className:a,containerClassName:i,isClearable:x,searchable:b=!1,filterPlaceholder:B="Digite para filtrar...",caseSensitive:_=!1,filterFunction:S,onFocus:w,onBlur:y,...u},M)=>{var le,ae,oe;const[k,F]=e.useState(!1),[g,h]=e.useState(!1),[v,E]=e.useState(""),[s,C]=e.useState({top:0,left:0,width:0}),N=e.useRef(null),L=e.useRef(null),m=Z.useFormContext(),H=m==null?void 0:m.control,U=H&&t?Z.useWatch({control:H,name:t}):void 0,R=u.value??U??[],J=(oe=(ae=(le=m==null?void 0:m.formState)==null?void 0:le.errors)==null?void 0:ae[t])==null?void 0:oe.message,Y=S||((c,A)=>{const l=_?c.label:c.label.toLowerCase(),z=_?A:A.toLowerCase();return l.includes(z)}),O=v.trim()?r.filter(c=>Y(c,v.trim())):r,$=k||R&&R.length>0||b&&!!v,X=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),I=e.useCallback(()=>{if(N.current&&g){const c=N.current.getBoundingClientRect(),A=X(),l=window.innerHeight,z=window.innerWidth,K=152;let re=c.bottom+4,Q=c.left;if(A){const p=l-c.bottom,V=c.top;p<K&&V>K&&(re=c.top-K-4);const ne=16,f=z-c.width-ne;Q=Math.min(Math.max(Q,ne),f)}else l-c.bottom<K&&(re=c.top-K-4);C({top:re,left:Q,width:c.width})}},[g,X]);e.useEffect(()=>{if(I(),g){const c=()=>I(),A=()=>I();return window.addEventListener("resize",c),window.addEventListener("scroll",A,!0),()=>{window.removeEventListener("resize",c),window.removeEventListener("scroll",A,!0)}}},[g,I]),e.useEffect(()=>{const c=A=>{N.current&&!N.current.contains(A.target)&&(h(!1),F(!1))};return document.addEventListener("mousedown",c),()=>{document.removeEventListener("mousedown",c)}},[]);const P=()=>{h(c=>!c),F(!0)},G=c=>{F(!0),w&&w(c)},W=c=>{y&&y(c)},q=c=>{var l;let A;R.includes(c)?A=R.filter(z=>z!==c):A=[...R,c],m&&t&&m.setValue(t,A),u.onChange&&((l=u.onChange)==null||l.call(u,{target:{value:A}})),F(!0)},j=c=>{var A;c.stopPropagation(),m&&t&&m.setValue(t,[]),u.onChange&&((A=u.onChange)==null||A.call(u,{target:{value:[]}})),h(!1),F(!1)},D=c=>{E(c.target.value)};return e.createElement("div",{className:d("relative",i),ref:N},e.createElement("div",{id:u.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":g,className:d("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",a),onClick:b?void 0:P,onFocus:b?void 0:G,onBlur:b?void 0:W,ref:M},e.createElement("div",{className:"flex flex-nowrap gap-1 items-center min-h-[1.5rem] w-full overflow-x-auto",style:{scrollbarWidth:"none"}},R&&R.length>0?r.filter(c=>R.includes(c.value)).map(c=>e.createElement("span",{key:c.value,className:"flex items-center border border-blue-200 bg-blue-50 text-blue-700 rounded-2xl px-3 py-1 text-xs shadow-sm mr-1 gap-2",style:{maxWidth:"140px"}},e.createElement("span",{className:"truncate",title:c.label},c.label),e.createElement("button",{type:"button",className:"ml-1 text-[var(--primary,#2563eb)] hover:text-red-500 focus:outline-none w-4 h-4 flex items-center justify-center rounded-full transition-colors duration-150","aria-label":`Remover ${c.label}`,tabIndex:-1,onClick:A=>{A.stopPropagation();const l=R.filter(z=>z!==c.value);m&&t&&m.setValue(t,l),u.onChange&&u.onChange({target:{value:l}})}},e.createElement("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}))))):!n&&!b&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione..."),b&&e.createElement("input",{ref:L,type:"text",value:v,onChange:D,onFocus:c=>{F(!0),h(!0),w&&w(c)},onBlur:c=>{y&&y(c)},placeholder:n?R&&R.length>0?"":B:B||"Selecione...",className:"flex-1 bg-transparent border-none outline-none text-sm min-w-[100px]"})),x&&R&&R.length>0&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:j},"✕")),n&&e.createElement("label",{htmlFor:u.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",$?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",g?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:g?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:g?`${s.top}px`:"auto",left:g?`${s.left}px`:"auto",width:g?`${s.width}px`:"auto",zIndex:9999,boxShadow:g?"var(--select-dropdown-shadow)":"none"}},O.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):O.map(c=>e.createElement("div",{key:c.value,className:d("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",R.includes(c.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>q(c.value)},e.createElement("input",{type:"checkbox",checked:R.includes(c.value),readOnly:!0,className:"accent-blue-500"}),c.label))),J&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},J))});Me.displayName="MultiSelect";const Le=e.forwardRef(({name:t,label:n,loadOptions:r,className:a,containerClassName:i,isClearable:x,defaultOptions:b=!1,loadingMessage:B="Carregando...",noOptionsMessage:_="Nenhuma opção encontrada",searchable:S=!1,debounceMs:w=300,maxSelectedDisplay:y=3,onFocus:u,onBlur:M,...k},F)=>{var p,V,ne;const[g,h]=e.useState(!1),[v,E]=e.useState(!1),[s,C]=e.useState([]),[N,L]=e.useState(!1),[m,H]=e.useState(""),[U,R]=e.useState(""),[J,ee]=e.useState({top:0,left:0,width:0}),Y=e.useRef(null),O=e.useRef(null),$=Z.useFormContext(),X=$==null?void 0:$.control,I=X&&t?Z.useWatch({control:X,name:t}):void 0,P=k.value??I??[],G=(ne=(V=(p=$==null?void 0:$.formState)==null?void 0:p.errors)==null?void 0:V[t])==null?void 0:ne.message,W=g||P&&P.length>0,q=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),j=e.useCallback(()=>{if(Y.current&&v){const f=Y.current.getBoundingClientRect(),T=q(),te=window.innerHeight,ie=window.innerWidth,se=152;let de=f.bottom+4,ce=f.left;if(T){const ue=te-f.bottom,Ie=f.top;ue<se&&Ie>se&&(de=f.top-se-4);const we=16,Te=ie-f.width-we;ce=Math.min(Math.max(ce,we),Te)}else te-f.bottom<se&&(de=f.top-se-4);ee({top:de,left:ce,width:f.width})}},[v,q]);e.useEffect(()=>{if(j(),v){const f=()=>j(),T=()=>j();return window.addEventListener("resize",f),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",f),window.removeEventListener("scroll",T,!0)}}},[v,j]),e.useEffect(()=>{const f=setTimeout(()=>{R(m)},w);return()=>clearTimeout(f)},[m,w]),e.useEffect(()=>{(v||b&&s.length===0)&&D(S?U:void 0)},[U,v]),e.useEffect(()=>{b===!0?D():Array.isArray(b)&&C(b)},[]);const D=async f=>{try{L(!0);const T=await r(f);C(T)}catch(T){console.error("Error loading options:",T),C([])}finally{L(!1)}};e.useEffect(()=>{const f=T=>{Y.current&&!Y.current.contains(T.target)&&(E(!1),h(!1),H(""))};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f)}},[]);const le=()=>{v||(E(!0),h(!0),S&&O.current&&setTimeout(()=>{var f;return(f=O.current)==null?void 0:f.focus()},0))},ae=f=>{h(!0),u&&u(f)},oe=f=>{M&&M(f)},c=f=>{H(f.target.value)},A=f=>{let T;P.includes(f)?T=P.filter(te=>te!==f):T=[...P,f],$&&t&&$.setValue(t,T),k.onChange&&k.onChange({target:{value:T}}),h(!0)},l=(f,T)=>{T.stopPropagation();const te=P.filter(ie=>ie!==f);$&&t&&$.setValue(t,te),k.onChange&&k.onChange({target:{value:te}})},z=f=>{f.stopPropagation(),$&&t&&$.setValue(t,[]),k.onChange&&k.onChange({target:{value:[]}}),E(!1),h(!1),H("")},K=s.filter(f=>P.includes(f.value)),re=K.slice(0,y),Q=K.length-y;return e.createElement("div",{className:d("relative",i),ref:Y},e.createElement("div",{id:k.id||t,tabIndex:S?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":v,className:d("peer flex items-center min-h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-2 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",a),onClick:le,onFocus:S?void 0:ae,onBlur:S?void 0:oe,ref:F},e.createElement("div",{className:"flex flex-wrap gap-1 items-center min-h-[1.5rem] w-full"},re.map(f=>e.createElement("span",{key:f.value,className:"flex items-center border border-blue-200 bg-blue-50 text-blue-700 rounded-2xl px-3 py-1 text-xs shadow-sm gap-2",style:{maxWidth:"140px"}},e.createElement("span",{className:"truncate",title:f.label},f.label),e.createElement("button",{type:"button",className:"ml-1 text-[var(--primary,#2563eb)] hover:text-red-500 focus:outline-none w-4 h-4 flex items-center justify-center rounded-full transition-colors duration-150","aria-label":`Remover ${f.label}`,tabIndex:-1,onClick:T=>l(f.value,T)},e.createElement("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}))))),Q>0&&e.createElement("span",{className:"flex items-center border border-gray-200 bg-gray-100 text-gray-600 rounded-2xl px-3 py-1 text-xs"},"+",Q," mais"),S?e.createElement("input",{ref:O,type:"text",value:m,onChange:c,onFocus:ae,onBlur:oe,placeholder:P.length===0&&!n?"Selecione...":"",className:"flex-1 min-w-[120px] bg-transparent border-none outline-none text-sm"}):P.length===0&&!n&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione...")),N&&e.createElement("div",{className:"absolute right-8 top-1/2 -translate-y-1/2"},e.createElement("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-[var(--primary,#2563eb)]"})),x&&P&&P.length>0&&!N&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:z},"✕")),n&&e.createElement("label",{htmlFor:k.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",W?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",v?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:v?"9.5rem":"0",overflowY:s.length>3?"auto":"hidden",position:"fixed",top:v?`${J.top}px`:"auto",left:v?`${J.left}px`:"auto",width:v?`${J.width}px`:"auto",zIndex:9999,boxShadow:v?"var(--select-dropdown-shadow)":"none"}},N?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},B):s.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},_):s.map(f=>e.createElement("div",{key:f.value,className:d("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",P.includes(f.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>A(f.value)},e.createElement("input",{type:"checkbox",checked:P.includes(f.value),readOnly:!0,className:"accent-blue-500"}),f.label))),G&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},G))});Le.displayName="MultiAsyncSelect";const Oe={sm:"h-10 text-sm px-3",md:"h-12 text-base px-4",lg:"h-16 text-lg px-6"},Be=e.forwardRef(({name:t,label:n,options:r,className:a,containerClassName:i,optionClassName:x,direction:b="row",size:B="md",onFocus:_,onBlur:S,...w},y)=>{var v,E,s;const u=Z.useFormContext(),M=u==null?void 0:u.control,k=M&&t?Z.useWatch({control:M,name:t}):void 0,F=w.value??k??"",g=(s=(E=(v=u==null?void 0:u.formState)==null?void 0:v.errors)==null?void 0:E[t])==null?void 0:s.message,h=C=>{u&&t&&u.setValue(t,C),w.onChange&&w.onChange({target:{value:C}})};return e.createElement("div",{className:d("relative",i),ref:y},n&&e.createElement("label",{htmlFor:t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm transition-all duration-200","top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white")},n),e.createElement("div",{className:d("flex gap-2 w-full pt-6",b==="row"?"flex-row":"flex-col",a),"aria-label":n,tabIndex:-1,onFocus:_,onBlur:S},r.map(C=>e.createElement("button",{key:C.value,type:"button",className:d("relative flex items-center justify-center border rounded-lg transition-all duration-200 shadow-sm px-4 focus:outline-none focus:ring-2 focus:ring-[var(--primary-hover,#dbeafe)]",Oe[B],F===C.value?"border-[var(--primary,#2563eb)] bg-[var(--primary-hover,#dbeafe)] text-[var(--primary,#2563eb)] ring-2 ring-[var(--primary-hover,#dbeafe)] shadow-md transform scale-[1.02]":"border-gray-200 bg-white text-gray-600 hover:border-[var(--primary,#2563eb)] hover:bg-[var(--primary-hover,#dbeafe)] hover:text-[var(--primary,#2563eb)] hover:shadow-md",x),"aria-pressed":F===C.value,"data-selected":F===C.value,tabIndex:0,onClick:()=>h(C.value),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),h(C.value))}},C.icon&&e.createElement("span",{className:"mr-2 text-lg flex items-center"},C.icon),e.createElement("span",{className:"truncate font-medium"},C.label)))),g&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},g))});Be.displayName="RadioGroup";const fe=o.forwardRef(({children:t,className:n,as:r="div",...a},i)=>o.createElement(r,{ref:i,className:d("px-6 py-4 border-b","bg-[var(--card-header-bg,rgba(249,250,251,0.5))]","border-[var(--card-header-border,#e5e7eb)]","text-[var(--card-text,#111827)]",n),...a},t));fe.displayName="CardHeader";const me=o.forwardRef(({children:t,className:n,as:r="div",...a},i)=>o.createElement(r,{ref:i,className:d("px-6 py-4","flex-1","bg-[var(--card-bg,#ffffff)]","text-[var(--card-text,#111827)]",n),...a},t));me.displayName="CardBody";const pe=o.forwardRef(({children:t,className:n,as:r="div",...a},i)=>o.createElement(r,{ref:i,className:d("px-6 py-4 border-t","bg-[var(--card-footer-bg,rgba(249,250,251,0.5))]","border-[var(--card-footer-border,#e5e7eb)]","text-[var(--card-text,#111827)]",n),...a},t));pe.displayName="CardFooter";const He=o.forwardRef(({children:t,className:n,variant:r="default",size:a="md",padding:i="none",rounded:x="lg",constrainWidth:b=!1,allowOverflow:B=!1,..._},S)=>{const w={default:"bg-[var(--card-bg,#ffffff)] border border-[var(--card-border,#e5e7eb)] shadow-[var(--card-shadow-sm,0_1px_2px_0_rgb(0_0_0_/_0.05))]",outlined:"bg-[var(--card-bg,#ffffff)] border-2 border-[var(--primary,#2563eb)]",elevated:"bg-[var(--card-bg,#ffffff)] border border-[var(--card-border,#e5e7eb)] shadow-[var(--card-shadow-lg,0_10px_15px_-3px_rgb(0_0_0_/_0.1),_0_4px_6px_-4px_rgb(0_0_0_/_0.1))]",flat:"bg-[var(--card-bg,#ffffff)] border-0"},y={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},u={none:"",sm:"p-3",md:"p-4",lg:"p-6"},M={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl"};return o.createElement("div",{ref:S,className:d("flex flex-col",!B&&"overflow-hidden",w[r],b&&y[a],u[i],M[x],n),..._},t)}),Ve=Object.assign(He,{Header:fe,Body:me,Footer:pe}),Pe=o.forwardRef(({children:t,className:n,variant:r="default",size:a="md",responsive:i=!1,stickyHeader:x=!1,...b},B)=>{const _=d("w-full border-collapse bg-[var(--table-bg)] text-[var(--table-text)]",{"border border-[var(--table-border)]":r==="bordered"},{"text-sm":a==="sm","text-base":a==="md","text-lg":a==="lg"},n),S=d({"overflow-x-auto":i,"max-h-96 overflow-y-auto":x}),w=o.createElement("table",{ref:B,className:_,...b},t);return i||x?o.createElement("div",{className:S},w):w}),be=o.forwardRef(({children:t,className:n,as:r="thead",...a},i)=>o.createElement(r,{ref:i,className:d("border-b border-[var(--table-border)] bg-[var(--table-header-bg)]",{"sticky top-0 z-10":r==="thead"},n),...a},t)),ge=o.forwardRef(({children:t,className:n,as:r="tbody",...a},i)=>o.createElement(r,{ref:i,className:d("[&_tr:nth-child(odd)]:bg-[var(--table-row-odd)]","[&_tr:nth-child(even)]:bg-[var(--table-row-even)]",n),...a},t)),he=o.forwardRef(({children:t,className:n,as:r="tfoot",...a},i)=>o.createElement(r,{ref:i,className:d("border-t border-[var(--table-border)] bg-[var(--table-header-bg)] font-medium",n),...a},t)),ve=o.forwardRef(({children:t,className:n,variant:r="default",...a},i)=>o.createElement("tr",{ref:i,className:d("border-b border-[var(--table-border)] transition-colors",{"hover:bg-[var(--table-row-hover)]":r==="hover","bg-[var(--table-row-selected)]":r==="selected"},n),...a},t)),xe=o.forwardRef(({children:t,className:n,as:r="td",align:a="left",scope:i,colSpan:x,rowSpan:b,...B},_)=>o.createElement(r,{ref:_,scope:r==="th"?i:void 0,colSpan:x,rowSpan:b,className:d("px-4 py-3 text-left",{"font-semibold":r==="th","text-sm":r==="td","text-center":a==="center","text-right":a==="right"},n),...B},t));Pe.displayName="Table";be.displayName="TableHeader";ge.displayName="TableBody";he.displayName="TableFooter";ve.displayName="TableRow";xe.displayName="TableCell";const De=Object.assign(Pe,{Header:be,Body:ge,Footer:he,Row:ve,Cell:xe}),je=({content:t,children:n,position:r="top",className:a="",disabled:i=!1})=>{const[x,b]=o.useState(!1),[B,_]=o.useState(r),[S,w]=o.useState({}),y=o.useRef(null),u=o.useRef(null);o.useEffect(()=>{if(!x||!u.current)return;const s=u.current.getBoundingClientRect();let C=r,N=0,L=0;switch(r){case"top":N=s.top-8,L=s.left+s.width/2;break;case"bottom":N=s.bottom+8,L=s.left+s.width/2;break;case"left":N=s.top+s.height/2,L=s.left-8;break;case"right":N=s.top+s.height/2,L=s.right+8;break}if(y.current){const m=y.current.getBoundingClientRect(),H=window.innerWidth,U=window.innerHeight;r==="top"&&s.top<m.height+16?(C="bottom",N=s.bottom+8):r==="bottom"&&s.bottom+m.height+16>U?(C="top",N=s.top-8):r==="left"&&s.left<m.width+16?(C="right",L=s.right+8):r==="right"&&s.right+m.width+16>H&&(C="left",L=s.left-8)}_(C),w({position:"fixed",top:`${N}px`,left:`${L}px`,zIndex:9999})},[x,r]);const M=()=>{i||b(!0)},k=()=>{b(!1)},F=()=>{i||b(!0)},g=()=>{b(!1)},h=()=>{const E="pointer-events-none";switch(B){case"top":return`${E} transform -translate-x-1/2 -translate-y-full`;case"bottom":return`${E} transform -translate-x-1/2`;case"left":return`${E} transform -translate-x-full -translate-y-1/2`;case"right":return`${E} transform -translate-y-1/2`;default:return`${E} transform -translate-x-1/2 -translate-y-full`}},v=()=>{const E="absolute w-2 h-2 bg-[var(--tooltip-bg,#374151)] transform rotate-45";switch(B){case"top":return`${E} top-full left-1/2 -translate-x-1/2 -translate-y-1/2`;case"bottom":return`${E} bottom-full left-1/2 -translate-x-1/2 translate-y-1/2`;case"left":return`${E} left-full top-1/2 -translate-y-1/2 -translate-x-1/2`;case"right":return`${E} right-full top-1/2 -translate-y-1/2 translate-x-1/2`;default:return`${E} top-full left-1/2 -translate-x-1/2 -translate-y-1/2`}};return i||!t?o.createElement(o.Fragment,null,n):o.createElement(o.Fragment,null,o.createElement("div",{className:"relative inline-block",ref:u,onMouseEnter:M,onMouseLeave:k,onFocus:F,onBlur:g},n),x&&typeof document<"u"&&Ee.createPortal(o.createElement("div",{ref:y,style:S,className:d(h(),"px-2 py-1 text-sm rounded whitespace-nowrap","bg-[var(--tooltip-bg,#374151)] text-[var(--tooltip-text,#fff)]","shadow-[var(--tooltip-shadow,0_10px_15px_-3px_rgb(0_0_0_/_0.1),_0_4px_6px_-4px_rgb(0_0_0_/_0.1))]","transition-opacity duration-200 ease-in-out",a),role:"tooltip","aria-hidden":!x},t,o.createElement("div",{className:v()})),document.body))},_e=({open:t,onClose:n,side:r="right",size:a="md",closeOnOverlayClick:i=!0,children:x,className:b="",...B})=>{const _=typeof document<"u"?document.body:null,S=a==="sm"?"w-64":a==="md"?"w-96":a==="lg"?"w-[36rem]":void 0,w=typeof a=="string"&&!["sm","md","lg"].includes(a)?{width:a}:void 0,y=o.createElement("div",{"aria-hidden":!t,className:d("fixed inset-0 z-50 flex",t?"pointer-events-auto":"pointer-events-none")},o.createElement("div",{className:d("absolute inset-0 bg-black/40 transition-opacity duration-200",t?"opacity-100":"opacity-0"),onMouseDown:u=>{i&&u.target===u.currentTarget&&n()}}),o.createElement("div",{className:d("relative h-full",r==="right"?"ml-auto":"mr-auto","flex-shrink-0"),style:w},o.createElement("aside",{role:"dialog","aria-modal":!0,className:d("h-full bg-white shadow-xl border-l border-gray-100 overflow-auto transition-transform duration-300",r==="right"?t?"translate-x-0":"translate-x-full":t?"translate-x-0":"-translate-x-full",S,b),style:w,...B},x)));return _?Ee.createPortal(y,_):null};_e.displayName="AsideSheet";const Ue=({avatar:t=!1,value:n,onUpload:r,onRemove:a,accept:i="image/*",maxSize:x,placeholder:b="Selecionar imagem",loading:B=!1,size:_="md",label:S,error:w,disabled:y,className:u,...M})=>{const[k,F]=o.useState(null),[g,h]=o.useState(""),[v,E]=o.useState(!1),s=o.useRef(null),C=!!n,N=!!k,L=C||N,m=B||v,H={sm:t?"w-16 h-16":"w-24 h-16",md:t?"w-24 h-24":"w-32 h-24",lg:t?"w-32 h-32":"w-40 h-32"},R=b||(t?"Adicionar foto":"Selecionar imagem"),J=I=>{var W;const P=(W=I.target.files)==null?void 0:W[0];if(!P)return;if(x&&P.size>x){alert(`Arquivo muito grande. Tamanho máximo: ${(x/1024/1024).toFixed(1)}MB`);return}const G=new FileReader;G.onload=q=>{var j;h((j=q.target)==null?void 0:j.result),F(P)},G.readAsDataURL(P)},ee=async()=>{if(!(!k||!r))try{E(!0);const I=await r(k);F(null),h(""),s.current&&(s.current.value="")}catch(I){console.error("Erro ao fazer upload:",I),alert("Erro ao fazer upload da imagem")}finally{E(!1)}},Y=()=>{F(null),h(""),s.current&&(s.current.value="")},O=async()=>{try{a&&await a(n),F(null),h(""),s.current&&(s.current.value="")}catch(I){console.error("Erro ao remover imagem:",I),alert("Erro ao remover imagem")}},$=()=>{var I;y||m||(I=s.current)==null||I.click()},X=g||n;return o.createElement("div",{className:d("flex flex-col space-y-2",u)},S&&o.createElement("label",{className:"text-sm font-medium text-gray-700"},S),o.createElement("div",{className:"relative flex flex-col items-center"},o.createElement("input",{ref:s,type:"file",accept:i,onChange:J,disabled:y||m,className:"hidden",...M}),o.createElement("div",{onClick:$,className:d("relative border-2 border-dashed border-gray-300 transition-colors cursor-pointer","hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",t?"rounded-full":"rounded-lg",H[_],y&&"opacity-50 cursor-not-allowed",m&&"cursor-wait",w&&"border-red-300",!L&&"bg-gray-50 hover:bg-gray-100",L&&"border-solid border-gray-200")},L?o.createElement("img",{src:X,alt:"Preview",className:d("w-full h-full object-cover",t?"rounded-full":"rounded-lg")}):o.createElement("div",{className:"flex flex-col items-center justify-center h-full text-gray-500 text-sm"},t?o.createElement(o.Fragment,null,o.createElement("svg",{className:"w-8 h-8 mb-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),o.createElement("span",{className:"text-center px-2 text-xs"},R)):o.createElement(o.Fragment,null,o.createElement("svg",{className:"w-6 h-6 mb-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})),o.createElement("span",{className:"text-center px-2"},R))),m&&o.createElement("div",{className:d("absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center",t?"rounded-full":"rounded-lg")},o.createElement("div",{className:"w-6 h-6 border-2 border-white border-t-transparent rounded-full animate-spin"}))),L&&!m&&o.createElement("div",{className:"flex justify-center space-x-2 mt-3"},N?o.createElement(o.Fragment,null,o.createElement("button",{onClick:ee,disabled:!r,className:"px-3 py-1 bg-blue-600 text-white text-sm rounded hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed"},"Confirmar"),o.createElement("button",{onClick:Y,className:"px-3 py-1 bg-gray-600 text-white text-sm rounded hover:bg-gray-700"},"Cancelar")):o.createElement("button",{onClick:O,disabled:!a,className:"px-3 py-1 bg-red-600 text-white text-sm rounded hover:bg-red-700 disabled:opacity-50 disabled:cursor-not-allowed"},"Remover"))),w&&o.createElement("p",{className:"text-sm text-red-600"},w),x&&!L&&o.createElement("p",{className:"text-xs text-gray-500"},"Tamanho máximo: ",(x/1024/1024).toFixed(1),"MB"),t&&!L&&o.createElement("p",{className:"text-xs text-gray-500 text-center"},"Use uma foto com seu rosto centralizado e bem visível"))};exports.AsideSheet=_e;exports.AsyncSelect=Re;exports.Button=We;exports.Card=Ve;exports.CardBody=me;exports.CardFooter=pe;exports.CardHeader=fe;exports.ImageInput=Ue;exports.Input=ke;exports.MultiAsyncSelect=Le;exports.MultiSelect=Me;exports.RadioGroup=Be;exports.Select=Se;exports.Table=De;exports.TableBody=ge;exports.TableCell=xe;exports.TableFooter=he;exports.TableHeader=be;exports.TableRow=ve;exports.Textarea=Fe;exports.Tooltip=je;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),Z=require("react-hook-form"),Ce=require("react-dom");function ze(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:()=>t[r]})}}return n.default=t,Object.freeze(n)}const e=ze(a);function Ne(t){var n,r,o="";if(typeof t=="string"||typeof t=="number")o+=t;else if(typeof t=="object")if(Array.isArray(t)){var l=t.length;for(n=0;n<l;n++)t[n]&&(r=Ne(t[n]))&&(o&&(o+=" "),o+=r)}else for(r in t)t[r]&&(o&&(o+=" "),o+=r);return o}function He(){for(var t,n,r=0,o="",l=arguments.length;r<l;r++)(t=arguments[r])&&(n=Ne(t))&&(o&&(o+=" "),o+=n);return o}function d(...t){return He(...t)}const Ve=({children:t,variant:n="default",className:r="",...o})=>{const l="px-4 py-2 rounded font-medium transition",w={default:"bg-[var(--primary,#2563eb)] text-[var(--primary-text,#fff)] hover:bg-[var(--primary-hover,#1d4ed8)]",outline:"border border-[var(--primary,#2563eb)] text-[var(--primary,#2563eb)] bg-white hover:bg-[var(--primary-hover,#e0e7ff)]",secondary:"bg-[var(--secondary,#fbbf24)] text-[var(--secondary-text,#222)] hover:bg-[var(--secondary-hover,#f59e42)]"};return a.createElement("button",{className:d(l,w[n],r),...o},t)},ke=t=>t.replace(/\D/g,""),De=t=>{const r=ke(t).slice(0,11);return r.length<=3?r:r.length<=6?`${r.slice(0,3)}.${r.slice(3)}`:r.length<=9?`${r.slice(0,3)}.${r.slice(3,6)}.${r.slice(6)}`:`${r.slice(0,3)}.${r.slice(3,6)}.${r.slice(6,9)}-${r.slice(9,11)}`},Ee=t=>{const n=ke(t);if(n.length!==11||/^(\d)\1{10}$/.test(n))return!1;let r=0;for(let l=0;l<9;l++)r+=parseInt(n.charAt(l))*(10-l);let o=r*10%11;if((o===10||o===11)&&(o=0),o!==parseInt(n.charAt(9)))return!1;r=0;for(let l=0;l<10;l++)r+=parseInt(n.charAt(l))*(11-l);return o=r*10%11,(o===10||o===11)&&(o=0),o===parseInt(n.charAt(10))},Se=e.forwardRef(({name:t,className:n,type:r="text",label:o,onFocus:l,onBlur:w,onChange:b,Icon:M,iconClassName:N,iconAction:y,containerClassName:f,cpf:x=!1,...c},I)=>{var A,P,G;const[k,S]=e.useState(!1),[h,v]=e.useState(!1),[E,C]=e.useState(null),i=Z.useFormContext(),F=i==null?void 0:i.control,R=i==null?void 0:i.register,L=F&&t?Z.useWatch({control:F,name:t}):void 0,p=c.value??L??"",H=((G=(P=(A=i==null?void 0:i.formState)==null?void 0:A.errors)==null?void 0:P[t])==null?void 0:G.message)||E,B=["date","datetime-local","time","month","week"].includes(r),J=k||!!p||B,ee=r==="password"?h?"text":"password":r,Y=()=>e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z",fill:"currentColor"})),z=()=>e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z",fill:"currentColor"})),O=()=>{v(!h)},X=$=>{if(x){const q=$.target.value,j=De(q);$.target.value=j,j.length===14?Ee(j)?C(null):C("CPF inválido"):C(null)}b&&b($)};return e.createElement("div",{className:d("relative",f)},e.createElement("input",{id:c.id||t,type:ee,className:d("peer flex h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50",r==="password"||M?"pr-12":"",H?"border-red-500":"",n),onFocus:$=>{S(!0),l&&l($)},maxLength:x?14:c.maxLength,inputMode:x?"numeric":c.inputMode,...i&&t?(()=>{const $=R(t,x?{validate:D=>D?D.length<14?"CPF incompleto":Ee(D)?!0:"CPF inválido":"CPF é obrigatório"}:void 0),q=$.onBlur,j=$.onChange;return{...$,ref:D=>{typeof I=="function"?I(D):I&&(I.current=D),$.ref&&$.ref(D)},onBlur:D=>{S(!1),w&&w(D),q&&q(D)},onChange:D=>{X(D),j&&j(D)}}})():{ref:I,onBlur:$=>{S(!1),w&&w($)},onChange:X},...c}),o&&e.createElement("label",{htmlFor:c.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",J?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},o),r==="password"&&e.createElement("button",{type:"button",className:"absolute top-1/2 right-3 -translate-y-1/2 text-gray-400 hover:text-[var(--primary,#2563eb)] transition-colors duration-200 focus:outline-none focus:text-[var(--primary,#2563eb)]",onClick:O,"aria-label":h?"Esconder senha":"Mostrar senha",tabIndex:-1},h?e.createElement(z,null):e.createElement(Y,null)),M&&r!=="password"&&e.createElement("div",{className:d("absolute top-1/2 right-3 -translate-y-1/2 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",N),onClick:y},e.createElement(M,null)),H&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},H))});Se.displayName="Input";const Fe=e.forwardRef(({name:t,label:n,options:r,className:o,containerClassName:l,isClearable:w,searchable:b=!1,filterPlaceholder:M="Digite para filtrar...",caseSensitive:N=!1,filterFunction:y,onFocus:f,onBlur:x,...c},I)=>{var ae,oe,u,T;const[k,S]=e.useState(!1),[h,v]=e.useState(!1),[E,C]=e.useState(""),[i,F]=e.useState({top:0,left:0,width:0}),R=e.useRef(null),L=e.useRef(null),p=Z.useFormContext(),H=p==null?void 0:p.control,U=H&&t?Z.useWatch({control:H,name:t}):void 0,B=c.value??U??"",J=(u=(oe=(ae=p==null?void 0:p.formState)==null?void 0:ae.errors)==null?void 0:oe[t])==null?void 0:u.message,Y=y||((s,W)=>{const K=N?s.label:s.label.toLowerCase(),re=N?W:W.toLowerCase();return K.includes(re)}),z=E.trim()?r.filter(s=>Y(s,E.trim())):r,O=r.find(s=>s.value===B),X=b&&h?E:(O==null?void 0:O.label)||"",A=k||!!B||b&&!!E,P=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),G=e.useCallback(()=>{if(R.current&&h){const s=R.current.getBoundingClientRect(),W=P(),K=window.innerHeight,re=window.innerWidth,Q=152;let g=s.bottom+4,V=s.left;if(W){const ne=K-s.bottom,m=s.top;ne<Q&&m>Q&&(g=s.top-Q-4);const _=16,te=re-s.width-_;V=Math.min(Math.max(V,_),te)}else K-s.bottom<Q&&(g=s.top-Q-4);F({top:g,left:V,width:s.width})}},[h,P]);e.useEffect(()=>{if(G(),h){const s=()=>G(),W=()=>G();return window.addEventListener("resize",s),window.addEventListener("scroll",W,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",W,!0)}}},[h,G]),e.useEffect(()=>{const s=W=>{R.current&&!R.current.contains(W.target)&&(v(!1),S(!1))};return document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}},[]);const $=()=>{v(s=>!s),S(!0)},q=s=>{S(!0),f&&f(s)},j=s=>{x&&x(s)},D=s=>{C(s.target.value)},le=s=>{if(p&&t&&p.setValue(t,s),c.onChange){const W={target:{value:s}};c.onChange(W)}v(!1),S(!1),C("")};return e.createElement("div",{className:d("relative",l),ref:R},e.createElement("div",{id:c.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":h,className:d("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",o),onClick:b?void 0:$,onFocus:b?void 0:q,onBlur:b?void 0:j,ref:I},b?e.createElement("input",{ref:L,type:"text",value:X,onChange:D,onFocus:b?s=>{S(!0),v(!0),f&&f(s)}:void 0,onBlur:b?s=>{x&&x(s)}:void 0,placeholder:n?"":M||"Selecione...",className:d("w-full bg-transparent border-none outline-none text-sm",!B&&!E&&"text-gray-400")}):e.createElement("span",{className:d("block truncate",!B&&"text-gray-400")},((T=r.find(s=>s.value===B))==null?void 0:T.label)||!n&&"Selecione..."),w&&B&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:s=>{if(s.stopPropagation(),p&&t&&p.setValue(t,""),c.onChange){const W={target:{value:""}};c.onChange(W)}v(!1),S(!1)}},"✕")),n&&e.createElement("label",{htmlFor:c.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",A?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",h?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:h?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:h?`${i.top}px`:"auto",left:h?`${i.left}px`:"auto",width:h?`${i.width}px`:"auto",zIndex:9999,boxShadow:h?"var(--select-dropdown-shadow)":"none"}},z.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):z.map(s=>e.createElement("div",{key:s.value,className:d("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",B===s.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>le(s.value)},s.label))),J&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},J))});Fe.displayName="Select";const Re=e.forwardRef(({name:t,className:n,label:r,onFocus:o,onBlur:l,Icon:w,iconClassName:b,iconAction:M,containerClassName:N,rows:y=4,...f},x)=>{var F,R,L;const[c,I]=e.useState(!1),k=Z.useFormContext(),S=k==null?void 0:k.control,h=k==null?void 0:k.register,v=S&&t?Z.useWatch({control:S,name:t}):void 0,E=f.value??v??"",C=(L=(R=(F=k==null?void 0:k.formState)==null?void 0:F.errors)==null?void 0:R[t])==null?void 0:L.message,i=c||!!E;return e.createElement("div",{className:d("relative",N)},e.createElement("textarea",{id:f.id||t,rows:y,className:d("peer flex min-h-[80px] w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 resize-vertical",w?"pr-12":"",n),onFocus:p=>{I(!0),o&&o(p)},...k&&t?(()=>{const p=h(t),H=p.onBlur;return{...p,ref:U=>{typeof x=="function"?x(U):x&&(x.current=U),p.ref&&p.ref(U)},onBlur:U=>{I(!1),l&&l(U),H&&H(U)}}})():{ref:x,onBlur:p=>{I(!1),l&&l(p)}},...f}),r&&e.createElement("label",{htmlFor:f.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",i?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},r),w&&e.createElement("div",{className:d("absolute top-3 right-3 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",b),onClick:M},e.createElement(w,null)),C&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},C))});Re.displayName="Textarea";const Ie=e.forwardRef(({name:t,label:n,loadOptions:r,className:o,containerClassName:l,isClearable:w,defaultOptions:b=!1,loadingMessage:M="Carregando...",noOptionsMessage:N="Nenhuma opção encontrada",searchable:y=!1,debounceMs:f=300,onFocus:x,onBlur:c,...I},k)=>{var K,re,Q;const[S,h]=e.useState(!1),[v,E]=e.useState(!1),[C,i]=e.useState([]),[F,R]=e.useState(!1),[L,p]=e.useState(""),[H,U]=e.useState(""),[B,J]=e.useState({top:0,left:0,width:0}),ee=e.useRef(null),Y=e.useRef(null),z=Z.useFormContext(),O=z==null?void 0:z.control,X=O&&t?Z.useWatch({control:O,name:t}):void 0,A=I.value??X??"",P=(Q=(re=(K=z==null?void 0:z.formState)==null?void 0:K.errors)==null?void 0:re[t])==null?void 0:Q.message,G=S||!!A,$=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),q=e.useCallback(()=>{if(ee.current&&v){const g=ee.current.getBoundingClientRect(),V=$(),ne=window.innerHeight,m=window.innerWidth,_=152;let te=g.bottom+4,ie=g.left;if(V){const se=ne-g.bottom,de=g.top;se<_&&de>_&&(te=g.top-_-4);const ce=16,ue=m-g.width-ce;ie=Math.min(Math.max(ie,ce),ue)}else ne-g.bottom<_&&(te=g.top-_-4);J({top:te,left:ie,width:g.width})}},[v,$]);e.useEffect(()=>{if(q(),v){const g=()=>q(),V=()=>q();return window.addEventListener("resize",g),window.addEventListener("scroll",V,!0),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",V,!0)}}},[v,q]),e.useEffect(()=>{const g=setTimeout(()=>{U(L)},f);return()=>clearTimeout(g)},[L,f]),e.useEffect(()=>{(v||b&&C.length===0)&&j(y?H:void 0)},[H,v]),e.useEffect(()=>{b===!0?j():Array.isArray(b)&&i(b)},[]);const j=async g=>{try{R(!0);const V=await r(g);i(V)}catch(V){console.error("Error loading options:",V),i([])}finally{R(!1)}};e.useEffect(()=>{const g=V=>{ee.current&&!ee.current.contains(V.target)&&(E(!1),h(!1),p(""))};return document.addEventListener("mousedown",g),()=>{document.removeEventListener("mousedown",g)}},[]);const D=()=>{v||(E(!0),h(!0),y&&Y.current&&setTimeout(()=>{var g;return(g=Y.current)==null?void 0:g.focus()},0))},le=g=>{h(!0),x&&x(g)},ae=g=>{c&&c(g)},oe=g=>{p(g.target.value)},u=g=>{if(z&&t&&z.setValue(t,g),I.onChange){const V={target:{value:g}};I.onChange(V)}E(!1),h(!1),p("")},T=g=>{if(g.stopPropagation(),z&&t&&z.setValue(t,""),I.onChange){const V={target:{value:""}};I.onChange(V)}E(!1),h(!1),p("")},s=C.find(g=>g.value===A),W=y&&v?L:(s==null?void 0:s.label)||"";return e.createElement("div",{className:d("relative",l),ref:ee},e.createElement("div",{id:I.id||t,tabIndex:y?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":v,className:d("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",o),onClick:D,onFocus:y?void 0:le,onBlur:y?void 0:ae,ref:k},y?e.createElement("input",{ref:Y,type:"text",value:W,onChange:oe,onFocus:le,onBlur:ae,placeholder:n?"":"Selecione...",className:d("w-full bg-transparent border-none outline-none text-sm",!A&&!L&&"text-gray-400")}):e.createElement("span",{className:d("block truncate",!A&&"text-gray-400")},(s==null?void 0:s.label)||!n&&"Selecione..."),F&&e.createElement("div",{className:"absolute right-8 top-1/2 -translate-y-1/2"},e.createElement("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-[var(--primary,#2563eb)]"})),w&&A&&!F&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:T},"✕")),n&&e.createElement("label",{htmlFor:I.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",G?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",v?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:v?"9.5rem":"0",overflowY:C.length>3?"auto":"hidden",position:"fixed",top:v?`${B.top}px`:"auto",left:v?`${B.left}px`:"auto",width:v?`${B.width}px`:"auto",zIndex:9999,boxShadow:v?"var(--select-dropdown-shadow)":"none"}},F?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},M):C.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},N):C.map(g=>e.createElement("div",{key:g.value,className:d("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",A===g.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>u(g.value)},g.label))),P&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},P))});Ie.displayName="AsyncSelect";const Me=e.forwardRef(({name:t,label:n,options:r,className:o,containerClassName:l,isClearable:w,searchable:b=!1,filterPlaceholder:M="Digite para filtrar...",caseSensitive:N=!1,filterFunction:y,onFocus:f,onBlur:x,...c},I)=>{var le,ae,oe;const[k,S]=e.useState(!1),[h,v]=e.useState(!1),[E,C]=e.useState(""),[i,F]=e.useState({top:0,left:0,width:0}),R=e.useRef(null),L=e.useRef(null),p=Z.useFormContext(),H=p==null?void 0:p.control,U=H&&t?Z.useWatch({control:H,name:t}):void 0,B=c.value??U??[],J=(oe=(ae=(le=p==null?void 0:p.formState)==null?void 0:le.errors)==null?void 0:ae[t])==null?void 0:oe.message,Y=y||((u,T)=>{const s=N?u.label:u.label.toLowerCase(),W=N?T:T.toLowerCase();return s.includes(W)}),z=E.trim()?r.filter(u=>Y(u,E.trim())):r,O=k||B&&B.length>0||b&&!!E,X=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),A=e.useCallback(()=>{if(R.current&&h){const u=R.current.getBoundingClientRect(),T=X(),s=window.innerHeight,W=window.innerWidth,K=152;let re=u.bottom+4,Q=u.left;if(T){const g=s-u.bottom,V=u.top;g<K&&V>K&&(re=u.top-K-4);const ne=16,m=W-u.width-ne;Q=Math.min(Math.max(Q,ne),m)}else s-u.bottom<K&&(re=u.top-K-4);F({top:re,left:Q,width:u.width})}},[h,X]);e.useEffect(()=>{if(A(),h){const u=()=>A(),T=()=>A();return window.addEventListener("resize",u),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",u),window.removeEventListener("scroll",T,!0)}}},[h,A]),e.useEffect(()=>{const u=T=>{R.current&&!R.current.contains(T.target)&&(v(!1),S(!1))};return document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[]);const P=()=>{v(u=>!u),S(!0)},G=u=>{S(!0),f&&f(u)},$=u=>{x&&x(u)},q=u=>{var s;let T;B.includes(u)?T=B.filter(W=>W!==u):T=[...B,u],p&&t&&p.setValue(t,T),c.onChange&&((s=c.onChange)==null||s.call(c,{target:{value:T}})),S(!0)},j=u=>{var T;u.stopPropagation(),p&&t&&p.setValue(t,[]),c.onChange&&((T=c.onChange)==null||T.call(c,{target:{value:[]}})),v(!1),S(!1)},D=u=>{C(u.target.value)};return e.createElement("div",{className:d("relative",l),ref:R},e.createElement("div",{id:c.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":h,className:d("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",o),onClick:b?void 0:P,onFocus:b?void 0:G,onBlur:b?void 0:$,ref:I},e.createElement("div",{className:"flex flex-nowrap gap-1 items-center min-h-[1.5rem] w-full overflow-x-auto",style:{scrollbarWidth:"none"}},B&&B.length>0?r.filter(u=>B.includes(u.value)).map(u=>e.createElement("span",{key:u.value,className:"flex items-center border border-blue-200 bg-blue-50 text-blue-700 rounded-2xl px-3 py-1 text-xs shadow-sm mr-1 gap-2",style:{maxWidth:"140px"}},e.createElement("span",{className:"truncate",title:u.label},u.label),e.createElement("button",{type:"button",className:"ml-1 text-[var(--primary,#2563eb)] hover:text-red-500 focus:outline-none w-4 h-4 flex items-center justify-center rounded-full transition-colors duration-150","aria-label":`Remover ${u.label}`,tabIndex:-1,onClick:T=>{T.stopPropagation();const s=B.filter(W=>W!==u.value);p&&t&&p.setValue(t,s),c.onChange&&c.onChange({target:{value:s}})}},e.createElement("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}))))):!n&&!b&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione..."),b&&e.createElement("input",{ref:L,type:"text",value:E,onChange:D,onFocus:u=>{S(!0),v(!0),f&&f(u)},onBlur:u=>{x&&x(u)},placeholder:n?B&&B.length>0?"":M:M||"Selecione...",className:"flex-1 bg-transparent border-none outline-none text-sm min-w-[100px]"})),w&&B&&B.length>0&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:j},"✕")),n&&e.createElement("label",{htmlFor:c.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",O?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",h?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:h?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:h?`${i.top}px`:"auto",left:h?`${i.left}px`:"auto",width:h?`${i.width}px`:"auto",zIndex:9999,boxShadow:h?"var(--select-dropdown-shadow)":"none"}},z.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):z.map(u=>e.createElement("div",{key:u.value,className:d("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",B.includes(u.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>q(u.value)},e.createElement("input",{type:"checkbox",checked:B.includes(u.value),readOnly:!0,className:"accent-blue-500"}),u.label))),J&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},J))});Me.displayName="MultiSelect";const Be=e.forwardRef(({name:t,label:n,loadOptions:r,className:o,containerClassName:l,isClearable:w,defaultOptions:b=!1,loadingMessage:M="Carregando...",noOptionsMessage:N="Nenhuma opção encontrada",searchable:y=!1,debounceMs:f=300,maxSelectedDisplay:x=3,onFocus:c,onBlur:I,...k},S)=>{var g,V,ne;const[h,v]=e.useState(!1),[E,C]=e.useState(!1),[i,F]=e.useState([]),[R,L]=e.useState(!1),[p,H]=e.useState(""),[U,B]=e.useState(""),[J,ee]=e.useState({top:0,left:0,width:0}),Y=e.useRef(null),z=e.useRef(null),O=Z.useFormContext(),X=O==null?void 0:O.control,A=X&&t?Z.useWatch({control:X,name:t}):void 0,P=k.value??A??[],G=(ne=(V=(g=O==null?void 0:O.formState)==null?void 0:g.errors)==null?void 0:V[t])==null?void 0:ne.message,$=h||P&&P.length>0,q=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),j=e.useCallback(()=>{if(Y.current&&E){const m=Y.current.getBoundingClientRect(),_=q(),te=window.innerHeight,ie=window.innerWidth,se=152;let de=m.bottom+4,ce=m.left;if(_){const ue=te-m.bottom,$e=m.top;ue<se&&$e>se&&(de=m.top-se-4);const ye=16,We=ie-m.width-ye;ce=Math.min(Math.max(ce,ye),We)}else te-m.bottom<se&&(de=m.top-se-4);ee({top:de,left:ce,width:m.width})}},[E,q]);e.useEffect(()=>{if(j(),E){const m=()=>j(),_=()=>j();return window.addEventListener("resize",m),window.addEventListener("scroll",_,!0),()=>{window.removeEventListener("resize",m),window.removeEventListener("scroll",_,!0)}}},[E,j]),e.useEffect(()=>{const m=setTimeout(()=>{B(p)},f);return()=>clearTimeout(m)},[p,f]),e.useEffect(()=>{(E||b&&i.length===0)&&D(y?U:void 0)},[U,E]),e.useEffect(()=>{b===!0?D():Array.isArray(b)&&F(b)},[]);const D=async m=>{try{L(!0);const _=await r(m);F(_)}catch(_){console.error("Error loading options:",_),F([])}finally{L(!1)}};e.useEffect(()=>{const m=_=>{Y.current&&!Y.current.contains(_.target)&&(C(!1),v(!1),H(""))};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m)}},[]);const le=()=>{E||(C(!0),v(!0),y&&z.current&&setTimeout(()=>{var m;return(m=z.current)==null?void 0:m.focus()},0))},ae=m=>{v(!0),c&&c(m)},oe=m=>{I&&I(m)},u=m=>{H(m.target.value)},T=m=>{let _;P.includes(m)?_=P.filter(te=>te!==m):_=[...P,m],O&&t&&O.setValue(t,_),k.onChange&&k.onChange({target:{value:_}}),v(!0)},s=(m,_)=>{_.stopPropagation();const te=P.filter(ie=>ie!==m);O&&t&&O.setValue(t,te),k.onChange&&k.onChange({target:{value:te}})},W=m=>{m.stopPropagation(),O&&t&&O.setValue(t,[]),k.onChange&&k.onChange({target:{value:[]}}),C(!1),v(!1),H("")},K=i.filter(m=>P.includes(m.value)),re=K.slice(0,x),Q=K.length-x;return e.createElement("div",{className:d("relative",l),ref:Y},e.createElement("div",{id:k.id||t,tabIndex:y?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":E,className:d("peer flex items-center min-h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-2 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",o),onClick:le,onFocus:y?void 0:ae,onBlur:y?void 0:oe,ref:S},e.createElement("div",{className:"flex flex-wrap gap-1 items-center min-h-[1.5rem] w-full"},re.map(m=>e.createElement("span",{key:m.value,className:"flex items-center border border-blue-200 bg-blue-50 text-blue-700 rounded-2xl px-3 py-1 text-xs shadow-sm gap-2",style:{maxWidth:"140px"}},e.createElement("span",{className:"truncate",title:m.label},m.label),e.createElement("button",{type:"button",className:"ml-1 text-[var(--primary,#2563eb)] hover:text-red-500 focus:outline-none w-4 h-4 flex items-center justify-center rounded-full transition-colors duration-150","aria-label":`Remover ${m.label}`,tabIndex:-1,onClick:_=>s(m.value,_)},e.createElement("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}))))),Q>0&&e.createElement("span",{className:"flex items-center border border-gray-200 bg-gray-100 text-gray-600 rounded-2xl px-3 py-1 text-xs"},"+",Q," mais"),y?e.createElement("input",{ref:z,type:"text",value:p,onChange:u,onFocus:ae,onBlur:oe,placeholder:P.length===0&&!n?"Selecione...":"",className:"flex-1 min-w-[120px] bg-transparent border-none outline-none text-sm"}):P.length===0&&!n&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione...")),R&&e.createElement("div",{className:"absolute right-8 top-1/2 -translate-y-1/2"},e.createElement("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-[var(--primary,#2563eb)]"})),w&&P&&P.length>0&&!R&&e.createElement("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:W},"✕")),n&&e.createElement("label",{htmlFor:k.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",$?"top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5")},n),e.createElement("div",{className:d("absolute left-0 w-full mt-1 rounded-md transition-all duration-200 overflow-hidden","bg-[var(--select-dropdown-bg)] border-[var(--select-dropdown-border)] text-[var(--select-dropdown-text)]",E?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:E?"9.5rem":"0",overflowY:i.length>3?"auto":"hidden",position:"fixed",top:E?`${J.top}px`:"auto",left:E?`${J.left}px`:"auto",width:E?`${J.width}px`:"auto",zIndex:9999,boxShadow:E?"var(--select-dropdown-shadow)":"none"}},R?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},M):i.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},N):i.map(m=>e.createElement("div",{key:m.value,className:d("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",P.includes(m.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>T(m.value)},e.createElement("input",{type:"checkbox",checked:P.includes(m.value),readOnly:!0,className:"accent-blue-500"}),m.label))),G&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},G))});Be.displayName="MultiAsyncSelect";const je={sm:"h-10 text-sm px-3",md:"h-12 text-base px-4",lg:"h-16 text-lg px-6"},Le=e.forwardRef(({name:t,label:n,options:r,className:o,containerClassName:l,optionClassName:w,direction:b="row",size:M="md",onFocus:N,onBlur:y,...f},x)=>{var E,C,i;const c=Z.useFormContext(),I=c==null?void 0:c.control,k=I&&t?Z.useWatch({control:I,name:t}):void 0,S=f.value??k??"",h=(i=(C=(E=c==null?void 0:c.formState)==null?void 0:E.errors)==null?void 0:C[t])==null?void 0:i.message,v=F=>{c&&t&&c.setValue(t,F),f.onChange&&f.onChange({target:{value:F}})};return e.createElement("div",{className:d("relative",l),ref:x},n&&e.createElement("label",{htmlFor:t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm transition-all duration-200","top-0 scale-90 -translate-y-1 text-xs text-[var(--primary,#2563eb)] p-1 rounded-full bg-white")},n),e.createElement("div",{className:d("flex gap-2 w-full pt-6",b==="row"?"flex-row":"flex-col",o),"aria-label":n,tabIndex:-1,onFocus:N,onBlur:y},r.map(F=>e.createElement("button",{key:F.value,type:"button",className:d("relative flex items-center justify-center border rounded-lg transition-all duration-200 shadow-sm px-4 focus:outline-none focus:ring-2 focus:ring-[var(--primary-hover,#dbeafe)]",je[M],S===F.value?"border-[var(--primary,#2563eb)] bg-[var(--primary-hover,#dbeafe)] text-[var(--primary,#2563eb)] ring-2 ring-[var(--primary-hover,#dbeafe)] shadow-md transform scale-[1.02]":"border-gray-200 bg-white text-gray-600 hover:border-[var(--primary,#2563eb)] hover:bg-[var(--primary-hover,#dbeafe)] hover:text-[var(--primary,#2563eb)] hover:shadow-md",w),"aria-pressed":S===F.value,"data-selected":S===F.value,tabIndex:0,onClick:()=>v(F.value),onKeyDown:R=>{(R.key==="Enter"||R.key===" ")&&(R.preventDefault(),v(F.value))}},F.icon&&e.createElement("span",{className:"mr-2 text-lg flex items-center"},F.icon),e.createElement("span",{className:"truncate font-medium"},F.label)))),h&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},h))});Le.displayName="RadioGroup";const fe=a.forwardRef(({children:t,className:n,as:r="div",...o},l)=>a.createElement(r,{ref:l,className:d("px-2 py-1 sm:px-4 sm:py-2 lg:px-6 lg:py-4 border-b","bg-[var(--card-header-bg,rgba(249,250,251,0.5))]","border-[var(--card-header-border,#e5e7eb)]","text-[var(--card-text,#111827)]",n),...o},t));fe.displayName="CardHeader";const me=a.forwardRef(({children:t,className:n,as:r="div",...o},l)=>a.createElement(r,{ref:l,className:d("px-2 py-1 sm:px-4 sm:py-2 lg:px-6 lg:py-4","flex-1","bg-[var(--card-bg,#ffffff)]","text-[var(--card-text,#111827)]",n),...o},t));me.displayName="CardBody";const pe=a.forwardRef(({children:t,className:n,as:r="div",...o},l)=>a.createElement(r,{ref:l,className:d("px-6 py-4 border-t","bg-[var(--card-footer-bg,rgba(249,250,251,0.5))]","border-[var(--card-footer-border,#e5e7eb)]","text-[var(--card-text,#111827)]",n),...o},t));pe.displayName="CardFooter";const Ue=a.forwardRef(({children:t,className:n,variant:r="default",size:o="md",padding:l="none",rounded:w="lg",constrainWidth:b=!1,allowOverflow:M=!1,...N},y)=>{const f={default:"bg-[var(--card-bg,#ffffff)] border border-[var(--card-border,#e5e7eb)] shadow-[var(--card-shadow-sm,0_1px_2px_0_rgb(0_0_0_/_0.05))]",outlined:"bg-[var(--card-bg,#ffffff)] border-2 border-[var(--primary,#2563eb)]",elevated:"bg-[var(--card-bg,#ffffff)] border border-[var(--card-border,#e5e7eb)] shadow-[var(--card-shadow-lg,0_10px_15px_-3px_rgb(0_0_0_/_0.1),_0_4px_6px_-4px_rgb(0_0_0_/_0.1))]",flat:"bg-[var(--card-bg,#ffffff)] border-0"},x={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},c={none:"",sm:"p-3",md:"p-4",lg:"p-6"},I={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl"};return a.createElement("div",{ref:y,className:d("flex flex-col",!M&&"overflow-hidden",f[r],b&&x[o],c[l],I[w],n),...N},t)}),qe=Object.assign(Ue,{Header:fe,Body:me,Footer:pe}),Pe=a.forwardRef(({children:t,className:n,variant:r="default",size:o="md",responsive:l=!1,stickyHeader:w=!1,...b},M)=>{const N=d("w-full border-collapse bg-[var(--table-bg)] text-[var(--table-text)]",{"border border-[var(--table-border)]":r==="bordered"},{"text-sm":o==="sm","text-base":o==="md","text-lg":o==="lg"},n),y=d({"overflow-x-auto":l,"max-h-96 overflow-y-auto":w}),f=a.createElement("table",{ref:M,className:N,...b},t);return l||w?a.createElement("div",{className:y},f):f}),be=a.forwardRef(({children:t,className:n,as:r="thead",...o},l)=>a.createElement(r,{ref:l,className:d("border-b border-[var(--table-border)] bg-[var(--table-header-bg)]",{"sticky top-0 z-10":r==="thead"},n),...o},t)),ge=a.forwardRef(({children:t,className:n,as:r="tbody",...o},l)=>a.createElement(r,{ref:l,className:d("[&_tr:nth-child(odd)]:bg-[var(--table-row-odd)]","[&_tr:nth-child(even)]:bg-[var(--table-row-even)]",n),...o},t)),he=a.forwardRef(({children:t,className:n,as:r="tfoot",...o},l)=>a.createElement(r,{ref:l,className:d("border-t border-[var(--table-border)] bg-[var(--table-header-bg)] font-medium",n),...o},t)),ve=a.forwardRef(({children:t,className:n,variant:r="default",...o},l)=>a.createElement("tr",{ref:l,className:d("border-b border-[var(--table-border)] transition-colors",{"hover:bg-[var(--table-row-hover)]":r==="hover","bg-[var(--table-row-selected)]":r==="selected"},n),...o},t)),xe=a.forwardRef(({children:t,className:n,as:r="td",align:o="left",scope:l,colSpan:w,rowSpan:b,...M},N)=>a.createElement(r,{ref:N,scope:r==="th"?l:void 0,colSpan:w,rowSpan:b,className:d("px-4 py-3 text-left",{"font-semibold":r==="th","text-sm":r==="td","text-center":o==="center","text-right":o==="right"},n),...M},t));Pe.displayName="Table";be.displayName="TableHeader";ge.displayName="TableBody";he.displayName="TableFooter";ve.displayName="TableRow";xe.displayName="TableCell";const Ye=Object.assign(Pe,{Header:be,Body:ge,Footer:he,Row:ve,Cell:xe}),Ge=({content:t,children:n,position:r="top",className:o="",disabled:l=!1})=>{const[w,b]=a.useState(!1),[M,N]=a.useState(r),[y,f]=a.useState({}),x=a.useRef(null),c=a.useRef(null);a.useEffect(()=>{if(!w||!c.current)return;const i=c.current.getBoundingClientRect();let F=r,R=0,L=0;switch(r){case"top":R=i.top-8,L=i.left+i.width/2;break;case"bottom":R=i.bottom+8,L=i.left+i.width/2;break;case"left":R=i.top+i.height/2,L=i.left-8;break;case"right":R=i.top+i.height/2,L=i.right+8;break}if(x.current){const p=x.current.getBoundingClientRect(),H=window.innerWidth,U=window.innerHeight;r==="top"&&i.top<p.height+16?(F="bottom",R=i.bottom+8):r==="bottom"&&i.bottom+p.height+16>U?(F="top",R=i.top-8):r==="left"&&i.left<p.width+16?(F="right",L=i.right+8):r==="right"&&i.right+p.width+16>H&&(F="left",L=i.left-8)}N(F),f({position:"fixed",top:`${R}px`,left:`${L}px`,zIndex:9999})},[w,r]);const I=()=>{l||b(!0)},k=()=>{b(!1)},S=()=>{l||b(!0)},h=()=>{b(!1)},v=()=>{const C="pointer-events-none";switch(M){case"top":return`${C} transform -translate-x-1/2 -translate-y-full`;case"bottom":return`${C} transform -translate-x-1/2`;case"left":return`${C} transform -translate-x-full -translate-y-1/2`;case"right":return`${C} transform -translate-y-1/2`;default:return`${C} transform -translate-x-1/2 -translate-y-full`}},E=()=>{const C="absolute w-2 h-2 bg-[var(--tooltip-bg,#374151)] transform rotate-45";switch(M){case"top":return`${C} top-full left-1/2 -translate-x-1/2 -translate-y-1/2`;case"bottom":return`${C} bottom-full left-1/2 -translate-x-1/2 translate-y-1/2`;case"left":return`${C} left-full top-1/2 -translate-y-1/2 -translate-x-1/2`;case"right":return`${C} right-full top-1/2 -translate-y-1/2 translate-x-1/2`;default:return`${C} top-full left-1/2 -translate-x-1/2 -translate-y-1/2`}};return l||!t?a.createElement(a.Fragment,null,n):a.createElement(a.Fragment,null,a.createElement("div",{className:"relative inline-block",ref:c,onMouseEnter:I,onMouseLeave:k,onFocus:S,onBlur:h},n),w&&typeof document<"u"&&Ce.createPortal(a.createElement("div",{ref:x,style:y,className:d(v(),"px-2 py-1 text-sm rounded whitespace-nowrap","bg-[var(--tooltip-bg,#374151)] text-[var(--tooltip-text,#fff)]","shadow-[var(--tooltip-shadow,0_10px_15px_-3px_rgb(0_0_0_/_0.1),_0_4px_6px_-4px_rgb(0_0_0_/_0.1))]","transition-opacity duration-200 ease-in-out",o),role:"tooltip","aria-hidden":!w},t,a.createElement("div",{className:E()})),document.body))},Ae=({open:t,onClose:n,side:r="right",size:o="md",closeOnOverlayClick:l=!0,children:w,className:b="",...M})=>{const N=typeof document<"u"?document.body:null,y=o==="sm"?"w-64":o==="md"?"w-96":o==="lg"?"w-[36rem]":void 0,f=typeof o=="string"&&!["sm","md","lg"].includes(o)?{width:o}:void 0,x=a.createElement("div",{"aria-hidden":!t,className:d("fixed inset-0 z-50 flex",t?"pointer-events-auto":"pointer-events-none")},a.createElement("div",{className:d("absolute inset-0 bg-black/40 transition-opacity duration-200",t?"opacity-100":"opacity-0"),onMouseDown:c=>{l&&c.target===c.currentTarget&&n()}}),a.createElement("div",{className:d("relative h-full",r==="right"?"ml-auto":"mr-auto","flex-shrink-0"),style:f},a.createElement("aside",{role:"dialog","aria-modal":!0,className:d("h-full bg-white shadow-xl border-l border-gray-100 overflow-auto transition-transform duration-300",r==="right"?t?"translate-x-0":"translate-x-full":t?"translate-x-0":"-translate-x-full",y,b),style:f,...M},w)));return N?Ce.createPortal(x,N):null};Ae.displayName="AsideSheet";const Ke=({avatar:t=!1,value:n,onUpload:r,onRemove:o,accept:l="image/*",maxSize:w,placeholder:b="Selecionar imagem",loading:M=!1,size:N="md",label:y,error:f,disabled:x,className:c,...I})=>{const[k,S]=a.useState(null),[h,v]=a.useState(""),[E,C]=a.useState(!1),i=a.useRef(null),F=!!n,R=!!k,L=F||R,p=M||E,H={sm:t?"w-16 h-16":"w-24 h-16",md:t?"w-24 h-24":"w-32 h-24",lg:t?"w-32 h-32":"w-40 h-32"},B=b||(t?"Adicionar foto":"Selecionar imagem"),J=A=>{var $;const P=($=A.target.files)==null?void 0:$[0];if(!P)return;if(w&&P.size>w){alert(`Arquivo muito grande. Tamanho máximo: ${(w/1024/1024).toFixed(1)}MB`);return}const G=new FileReader;G.onload=q=>{var j;v((j=q.target)==null?void 0:j.result),S(P)},G.readAsDataURL(P)},ee=async()=>{if(!(!k||!r))try{C(!0);const A=await r(k);S(null),v(""),i.current&&(i.current.value="")}catch(A){console.error("Erro ao fazer upload:",A),alert("Erro ao fazer upload da imagem")}finally{C(!1)}},Y=()=>{S(null),v(""),i.current&&(i.current.value="")},z=async()=>{try{o&&await o(n),S(null),v(""),i.current&&(i.current.value="")}catch(A){console.error("Erro ao remover imagem:",A),alert("Erro ao remover imagem")}},O=()=>{var A;x||p||(A=i.current)==null||A.click()},X=h||n;return a.createElement("div",{className:d("flex flex-col space-y-2",c)},y&&a.createElement("label",{className:"text-sm font-medium text-gray-700"},y),a.createElement("div",{className:"relative flex flex-col items-center"},a.createElement("input",{ref:i,type:"file",accept:l,onChange:J,disabled:x||p,className:"hidden",...I}),a.createElement("div",{onClick:O,className:d("relative border-2 border-dashed border-gray-300 transition-colors cursor-pointer","hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",t?"rounded-full":"rounded-lg",H[N],x&&"opacity-50 cursor-not-allowed",p&&"cursor-wait",f&&"border-red-300",!L&&"bg-gray-50 hover:bg-gray-100",L&&"border-solid border-gray-200")},L?a.createElement("img",{src:X,alt:"Preview",className:d("w-full h-full object-cover",t?"rounded-full":"rounded-lg")}):a.createElement("div",{className:"flex flex-col items-center justify-center h-full text-gray-500 text-sm"},t?a.createElement(a.Fragment,null,a.createElement("svg",{className:"w-8 h-8 mb-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),a.createElement("span",{className:"text-center px-2 text-xs"},B)):a.createElement(a.Fragment,null,a.createElement("svg",{className:"w-6 h-6 mb-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})),a.createElement("span",{className:"text-center px-2"},B))),p&&a.createElement("div",{className:d("absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center",t?"rounded-full":"rounded-lg")},a.createElement("div",{className:"w-6 h-6 border-2 border-white border-t-transparent rounded-full animate-spin"}))),L&&!p&&a.createElement("div",{className:"flex justify-center space-x-2 mt-3"},R?a.createElement(a.Fragment,null,a.createElement("button",{onClick:ee,disabled:!r,className:"px-3 py-1 bg-blue-600 text-white text-sm rounded hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed"},"Confirmar"),a.createElement("button",{onClick:Y,className:"px-3 py-1 bg-gray-600 text-white text-sm rounded hover:bg-gray-700"},"Cancelar")):a.createElement("button",{onClick:z,disabled:!o,className:"px-3 py-1 bg-red-600 text-white text-sm rounded hover:bg-red-700 disabled:opacity-50 disabled:cursor-not-allowed"},"Remover"))),f&&a.createElement("p",{className:"text-sm text-red-600"},f),w&&!L&&a.createElement("p",{className:"text-xs text-gray-500"},"Tamanho máximo: ",(w/1024/1024).toFixed(1),"MB"),t&&!L&&a.createElement("p",{className:"text-xs text-gray-500 text-center"},"Use uma foto com seu rosto centralizado e bem visível"))},_e=a.createContext(null),Je=()=>{const t=a.useContext(_e);if(!t)throw new Error("AccordionItem must be used within an Accordion");return t};let Te=0;const we=({title:t,children:n,defaultOpen:r=!1,disabled:o=!1,className:l,headerClassName:w,contentClassName:b,icon:M})=>{const{openItems:N,toggleItem:y,variant:f}=Je(),[x]=a.useState(()=>Te++),c=N.has(x),I=a.useRef(null),[k,S]=a.useState(r?void 0:0);a.useEffect(()=>{if(c){const C=I.current;C&&S(C.scrollHeight)}else S(0)},[c]);const h=()=>{o||y(x)},E={default:{item:"border-b border-[var(--accordion-border,#e5e7eb)] last:border-b-0",header:"",content:""},bordered:{item:"border border-[var(--accordion-border,#e5e7eb)] rounded-md mb-2",header:"border-b border-[var(--accordion-border,#e5e7eb)]",content:""},separated:{item:"border border-[var(--accordion-border,#e5e7eb)] rounded-md mb-3 shadow-sm",header:"",content:""}}[f];return a.createElement("div",{className:d(E.item,l)},a.createElement("button",{type:"button",onClick:h,disabled:o,"aria-expanded":c,className:d("w-full flex items-center justify-between px-4 py-3 text-left transition-colors","bg-[var(--accordion-header-bg,transparent)]","hover:bg-[var(--accordion-header-hover,rgba(0,0,0,0.05))]","text-[var(--accordion-text,#111827)]","font-medium",o&&"opacity-50 cursor-not-allowed",c&&f!=="default"&&E.header,w)},a.createElement("span",{className:"flex items-center gap-2"},M&&a.createElement("span",{className:"flex-shrink-0"},M),t),a.createElement("svg",{className:d("w-5 h-5 transition-transform duration-200 flex-shrink-0","text-[var(--accordion-icon,#6b7280)]",c&&"rotate-180"),fill:"none",strokeWidth:"2",stroke:"currentColor",viewBox:"0 0 24 24"},a.createElement("path",{d:"M19 9l-7 7-7-7"}))),a.createElement("div",{style:{height:k,overflow:"hidden",transition:"height 0.3s ease-in-out"}},a.createElement("div",{ref:I,className:d("px-4 py-3","text-[var(--accordion-content-text,#374151)]","bg-[var(--accordion-content-bg,transparent)]",b)},n)))};we.displayName="AccordionItem";const Oe=({children:t,type:n="single",className:r,variant:o="default",collapsible:l=!0})=>{const[w,b]=a.useState(new Set);a.useEffect(()=>{Te=0;const N=a.Children.toArray(t),y=new Set;if(N.forEach((f,x)=>{a.isValidElement(f)&&f.props.defaultOpen&&y.add(x)}),n==="single"&&y.size>1){const f=Array.from(y)[0];b(new Set([f]))}else b(y)},[t,n]);const M=N=>{b(y=>{const f=new Set(y);return n==="single"?f.has(N)?l&&f.clear():(f.clear(),f.add(N)):f.has(N)?f.delete(N):f.add(N),f})};return a.createElement(_e.Provider,{value:{type:n,openItems:w,toggleItem:M,collapsible:l,variant:o}},a.createElement("div",{className:d("w-full",r)},t))};Oe.Item=we;exports.Accordion=Oe;exports.AccordionItem=we;exports.AsideSheet=Ae;exports.AsyncSelect=Ie;exports.Button=Ve;exports.Card=qe;exports.CardBody=me;exports.CardFooter=pe;exports.CardHeader=fe;exports.ImageInput=Ke;exports.Input=Se;exports.MultiAsyncSelect=Be;exports.MultiSelect=Me;exports.RadioGroup=Le;exports.Select=Fe;exports.Table=Ye;exports.TableBody=ge;exports.TableCell=xe;exports.TableFooter=he;exports.TableHeader=be;exports.TableRow=ve;exports.Textarea=Re;exports.Tooltip=Ge;
|