rharuow-ds 1.4.3 → 1.5.1

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 CHANGED
@@ -44,9 +44,9 @@ 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
- - 🧩 **10 componentes** prontos para uso (Input, Textarea, Select, AsyncSelect, MultiSelect, MultiAsyncSelect, RadioGroup, Button, Card, Table)
48
- - **Filtro digitável** em componentes Select - Digite para encontrar opções rapidamente
49
- - �🔗 **Integração nativa** com React Hook Form
47
+ - 🧩 **11 componentes** prontos para uso (Input, Textarea, Select, AsyncSelect, MultiSelect, MultiAsyncSelect, RadioGroup, Button, Card, Table, Tooltip)
48
+ - 💡 **Filtro digitável** em componentes Select - Digite para encontrar opções rapidamente
49
+ - 🔗 **Integração nativa** com React Hook Form
50
50
  - 🎨 **Customização via CSS Variables** - Mude o tema facilmente
51
51
  - 🎯 **Componentes acessíveis** (ARIA)
52
52
  - 📱 **Responsivo** por padrão
@@ -109,6 +109,7 @@ npm install react-hook-form
109
109
  AsyncSelect,
110
110
  MultiSelect,
111
111
  RadioGroup,
112
+ Tooltip,
112
113
  } from "rharuow-ds";
113
114
 
114
115
  function App() {
@@ -169,7 +170,10 @@ npm install react-hook-form
169
170
  { label: "Grande", value: "lg" },
170
171
  ]}
171
172
  />
172
- <Button variant="default">Enviar</Button>
173
+
174
+ <Tooltip content="Clique para enviar o formulário" position="top">
175
+ <Button variant="default">Enviar</Button>
176
+ </Tooltip>
173
177
  </div>
174
178
  );
175
179
  }
@@ -189,6 +193,7 @@ npm install react-hook-form
189
193
  MultiAsyncSelect,
190
194
  RadioGroup,
191
195
  Button,
196
+ Tooltip,
192
197
  } from "rharuow-ds";
193
198
 
194
199
  function FormExample() {
@@ -395,6 +400,47 @@ Radio buttons modernos e criativos:
395
400
  - ✅ Diferentes tamanhos (sm, md, lg)
396
401
  - ✅ Animações ao selecionar
397
402
 
403
+ ### 💡 **Tooltip**
404
+
405
+ Componente de tooltip inteligente e acessível:
406
+
407
+ - ✅ **Posicionamento automático**: top, bottom, left, right
408
+ - ✅ **Detecção de bordas**: Ajusta posição automaticamente se não couber na tela
409
+ - ✅ **Acessibilidade completa**: Suporte a navegação por teclado e screen readers
410
+ - ✅ **Animações suaves**: Transições de entrada e saída elegantes
411
+ - ✅ **Seta indicativa**: Aponta para o elemento que ativou o tooltip
412
+ - ✅ **Suporte a temas**: Variáveis CSS para light/dark mode
413
+ - ✅ **Flexível**: Funciona com qualquer elemento como trigger
414
+ - ✅ **Controle de estado**: Pode ser desabilitado conforme necessário
415
+
416
+ ```tsx
417
+ // Tooltip básico
418
+ <Tooltip content="Informação útil" position="top">
419
+ <Button>Passe o mouse aqui</Button>
420
+ </Tooltip>
421
+
422
+ // Tooltip com texto
423
+ <Tooltip content="Clique para mais detalhes" position="right">
424
+ <span className="underline cursor-help">
425
+ Texto com tooltip
426
+ </span>
427
+ </Tooltip>
428
+
429
+ // Tooltip personalizado
430
+ <Tooltip
431
+ content="Tooltip customizado"
432
+ position="bottom"
433
+ className="bg-red-500 text-white"
434
+ >
435
+ <Button variant="outline">Hover aqui</Button>
436
+ </Tooltip>
437
+
438
+ // Tooltip desabilitado
439
+ <Tooltip content="Este não aparece" disabled>
440
+ <Button>Tooltip desabilitado</Button>
441
+ </Tooltip>
442
+ ```
443
+
398
444
  ---
399
445
 
400
446
  ## 🎨 Customização de Tema
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("react"),G=require("react-hook-form");function Te(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const l=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(o,r,l.get?l:{enumerable:!0,get:()=>t[r]})}}return o.default=t,Object.freeze(o)}const e=Te(z);function ye(t){var o,r,l="";if(typeof t=="string"||typeof t=="number")l+=t;else if(typeof t=="object")if(Array.isArray(t)){var u=t.length;for(o=0;o<u;o++)t[o]&&(r=ye(t[o]))&&(l&&(l+=" "),l+=r)}else for(r in t)t[r]&&(l&&(l+=" "),l+=r);return l}function Pe(){for(var t,o,r=0,l="",u=arguments.length;r<u;r++)(t=arguments[r])&&(o=ye(t))&&(l&&(l+=" "),l+=o);return l}function d(...t){return Pe(...t)}const ze=({children:t,variant:o="default",className:r="",...l})=>{const u="px-4 py-2 rounded font-medium transition",S={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 z.createElement("button",{className:d(u,S[o],r),...l},t)},Ee=e.forwardRef(({name:t,className:o,type:r="text",label:l,onFocus:u,onBlur:S,Icon:b,iconClassName:A,iconAction:W,containerClassName:C,...x},h)=>{var J,$,T;const[m,L]=e.useState(!1),[g,k]=e.useState(!1),c=G.useFormContext(),p=c==null?void 0:c.control,v=c==null?void 0:c.register,O=p&&t?G.useWatch({control:p,name:t}):void 0,B=x.value??O??"",y=(T=($=(J=c==null?void 0:c.formState)==null?void 0:J.errors)==null?void 0:$[t])==null?void 0:T.message,V=["date","datetime-local","time","month","week"].includes(r),f=m||!!B||V,H=r==="password"?g?"text":"password":r,D=()=>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"})),w=()=>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"})),q=()=>{k(!g)};return e.createElement("div",{className:d("relative",C)},e.createElement("input",{id:x.id||t,type:H,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":"",o),onFocus:E=>{L(!0),u&&u(E)},...c&&t?(()=>{const E=v(t),Q=E.onBlur;return{...E,ref:I=>{typeof h=="function"?h(I):h&&(h.current=I),E.ref&&E.ref(I)},onBlur:I=>{L(!1),S&&S(I),Q&&Q(I)}}})():{ref:h,onBlur:E=>{L(!1),S&&S(E)}},...x}),l&&e.createElement("label",{htmlFor:x.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",f?"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")},l),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:q,"aria-label":g?"Esconder senha":"Mostrar senha",tabIndex:-1},g?e.createElement(w,null):e.createElement(D,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",A),onClick:W},e.createElement(b,null)),y&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},y))});Ee.displayName="Input";const Ce=e.forwardRef(({name:t,label:o,options:r,className:l,containerClassName:u,isClearable:S,searchable:b=!1,filterPlaceholder:A="Digite para filtrar...",caseSensitive:W=!1,filterFunction:C,onFocus:x,onBlur:h,...m},L)=>{var te,ae,n,F;const[g,k]=e.useState(!1),[c,p]=e.useState(!1),[v,O]=e.useState(""),[B,y]=e.useState({top:0,left:0,width:0}),R=e.useRef(null),V=e.useRef(null),f=G.useFormContext(),H=f==null?void 0:f.control,D=H&&t?G.useWatch({control:H,name:t}):void 0,w=m.value??D??"",q=(n=(ae=(te=f==null?void 0:f.formState)==null?void 0:te.errors)==null?void 0:ae[t])==null?void 0:n.message,$=C||((a,M)=>{const j=W?a.label:a.label.toLowerCase(),U=W?M:M.toLowerCase();return j.includes(U)}),T=v.trim()?r.filter(a=>$(a,v.trim())):r,E=r.find(a=>a.value===w),Q=b&&c?v:(E==null?void 0:E.label)||"",I=g||!!w||b&&!!v,_=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),X=e.useCallback(()=>{if(R.current&&c){const a=R.current.getBoundingClientRect(),M=_(),j=window.innerHeight,U=window.innerWidth,Y=152;let i=a.bottom+4,P=a.left;if(M){const re=j-a.bottom,s=a.top;re<Y&&s>Y&&(i=a.top-Y-4);const N=16,K=U-a.width-N;P=Math.min(Math.max(P,N),K)}else j-a.bottom<Y&&(i=a.top-Y-4);y({top:i,left:P,width:a.width})}},[c,_]);e.useEffect(()=>{if(X(),c){const a=()=>X(),M=()=>X();return window.addEventListener("resize",a),window.addEventListener("scroll",M,!0),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",M,!0)}}},[c,X]),e.useEffect(()=>{const a=M=>{R.current&&!R.current.contains(M.target)&&(p(!1),k(!1))};return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}},[]);const ne=()=>{p(a=>!a),k(!0)},Z=a=>{k(!0),x&&x(a)},ee=a=>{h&&h(a)},le=a=>{O(a.target.value)},oe=a=>{if(f&&t&&f.setValue(t,a),m.onChange){const M={target:{value:a}};m.onChange(M)}p(!1),k(!1),O("")};return e.createElement("div",{className:d("relative",u),ref:R},e.createElement("div",{id:m.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":c,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",l),onClick:b?void 0:ne,onFocus:b?void 0:Z,onBlur:b?void 0:ee,ref:L},b?e.createElement("input",{ref:V,type:"text",value:Q,onChange:le,onFocus:b?a=>{k(!0),p(!0),x&&x(a)}:void 0,onBlur:b?a=>{h&&h(a)}:void 0,placeholder:o?"":A||"Selecione...",className:d("w-full bg-transparent border-none outline-none text-sm",!w&&!v&&"text-gray-400")}):e.createElement("span",{className:d("block truncate",!w&&"text-gray-400")},((F=r.find(a=>a.value===w))==null?void 0:F.label)||!o&&"Selecione..."),S&&w&&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=>{if(a.stopPropagation(),f&&t&&f.setValue(t,""),m.onChange){const M={target:{value:""}};m.onChange(M)}p(!1),k(!1)}},"✕")),o&&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",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")},o),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)]",c?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:c?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:c?`${B.top}px`:"auto",left:c?`${B.left}px`:"auto",width:c?`${B.width}px`:"auto",zIndex:9999,boxShadow:c?"var(--select-dropdown-shadow)":"none"}},T.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):T.map(a=>e.createElement("div",{key:a.value,className:d("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",w===a.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>oe(a.value)},a.label))),q&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},q))});Ce.displayName="Select";const Ne=e.forwardRef(({name:t,className:o,label:r,onFocus:l,onBlur:u,Icon:S,iconClassName:b,iconAction:A,containerClassName:W,rows:C=4,...x},h)=>{var y,R,V;const[m,L]=e.useState(!1),g=G.useFormContext(),k=g==null?void 0:g.control,c=g==null?void 0:g.register,p=k&&t?G.useWatch({control:k,name:t}):void 0,v=x.value??p??"",O=(V=(R=(y=g==null?void 0:g.formState)==null?void 0:y.errors)==null?void 0:R[t])==null?void 0:V.message,B=m||!!v;return e.createElement("div",{className:d("relative",W)},e.createElement("textarea",{id:x.id||t,rows:C,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",S?"pr-12":"",o),onFocus:f=>{L(!0),l&&l(f)},...g&&t?(()=>{const f=c(t),H=f.onBlur;return{...f,ref:D=>{typeof h=="function"?h(D):h&&(h.current=D),f.ref&&f.ref(D)},onBlur:D=>{L(!1),u&&u(D),H&&H(D)}}})():{ref:h,onBlur:f=>{L(!1),u&&u(f)}},...x}),r&&e.createElement("label",{htmlFor:x.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",B?"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),S&&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:A},e.createElement(S,null)),O&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},O))});Ne.displayName="Textarea";const Se=e.forwardRef(({name:t,label:o,loadOptions:r,className:l,containerClassName:u,isClearable:S,defaultOptions:b=!1,loadingMessage:A="Carregando...",noOptionsMessage:W="Nenhuma opção encontrada",searchable:C=!1,debounceMs:x=300,onFocus:h,onBlur:m,...L},g)=>{var j,U,Y;const[k,c]=e.useState(!1),[p,v]=e.useState(!1),[O,B]=e.useState([]),[y,R]=e.useState(!1),[V,f]=e.useState(""),[H,D]=e.useState(""),[w,q]=e.useState({top:0,left:0,width:0}),J=e.useRef(null),$=e.useRef(null),T=G.useFormContext(),E=T==null?void 0:T.control,Q=E&&t?G.useWatch({control:E,name:t}):void 0,I=L.value??Q??"",_=(Y=(U=(j=T==null?void 0:T.formState)==null?void 0:j.errors)==null?void 0:U[t])==null?void 0:Y.message,X=k||!!I,ne=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),Z=e.useCallback(()=>{if(J.current&&p){const i=J.current.getBoundingClientRect(),P=ne(),re=window.innerHeight,s=window.innerWidth,N=152;let K=i.bottom+4,ie=i.left;if(P){const se=re-i.bottom,de=i.top;se<N&&de>N&&(K=i.top-N-4);const ce=16,ue=s-i.width-ce;ie=Math.min(Math.max(ie,ce),ue)}else re-i.bottom<N&&(K=i.top-N-4);q({top:K,left:ie,width:i.width})}},[p,ne]);e.useEffect(()=>{if(Z(),p){const i=()=>Z(),P=()=>Z();return window.addEventListener("resize",i),window.addEventListener("scroll",P,!0),()=>{window.removeEventListener("resize",i),window.removeEventListener("scroll",P,!0)}}},[p,Z]),e.useEffect(()=>{const i=setTimeout(()=>{D(V)},x);return()=>clearTimeout(i)},[V,x]),e.useEffect(()=>{(p||b&&O.length===0)&&ee(C?H:void 0)},[H,p]),e.useEffect(()=>{b===!0?ee():Array.isArray(b)&&B(b)},[]);const ee=async i=>{try{R(!0);const P=await r(i);B(P)}catch(P){console.error("Error loading options:",P),B([])}finally{R(!1)}};e.useEffect(()=>{const i=P=>{J.current&&!J.current.contains(P.target)&&(v(!1),c(!1),f(""))};return document.addEventListener("mousedown",i),()=>{document.removeEventListener("mousedown",i)}},[]);const le=()=>{p||(v(!0),c(!0),C&&$.current&&setTimeout(()=>{var i;return(i=$.current)==null?void 0:i.focus()},0))},oe=i=>{c(!0),h&&h(i)},te=i=>{m&&m(i)},ae=i=>{f(i.target.value)},n=i=>{if(T&&t&&T.setValue(t,i),L.onChange){const P={target:{value:i}};L.onChange(P)}v(!1),c(!1),f("")},F=i=>{if(i.stopPropagation(),T&&t&&T.setValue(t,""),L.onChange){const P={target:{value:""}};L.onChange(P)}v(!1),c(!1),f("")},a=O.find(i=>i.value===I),M=C&&p?V:(a==null?void 0:a.label)||"";return e.createElement("div",{className:d("relative",u),ref:J},e.createElement("div",{id:L.id||t,tabIndex:C?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":p,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",l),onClick:le,onFocus:C?void 0:oe,onBlur:C?void 0:te,ref:g},C?e.createElement("input",{ref:$,type:"text",value:M,onChange:ae,onFocus:oe,onBlur:te,placeholder:o?"":"Selecione...",className:d("w-full bg-transparent border-none outline-none text-sm",!I&&!V&&"text-gray-400")}):e.createElement("span",{className:d("block truncate",!I&&"text-gray-400")},(a==null?void 0:a.label)||!o&&"Selecione..."),y&&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)]"})),S&&I&&!y&&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:F},"✕")),o&&e.createElement("label",{htmlFor:L.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",X?"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),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)]",p?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:p?"9.5rem":"0",overflowY:O.length>3?"auto":"hidden",position:"fixed",top:p?`${w.top}px`:"auto",left:p?`${w.left}px`:"auto",width:p?`${w.width}px`:"auto",zIndex:9999,boxShadow:p?"var(--select-dropdown-shadow)":"none"}},y?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},A):O.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},W):O.map(i=>e.createElement("div",{key:i.value,className:d("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",I===i.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>n(i.value)},i.label))),_&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},_))});Se.displayName="AsyncSelect";const ke=e.forwardRef(({name:t,label:o,options:r,className:l,containerClassName:u,isClearable:S,searchable:b=!1,filterPlaceholder:A="Digite para filtrar...",caseSensitive:W=!1,filterFunction:C,onFocus:x,onBlur:h,...m},L)=>{var oe,te,ae;const[g,k]=e.useState(!1),[c,p]=e.useState(!1),[v,O]=e.useState(""),[B,y]=e.useState({top:0,left:0,width:0}),R=e.useRef(null),V=e.useRef(null),f=G.useFormContext(),H=f==null?void 0:f.control,D=H&&t?G.useWatch({control:H,name:t}):void 0,w=m.value??D??[],q=(ae=(te=(oe=f==null?void 0:f.formState)==null?void 0:oe.errors)==null?void 0:te[t])==null?void 0:ae.message,$=C||((n,F)=>{const a=W?n.label:n.label.toLowerCase(),M=W?F:F.toLowerCase();return a.includes(M)}),T=v.trim()?r.filter(n=>$(n,v.trim())):r,E=g||w&&w.length>0||b&&!!v,Q=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),I=e.useCallback(()=>{if(R.current&&c){const n=R.current.getBoundingClientRect(),F=Q(),a=window.innerHeight,M=window.innerWidth,j=152;let U=n.bottom+4,Y=n.left;if(F){const i=a-n.bottom,P=n.top;i<j&&P>j&&(U=n.top-j-4);const re=16,s=M-n.width-re;Y=Math.min(Math.max(Y,re),s)}else a-n.bottom<j&&(U=n.top-j-4);y({top:U,left:Y,width:n.width})}},[c,Q]);e.useEffect(()=>{if(I(),c){const n=()=>I(),F=()=>I();return window.addEventListener("resize",n),window.addEventListener("scroll",F,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",F,!0)}}},[c,I]),e.useEffect(()=>{const n=F=>{R.current&&!R.current.contains(F.target)&&(p(!1),k(!1))};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]);const _=()=>{p(n=>!n),k(!0)},X=n=>{k(!0),x&&x(n)},ne=n=>{h&&h(n)},Z=n=>{var a;let F;w.includes(n)?F=w.filter(M=>M!==n):F=[...w,n],f&&t&&f.setValue(t,F),m.onChange&&((a=m.onChange)==null||a.call(m,{target:{value:F}})),k(!0)},ee=n=>{var F;n.stopPropagation(),f&&t&&f.setValue(t,[]),m.onChange&&((F=m.onChange)==null||F.call(m,{target:{value:[]}})),p(!1),k(!1)},le=n=>{O(n.target.value)};return e.createElement("div",{className:d("relative",u),ref:R},e.createElement("div",{id:m.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":c,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",l),onClick:b?void 0:_,onFocus:b?void 0:X,onBlur:b?void 0:ne,ref:L},e.createElement("div",{className:"flex flex-nowrap gap-1 items-center min-h-[1.5rem] w-full overflow-x-auto",style:{scrollbarWidth:"none"}},w&&w.length>0?r.filter(n=>w.includes(n.value)).map(n=>e.createElement("span",{key:n.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:n.label},n.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 ${n.label}`,tabIndex:-1,onClick:F=>{F.stopPropagation();const a=w.filter(M=>M!==n.value);f&&t&&f.setValue(t,a),m.onChange&&m.onChange({target:{value:a}})}},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"}))))):!o&&!b&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione..."),b&&e.createElement("input",{ref:V,type:"text",value:v,onChange:le,onFocus:n=>{k(!0),p(!0),x&&x(n)},onBlur:n=>{h&&h(n)},placeholder:o?w&&w.length>0?"":A:A||"Selecione...",className:"flex-1 bg-transparent border-none outline-none text-sm min-w-[100px]"})),S&&w&&w.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:ee},"✕")),o&&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",E?"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),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)]",c?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:c?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:c?`${B.top}px`:"auto",left:c?`${B.left}px`:"auto",width:c?`${B.width}px`:"auto",zIndex:9999,boxShadow:c?"var(--select-dropdown-shadow)":"none"}},T.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):T.map(n=>e.createElement("div",{key:n.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)]",w.includes(n.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>Z(n.value)},e.createElement("input",{type:"checkbox",checked:w.includes(n.value),readOnly:!0,className:"accent-blue-500"}),n.label))),q&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},q))});ke.displayName="MultiSelect";const Re=e.forwardRef(({name:t,label:o,loadOptions:r,className:l,containerClassName:u,isClearable:S,defaultOptions:b=!1,loadingMessage:A="Carregando...",noOptionsMessage:W="Nenhuma opção encontrada",searchable:C=!1,debounceMs:x=300,maxSelectedDisplay:h=3,onFocus:m,onBlur:L,...g},k)=>{var i,P,re;const[c,p]=e.useState(!1),[v,O]=e.useState(!1),[B,y]=e.useState([]),[R,V]=e.useState(!1),[f,H]=e.useState(""),[D,w]=e.useState(""),[q,J]=e.useState({top:0,left:0,width:0}),$=e.useRef(null),T=e.useRef(null),E=G.useFormContext(),Q=E==null?void 0:E.control,I=Q&&t?G.useWatch({control:Q,name:t}):void 0,_=g.value??I??[],X=(re=(P=(i=E==null?void 0:E.formState)==null?void 0:i.errors)==null?void 0:P[t])==null?void 0:re.message,ne=c||_&&_.length>0,Z=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),ee=e.useCallback(()=>{if($.current&&v){const s=$.current.getBoundingClientRect(),N=Z(),K=window.innerHeight,ie=window.innerWidth,se=152;let de=s.bottom+4,ce=s.left;if(N){const ue=K-s.bottom,Me=s.top;ue<se&&Me>se&&(de=s.top-se-4);const we=16,Be=ie-s.width-we;ce=Math.min(Math.max(ce,we),Be)}else K-s.bottom<se&&(de=s.top-se-4);J({top:de,left:ce,width:s.width})}},[v,Z]);e.useEffect(()=>{if(ee(),v){const s=()=>ee(),N=()=>ee();return window.addEventListener("resize",s),window.addEventListener("scroll",N,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",N,!0)}}},[v,ee]),e.useEffect(()=>{const s=setTimeout(()=>{w(f)},x);return()=>clearTimeout(s)},[f,x]),e.useEffect(()=>{(v||b&&B.length===0)&&le(C?D:void 0)},[D,v]),e.useEffect(()=>{b===!0?le():Array.isArray(b)&&y(b)},[]);const le=async s=>{try{V(!0);const N=await r(s);y(N)}catch(N){console.error("Error loading options:",N),y([])}finally{V(!1)}};e.useEffect(()=>{const s=N=>{$.current&&!$.current.contains(N.target)&&(O(!1),p(!1),H(""))};return document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}},[]);const oe=()=>{v||(O(!0),p(!0),C&&T.current&&setTimeout(()=>{var s;return(s=T.current)==null?void 0:s.focus()},0))},te=s=>{p(!0),m&&m(s)},ae=s=>{L&&L(s)},n=s=>{H(s.target.value)},F=s=>{let N;_.includes(s)?N=_.filter(K=>K!==s):N=[..._,s],E&&t&&E.setValue(t,N),g.onChange&&g.onChange({target:{value:N}}),p(!0)},a=(s,N)=>{N.stopPropagation();const K=_.filter(ie=>ie!==s);E&&t&&E.setValue(t,K),g.onChange&&g.onChange({target:{value:K}})},M=s=>{s.stopPropagation(),E&&t&&E.setValue(t,[]),g.onChange&&g.onChange({target:{value:[]}}),O(!1),p(!1),H("")},j=B.filter(s=>_.includes(s.value)),U=j.slice(0,h),Y=j.length-h;return e.createElement("div",{className:d("relative",u),ref:$},e.createElement("div",{id:g.id||t,tabIndex:C?-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",l),onClick:oe,onFocus:C?void 0:te,onBlur:C?void 0:ae,ref:k},e.createElement("div",{className:"flex flex-wrap gap-1 items-center min-h-[1.5rem] w-full"},U.map(s=>e.createElement("span",{key:s.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:s.label},s.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 ${s.label}`,tabIndex:-1,onClick:N=>a(s.value,N)},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"}))))),Y>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"},"+",Y," mais"),C?e.createElement("input",{ref:T,type:"text",value:f,onChange:n,onFocus:te,onBlur:ae,placeholder:_.length===0&&!o?"Selecione...":"",className:"flex-1 min-w-[120px] bg-transparent border-none outline-none text-sm"}):_.length===0&&!o&&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)]"})),S&&_&&_.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:M},"✕")),o&&e.createElement("label",{htmlFor:g.id||t,className:d("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",ne?"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),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:B.length>3?"auto":"hidden",position:"fixed",top:v?`${q.top}px`:"auto",left:v?`${q.left}px`:"auto",width:v?`${q.width}px`:"auto",zIndex:9999,boxShadow:v?"var(--select-dropdown-shadow)":"none"}},R?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},A):B.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},W):B.map(s=>e.createElement("div",{key:s.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)]",_.includes(s.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>F(s.value)},e.createElement("input",{type:"checkbox",checked:_.includes(s.value),readOnly:!0,className:"accent-blue-500"}),s.label))),X&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},X))});Re.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"},Fe=e.forwardRef(({name:t,label:o,options:r,className:l,containerClassName:u,optionClassName:S,direction:b="row",size:A="md",onFocus:W,onBlur:C,...x},h)=>{var v,O,B;const m=G.useFormContext(),L=m==null?void 0:m.control,g=L&&t?G.useWatch({control:L,name:t}):void 0,k=x.value??g??"",c=(B=(O=(v=m==null?void 0:m.formState)==null?void 0:v.errors)==null?void 0:O[t])==null?void 0:B.message,p=y=>{m&&t&&m.setValue(t,y),x.onChange&&x.onChange({target:{value:y}})};return e.createElement("div",{className:d("relative",u),ref:h},o&&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")},o),e.createElement("div",{className:d("flex gap-2 w-full pt-6",b==="row"?"flex-row":"flex-col",l),"aria-label":o,tabIndex:-1,onFocus:W,onBlur:C},r.map(y=>e.createElement("button",{key:y.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[A],k===y.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",S),"aria-pressed":k===y.value,"data-selected":k===y.value,tabIndex:0,onClick:()=>p(y.value),onKeyDown:R=>{(R.key==="Enter"||R.key===" ")&&(R.preventDefault(),p(y.value))}},y.icon&&e.createElement("span",{className:"mr-2 text-lg flex items-center"},y.icon),e.createElement("span",{className:"truncate font-medium"},y.label)))),c&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},c))});Fe.displayName="RadioGroup";const fe=z.forwardRef(({children:t,className:o,as:r="div",...l},u)=>z.createElement(r,{ref:u,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)]",o),...l},t));fe.displayName="CardHeader";const me=z.forwardRef(({children:t,className:o,as:r="div",...l},u)=>z.createElement(r,{ref:u,className:d("px-6 py-4","flex-1","bg-[var(--card-bg,#ffffff)]","text-[var(--card-text,#111827)]",o),...l},t));me.displayName="CardBody";const pe=z.forwardRef(({children:t,className:o,as:r="div",...l},u)=>z.createElement(r,{ref:u,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)]",o),...l},t));pe.displayName="CardFooter";const Ie=z.forwardRef(({children:t,className:o,variant:r="default",size:l="md",padding:u="none",rounded:S="lg",constrainWidth:b=!1,...A},W)=>{const C={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"},h={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 z.createElement("div",{ref:W,className:d("flex flex-col","overflow-hidden",C[r],b&&x[l],h[u],m[S],o),...A},t)}),We=Object.assign(Ie,{Header:fe,Body:me,Footer:pe}),Le=z.forwardRef(({children:t,className:o,variant:r="default",size:l="md",responsive:u=!1,stickyHeader:S=!1,...b},A)=>{const W=d("w-full border-collapse bg-[var(--table-bg)] text-[var(--table-text)]",{"border border-[var(--table-border)]":r==="bordered"},{"text-sm":l==="sm","text-base":l==="md","text-lg":l==="lg"},o),C=d({"overflow-x-auto":u,"max-h-96 overflow-y-auto":S}),x=z.createElement("table",{ref:A,className:W,...b},t);return u||S?z.createElement("div",{className:C},x):x}),be=z.forwardRef(({children:t,className:o,as:r="thead",...l},u)=>z.createElement(r,{ref:u,className:d("border-b border-[var(--table-border)] bg-[var(--table-header-bg)]",{"sticky top-0 z-10":r==="thead"},o),...l},t)),ve=z.forwardRef(({children:t,className:o,as:r="tbody",...l},u)=>z.createElement(r,{ref:u,className:d("[&_tr:nth-child(odd)]:bg-[var(--table-row-odd)]","[&_tr:nth-child(even)]:bg-[var(--table-row-even)]",o),...l},t)),xe=z.forwardRef(({children:t,className:o,as:r="tfoot",...l},u)=>z.createElement(r,{ref:u,className:d("border-t border-[var(--table-border)] bg-[var(--table-header-bg)] font-medium",o),...l},t)),ge=z.forwardRef(({children:t,className:o,variant:r="default",...l},u)=>z.createElement("tr",{ref:u,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"},o),...l},t)),he=z.forwardRef(({children:t,className:o,as:r="td",align:l="left",scope:u,colSpan:S,rowSpan:b,...A},W)=>z.createElement(r,{ref:W,scope:r==="th"?u:void 0,colSpan:S,rowSpan:b,className:d("px-4 py-3 text-left",{"font-semibold":r==="th","text-sm":r==="td","text-center":l==="center","text-right":l==="right"},o),...A},t));Le.displayName="Table";be.displayName="TableHeader";ve.displayName="TableBody";xe.displayName="TableFooter";ge.displayName="TableRow";he.displayName="TableCell";const _e=Object.assign(Le,{Header:be,Body:ve,Footer:xe,Row:ge,Cell:he});exports.AsyncSelect=Se;exports.Button=ze;exports.Card=We;exports.CardBody=me;exports.CardFooter=pe;exports.CardHeader=fe;exports.Input=Ee;exports.MultiAsyncSelect=Re;exports.MultiSelect=ke;exports.RadioGroup=Fe;exports.Select=Ce;exports.Table=_e;exports.TableBody=ve;exports.TableCell=he;exports.TableFooter=xe;exports.TableHeader=be;exports.TableRow=ge;exports.Textarea=Ne;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),G=require("react-hook-form");function _e(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(o,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return o.default=t,Object.freeze(o)}const e=_e(y);function ye(t){var o,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var f=t.length;for(o=0;o<f;o++)t[o]&&(r=ye(t[o]))&&(n&&(n+=" "),n+=r)}else for(r in t)t[r]&&(n&&(n+=" "),n+=r);return n}function Te(){for(var t,o,r=0,n="",f=arguments.length;r<f;r++)(t=arguments[r])&&(o=ye(t))&&(n&&(n+=" "),n+=o);return n}function u(...t){return Te(...t)}const Pe=({children:t,variant:o="default",className:r="",...n})=>{const f="px-4 py-2 rounded font-medium transition",E={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 y.createElement("button",{className:u(f,E[o],r),...n},t)},Ee=e.forwardRef(({name:t,className:o,type:r="text",label:n,onFocus:f,onBlur:E,Icon:m,iconClassName:P,iconAction:z,containerClassName:C,...v},w)=>{var J,V,W;const[p,M]=e.useState(!1),[h,R]=e.useState(!1),c=G.useFormContext(),i=c==null?void 0:c.control,x=c==null?void 0:c.register,L=i&&t?G.useWatch({control:i,name:t}):void 0,k=v.value??L??"",g=(W=(V=(J=c==null?void 0:c.formState)==null?void 0:J.errors)==null?void 0:V[t])==null?void 0:W.message,H=["date","datetime-local","time","month","week"].includes(r),b=p||!!k||H,$=r==="password"?h?"text":"password":r,D=()=>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"})),N=()=>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"})),q=()=>{R(!h)};return e.createElement("div",{className:u("relative",C)},e.createElement("input",{id:v.id||t,type:$,className:u("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":"",o),onFocus:S=>{M(!0),f&&f(S)},...c&&t?(()=>{const S=x(t),Q=S.onBlur;return{...S,ref:O=>{typeof w=="function"?w(O):w&&(w.current=O),S.ref&&S.ref(O)},onBlur:O=>{M(!1),E&&E(O),Q&&Q(O)}}})():{ref:w,onBlur:S=>{M(!1),E&&E(S)}},...v}),n&&e.createElement("label",{htmlFor:v.id||t,className:u("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",b?"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),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:q,"aria-label":h?"Esconder senha":"Mostrar senha",tabIndex:-1},h?e.createElement(N,null):e.createElement(D,null)),m&&r!=="password"&&e.createElement("div",{className:u("absolute top-1/2 right-3 -translate-y-1/2 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",P),onClick:z},e.createElement(m,null)),g&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},g))});Ee.displayName="Input";const Ce=e.forwardRef(({name:t,label:o,options:r,className:n,containerClassName:f,isClearable:E,searchable:m=!1,filterPlaceholder:P="Digite para filtrar...",caseSensitive:z=!1,filterFunction:C,onFocus:v,onBlur:w,...p},M)=>{var te,ae,l,_;const[h,R]=e.useState(!1),[c,i]=e.useState(!1),[x,L]=e.useState(""),[k,g]=e.useState({top:0,left:0,width:0}),F=e.useRef(null),H=e.useRef(null),b=G.useFormContext(),$=b==null?void 0:b.control,D=$&&t?G.useWatch({control:$,name:t}):void 0,N=p.value??D??"",q=(l=(ae=(te=b==null?void 0:b.formState)==null?void 0:te.errors)==null?void 0:ae[t])==null?void 0:l.message,V=C||((a,T)=>{const j=z?a.label:a.label.toLowerCase(),U=z?T:T.toLowerCase();return j.includes(U)}),W=x.trim()?r.filter(a=>V(a,x.trim())):r,S=r.find(a=>a.value===N),Q=m&&c?x:(S==null?void 0:S.label)||"",O=h||!!N||m&&!!x,A=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),X=e.useCallback(()=>{if(F.current&&c){const a=F.current.getBoundingClientRect(),T=A(),j=window.innerHeight,U=window.innerWidth,Y=152;let d=a.bottom+4,I=a.left;if(T){const re=j-a.bottom,s=a.top;re<Y&&s>Y&&(d=a.top-Y-4);const B=16,K=U-a.width-B;I=Math.min(Math.max(I,B),K)}else j-a.bottom<Y&&(d=a.top-Y-4);g({top:d,left:I,width:a.width})}},[c,A]);e.useEffect(()=>{if(X(),c){const a=()=>X(),T=()=>X();return window.addEventListener("resize",a),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",T,!0)}}},[c,X]),e.useEffect(()=>{const a=T=>{F.current&&!F.current.contains(T.target)&&(i(!1),R(!1))};return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}},[]);const ne=()=>{i(a=>!a),R(!0)},Z=a=>{R(!0),v&&v(a)},ee=a=>{w&&w(a)},le=a=>{L(a.target.value)},oe=a=>{if(b&&t&&b.setValue(t,a),p.onChange){const T={target:{value:a}};p.onChange(T)}i(!1),R(!1),L("")};return e.createElement("div",{className:u("relative",f),ref:F},e.createElement("div",{id:p.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":c,className:u("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",n),onClick:m?void 0:ne,onFocus:m?void 0:Z,onBlur:m?void 0:ee,ref:M},m?e.createElement("input",{ref:H,type:"text",value:Q,onChange:le,onFocus:m?a=>{R(!0),i(!0),v&&v(a)}:void 0,onBlur:m?a=>{w&&w(a)}:void 0,placeholder:o?"":P||"Selecione...",className:u("w-full bg-transparent border-none outline-none text-sm",!N&&!x&&"text-gray-400")}):e.createElement("span",{className:u("block truncate",!N&&"text-gray-400")},((_=r.find(a=>a.value===N))==null?void 0:_.label)||!o&&"Selecione..."),E&&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:a=>{if(a.stopPropagation(),b&&t&&b.setValue(t,""),p.onChange){const T={target:{value:""}};p.onChange(T)}i(!1),R(!1)}},"✕")),o&&e.createElement("label",{htmlFor:p.id||t,className:u("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")},o),e.createElement("div",{className:u("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)]",c?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:c?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:c?`${k.top}px`:"auto",left:c?`${k.left}px`:"auto",width:c?`${k.width}px`:"auto",zIndex:9999,boxShadow:c?"var(--select-dropdown-shadow)":"none"}},W.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):W.map(a=>e.createElement("div",{key:a.value,className:u("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",N===a.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>oe(a.value)},a.label))),q&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},q))});Ce.displayName="Select";const Ne=e.forwardRef(({name:t,className:o,label:r,onFocus:n,onBlur:f,Icon:E,iconClassName:m,iconAction:P,containerClassName:z,rows:C=4,...v},w)=>{var g,F,H;const[p,M]=e.useState(!1),h=G.useFormContext(),R=h==null?void 0:h.control,c=h==null?void 0:h.register,i=R&&t?G.useWatch({control:R,name:t}):void 0,x=v.value??i??"",L=(H=(F=(g=h==null?void 0:h.formState)==null?void 0:g.errors)==null?void 0:F[t])==null?void 0:H.message,k=p||!!x;return e.createElement("div",{className:u("relative",z)},e.createElement("textarea",{id:v.id||t,rows:C,className:u("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",E?"pr-12":"",o),onFocus:b=>{M(!0),n&&n(b)},...h&&t?(()=>{const b=c(t),$=b.onBlur;return{...b,ref:D=>{typeof w=="function"?w(D):w&&(w.current=D),b.ref&&b.ref(D)},onBlur:D=>{M(!1),f&&f(D),$&&$(D)}}})():{ref:w,onBlur:b=>{M(!1),f&&f(b)}},...v}),r&&e.createElement("label",{htmlFor:v.id||t,className:u("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",k?"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),E&&e.createElement("div",{className:u("absolute top-3 right-3 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",m),onClick:P},e.createElement(E,null)),L&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},L))});Ne.displayName="Textarea";const Se=e.forwardRef(({name:t,label:o,loadOptions:r,className:n,containerClassName:f,isClearable:E,defaultOptions:m=!1,loadingMessage:P="Carregando...",noOptionsMessage:z="Nenhuma opção encontrada",searchable:C=!1,debounceMs:v=300,onFocus:w,onBlur:p,...M},h)=>{var j,U,Y;const[R,c]=e.useState(!1),[i,x]=e.useState(!1),[L,k]=e.useState([]),[g,F]=e.useState(!1),[H,b]=e.useState(""),[$,D]=e.useState(""),[N,q]=e.useState({top:0,left:0,width:0}),J=e.useRef(null),V=e.useRef(null),W=G.useFormContext(),S=W==null?void 0:W.control,Q=S&&t?G.useWatch({control:S,name:t}):void 0,O=M.value??Q??"",A=(Y=(U=(j=W==null?void 0:W.formState)==null?void 0:j.errors)==null?void 0:U[t])==null?void 0:Y.message,X=R||!!O,ne=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),Z=e.useCallback(()=>{if(J.current&&i){const d=J.current.getBoundingClientRect(),I=ne(),re=window.innerHeight,s=window.innerWidth,B=152;let K=d.bottom+4,ie=d.left;if(I){const se=re-d.bottom,de=d.top;se<B&&de>B&&(K=d.top-B-4);const ce=16,ue=s-d.width-ce;ie=Math.min(Math.max(ie,ce),ue)}else re-d.bottom<B&&(K=d.top-B-4);q({top:K,left:ie,width:d.width})}},[i,ne]);e.useEffect(()=>{if(Z(),i){const d=()=>Z(),I=()=>Z();return window.addEventListener("resize",d),window.addEventListener("scroll",I,!0),()=>{window.removeEventListener("resize",d),window.removeEventListener("scroll",I,!0)}}},[i,Z]),e.useEffect(()=>{const d=setTimeout(()=>{D(H)},v);return()=>clearTimeout(d)},[H,v]),e.useEffect(()=>{(i||m&&L.length===0)&&ee(C?$:void 0)},[$,i]),e.useEffect(()=>{m===!0?ee():Array.isArray(m)&&k(m)},[]);const ee=async d=>{try{F(!0);const I=await r(d);k(I)}catch(I){console.error("Error loading options:",I),k([])}finally{F(!1)}};e.useEffect(()=>{const d=I=>{J.current&&!J.current.contains(I.target)&&(x(!1),c(!1),b(""))};return document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}},[]);const le=()=>{i||(x(!0),c(!0),C&&V.current&&setTimeout(()=>{var d;return(d=V.current)==null?void 0:d.focus()},0))},oe=d=>{c(!0),w&&w(d)},te=d=>{p&&p(d)},ae=d=>{b(d.target.value)},l=d=>{if(W&&t&&W.setValue(t,d),M.onChange){const I={target:{value:d}};M.onChange(I)}x(!1),c(!1),b("")},_=d=>{if(d.stopPropagation(),W&&t&&W.setValue(t,""),M.onChange){const I={target:{value:""}};M.onChange(I)}x(!1),c(!1),b("")},a=L.find(d=>d.value===O),T=C&&i?H:(a==null?void 0:a.label)||"";return e.createElement("div",{className:u("relative",f),ref:J},e.createElement("div",{id:M.id||t,tabIndex:C?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":i,className:u("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",n),onClick:le,onFocus:C?void 0:oe,onBlur:C?void 0:te,ref:h},C?e.createElement("input",{ref:V,type:"text",value:T,onChange:ae,onFocus:oe,onBlur:te,placeholder:o?"":"Selecione...",className:u("w-full bg-transparent border-none outline-none text-sm",!O&&!H&&"text-gray-400")}):e.createElement("span",{className:u("block truncate",!O&&"text-gray-400")},(a==null?void 0:a.label)||!o&&"Selecione..."),g&&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)]"})),E&&O&&!g&&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:_},"✕")),o&&e.createElement("label",{htmlFor:M.id||t,className:u("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",X?"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),e.createElement("div",{className:u("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)]",i?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:i?"9.5rem":"0",overflowY:L.length>3?"auto":"hidden",position:"fixed",top:i?`${N.top}px`:"auto",left:i?`${N.left}px`:"auto",width:i?`${N.width}px`:"auto",zIndex:9999,boxShadow:i?"var(--select-dropdown-shadow)":"none"}},g?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},P):L.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},z):L.map(d=>e.createElement("div",{key:d.value,className:u("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",O===d.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>l(d.value)},d.label))),A&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},A))});Se.displayName="AsyncSelect";const ke=e.forwardRef(({name:t,label:o,options:r,className:n,containerClassName:f,isClearable:E,searchable:m=!1,filterPlaceholder:P="Digite para filtrar...",caseSensitive:z=!1,filterFunction:C,onFocus:v,onBlur:w,...p},M)=>{var oe,te,ae;const[h,R]=e.useState(!1),[c,i]=e.useState(!1),[x,L]=e.useState(""),[k,g]=e.useState({top:0,left:0,width:0}),F=e.useRef(null),H=e.useRef(null),b=G.useFormContext(),$=b==null?void 0:b.control,D=$&&t?G.useWatch({control:$,name:t}):void 0,N=p.value??D??[],q=(ae=(te=(oe=b==null?void 0:b.formState)==null?void 0:oe.errors)==null?void 0:te[t])==null?void 0:ae.message,V=C||((l,_)=>{const a=z?l.label:l.label.toLowerCase(),T=z?_:_.toLowerCase();return a.includes(T)}),W=x.trim()?r.filter(l=>V(l,x.trim())):r,S=h||N&&N.length>0||m&&!!x,Q=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),O=e.useCallback(()=>{if(F.current&&c){const l=F.current.getBoundingClientRect(),_=Q(),a=window.innerHeight,T=window.innerWidth,j=152;let U=l.bottom+4,Y=l.left;if(_){const d=a-l.bottom,I=l.top;d<j&&I>j&&(U=l.top-j-4);const re=16,s=T-l.width-re;Y=Math.min(Math.max(Y,re),s)}else a-l.bottom<j&&(U=l.top-j-4);g({top:U,left:Y,width:l.width})}},[c,Q]);e.useEffect(()=>{if(O(),c){const l=()=>O(),_=()=>O();return window.addEventListener("resize",l),window.addEventListener("scroll",_,!0),()=>{window.removeEventListener("resize",l),window.removeEventListener("scroll",_,!0)}}},[c,O]),e.useEffect(()=>{const l=_=>{F.current&&!F.current.contains(_.target)&&(i(!1),R(!1))};return document.addEventListener("mousedown",l),()=>{document.removeEventListener("mousedown",l)}},[]);const A=()=>{i(l=>!l),R(!0)},X=l=>{R(!0),v&&v(l)},ne=l=>{w&&w(l)},Z=l=>{var a;let _;N.includes(l)?_=N.filter(T=>T!==l):_=[...N,l],b&&t&&b.setValue(t,_),p.onChange&&((a=p.onChange)==null||a.call(p,{target:{value:_}})),R(!0)},ee=l=>{var _;l.stopPropagation(),b&&t&&b.setValue(t,[]),p.onChange&&((_=p.onChange)==null||_.call(p,{target:{value:[]}})),i(!1),R(!1)},le=l=>{L(l.target.value)};return e.createElement("div",{className:u("relative",f),ref:F},e.createElement("div",{id:p.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":c,className:u("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",n),onClick:m?void 0:A,onFocus:m?void 0:X,onBlur:m?void 0:ne,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"}},N&&N.length>0?r.filter(l=>N.includes(l.value)).map(l=>e.createElement("span",{key:l.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:l.label},l.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 ${l.label}`,tabIndex:-1,onClick:_=>{_.stopPropagation();const a=N.filter(T=>T!==l.value);b&&t&&b.setValue(t,a),p.onChange&&p.onChange({target:{value:a}})}},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"}))))):!o&&!m&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione..."),m&&e.createElement("input",{ref:H,type:"text",value:x,onChange:le,onFocus:l=>{R(!0),i(!0),v&&v(l)},onBlur:l=>{w&&w(l)},placeholder:o?N&&N.length>0?"":P:P||"Selecione...",className:"flex-1 bg-transparent border-none outline-none text-sm min-w-[100px]"})),E&&N&&N.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:ee},"✕")),o&&e.createElement("label",{htmlFor:p.id||t,className:u("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")},o),e.createElement("div",{className:u("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)]",c?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:c?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:c?`${k.top}px`:"auto",left:c?`${k.left}px`:"auto",width:c?`${k.width}px`:"auto",zIndex:9999,boxShadow:c?"var(--select-dropdown-shadow)":"none"}},W.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},"Nenhuma opção encontrada"):W.map(l=>e.createElement("div",{key:l.value,className:u("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",N.includes(l.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>Z(l.value)},e.createElement("input",{type:"checkbox",checked:N.includes(l.value),readOnly:!0,className:"accent-blue-500"}),l.label))),q&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},q))});ke.displayName="MultiSelect";const Re=e.forwardRef(({name:t,label:o,loadOptions:r,className:n,containerClassName:f,isClearable:E,defaultOptions:m=!1,loadingMessage:P="Carregando...",noOptionsMessage:z="Nenhuma opção encontrada",searchable:C=!1,debounceMs:v=300,maxSelectedDisplay:w=3,onFocus:p,onBlur:M,...h},R)=>{var d,I,re;const[c,i]=e.useState(!1),[x,L]=e.useState(!1),[k,g]=e.useState([]),[F,H]=e.useState(!1),[b,$]=e.useState(""),[D,N]=e.useState(""),[q,J]=e.useState({top:0,left:0,width:0}),V=e.useRef(null),W=e.useRef(null),S=G.useFormContext(),Q=S==null?void 0:S.control,O=Q&&t?G.useWatch({control:Q,name:t}):void 0,A=h.value??O??[],X=(re=(I=(d=S==null?void 0:S.formState)==null?void 0:d.errors)==null?void 0:I[t])==null?void 0:re.message,ne=c||A&&A.length>0,Z=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),ee=e.useCallback(()=>{if(V.current&&x){const s=V.current.getBoundingClientRect(),B=Z(),K=window.innerHeight,ie=window.innerWidth,se=152;let de=s.bottom+4,ce=s.left;if(B){const ue=K-s.bottom,Me=s.top;ue<se&&Me>se&&(de=s.top-se-4);const we=16,Le=ie-s.width-we;ce=Math.min(Math.max(ce,we),Le)}else K-s.bottom<se&&(de=s.top-se-4);J({top:de,left:ce,width:s.width})}},[x,Z]);e.useEffect(()=>{if(ee(),x){const s=()=>ee(),B=()=>ee();return window.addEventListener("resize",s),window.addEventListener("scroll",B,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",B,!0)}}},[x,ee]),e.useEffect(()=>{const s=setTimeout(()=>{N(b)},v);return()=>clearTimeout(s)},[b,v]),e.useEffect(()=>{(x||m&&k.length===0)&&le(C?D:void 0)},[D,x]),e.useEffect(()=>{m===!0?le():Array.isArray(m)&&g(m)},[]);const le=async s=>{try{H(!0);const B=await r(s);g(B)}catch(B){console.error("Error loading options:",B),g([])}finally{H(!1)}};e.useEffect(()=>{const s=B=>{V.current&&!V.current.contains(B.target)&&(L(!1),i(!1),$(""))};return document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}},[]);const oe=()=>{x||(L(!0),i(!0),C&&W.current&&setTimeout(()=>{var s;return(s=W.current)==null?void 0:s.focus()},0))},te=s=>{i(!0),p&&p(s)},ae=s=>{M&&M(s)},l=s=>{$(s.target.value)},_=s=>{let B;A.includes(s)?B=A.filter(K=>K!==s):B=[...A,s],S&&t&&S.setValue(t,B),h.onChange&&h.onChange({target:{value:B}}),i(!0)},a=(s,B)=>{B.stopPropagation();const K=A.filter(ie=>ie!==s);S&&t&&S.setValue(t,K),h.onChange&&h.onChange({target:{value:K}})},T=s=>{s.stopPropagation(),S&&t&&S.setValue(t,[]),h.onChange&&h.onChange({target:{value:[]}}),L(!1),i(!1),$("")},j=k.filter(s=>A.includes(s.value)),U=j.slice(0,w),Y=j.length-w;return e.createElement("div",{className:u("relative",f),ref:V},e.createElement("div",{id:h.id||t,tabIndex:C?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":x,className:u("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",n),onClick:oe,onFocus:C?void 0:te,onBlur:C?void 0:ae,ref:R},e.createElement("div",{className:"flex flex-wrap gap-1 items-center min-h-[1.5rem] w-full"},U.map(s=>e.createElement("span",{key:s.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:s.label},s.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 ${s.label}`,tabIndex:-1,onClick:B=>a(s.value,B)},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"}))))),Y>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"},"+",Y," mais"),C?e.createElement("input",{ref:W,type:"text",value:b,onChange:l,onFocus:te,onBlur:ae,placeholder:A.length===0&&!o?"Selecione...":"",className:"flex-1 min-w-[120px] bg-transparent border-none outline-none text-sm"}):A.length===0&&!o&&e.createElement("span",{className:"text-gray-400 text-sm"},"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)]"})),E&&A&&A.length>0&&!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},"✕")),o&&e.createElement("label",{htmlFor:h.id||t,className:u("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",ne?"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),e.createElement("div",{className:u("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)]",x?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:x?"9.5rem":"0",overflowY:k.length>3?"auto":"hidden",position:"fixed",top:x?`${q.top}px`:"auto",left:x?`${q.left}px`:"auto",width:x?`${q.width}px`:"auto",zIndex:9999,boxShadow:x?"var(--select-dropdown-shadow)":"none"}},F?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},P):k.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},z):k.map(s=>e.createElement("div",{key:s.value,className:u("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",A.includes(s.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>_(s.value)},e.createElement("input",{type:"checkbox",checked:A.includes(s.value),readOnly:!0,className:"accent-blue-500"}),s.label))),X&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},X))});Re.displayName="MultiAsyncSelect";const ze={sm:"h-10 text-sm px-3",md:"h-12 text-base px-4",lg:"h-16 text-lg px-6"},Fe=e.forwardRef(({name:t,label:o,options:r,className:n,containerClassName:f,optionClassName:E,direction:m="row",size:P="md",onFocus:z,onBlur:C,...v},w)=>{var x,L,k;const p=G.useFormContext(),M=p==null?void 0:p.control,h=M&&t?G.useWatch({control:M,name:t}):void 0,R=v.value??h??"",c=(k=(L=(x=p==null?void 0:p.formState)==null?void 0:x.errors)==null?void 0:L[t])==null?void 0:k.message,i=g=>{p&&t&&p.setValue(t,g),v.onChange&&v.onChange({target:{value:g}})};return e.createElement("div",{className:u("relative",f),ref:w},o&&e.createElement("label",{htmlFor:t,className:u("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")},o),e.createElement("div",{className:u("flex gap-2 w-full pt-6",m==="row"?"flex-row":"flex-col",n),"aria-label":o,tabIndex:-1,onFocus:z,onBlur:C},r.map(g=>e.createElement("button",{key:g.value,type:"button",className:u("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)]",ze[P],R===g.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",E),"aria-pressed":R===g.value,"data-selected":R===g.value,tabIndex:0,onClick:()=>i(g.value),onKeyDown:F=>{(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),i(g.value))}},g.icon&&e.createElement("span",{className:"mr-2 text-lg flex items-center"},g.icon),e.createElement("span",{className:"truncate font-medium"},g.label)))),c&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},c))});Fe.displayName="RadioGroup";const fe=y.forwardRef(({children:t,className:o,as:r="div",...n},f)=>y.createElement(r,{ref:f,className:u("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)]",o),...n},t));fe.displayName="CardHeader";const me=y.forwardRef(({children:t,className:o,as:r="div",...n},f)=>y.createElement(r,{ref:f,className:u("px-6 py-4","flex-1","bg-[var(--card-bg,#ffffff)]","text-[var(--card-text,#111827)]",o),...n},t));me.displayName="CardBody";const pe=y.forwardRef(({children:t,className:o,as:r="div",...n},f)=>y.createElement(r,{ref:f,className:u("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)]",o),...n},t));pe.displayName="CardFooter";const We=y.forwardRef(({children:t,className:o,variant:r="default",size:n="md",padding:f="none",rounded:E="lg",constrainWidth:m=!1,...P},z)=>{const C={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"},v={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},w={none:"",sm:"p-3",md:"p-4",lg:"p-6"},p={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl"};return y.createElement("div",{ref:z,className:u("flex flex-col","overflow-hidden",C[r],m&&v[n],w[f],p[E],o),...P},t)}),Ie=Object.assign(We,{Header:fe,Body:me,Footer:pe}),Be=y.forwardRef(({children:t,className:o,variant:r="default",size:n="md",responsive:f=!1,stickyHeader:E=!1,...m},P)=>{const z=u("w-full border-collapse bg-[var(--table-bg)] text-[var(--table-text)]",{"border border-[var(--table-border)]":r==="bordered"},{"text-sm":n==="sm","text-base":n==="md","text-lg":n==="lg"},o),C=u({"overflow-x-auto":f,"max-h-96 overflow-y-auto":E}),v=y.createElement("table",{ref:P,className:z,...m},t);return f||E?y.createElement("div",{className:C},v):v}),be=y.forwardRef(({children:t,className:o,as:r="thead",...n},f)=>y.createElement(r,{ref:f,className:u("border-b border-[var(--table-border)] bg-[var(--table-header-bg)]",{"sticky top-0 z-10":r==="thead"},o),...n},t)),ve=y.forwardRef(({children:t,className:o,as:r="tbody",...n},f)=>y.createElement(r,{ref:f,className:u("[&_tr:nth-child(odd)]:bg-[var(--table-row-odd)]","[&_tr:nth-child(even)]:bg-[var(--table-row-even)]",o),...n},t)),xe=y.forwardRef(({children:t,className:o,as:r="tfoot",...n},f)=>y.createElement(r,{ref:f,className:u("border-t border-[var(--table-border)] bg-[var(--table-header-bg)] font-medium",o),...n},t)),ge=y.forwardRef(({children:t,className:o,variant:r="default",...n},f)=>y.createElement("tr",{ref:f,className:u("border-b border-[var(--table-border)] transition-colors",{"hover:bg-[var(--table-row-hover)]":r==="hover","bg-[var(--table-row-selected)]":r==="selected"},o),...n},t)),he=y.forwardRef(({children:t,className:o,as:r="td",align:n="left",scope:f,colSpan:E,rowSpan:m,...P},z)=>y.createElement(r,{ref:z,scope:r==="th"?f:void 0,colSpan:E,rowSpan:m,className:u("px-4 py-3 text-left",{"font-semibold":r==="th","text-sm":r==="td","text-center":n==="center","text-right":n==="right"},o),...P},t));Be.displayName="Table";be.displayName="TableHeader";ve.displayName="TableBody";xe.displayName="TableFooter";ge.displayName="TableRow";he.displayName="TableCell";const Oe=Object.assign(Be,{Header:be,Body:ve,Footer:xe,Row:ge,Cell:he}),Ae=({content:t,children:o,position:r="top",className:n="",disabled:f=!1})=>{const[E,m]=y.useState(!1),[P,z]=y.useState(r),C=y.useRef(null),v=y.useRef(null);y.useEffect(()=>{if(!E||!C.current||!v.current)return;const i=C.current,L=v.current.getBoundingClientRect(),k=i.getBoundingClientRect();let g=r;const F=window.innerWidth,H=window.innerHeight;r==="top"&&L.top<k.height+10?g="bottom":r==="bottom"&&L.bottom+k.height+10>H?g="top":r==="left"&&L.left<k.width+10?g="right":r==="right"&&L.right+k.width+10>F&&(g="left"),z(g)},[E,r]);const w=()=>{f||m(!0)},p=()=>{m(!1)},M=()=>{f||m(!0)},h=()=>{m(!1)},R=()=>{const i="absolute z-50 pointer-events-none";switch(P){case"top":return`${i} bottom-full left-1/2 transform -translate-x-1/2 mb-2`;case"bottom":return`${i} top-full left-1/2 transform -translate-x-1/2 mt-2`;case"left":return`${i} right-full top-1/2 transform -translate-y-1/2 mr-2`;case"right":return`${i} left-full top-1/2 transform -translate-y-1/2 ml-2`;default:return`${i} bottom-full left-1/2 transform -translate-x-1/2 mb-2`}},c=()=>{const i="absolute w-2 h-2 bg-[var(--tooltip-bg,#374151)] transform rotate-45";switch(P){case"top":return`${i} top-full left-1/2 transform -translate-x-1/2 -translate-y-1/2`;case"bottom":return`${i} bottom-full left-1/2 transform -translate-x-1/2 translate-y-1/2`;case"left":return`${i} left-full top-1/2 transform -translate-y-1/2 -translate-x-1/2`;case"right":return`${i} right-full top-1/2 transform -translate-y-1/2 translate-x-1/2`;default:return`${i} top-full left-1/2 transform -translate-x-1/2 -translate-y-1/2`}};return f||!t?y.createElement(y.Fragment,null,o):y.createElement("div",{className:"relative inline-block",ref:v,onMouseEnter:w,onMouseLeave:p,onFocus:M,onBlur:h},o,E&&y.createElement("div",{ref:C,className:u(R(),"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",n),role:"tooltip","aria-hidden":!E},t,y.createElement("div",{className:c()})))};exports.AsyncSelect=Se;exports.Button=Pe;exports.Card=Ie;exports.CardBody=me;exports.CardFooter=pe;exports.CardHeader=fe;exports.Input=Ee;exports.MultiAsyncSelect=Re;exports.MultiSelect=ke;exports.RadioGroup=Fe;exports.Select=Ce;exports.Table=Oe;exports.TableBody=ve;exports.TableCell=he;exports.TableFooter=xe;exports.TableHeader=be;exports.TableRow=ge;exports.Textarea=Ne;exports.Tooltip=Ae;