rharuow-ds 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -500,6 +500,111 @@ function Example() {
500
500
  Veja a story do componente no Storybook para demonstrações e variações (left/right, controlled/uncontrolled):
501
501
 
502
502
  [Storybook — AsideSheet](https://rharuow.github.io/rharuow-ds-docs/?path=/story/asidesheet--default)
503
+
504
+ ### 📷 **ImageInput**
505
+
506
+ Componente para seleção e upload de imagens com preview e ações de confirmação/remoção:
507
+
508
+ - ✅ **Seleção via explorador** - Clique para abrir o explorador de arquivos (apenas imagens)
509
+ - ✅ **Preview da imagem** - Visualização imediata após seleção
510
+ - ✅ **Modo avatar** (`avatar={true}`) - Formato circular para fotos de perfil
511
+ - ✅ **Ações de confirmação** - Botões para confirmar upload ou cancelar
512
+ - ✅ **Remoção de imagem** - Botão para excluir imagem já salva
513
+ - ✅ **Suporte a URLs externas** - Exibe imagens já salvas via `value` prop
514
+ - ✅ **Validação de arquivos** - Controle de tipo e tamanho máximo
515
+ - ✅ **Estados de loading** - Indicação visual durante upload/remoção
516
+ - ✅ **Flexível** - Funciona com qualquer serviço (Cloudinary, Firebase, S3, etc.)
517
+ - ✅ **Integração com React Hook Form** - Nome do campo e validação
518
+
519
+ Props principais:
520
+
521
+ - `avatar?: boolean` — formato circular (ideal para avatars)
522
+ - `value?: string` — URL da imagem atual (já salva)
523
+ - `onUpload?: (file: File) => Promise<string>` — callback para upload (retorna URL)
524
+ - `onRemove?: (imageUrl?: string) => Promise<void>` — callback para remoção
525
+ - `accept?: string` — tipos aceitos (padrão: "image/*")
526
+ - `maxSize?: number` — tamanho máximo em bytes
527
+ - `size?: 'sm' | 'md' | 'lg'` — tamanho do componente
528
+ - `loading?: boolean` — estado de carregamento
529
+ - `disabled?: boolean` — desabilitar interações
530
+
531
+ Exemplo básico:
532
+
533
+ ```tsx
534
+ import React from 'react';
535
+ import { ImageInput } from 'rharuow-ds';
536
+
537
+ function ProfileForm() {
538
+ const [avatarUrl, setAvatarUrl] = React.useState('');
539
+
540
+ const handleUpload = async (file: File): Promise<string> => {
541
+ // Upload para seu serviço preferido (Cloudinary, Firebase, etc.)
542
+ const formData = new FormData();
543
+ formData.append('file', file);
544
+
545
+ const response = await fetch('/api/upload', {
546
+ method: 'POST',
547
+ body: formData
548
+ });
549
+
550
+ const data = await response.json();
551
+ setAvatarUrl(data.url);
552
+ return data.url;
553
+ };
554
+
555
+ const handleRemove = async (url?: string) => {
556
+ // Remover do serviço se necessário
557
+ await fetch(`/api/delete?url=${encodeURIComponent(url || '')}`, {
558
+ method: 'DELETE'
559
+ });
560
+ setAvatarUrl('');
561
+ };
562
+
563
+ return (
564
+ <ImageInput
565
+ avatar
566
+ label="Foto do Perfil"
567
+ value={avatarUrl}
568
+ onUpload={handleUpload}
569
+ onRemove={handleRemove}
570
+ size="lg"
571
+ maxSize={2 * 1024 * 1024} // 2MB
572
+ />
573
+ );
574
+ }
575
+ ```
576
+
577
+ Exemplo com Cloudinary:
578
+
579
+ ```tsx
580
+ const uploadToCloudinary = async (file: File): Promise<string> => {
581
+ const formData = new FormData();
582
+ formData.append('file', file);
583
+ formData.append('upload_preset', 'seu_preset');
584
+
585
+ const response = await fetch(
586
+ `https://api.cloudinary.com/v1_1/seu_cloud_name/image/upload`,
587
+ {
588
+ method: 'POST',
589
+ body: formData
590
+ }
591
+ );
592
+
593
+ const data = await response.json();
594
+ return data.secure_url;
595
+ };
596
+
597
+ <ImageInput
598
+ onUpload={uploadToCloudinary}
599
+ placeholder="Upload para Cloudinary"
600
+ />
601
+ ```
602
+
603
+ Veja a story do componente no Storybook para demonstrações completas:
604
+
605
+ [Storybook — ImageInput](https://rharuow.github.io/rharuow-ds-docs/?path=/story/imageinput--default)
606
+
607
+ ---
503
608
  ```
504
609
 
505
610
  ---
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("react"),q=require("react-hook-form"),ye=require("react-dom");function Pe(t){const a=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(a,r,o.get?o:{enumerable:!0,get:()=>t[r]})}}return a.default=t,Object.freeze(a)}const e=Pe(x);function Ee(t){var a,r,o="";if(typeof t=="string"||typeof t=="number")o+=t;else if(typeof t=="object")if(Array.isArray(t)){var c=t.length;for(a=0;a<c;a++)t[a]&&(r=Ee(t[a]))&&(o&&(o+=" "),o+=r)}else for(r in t)t[r]&&(o&&(o+=" "),o+=r);return o}function Ie(){for(var t,a,r=0,o="",c=arguments.length;r<c;r++)(t=arguments[r])&&(a=Ee(t))&&(o&&(o+=" "),o+=a);return o}function i(...t){return Ie(...t)}const We=({children:t,variant:a="default",className:r="",...o})=>{const c="px-4 py-2 rounded font-medium transition",N={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 x.createElement("button",{className:i(c,N[a],r),...o},t)},Ce=e.forwardRef(({name:t,className:a,type:r="text",label:o,onFocus:c,onBlur:N,Icon:p,iconClassName:P,iconAction:_,containerClassName:k,...g},w)=>{var J,V,O;const[f,M]=e.useState(!1),[E,B]=e.useState(!1),d=q.useFormContext(),v=d==null?void 0:d.control,h=d==null?void 0:d.register,C=v&&t?q.useWatch({control:v,name:t}):void 0,b=g.value??C??"",y=(O=(V=(J=d==null?void 0:d.formState)==null?void 0:J.errors)==null?void 0:V[t])==null?void 0:O.message,W=["date","datetime-local","time","month","week"].includes(r),m=f||!!b||W,$=r==="password"?E?"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"})),R=()=>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"})),G=()=>{B(!E)};return e.createElement("div",{className:i("relative",k)},e.createElement("input",{id:g.id||t,type:$,className:i("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"||p?"pr-12":"",a),onFocus:F=>{M(!0),c&&c(F)},...d&&t?(()=>{const F=h(t),Q=F.onBlur;return{...F,ref:z=>{typeof w=="function"?w(z):w&&(w.current=z),F.ref&&F.ref(z)},onBlur:z=>{M(!1),N&&N(z),Q&&Q(z)}}})():{ref:w,onBlur:F=>{M(!1),N&&N(F)}},...g}),o&&e.createElement("label",{htmlFor:g.id||t,className:i("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",m?"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:G,"aria-label":E?"Esconder senha":"Mostrar senha",tabIndex:-1},E?e.createElement(R,null):e.createElement(D,null)),p&&r!=="password"&&e.createElement("div",{className:i("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:_},e.createElement(p,null)),y&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},y))});Ce.displayName="Input";const Ne=e.forwardRef(({name:t,label:a,options:r,className:o,containerClassName:c,isClearable:N,searchable:p=!1,filterPlaceholder:P="Digite para filtrar...",caseSensitive:_=!1,filterFunction:k,onFocus:g,onBlur:w,...f},M)=>{var te,ae,l,T;const[E,B]=e.useState(!1),[d,v]=e.useState(!1),[h,C]=e.useState(""),[b,y]=e.useState({top:0,left:0,width:0}),S=e.useRef(null),W=e.useRef(null),m=q.useFormContext(),$=m==null?void 0:m.control,D=$&&t?q.useWatch({control:$,name:t}):void 0,R=f.value??D??"",G=(l=(ae=(te=m==null?void 0:m.formState)==null?void 0:te.errors)==null?void 0:ae[t])==null?void 0:l.message,V=k||((n,I)=>{const j=_?n.label:n.label.toLowerCase(),U=_?I:I.toLowerCase();return j.includes(U)}),O=h.trim()?r.filter(n=>V(n,h.trim())):r,F=r.find(n=>n.value===R),Q=p&&d?h:(F==null?void 0:F.label)||"",z=E||!!R||p&&!!h,H=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),X=e.useCallback(()=>{if(S.current&&d){const n=S.current.getBoundingClientRect(),I=H(),j=window.innerHeight,U=window.innerWidth,Y=152;let u=n.bottom+4,A=n.left;if(I){const re=j-n.bottom,s=n.top;re<Y&&s>Y&&(u=n.top-Y-4);const L=16,K=U-n.width-L;A=Math.min(Math.max(A,L),K)}else j-n.bottom<Y&&(u=n.top-Y-4);y({top:u,left:A,width:n.width})}},[d,H]);e.useEffect(()=>{if(X(),d){const n=()=>X(),I=()=>X();return window.addEventListener("resize",n),window.addEventListener("scroll",I,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",I,!0)}}},[d,X]),e.useEffect(()=>{const n=I=>{S.current&&!S.current.contains(I.target)&&(v(!1),B(!1))};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]);const ne=()=>{v(n=>!n),B(!0)},Z=n=>{B(!0),g&&g(n)},ee=n=>{w&&w(n)},le=n=>{C(n.target.value)},oe=n=>{if(m&&t&&m.setValue(t,n),f.onChange){const I={target:{value:n}};f.onChange(I)}v(!1),B(!1),C("")};return e.createElement("div",{className:i("relative",c),ref:S},e.createElement("div",{id:f.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":d,className:i("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:p?void 0:ne,onFocus:p?void 0:Z,onBlur:p?void 0:ee,ref:M},p?e.createElement("input",{ref:W,type:"text",value:Q,onChange:le,onFocus:p?n=>{B(!0),v(!0),g&&g(n)}:void 0,onBlur:p?n=>{w&&w(n)}:void 0,placeholder:a?"":P||"Selecione...",className:i("w-full bg-transparent border-none outline-none text-sm",!R&&!h&&"text-gray-400")}):e.createElement("span",{className:i("block truncate",!R&&"text-gray-400")},((T=r.find(n=>n.value===R))==null?void 0:T.label)||!a&&"Selecione..."),N&&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:n=>{if(n.stopPropagation(),m&&t&&m.setValue(t,""),f.onChange){const I={target:{value:""}};f.onChange(I)}v(!1),B(!1)}},"✕")),a&&e.createElement("label",{htmlFor:f.id||t,className:i("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",z?"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),e.createElement("div",{className:i("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)]",d?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:d?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:d?`${b.top}px`:"auto",left:d?`${b.left}px`:"auto",width:d?`${b.width}px`:"auto",zIndex:9999,boxShadow:d?"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(n=>e.createElement("div",{key:n.value,className:i("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",R===n.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>oe(n.value)},n.label))),G&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},G))});Ne.displayName="Select";const Se=e.forwardRef(({name:t,className:a,label:r,onFocus:o,onBlur:c,Icon:N,iconClassName:p,iconAction:P,containerClassName:_,rows:k=4,...g},w)=>{var y,S,W;const[f,M]=e.useState(!1),E=q.useFormContext(),B=E==null?void 0:E.control,d=E==null?void 0:E.register,v=B&&t?q.useWatch({control:B,name:t}):void 0,h=g.value??v??"",C=(W=(S=(y=E==null?void 0:E.formState)==null?void 0:y.errors)==null?void 0:S[t])==null?void 0:W.message,b=f||!!h;return e.createElement("div",{className:i("relative",_)},e.createElement("textarea",{id:g.id||t,rows:k,className:i("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",N?"pr-12":"",a),onFocus:m=>{M(!0),o&&o(m)},...E&&t?(()=>{const m=d(t),$=m.onBlur;return{...m,ref:D=>{typeof w=="function"?w(D):w&&(w.current=D),m.ref&&m.ref(D)},onBlur:D=>{M(!1),c&&c(D),$&&$(D)}}})():{ref:w,onBlur:m=>{M(!1),c&&c(m)}},...g}),r&&e.createElement("label",{htmlFor:g.id||t,className:i("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),N&&e.createElement("div",{className:i("absolute top-3 right-3 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",p),onClick:P},e.createElement(N,null)),C&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},C))});Se.displayName="Textarea";const ke=e.forwardRef(({name:t,label:a,loadOptions:r,className:o,containerClassName:c,isClearable:N,defaultOptions:p=!1,loadingMessage:P="Carregando...",noOptionsMessage:_="Nenhuma opção encontrada",searchable:k=!1,debounceMs:g=300,onFocus:w,onBlur:f,...M},E)=>{var j,U,Y;const[B,d]=e.useState(!1),[v,h]=e.useState(!1),[C,b]=e.useState([]),[y,S]=e.useState(!1),[W,m]=e.useState(""),[$,D]=e.useState(""),[R,G]=e.useState({top:0,left:0,width:0}),J=e.useRef(null),V=e.useRef(null),O=q.useFormContext(),F=O==null?void 0:O.control,Q=F&&t?q.useWatch({control:F,name:t}):void 0,z=M.value??Q??"",H=(Y=(U=(j=O==null?void 0:O.formState)==null?void 0:j.errors)==null?void 0:U[t])==null?void 0:Y.message,X=B||!!z,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&&v){const u=J.current.getBoundingClientRect(),A=ne(),re=window.innerHeight,s=window.innerWidth,L=152;let K=u.bottom+4,ie=u.left;if(A){const se=re-u.bottom,de=u.top;se<L&&de>L&&(K=u.top-L-4);const ce=16,ue=s-u.width-ce;ie=Math.min(Math.max(ie,ce),ue)}else re-u.bottom<L&&(K=u.top-L-4);G({top:K,left:ie,width:u.width})}},[v,ne]);e.useEffect(()=>{if(Z(),v){const u=()=>Z(),A=()=>Z();return window.addEventListener("resize",u),window.addEventListener("scroll",A,!0),()=>{window.removeEventListener("resize",u),window.removeEventListener("scroll",A,!0)}}},[v,Z]),e.useEffect(()=>{const u=setTimeout(()=>{D(W)},g);return()=>clearTimeout(u)},[W,g]),e.useEffect(()=>{(v||p&&C.length===0)&&ee(k?$:void 0)},[$,v]),e.useEffect(()=>{p===!0?ee():Array.isArray(p)&&b(p)},[]);const ee=async u=>{try{S(!0);const A=await r(u);b(A)}catch(A){console.error("Error loading options:",A),b([])}finally{S(!1)}};e.useEffect(()=>{const u=A=>{J.current&&!J.current.contains(A.target)&&(h(!1),d(!1),m(""))};return document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[]);const le=()=>{v||(h(!0),d(!0),k&&V.current&&setTimeout(()=>{var u;return(u=V.current)==null?void 0:u.focus()},0))},oe=u=>{d(!0),w&&w(u)},te=u=>{f&&f(u)},ae=u=>{m(u.target.value)},l=u=>{if(O&&t&&O.setValue(t,u),M.onChange){const A={target:{value:u}};M.onChange(A)}h(!1),d(!1),m("")},T=u=>{if(u.stopPropagation(),O&&t&&O.setValue(t,""),M.onChange){const A={target:{value:""}};M.onChange(A)}h(!1),d(!1),m("")},n=C.find(u=>u.value===z),I=k&&v?W:(n==null?void 0:n.label)||"";return e.createElement("div",{className:i("relative",c),ref:J},e.createElement("div",{id:M.id||t,tabIndex:k?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":v,className:i("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:le,onFocus:k?void 0:oe,onBlur:k?void 0:te,ref:E},k?e.createElement("input",{ref:V,type:"text",value:I,onChange:ae,onFocus:oe,onBlur:te,placeholder:a?"":"Selecione...",className:i("w-full bg-transparent border-none outline-none text-sm",!z&&!W&&"text-gray-400")}):e.createElement("span",{className:i("block truncate",!z&&"text-gray-400")},(n==null?void 0:n.label)||!a&&"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)]"})),N&&z&&!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:T},"✕")),a&&e.createElement("label",{htmlFor:M.id||t,className:i("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")},a),e.createElement("div",{className:i("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?`${R.top}px`:"auto",left:v?`${R.left}px`:"auto",width:v?`${R.width}px`:"auto",zIndex:9999,boxShadow:v?"var(--select-dropdown-shadow)":"none"}},y?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},P):C.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},_):C.map(u=>e.createElement("div",{key:u.value,className:i("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",z===u.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>l(u.value)},u.label))),H&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},H))});ke.displayName="AsyncSelect";const Re=e.forwardRef(({name:t,label:a,options:r,className:o,containerClassName:c,isClearable:N,searchable:p=!1,filterPlaceholder:P="Digite para filtrar...",caseSensitive:_=!1,filterFunction:k,onFocus:g,onBlur:w,...f},M)=>{var oe,te,ae;const[E,B]=e.useState(!1),[d,v]=e.useState(!1),[h,C]=e.useState(""),[b,y]=e.useState({top:0,left:0,width:0}),S=e.useRef(null),W=e.useRef(null),m=q.useFormContext(),$=m==null?void 0:m.control,D=$&&t?q.useWatch({control:$,name:t}):void 0,R=f.value??D??[],G=(ae=(te=(oe=m==null?void 0:m.formState)==null?void 0:oe.errors)==null?void 0:te[t])==null?void 0:ae.message,V=k||((l,T)=>{const n=_?l.label:l.label.toLowerCase(),I=_?T:T.toLowerCase();return n.includes(I)}),O=h.trim()?r.filter(l=>V(l,h.trim())):r,F=E||R&&R.length>0||p&&!!h,Q=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),z=e.useCallback(()=>{if(S.current&&d){const l=S.current.getBoundingClientRect(),T=Q(),n=window.innerHeight,I=window.innerWidth,j=152;let U=l.bottom+4,Y=l.left;if(T){const u=n-l.bottom,A=l.top;u<j&&A>j&&(U=l.top-j-4);const re=16,s=I-l.width-re;Y=Math.min(Math.max(Y,re),s)}else n-l.bottom<j&&(U=l.top-j-4);y({top:U,left:Y,width:l.width})}},[d,Q]);e.useEffect(()=>{if(z(),d){const l=()=>z(),T=()=>z();return window.addEventListener("resize",l),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",l),window.removeEventListener("scroll",T,!0)}}},[d,z]),e.useEffect(()=>{const l=T=>{S.current&&!S.current.contains(T.target)&&(v(!1),B(!1))};return document.addEventListener("mousedown",l),()=>{document.removeEventListener("mousedown",l)}},[]);const H=()=>{v(l=>!l),B(!0)},X=l=>{B(!0),g&&g(l)},ne=l=>{w&&w(l)},Z=l=>{var n;let T;R.includes(l)?T=R.filter(I=>I!==l):T=[...R,l],m&&t&&m.setValue(t,T),f.onChange&&((n=f.onChange)==null||n.call(f,{target:{value:T}})),B(!0)},ee=l=>{var T;l.stopPropagation(),m&&t&&m.setValue(t,[]),f.onChange&&((T=f.onChange)==null||T.call(f,{target:{value:[]}})),v(!1),B(!1)},le=l=>{C(l.target.value)};return e.createElement("div",{className:i("relative",c),ref:S},e.createElement("div",{id:f.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":d,className:i("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:p?void 0:H,onFocus:p?void 0:X,onBlur:p?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"}},R&&R.length>0?r.filter(l=>R.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:T=>{T.stopPropagation();const n=R.filter(I=>I!==l.value);m&&t&&m.setValue(t,n),f.onChange&&f.onChange({target:{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"}))))):!a&&!p&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione..."),p&&e.createElement("input",{ref:W,type:"text",value:h,onChange:le,onFocus:l=>{B(!0),v(!0),g&&g(l)},onBlur:l=>{w&&w(l)},placeholder:a?R&&R.length>0?"":P:P||"Selecione...",className:"flex-1 bg-transparent border-none outline-none text-sm min-w-[100px]"})),N&&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:ee},"✕")),a&&e.createElement("label",{htmlFor:f.id||t,className:i("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")},a),e.createElement("div",{className:i("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)]",d?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:d?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:d?`${b.top}px`:"auto",left:d?`${b.left}px`:"auto",width:d?`${b.width}px`:"auto",zIndex:9999,boxShadow:d?"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:i("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(l.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>Z(l.value)},e.createElement("input",{type:"checkbox",checked:R.includes(l.value),readOnly:!0,className:"accent-blue-500"}),l.label))),G&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},G))});Re.displayName="MultiSelect";const Fe=e.forwardRef(({name:t,label:a,loadOptions:r,className:o,containerClassName:c,isClearable:N,defaultOptions:p=!1,loadingMessage:P="Carregando...",noOptionsMessage:_="Nenhuma opção encontrada",searchable:k=!1,debounceMs:g=300,maxSelectedDisplay:w=3,onFocus:f,onBlur:M,...E},B)=>{var u,A,re;const[d,v]=e.useState(!1),[h,C]=e.useState(!1),[b,y]=e.useState([]),[S,W]=e.useState(!1),[m,$]=e.useState(""),[D,R]=e.useState(""),[G,J]=e.useState({top:0,left:0,width:0}),V=e.useRef(null),O=e.useRef(null),F=q.useFormContext(),Q=F==null?void 0:F.control,z=Q&&t?q.useWatch({control:Q,name:t}):void 0,H=E.value??z??[],X=(re=(A=(u=F==null?void 0:F.formState)==null?void 0:u.errors)==null?void 0:A[t])==null?void 0:re.message,ne=d||H&&H.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&&h){const s=V.current.getBoundingClientRect(),L=Z(),K=window.innerHeight,ie=window.innerWidth,se=152;let de=s.bottom+4,ce=s.left;if(L){const ue=K-s.bottom,_e=s.top;ue<se&&_e>se&&(de=s.top-se-4);const we=16,Te=ie-s.width-we;ce=Math.min(Math.max(ce,we),Te)}else K-s.bottom<se&&(de=s.top-se-4);J({top:de,left:ce,width:s.width})}},[h,Z]);e.useEffect(()=>{if(ee(),h){const s=()=>ee(),L=()=>ee();return window.addEventListener("resize",s),window.addEventListener("scroll",L,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",L,!0)}}},[h,ee]),e.useEffect(()=>{const s=setTimeout(()=>{R(m)},g);return()=>clearTimeout(s)},[m,g]),e.useEffect(()=>{(h||p&&b.length===0)&&le(k?D:void 0)},[D,h]),e.useEffect(()=>{p===!0?le():Array.isArray(p)&&y(p)},[]);const le=async s=>{try{W(!0);const L=await r(s);y(L)}catch(L){console.error("Error loading options:",L),y([])}finally{W(!1)}};e.useEffect(()=>{const s=L=>{V.current&&!V.current.contains(L.target)&&(C(!1),v(!1),$(""))};return document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}},[]);const oe=()=>{h||(C(!0),v(!0),k&&O.current&&setTimeout(()=>{var s;return(s=O.current)==null?void 0:s.focus()},0))},te=s=>{v(!0),f&&f(s)},ae=s=>{M&&M(s)},l=s=>{$(s.target.value)},T=s=>{let L;H.includes(s)?L=H.filter(K=>K!==s):L=[...H,s],F&&t&&F.setValue(t,L),E.onChange&&E.onChange({target:{value:L}}),v(!0)},n=(s,L)=>{L.stopPropagation();const K=H.filter(ie=>ie!==s);F&&t&&F.setValue(t,K),E.onChange&&E.onChange({target:{value:K}})},I=s=>{s.stopPropagation(),F&&t&&F.setValue(t,[]),E.onChange&&E.onChange({target:{value:[]}}),C(!1),v(!1),$("")},j=b.filter(s=>H.includes(s.value)),U=j.slice(0,w),Y=j.length-w;return e.createElement("div",{className:i("relative",c),ref:V},e.createElement("div",{id:E.id||t,tabIndex:k?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":h,className:i("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:oe,onFocus:k?void 0:te,onBlur:k?void 0:ae,ref:B},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:L=>n(s.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"}))))),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"),k?e.createElement("input",{ref:O,type:"text",value:m,onChange:l,onFocus:te,onBlur:ae,placeholder:H.length===0&&!a?"Selecione...":"",className:"flex-1 min-w-[120px] bg-transparent border-none outline-none text-sm"}):H.length===0&&!a&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione...")),S&&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)]"})),N&&H&&H.length>0&&!S&&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:I},"✕")),a&&e.createElement("label",{htmlFor:E.id||t,className:i("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")},a),e.createElement("div",{className:i("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:b.length>3?"auto":"hidden",position:"fixed",top:h?`${G.top}px`:"auto",left:h?`${G.left}px`:"auto",width:h?`${G.width}px`:"auto",zIndex:9999,boxShadow:h?"var(--select-dropdown-shadow)":"none"}},S?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},P):b.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},_):b.map(s=>e.createElement("div",{key:s.value,className:i("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",H.includes(s.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>T(s.value)},e.createElement("input",{type:"checkbox",checked:H.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))});Fe.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"},Me=e.forwardRef(({name:t,label:a,options:r,className:o,containerClassName:c,optionClassName:N,direction:p="row",size:P="md",onFocus:_,onBlur:k,...g},w)=>{var h,C,b;const f=q.useFormContext(),M=f==null?void 0:f.control,E=M&&t?q.useWatch({control:M,name:t}):void 0,B=g.value??E??"",d=(b=(C=(h=f==null?void 0:f.formState)==null?void 0:h.errors)==null?void 0:C[t])==null?void 0:b.message,v=y=>{f&&t&&f.setValue(t,y),g.onChange&&g.onChange({target:{value:y}})};return e.createElement("div",{className:i("relative",c),ref:w},a&&e.createElement("label",{htmlFor:t,className:i("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")},a),e.createElement("div",{className:i("flex gap-2 w-full pt-6",p==="row"?"flex-row":"flex-col",o),"aria-label":a,tabIndex:-1,onFocus:_,onBlur:k},r.map(y=>e.createElement("button",{key:y.value,type:"button",className:i("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[P],B===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",N),"aria-pressed":B===y.value,"data-selected":B===y.value,tabIndex:0,onClick:()=>v(y.value),onKeyDown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),v(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)))),d&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},d))});Me.displayName="RadioGroup";const fe=x.forwardRef(({children:t,className:a,as:r="div",...o},c)=>x.createElement(r,{ref:c,className:i("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)]",a),...o},t));fe.displayName="CardHeader";const me=x.forwardRef(({children:t,className:a,as:r="div",...o},c)=>x.createElement(r,{ref:c,className:i("px-6 py-4","flex-1","bg-[var(--card-bg,#ffffff)]","text-[var(--card-text,#111827)]",a),...o},t));me.displayName="CardBody";const pe=x.forwardRef(({children:t,className:a,as:r="div",...o},c)=>x.createElement(r,{ref:c,className:i("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)]",a),...o},t));pe.displayName="CardFooter";const Ae=x.forwardRef(({children:t,className:a,variant:r="default",size:o="md",padding:c="none",rounded:N="lg",constrainWidth:p=!1,allowOverflow:P=!1,..._},k)=>{const g={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"},w={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},f={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 x.createElement("div",{ref:k,className:i("flex flex-col",!P&&"overflow-hidden",g[r],p&&w[o],f[c],M[N],a),..._},t)}),ze=Object.assign(Ae,{Header:fe,Body:me,Footer:pe}),Be=x.forwardRef(({children:t,className:a,variant:r="default",size:o="md",responsive:c=!1,stickyHeader:N=!1,...p},P)=>{const _=i("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"},a),k=i({"overflow-x-auto":c,"max-h-96 overflow-y-auto":N}),g=x.createElement("table",{ref:P,className:_,...p},t);return c||N?x.createElement("div",{className:k},g):g}),be=x.forwardRef(({children:t,className:a,as:r="thead",...o},c)=>x.createElement(r,{ref:c,className:i("border-b border-[var(--table-border)] bg-[var(--table-header-bg)]",{"sticky top-0 z-10":r==="thead"},a),...o},t)),ve=x.forwardRef(({children:t,className:a,as:r="tbody",...o},c)=>x.createElement(r,{ref:c,className:i("[&_tr:nth-child(odd)]:bg-[var(--table-row-odd)]","[&_tr:nth-child(even)]:bg-[var(--table-row-even)]",a),...o},t)),xe=x.forwardRef(({children:t,className:a,as:r="tfoot",...o},c)=>x.createElement(r,{ref:c,className:i("border-t border-[var(--table-border)] bg-[var(--table-header-bg)] font-medium",a),...o},t)),ge=x.forwardRef(({children:t,className:a,variant:r="default",...o},c)=>x.createElement("tr",{ref:c,className:i("border-b border-[var(--table-border)] transition-colors",{"hover:bg-[var(--table-row-hover)]":r==="hover","bg-[var(--table-row-selected)]":r==="selected"},a),...o},t)),he=x.forwardRef(({children:t,className:a,as:r="td",align:o="left",scope:c,colSpan:N,rowSpan:p,...P},_)=>x.createElement(r,{ref:_,scope:r==="th"?c:void 0,colSpan:N,rowSpan:p,className:i("px-4 py-3 text-left",{"font-semibold":r==="th","text-sm":r==="td","text-center":o==="center","text-right":o==="right"},a),...P},t));Be.displayName="Table";be.displayName="TableHeader";ve.displayName="TableBody";xe.displayName="TableFooter";ge.displayName="TableRow";he.displayName="TableCell";const He=Object.assign(Be,{Header:be,Body:ve,Footer:xe,Row:ge,Cell:he}),$e=({content:t,children:a,position:r="top",className:o="",disabled:c=!1})=>{const[N,p]=x.useState(!1),[P,_]=x.useState(r),[k,g]=x.useState({}),w=x.useRef(null),f=x.useRef(null);x.useEffect(()=>{if(!N||!f.current)return;const b=f.current.getBoundingClientRect();let y=r,S=0,W=0;switch(r){case"top":S=b.top-8,W=b.left+b.width/2;break;case"bottom":S=b.bottom+8,W=b.left+b.width/2;break;case"left":S=b.top+b.height/2,W=b.left-8;break;case"right":S=b.top+b.height/2,W=b.right+8;break}if(w.current){const m=w.current.getBoundingClientRect(),$=window.innerWidth,D=window.innerHeight;r==="top"&&b.top<m.height+16?(y="bottom",S=b.bottom+8):r==="bottom"&&b.bottom+m.height+16>D?(y="top",S=b.top-8):r==="left"&&b.left<m.width+16?(y="right",W=b.right+8):r==="right"&&b.right+m.width+16>$&&(y="left",W=b.left-8)}_(y),g({position:"fixed",top:`${S}px`,left:`${W}px`,zIndex:9999})},[N,r]);const M=()=>{c||p(!0)},E=()=>{p(!1)},B=()=>{c||p(!0)},d=()=>{p(!1)},v=()=>{const C="pointer-events-none";switch(P){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`}},h=()=>{const C="absolute w-2 h-2 bg-[var(--tooltip-bg,#374151)] transform rotate-45";switch(P){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 c||!t?x.createElement(x.Fragment,null,a):x.createElement(x.Fragment,null,x.createElement("div",{className:"relative inline-block",ref:f,onMouseEnter:M,onMouseLeave:E,onFocus:B,onBlur:d},a),N&&typeof document<"u"&&ye.createPortal(x.createElement("div",{ref:w,style:k,className:i(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":!N},t,x.createElement("div",{className:h()})),document.body))},Le=({open:t,onClose:a,side:r="right",size:o="md",closeOnOverlayClick:c=!0,children:N,className:p="",...P})=>{const _=typeof document<"u"?document.body:null,k=o==="sm"?"w-64":o==="md"?"w-96":o==="lg"?"w-[36rem]":void 0,g=typeof o=="string"&&!["sm","md","lg"].includes(o)?{width:o}:void 0,w=x.createElement("div",{"aria-hidden":!t,className:i("fixed inset-0 z-50 flex",t?"pointer-events-auto":"pointer-events-none")},x.createElement("div",{className:i("absolute inset-0 bg-black/40 transition-opacity duration-200",t?"opacity-100":"opacity-0"),onMouseDown:f=>{c&&f.target===f.currentTarget&&a()}}),x.createElement("div",{className:i("relative h-full",r==="right"?"ml-auto":"mr-auto","flex-shrink-0"),style:g},x.createElement("aside",{role:"dialog","aria-modal":!0,className:i("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",k,p),style:g,...P},N)));return _?ye.createPortal(w,_):null};Le.displayName="AsideSheet";exports.AsideSheet=Le;exports.AsyncSelect=ke;exports.Button=We;exports.Card=ze;exports.CardBody=me;exports.CardFooter=pe;exports.CardHeader=fe;exports.Input=Ce;exports.MultiAsyncSelect=Fe;exports.MultiSelect=Re;exports.RadioGroup=Me;exports.Select=Ne;exports.Table=He;exports.TableBody=ve;exports.TableCell=he;exports.TableFooter=xe;exports.TableHeader=be;exports.TableRow=ge;exports.Textarea=Se;exports.Tooltip=$e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),K=require("react-hook-form"),ye=require("react-dom");function Pe(t){const a=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(a,r,o.get?o:{enumerable:!0,get:()=>t[r]})}}return a.default=t,Object.freeze(a)}const e=Pe(l);function Ee(t){var a,r,o="";if(typeof t=="string"||typeof t=="number")o+=t;else if(typeof t=="object")if(Array.isArray(t)){var f=t.length;for(a=0;a<f;a++)t[a]&&(r=Ee(t[a]))&&(o&&(o+=" "),o+=r)}else for(r in t)t[r]&&(o&&(o+=" "),o+=r);return o}function Ie(){for(var t,a,r=0,o="",f=arguments.length;r<f;r++)(t=arguments[r])&&(a=Ee(t))&&(o&&(o+=" "),o+=a);return o}function i(...t){return Ie(...t)}const We=({children:t,variant:a="default",className:r="",...o})=>{const f="px-4 py-2 rounded font-medium transition",y={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 l.createElement("button",{className:i(f,y[a],r),...o},t)},Ce=e.forwardRef(({name:t,className:a,type:r="text",label:o,onFocus:f,onBlur:y,Icon:g,iconClassName:P,iconAction:_,containerClassName:R,...x},h)=>{var G,V,W;const[p,B]=e.useState(!1),[C,F]=e.useState(!1),m=K.useFormContext(),v=m==null?void 0:m.control,w=m==null?void 0:m.register,N=v&&t?K.useWatch({control:v,name:t}):void 0,d=x.value??N??"",k=(W=(V=(G=m==null?void 0:m.formState)==null?void 0:G.errors)==null?void 0:V[t])==null?void 0:W.message,L=["date","datetime-local","time","month","week"].includes(r),u=p||!!d||L,$=r==="password"?C?"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"})),M=()=>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=()=>{F(!C)};return e.createElement("div",{className:i("relative",R)},e.createElement("input",{id:x.id||t,type:$,className:i("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"||g?"pr-12":"",a),onFocus:E=>{B(!0),f&&f(E)},...m&&t?(()=>{const E=w(t),j=E.onBlur;return{...E,ref:A=>{typeof h=="function"?h(A):h&&(h.current=A),E.ref&&E.ref(A)},onBlur:A=>{B(!1),y&&y(A),j&&j(A)}}})():{ref:h,onBlur:E=>{B(!1),y&&y(E)}},...x}),o&&e.createElement("label",{htmlFor:x.id||t,className:i("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",u?"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:q,"aria-label":C?"Esconder senha":"Mostrar senha",tabIndex:-1},C?e.createElement(M,null):e.createElement(D,null)),g&&r!=="password"&&e.createElement("div",{className:i("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:_},e.createElement(g,null)),k&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},k))});Ce.displayName="Input";const Ne=e.forwardRef(({name:t,label:a,options:r,className:o,containerClassName:f,isClearable:y,searchable:g=!1,filterPlaceholder:P="Digite para filtrar...",caseSensitive:_=!1,filterFunction:R,onFocus:x,onBlur:h,...p},B)=>{var re,oe,s,I;const[C,F]=e.useState(!1),[m,v]=e.useState(!1),[w,N]=e.useState(""),[d,k]=e.useState({top:0,left:0,width:0}),S=e.useRef(null),L=e.useRef(null),u=K.useFormContext(),$=u==null?void 0:u.control,D=$&&t?K.useWatch({control:$,name:t}):void 0,M=p.value??D??"",q=(s=(oe=(re=u==null?void 0:u.formState)==null?void 0:re.errors)==null?void 0:oe[t])==null?void 0:s.message,V=R||((n,O)=>{const U=_?n.label:n.label.toLowerCase(),X=_?O:O.toLowerCase();return U.includes(X)}),W=w.trim()?r.filter(n=>V(n,w.trim())):r,E=r.find(n=>n.value===M),j=g&&m?w:(E==null?void 0:E.label)||"",A=C||!!M||g&&!!w,z=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),J=e.useCallback(()=>{if(S.current&&m){const n=S.current.getBoundingClientRect(),O=z(),U=window.innerHeight,X=window.innerWidth,Y=152;let b=n.bottom+4,H=n.left;if(O){const ae=U-n.bottom,c=n.top;ae<Y&&c>Y&&(b=n.top-Y-4);const T=16,Q=X-n.width-T;H=Math.min(Math.max(H,T),Q)}else U-n.bottom<Y&&(b=n.top-Y-4);k({top:b,left:H,width:n.width})}},[m,z]);e.useEffect(()=>{if(J(),m){const n=()=>J(),O=()=>J();return window.addEventListener("resize",n),window.addEventListener("scroll",O,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",O,!0)}}},[m,J]),e.useEffect(()=>{const n=O=>{S.current&&!S.current.contains(O.target)&&(v(!1),F(!1))};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]);const Z=()=>{v(n=>!n),F(!0)},ee=n=>{F(!0),x&&x(n)},te=n=>{h&&h(n)},le=n=>{N(n.target.value)},ne=n=>{if(u&&t&&u.setValue(t,n),p.onChange){const O={target:{value:n}};p.onChange(O)}v(!1),F(!1),N("")};return e.createElement("div",{className:i("relative",f),ref:S},e.createElement("div",{id:p.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":m,className:i("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:g?void 0:Z,onFocus:g?void 0:ee,onBlur:g?void 0:te,ref:B},g?e.createElement("input",{ref:L,type:"text",value:j,onChange:le,onFocus:g?n=>{F(!0),v(!0),x&&x(n)}:void 0,onBlur:g?n=>{h&&h(n)}:void 0,placeholder:a?"":P||"Selecione...",className:i("w-full bg-transparent border-none outline-none text-sm",!M&&!w&&"text-gray-400")}):e.createElement("span",{className:i("block truncate",!M&&"text-gray-400")},((I=r.find(n=>n.value===M))==null?void 0:I.label)||!a&&"Selecione..."),y&&M&&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:n=>{if(n.stopPropagation(),u&&t&&u.setValue(t,""),p.onChange){const O={target:{value:""}};p.onChange(O)}v(!1),F(!1)}},"✕")),a&&e.createElement("label",{htmlFor:p.id||t,className:i("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")},a),e.createElement("div",{className:i("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)]",m?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:m?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:m?`${d.top}px`:"auto",left:m?`${d.left}px`:"auto",width:m?`${d.width}px`:"auto",zIndex:9999,boxShadow:m?"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(n=>e.createElement("div",{key:n.value,className:i("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",M===n.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>ne(n.value)},n.label))),q&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},q))});Ne.displayName="Select";const ke=e.forwardRef(({name:t,className:a,label:r,onFocus:o,onBlur:f,Icon:y,iconClassName:g,iconAction:P,containerClassName:_,rows:R=4,...x},h)=>{var k,S,L;const[p,B]=e.useState(!1),C=K.useFormContext(),F=C==null?void 0:C.control,m=C==null?void 0:C.register,v=F&&t?K.useWatch({control:F,name:t}):void 0,w=x.value??v??"",N=(L=(S=(k=C==null?void 0:C.formState)==null?void 0:k.errors)==null?void 0:S[t])==null?void 0:L.message,d=p||!!w;return e.createElement("div",{className:i("relative",_)},e.createElement("textarea",{id:x.id||t,rows:R,className:i("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",y?"pr-12":"",a),onFocus:u=>{B(!0),o&&o(u)},...C&&t?(()=>{const u=m(t),$=u.onBlur;return{...u,ref:D=>{typeof h=="function"?h(D):h&&(h.current=D),u.ref&&u.ref(D)},onBlur:D=>{B(!1),f&&f(D),$&&$(D)}}})():{ref:h,onBlur:u=>{B(!1),f&&f(u)}},...x}),r&&e.createElement("label",{htmlFor:x.id||t,className:i("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",d?"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),y&&e.createElement("div",{className:i("absolute top-3 right-3 text-gray-400 cursor-pointer hover:text-[var(--primary,#2563eb)] transition-colors duration-200",g),onClick:P},e.createElement(y,null)),N&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},N))});ke.displayName="Textarea";const Se=e.forwardRef(({name:t,label:a,loadOptions:r,className:o,containerClassName:f,isClearable:y,defaultOptions:g=!1,loadingMessage:P="Carregando...",noOptionsMessage:_="Nenhuma opção encontrada",searchable:R=!1,debounceMs:x=300,onFocus:h,onBlur:p,...B},C)=>{var U,X,Y;const[F,m]=e.useState(!1),[v,w]=e.useState(!1),[N,d]=e.useState([]),[k,S]=e.useState(!1),[L,u]=e.useState(""),[$,D]=e.useState(""),[M,q]=e.useState({top:0,left:0,width:0}),G=e.useRef(null),V=e.useRef(null),W=K.useFormContext(),E=W==null?void 0:W.control,j=E&&t?K.useWatch({control:E,name:t}):void 0,A=B.value??j??"",z=(Y=(X=(U=W==null?void 0:W.formState)==null?void 0:U.errors)==null?void 0:X[t])==null?void 0:Y.message,J=F||!!A,Z=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),ee=e.useCallback(()=>{if(G.current&&v){const b=G.current.getBoundingClientRect(),H=Z(),ae=window.innerHeight,c=window.innerWidth,T=152;let Q=b.bottom+4,ie=b.left;if(H){const se=ae-b.bottom,de=b.top;se<T&&de>T&&(Q=b.top-T-4);const ce=16,ue=c-b.width-ce;ie=Math.min(Math.max(ie,ce),ue)}else ae-b.bottom<T&&(Q=b.top-T-4);q({top:Q,left:ie,width:b.width})}},[v,Z]);e.useEffect(()=>{if(ee(),v){const b=()=>ee(),H=()=>ee();return window.addEventListener("resize",b),window.addEventListener("scroll",H,!0),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",H,!0)}}},[v,ee]),e.useEffect(()=>{const b=setTimeout(()=>{D(L)},x);return()=>clearTimeout(b)},[L,x]),e.useEffect(()=>{(v||g&&N.length===0)&&te(R?$:void 0)},[$,v]),e.useEffect(()=>{g===!0?te():Array.isArray(g)&&d(g)},[]);const te=async b=>{try{S(!0);const H=await r(b);d(H)}catch(H){console.error("Error loading options:",H),d([])}finally{S(!1)}};e.useEffect(()=>{const b=H=>{G.current&&!G.current.contains(H.target)&&(w(!1),m(!1),u(""))};return document.addEventListener("mousedown",b),()=>{document.removeEventListener("mousedown",b)}},[]);const le=()=>{v||(w(!0),m(!0),R&&V.current&&setTimeout(()=>{var b;return(b=V.current)==null?void 0:b.focus()},0))},ne=b=>{m(!0),h&&h(b)},re=b=>{p&&p(b)},oe=b=>{u(b.target.value)},s=b=>{if(W&&t&&W.setValue(t,b),B.onChange){const H={target:{value:b}};B.onChange(H)}w(!1),m(!1),u("")},I=b=>{if(b.stopPropagation(),W&&t&&W.setValue(t,""),B.onChange){const H={target:{value:""}};B.onChange(H)}w(!1),m(!1),u("")},n=N.find(b=>b.value===A),O=R&&v?L:(n==null?void 0:n.label)||"";return e.createElement("div",{className:i("relative",f),ref:G},e.createElement("div",{id:B.id||t,tabIndex:R?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":v,className:i("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:le,onFocus:R?void 0:ne,onBlur:R?void 0:re,ref:C},R?e.createElement("input",{ref:V,type:"text",value:O,onChange:oe,onFocus:ne,onBlur:re,placeholder:a?"":"Selecione...",className:i("w-full bg-transparent border-none outline-none text-sm",!A&&!L&&"text-gray-400")}):e.createElement("span",{className:i("block truncate",!A&&"text-gray-400")},(n==null?void 0:n.label)||!a&&"Selecione..."),k&&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)]"})),y&&A&&!k&&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:I},"✕")),a&&e.createElement("label",{htmlFor:B.id||t,className:i("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),e.createElement("div",{className:i("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:N.length>3?"auto":"hidden",position:"fixed",top:v?`${M.top}px`:"auto",left:v?`${M.left}px`:"auto",width:v?`${M.width}px`:"auto",zIndex:9999,boxShadow:v?"var(--select-dropdown-shadow)":"none"}},k?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},P):N.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},_):N.map(b=>e.createElement("div",{key:b.value,className:i("px-3 py-2 cursor-pointer text-sm transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",A===b.value&&"bg-[var(--select-dropdown-selected)]"),onMouseDown:()=>s(b.value)},b.label))),z&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},z))});Se.displayName="AsyncSelect";const Re=e.forwardRef(({name:t,label:a,options:r,className:o,containerClassName:f,isClearable:y,searchable:g=!1,filterPlaceholder:P="Digite para filtrar...",caseSensitive:_=!1,filterFunction:R,onFocus:x,onBlur:h,...p},B)=>{var ne,re,oe;const[C,F]=e.useState(!1),[m,v]=e.useState(!1),[w,N]=e.useState(""),[d,k]=e.useState({top:0,left:0,width:0}),S=e.useRef(null),L=e.useRef(null),u=K.useFormContext(),$=u==null?void 0:u.control,D=$&&t?K.useWatch({control:$,name:t}):void 0,M=p.value??D??[],q=(oe=(re=(ne=u==null?void 0:u.formState)==null?void 0:ne.errors)==null?void 0:re[t])==null?void 0:oe.message,V=R||((s,I)=>{const n=_?s.label:s.label.toLowerCase(),O=_?I:I.toLowerCase();return n.includes(O)}),W=w.trim()?r.filter(s=>V(s,w.trim())):r,E=C||M&&M.length>0||g&&!!w,j=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),A=e.useCallback(()=>{if(S.current&&m){const s=S.current.getBoundingClientRect(),I=j(),n=window.innerHeight,O=window.innerWidth,U=152;let X=s.bottom+4,Y=s.left;if(I){const b=n-s.bottom,H=s.top;b<U&&H>U&&(X=s.top-U-4);const ae=16,c=O-s.width-ae;Y=Math.min(Math.max(Y,ae),c)}else n-s.bottom<U&&(X=s.top-U-4);k({top:X,left:Y,width:s.width})}},[m,j]);e.useEffect(()=>{if(A(),m){const s=()=>A(),I=()=>A();return window.addEventListener("resize",s),window.addEventListener("scroll",I,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",I,!0)}}},[m,A]),e.useEffect(()=>{const s=I=>{S.current&&!S.current.contains(I.target)&&(v(!1),F(!1))};return document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}},[]);const z=()=>{v(s=>!s),F(!0)},J=s=>{F(!0),x&&x(s)},Z=s=>{h&&h(s)},ee=s=>{var n;let I;M.includes(s)?I=M.filter(O=>O!==s):I=[...M,s],u&&t&&u.setValue(t,I),p.onChange&&((n=p.onChange)==null||n.call(p,{target:{value:I}})),F(!0)},te=s=>{var I;s.stopPropagation(),u&&t&&u.setValue(t,[]),p.onChange&&((I=p.onChange)==null||I.call(p,{target:{value:[]}})),v(!1),F(!1)},le=s=>{N(s.target.value)};return e.createElement("div",{className:i("relative",f),ref:S},e.createElement("div",{id:p.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":m,className:i("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:g?void 0:z,onFocus:g?void 0:J,onBlur:g?void 0:Z,ref:B},e.createElement("div",{className:"flex flex-nowrap gap-1 items-center min-h-[1.5rem] w-full overflow-x-auto",style:{scrollbarWidth:"none"}},M&&M.length>0?r.filter(s=>M.includes(s.value)).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 mr-1 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:I=>{I.stopPropagation();const n=M.filter(O=>O!==s.value);u&&t&&u.setValue(t,n),p.onChange&&p.onChange({target:{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"}))))):!a&&!g&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione..."),g&&e.createElement("input",{ref:L,type:"text",value:w,onChange:le,onFocus:s=>{F(!0),v(!0),x&&x(s)},onBlur:s=>{h&&h(s)},placeholder:a?M&&M.length>0?"":P:P||"Selecione...",className:"flex-1 bg-transparent border-none outline-none text-sm min-w-[100px]"})),y&&M&&M.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:te},"✕")),a&&e.createElement("label",{htmlFor:p.id||t,className:i("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")},a),e.createElement("div",{className:i("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)]",m?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:m?"9.5rem":"0",overflowY:r.length>3?"auto":"hidden",position:"fixed",top:m?`${d.top}px`:"auto",left:m?`${d.left}px`:"auto",width:m?`${d.width}px`:"auto",zIndex:9999,boxShadow:m?"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(s=>e.createElement("div",{key:s.value,className:i("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",M.includes(s.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>ee(s.value)},e.createElement("input",{type:"checkbox",checked:M.includes(s.value),readOnly:!0,className:"accent-blue-500"}),s.label))),q&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},q))});Re.displayName="MultiSelect";const Fe=e.forwardRef(({name:t,label:a,loadOptions:r,className:o,containerClassName:f,isClearable:y,defaultOptions:g=!1,loadingMessage:P="Carregando...",noOptionsMessage:_="Nenhuma opção encontrada",searchable:R=!1,debounceMs:x=300,maxSelectedDisplay:h=3,onFocus:p,onBlur:B,...C},F)=>{var b,H,ae;const[m,v]=e.useState(!1),[w,N]=e.useState(!1),[d,k]=e.useState([]),[S,L]=e.useState(!1),[u,$]=e.useState(""),[D,M]=e.useState(""),[q,G]=e.useState({top:0,left:0,width:0}),V=e.useRef(null),W=e.useRef(null),E=K.useFormContext(),j=E==null?void 0:E.control,A=j&&t?K.useWatch({control:j,name:t}):void 0,z=C.value??A??[],J=(ae=(H=(b=E==null?void 0:E.formState)==null?void 0:b.errors)==null?void 0:H[t])==null?void 0:ae.message,Z=m||z&&z.length>0,ee=e.useCallback(()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768,[]),te=e.useCallback(()=>{if(V.current&&w){const c=V.current.getBoundingClientRect(),T=ee(),Q=window.innerHeight,ie=window.innerWidth,se=152;let de=c.bottom+4,ce=c.left;if(T){const ue=Q-c.bottom,_e=c.top;ue<se&&_e>se&&(de=c.top-se-4);const we=16,Te=ie-c.width-we;ce=Math.min(Math.max(ce,we),Te)}else Q-c.bottom<se&&(de=c.top-se-4);G({top:de,left:ce,width:c.width})}},[w,ee]);e.useEffect(()=>{if(te(),w){const c=()=>te(),T=()=>te();return window.addEventListener("resize",c),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",c),window.removeEventListener("scroll",T,!0)}}},[w,te]),e.useEffect(()=>{const c=setTimeout(()=>{M(u)},x);return()=>clearTimeout(c)},[u,x]),e.useEffect(()=>{(w||g&&d.length===0)&&le(R?D:void 0)},[D,w]),e.useEffect(()=>{g===!0?le():Array.isArray(g)&&k(g)},[]);const le=async c=>{try{L(!0);const T=await r(c);k(T)}catch(T){console.error("Error loading options:",T),k([])}finally{L(!1)}};e.useEffect(()=>{const c=T=>{V.current&&!V.current.contains(T.target)&&(N(!1),v(!1),$(""))};return document.addEventListener("mousedown",c),()=>{document.removeEventListener("mousedown",c)}},[]);const ne=()=>{w||(N(!0),v(!0),R&&W.current&&setTimeout(()=>{var c;return(c=W.current)==null?void 0:c.focus()},0))},re=c=>{v(!0),p&&p(c)},oe=c=>{B&&B(c)},s=c=>{$(c.target.value)},I=c=>{let T;z.includes(c)?T=z.filter(Q=>Q!==c):T=[...z,c],E&&t&&E.setValue(t,T),C.onChange&&C.onChange({target:{value:T}}),v(!0)},n=(c,T)=>{T.stopPropagation();const Q=z.filter(ie=>ie!==c);E&&t&&E.setValue(t,Q),C.onChange&&C.onChange({target:{value:Q}})},O=c=>{c.stopPropagation(),E&&t&&E.setValue(t,[]),C.onChange&&C.onChange({target:{value:[]}}),N(!1),v(!1),$("")},U=d.filter(c=>z.includes(c.value)),X=U.slice(0,h),Y=U.length-h;return e.createElement("div",{className:i("relative",f),ref:V},e.createElement("div",{id:C.id||t,tabIndex:R?-1:0,role:"button","aria-haspopup":"listbox","aria-expanded":w,className:i("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:ne,onFocus:R?void 0:re,onBlur:R?void 0:oe,ref:F},e.createElement("div",{className:"flex flex-wrap gap-1 items-center min-h-[1.5rem] w-full"},X.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 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:T=>n(c.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"}))))),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"),R?e.createElement("input",{ref:W,type:"text",value:u,onChange:s,onFocus:re,onBlur:oe,placeholder:z.length===0&&!a?"Selecione...":"",className:"flex-1 min-w-[120px] bg-transparent border-none outline-none text-sm"}):z.length===0&&!a&&e.createElement("span",{className:"text-gray-400 text-sm"},"Selecione...")),S&&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)]"})),y&&z&&z.length>0&&!S&&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},"✕")),a&&e.createElement("label",{htmlFor:C.id||t,className:i("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",Z?"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),e.createElement("div",{className:i("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)]",w?"border max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:w?"9.5rem":"0",overflowY:d.length>3?"auto":"hidden",position:"fixed",top:w?`${q.top}px`:"auto",left:w?`${q.left}px`:"auto",width:w?`${q.width}px`:"auto",zIndex:9999,boxShadow:w?"var(--select-dropdown-shadow)":"none"}},S?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},P):d.length===0?e.createElement("div",{className:"px-3 py-2 text-sm text-gray-500 text-center"},_):d.map(c=>e.createElement("div",{key:c.value,className:i("px-3 py-2 cursor-pointer text-sm flex items-center gap-2 transition-colors duration-150","hover:bg-[var(--select-dropdown-hover)]",z.includes(c.value)&&"bg-[var(--select-dropdown-selected)] font-semibold"),onMouseDown:()=>I(c.value)},e.createElement("input",{type:"checkbox",checked:z.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))});Fe.displayName="MultiAsyncSelect";const Ae={sm:"h-10 text-sm px-3",md:"h-12 text-base px-4",lg:"h-16 text-lg px-6"},Me=e.forwardRef(({name:t,label:a,options:r,className:o,containerClassName:f,optionClassName:y,direction:g="row",size:P="md",onFocus:_,onBlur:R,...x},h)=>{var w,N,d;const p=K.useFormContext(),B=p==null?void 0:p.control,C=B&&t?K.useWatch({control:B,name:t}):void 0,F=x.value??C??"",m=(d=(N=(w=p==null?void 0:p.formState)==null?void 0:w.errors)==null?void 0:N[t])==null?void 0:d.message,v=k=>{p&&t&&p.setValue(t,k),x.onChange&&x.onChange({target:{value:k}})};return e.createElement("div",{className:i("relative",f),ref:h},a&&e.createElement("label",{htmlFor:t,className:i("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")},a),e.createElement("div",{className:i("flex gap-2 w-full pt-6",g==="row"?"flex-row":"flex-col",o),"aria-label":a,tabIndex:-1,onFocus:_,onBlur:R},r.map(k=>e.createElement("button",{key:k.value,type:"button",className:i("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)]",Ae[P],F===k.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",y),"aria-pressed":F===k.value,"data-selected":F===k.value,tabIndex:0,onClick:()=>v(k.value),onKeyDown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),v(k.value))}},k.icon&&e.createElement("span",{className:"mr-2 text-lg flex items-center"},k.icon),e.createElement("span",{className:"truncate font-medium"},k.label)))),m&&e.createElement("span",{className:"text-red-500 text-xs mt-1 block"},m))});Me.displayName="RadioGroup";const fe=l.forwardRef(({children:t,className:a,as:r="div",...o},f)=>l.createElement(r,{ref:f,className:i("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)]",a),...o},t));fe.displayName="CardHeader";const me=l.forwardRef(({children:t,className:a,as:r="div",...o},f)=>l.createElement(r,{ref:f,className:i("px-6 py-4","flex-1","bg-[var(--card-bg,#ffffff)]","text-[var(--card-text,#111827)]",a),...o},t));me.displayName="CardBody";const pe=l.forwardRef(({children:t,className:a,as:r="div",...o},f)=>l.createElement(r,{ref:f,className:i("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)]",a),...o},t));pe.displayName="CardFooter";const Oe=l.forwardRef(({children:t,className:a,variant:r="default",size:o="md",padding:f="none",rounded:y="lg",constrainWidth:g=!1,allowOverflow:P=!1,..._},R)=>{const x={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"},h={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},p={none:"",sm:"p-3",md:"p-4",lg:"p-6"},B={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl"};return l.createElement("div",{ref:R,className:i("flex flex-col",!P&&"overflow-hidden",x[r],g&&h[o],p[f],B[y],a),..._},t)}),ze=Object.assign(Oe,{Header:fe,Body:me,Footer:pe}),Be=l.forwardRef(({children:t,className:a,variant:r="default",size:o="md",responsive:f=!1,stickyHeader:y=!1,...g},P)=>{const _=i("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"},a),R=i({"overflow-x-auto":f,"max-h-96 overflow-y-auto":y}),x=l.createElement("table",{ref:P,className:_,...g},t);return f||y?l.createElement("div",{className:R},x):x}),be=l.forwardRef(({children:t,className:a,as:r="thead",...o},f)=>l.createElement(r,{ref:f,className:i("border-b border-[var(--table-border)] bg-[var(--table-header-bg)]",{"sticky top-0 z-10":r==="thead"},a),...o},t)),ge=l.forwardRef(({children:t,className:a,as:r="tbody",...o},f)=>l.createElement(r,{ref:f,className:i("[&_tr:nth-child(odd)]:bg-[var(--table-row-odd)]","[&_tr:nth-child(even)]:bg-[var(--table-row-even)]",a),...o},t)),ve=l.forwardRef(({children:t,className:a,as:r="tfoot",...o},f)=>l.createElement(r,{ref:f,className:i("border-t border-[var(--table-border)] bg-[var(--table-header-bg)] font-medium",a),...o},t)),xe=l.forwardRef(({children:t,className:a,variant:r="default",...o},f)=>l.createElement("tr",{ref:f,className:i("border-b border-[var(--table-border)] transition-colors",{"hover:bg-[var(--table-row-hover)]":r==="hover","bg-[var(--table-row-selected)]":r==="selected"},a),...o},t)),he=l.forwardRef(({children:t,className:a,as:r="td",align:o="left",scope:f,colSpan:y,rowSpan:g,...P},_)=>l.createElement(r,{ref:_,scope:r==="th"?f:void 0,colSpan:y,rowSpan:g,className:i("px-4 py-3 text-left",{"font-semibold":r==="th","text-sm":r==="td","text-center":o==="center","text-right":o==="right"},a),...P},t));Be.displayName="Table";be.displayName="TableHeader";ge.displayName="TableBody";ve.displayName="TableFooter";xe.displayName="TableRow";he.displayName="TableCell";const He=Object.assign(Be,{Header:be,Body:ge,Footer:ve,Row:xe,Cell:he}),$e=({content:t,children:a,position:r="top",className:o="",disabled:f=!1})=>{const[y,g]=l.useState(!1),[P,_]=l.useState(r),[R,x]=l.useState({}),h=l.useRef(null),p=l.useRef(null);l.useEffect(()=>{if(!y||!p.current)return;const d=p.current.getBoundingClientRect();let k=r,S=0,L=0;switch(r){case"top":S=d.top-8,L=d.left+d.width/2;break;case"bottom":S=d.bottom+8,L=d.left+d.width/2;break;case"left":S=d.top+d.height/2,L=d.left-8;break;case"right":S=d.top+d.height/2,L=d.right+8;break}if(h.current){const u=h.current.getBoundingClientRect(),$=window.innerWidth,D=window.innerHeight;r==="top"&&d.top<u.height+16?(k="bottom",S=d.bottom+8):r==="bottom"&&d.bottom+u.height+16>D?(k="top",S=d.top-8):r==="left"&&d.left<u.width+16?(k="right",L=d.right+8):r==="right"&&d.right+u.width+16>$&&(k="left",L=d.left-8)}_(k),x({position:"fixed",top:`${S}px`,left:`${L}px`,zIndex:9999})},[y,r]);const B=()=>{f||g(!0)},C=()=>{g(!1)},F=()=>{f||g(!0)},m=()=>{g(!1)},v=()=>{const N="pointer-events-none";switch(P){case"top":return`${N} transform -translate-x-1/2 -translate-y-full`;case"bottom":return`${N} transform -translate-x-1/2`;case"left":return`${N} transform -translate-x-full -translate-y-1/2`;case"right":return`${N} transform -translate-y-1/2`;default:return`${N} transform -translate-x-1/2 -translate-y-full`}},w=()=>{const N="absolute w-2 h-2 bg-[var(--tooltip-bg,#374151)] transform rotate-45";switch(P){case"top":return`${N} top-full left-1/2 -translate-x-1/2 -translate-y-1/2`;case"bottom":return`${N} bottom-full left-1/2 -translate-x-1/2 translate-y-1/2`;case"left":return`${N} left-full top-1/2 -translate-y-1/2 -translate-x-1/2`;case"right":return`${N} right-full top-1/2 -translate-y-1/2 translate-x-1/2`;default:return`${N} top-full left-1/2 -translate-x-1/2 -translate-y-1/2`}};return f||!t?l.createElement(l.Fragment,null,a):l.createElement(l.Fragment,null,l.createElement("div",{className:"relative inline-block",ref:p,onMouseEnter:B,onMouseLeave:C,onFocus:F,onBlur:m},a),y&&typeof document<"u"&&ye.createPortal(l.createElement("div",{ref:h,style:R,className:i(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":!y},t,l.createElement("div",{className:w()})),document.body))},Le=({open:t,onClose:a,side:r="right",size:o="md",closeOnOverlayClick:f=!0,children:y,className:g="",...P})=>{const _=typeof document<"u"?document.body:null,R=o==="sm"?"w-64":o==="md"?"w-96":o==="lg"?"w-[36rem]":void 0,x=typeof o=="string"&&!["sm","md","lg"].includes(o)?{width:o}:void 0,h=l.createElement("div",{"aria-hidden":!t,className:i("fixed inset-0 z-50 flex",t?"pointer-events-auto":"pointer-events-none")},l.createElement("div",{className:i("absolute inset-0 bg-black/40 transition-opacity duration-200",t?"opacity-100":"opacity-0"),onMouseDown:p=>{f&&p.target===p.currentTarget&&a()}}),l.createElement("div",{className:i("relative h-full",r==="right"?"ml-auto":"mr-auto","flex-shrink-0"),style:x},l.createElement("aside",{role:"dialog","aria-modal":!0,className:i("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",R,g),style:x,...P},y)));return _?ye.createPortal(h,_):null};Le.displayName="AsideSheet";const De=({avatar:t=!1,value:a,onUpload:r,onRemove:o,accept:f="image/*",maxSize:y,placeholder:g="Selecionar imagem",loading:P=!1,size:_="md",label:R,error:x,disabled:h,className:p,...B})=>{const[C,F]=l.useState(null),[m,v]=l.useState(""),[w,N]=l.useState(!1),d=l.useRef(null),k=!!a,S=!!C,L=k||S,u=P||w,$={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"},D=E=>{var z;const j=(z=E.target.files)==null?void 0:z[0];if(!j)return;if(y&&j.size>y){alert(`Arquivo muito grande. Tamanho máximo: ${(y/1024/1024).toFixed(1)}MB`);return}const A=new FileReader;A.onload=J=>{var Z;v((Z=J.target)==null?void 0:Z.result),F(j)},A.readAsDataURL(j)},M=async()=>{if(!(!C||!r))try{N(!0);const E=await r(C);F(null),v(""),d.current&&(d.current.value="")}catch(E){console.error("Erro ao fazer upload:",E),alert("Erro ao fazer upload da imagem")}finally{N(!1)}},q=()=>{F(null),v(""),d.current&&(d.current.value="")},G=async()=>{try{o&&await o(a),F(null),v(""),d.current&&(d.current.value="")}catch(E){console.error("Erro ao remover imagem:",E),alert("Erro ao remover imagem")}},V=()=>{var E;h||u||(E=d.current)==null||E.click()},W=m||a;return l.createElement("div",{className:i("flex flex-col space-y-2",p)},R&&l.createElement("label",{className:"text-sm font-medium text-gray-700"},R),l.createElement("div",{className:"relative"},l.createElement("input",{ref:d,type:"file",accept:f,onChange:D,disabled:h||u,className:"hidden",...B}),l.createElement("div",{onClick:V,className:i("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&&"opacity-50 cursor-not-allowed",u&&"cursor-wait",x&&"border-red-300",!L&&"bg-gray-50 hover:bg-gray-100",L&&"border-solid border-gray-200")},L?l.createElement("img",{src:W,alt:"Preview",className:i("w-full h-full object-cover",t?"rounded-full":"rounded-lg")}):l.createElement("div",{className:"flex flex-col items-center justify-center h-full text-gray-500 text-sm"},l.createElement("svg",{className:"w-6 h-6 mb-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},l.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})),l.createElement("span",{className:"text-center px-2"},g)),u&&l.createElement("div",{className:i("absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center",t?"rounded-full":"rounded-lg")},l.createElement("div",{className:"w-6 h-6 border-2 border-white border-t-transparent rounded-full animate-spin"}))),L&&!u&&l.createElement("div",{className:"flex justify-center space-x-2 mt-3"},S?l.createElement(l.Fragment,null,l.createElement("button",{onClick:M,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"),l.createElement("button",{onClick:q,className:"px-3 py-1 bg-gray-600 text-white text-sm rounded hover:bg-gray-700"},"Cancelar")):l.createElement("button",{onClick:G,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"))),x&&l.createElement("p",{className:"text-sm text-red-600"},x),y&&!L&&l.createElement("p",{className:"text-xs text-gray-500"},"Tamanho máximo: ",(y/1024/1024).toFixed(1),"MB"))};exports.AsideSheet=Le;exports.AsyncSelect=Se;exports.Button=We;exports.Card=ze;exports.CardBody=me;exports.CardFooter=pe;exports.CardHeader=fe;exports.ImageInput=De;exports.Input=Ce;exports.MultiAsyncSelect=Fe;exports.MultiSelect=Re;exports.RadioGroup=Me;exports.Select=Ne;exports.Table=He;exports.TableBody=ge;exports.TableCell=he;exports.TableFooter=ve;exports.TableHeader=be;exports.TableRow=xe;exports.Textarea=ke;exports.Tooltip=$e;