@schema-forms-data/renderer 4.0.0 → 4.0.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 +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +290 -283
- package/package.json +4 -4
package/README.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("react"),le=require("@schema-forms-data/templates"),S=require("react-hook-form"),A=require("lucide-react"),y=require("@schema-forms-data/ui"),f=require("@schema-forms-data/core");function tt(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}return r.default=t,Object.freeze(r)}const fe=tt(A),xe=g.createContext({}),te=()=>g.useContext(xe),B=(t,r,o={})=>{if(!t)return!0;if("and"in t||"or"in t){const c="and"in t&&Array.isArray(t.and)&&t.and.length>0,u="or"in t&&Array.isArray(t.or)&&t.or.length>0;return c&&u?(console.warn("[evaluateFieldCondition] FieldConditionGroup com `and` e `or` simultâneos — apenas `and` será avaliado."),t.and.every(m=>B(m,r,o))):c?t.and.every(m=>B(m,r,o)):u?t.or.some(m=>B(m,r,o)):!0}const s=t;if(!s.campoId)return!0;const i=s.source==="evento"?o[s.campoId]:r[s.campoId];if(Array.isArray(i)){const c=s.valor;switch(s.operador){case"contem":return i.includes(c);case"naoContem":return!i.includes(c);case"vazio":return i.length===0;case"naoVazio":return i.length>0;case"igual":return i.length===1&&i[0]===c;case"diferente":return!(i.length===1&&i[0]===c);default:return!0}}const n=i==null||i===!1?"":i===!0?"1":String(i),a=s.valor!==void 0?String(s.valor):"",l=Number(n),d=Number(a);switch(s.operador){case"igual":return n===a;case"diferente":return n!==a;case"vazio":return!n;case"naoVazio":return!!n;case"contem":return n.includes(a);case"naoContem":return!n.includes(a);case"maiorQue":return!isNaN(l)&&!isNaN(d)?l>d:n>a;case"menorQue":return!isNaN(l)&&!isNaN(d)?l<d:n<a;case"maiorOuIgual":return!isNaN(l)&&!isNaN(d)?l>=d:n>=a;case"menorOuIgual":return!isNaN(l)&&!isNaN(d)?l<=d:n<=a;default:return!0}},st=/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/,rt=/^\(?\d{2}\)?\s?\d{4,5}-?\d{4}$/,nt=/^\d{5}-?\d{3}$/,at=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ot=t=>{const r=t.replace(/\D/g,"");if(r.length!==11||/^(\d)\1{10}$/.test(r))return!1;const o=s=>{let i=0;for(let a=0;a<s;a++)i+=parseInt(r[a])*(s+1-a);const n=i*10%11;return n>=10?0:n};return o(9)===parseInt(r[9])&&o(10)===parseInt(r[10])},de=new Map,it=t=>{if(de.has(t))return de.get(t);try{const r=new RegExp(t);return de.set(t,r),r}catch{return de.set(t,null),null}},ue=(t,r,o={})=>{const s=t.validacao;if(t.tipo===f.FieldType.CHECKBOX||t.tipo===f.FieldType.SWITCH)return t.obrigatorio&&!r?"Campo obrigatório":void 0;if(t.tipo===f.FieldType.SLIDER){const n=r!=null&&r!==""?Number(r):NaN;return t.obrigatorio&&isNaN(n)?"Campo obrigatório":isNaN(n)?void 0:(s==null?void 0:s.min)!==void 0&&n<s.min?`Valor mínimo: ${s.min}`:(s==null?void 0:s.max)!==void 0&&n>s.max?`Valor máximo: ${s.max}`:void 0}if(t.tipo===f.FieldType.RATING){const n=r!==void 0?Number(r):0;return t.obrigatorio&&(!n||n<1)?"Avaliação obrigatória":void 0}if(t.tipo===f.FieldType.DATE_RANGE){const n=r;if(t.obrigatorio){if(!(n!=null&&n.start))return"Data inicial obrigatória";if(!(n!=null&&n.end))return"Data final obrigatória"}return n!=null&&n.start&&(n!=null&&n.end)&&n.start>n.end?"A data inicial deve ser menor ou igual à data final":void 0}if(t.tipo===f.FieldType.PARTICIPATION_TYPE){if(!t.obrigatorio)return;const n=r;return n!=null&&n.tipo?n.tipo==="por_dia"&&!n.data?"Selecione um dia para participar":"genero"in(n??{})&&!(n!=null&&n.genero)?"Selecione o sexo":void 0:"Selecione o tipo de participação"}if(t.tipo===f.FieldType.CHECKBOX_GROUP){const n=Array.isArray(r)?r:[];return t.obrigatorio&&n.length===0?"Selecione pelo menos uma opção":void 0}if(t.tipo===f.FieldType.FILE)return t.obrigatorio&&!r?"Arquivo obrigatório":void 0;if(t.tipo===f.FieldType.TERMS)return t.obrigatorio&&r!=="accepted"?"Você precisa aceitar os termos para continuar":void 0;if(t.tipo===f.FieldType.NUMBER){const n=r!=null?String(r):"";if(t.obrigatorio&&!n)return"Campo obrigatório";if(!n)return;const a=Number(n);return isNaN(a)?"Deve ser um número":(s==null?void 0:s.min)!==void 0&&a<s.min?`Valor mínimo: ${s.min}`:(s==null?void 0:s.max)!==void 0&&a>s.max?`Valor máximo: ${s.max}`:void 0}const i=r!=null?String(r):"";if(t.obrigatorio&&!i.trim())return"Campo obrigatório";if(i){if(t.tipo===f.FieldType.EMAIL&&!at.test(i))return"E-mail inválido";if(t.tipo===f.FieldType.CPF&&(!st.test(i)||!ot(i)))return"CPF inválido";if(t.tipo===f.FieldType.TELEFONE&&!rt.test(i))return"Telefone inválido";if(t.tipo===f.FieldType.CEP&&!nt.test(i))return"CEP inválido";if(s!=null&&s.minLength&&i.length<s.minLength)return`Mínimo ${s.minLength} caracteres`;if(s!=null&&s.maxLength&&i.length>s.maxLength)return`Máximo ${s.maxLength} caracteres`;if((t.tipo===f.FieldType.DATE||t.tipo===f.FieldType.DATETIME)&&i){if(s!=null&&s.minDate&&i<s.minDate)return`Data mínima: ${s.minDate}`;if(s!=null&&s.maxDate&&i>s.maxDate)return`Data máxima: ${s.maxDate}`}if((t.tipo===f.FieldType.DATE||t.tipo===f.FieldType.DATETIME)&&i&&((s==null?void 0:s.minAge)!=null||(s==null?void 0:s.maxAge)!=null)){const n=i.split("T")[0],a=new Date(n+"T00:00:00"),l=o["evento.dataInicioEvento"],d=l?new Date(l.split("T")[0]+"T00:00:00"):new Date;let c=d.getFullYear()-a.getFullYear();const u=d.getMonth()-a.getMonth();if((u<0||u===0&&d.getDate()<a.getDate())&&c--,s.minAge!=null&&c<s.minAge)return`Idade mínima: ${s.minAge} ano${s.minAge!==1?"s":""}`;if(s.maxAge!=null&&c>s.maxAge)return`Idade máxima: ${s.maxAge} ano${s.maxAge!==1?"s":""}`}if(s!=null&&s.regex){const n=it(s.regex);if(n&&!n.test(i))return s.regexMessage||"Formato inválido"}}},ae=(t,r,o)=>{const s=r.split(".");let i=t;for(let n=0;n<s.length-1;n++){const a=s[n];(i[a]==null||typeof i[a]!="object")&&(i[a]={}),i=i[a]}i[s[s.length-1]]=o},oe=async(t,r,o,s,i,n)=>{for(const a of t){const l=n[a.type];if(!l)continue;const d=await l(o,s,a,i);if(d)return a.message??d}},Oe=(t,r={},o={})=>async s=>{var l,d,c,u,m;const i={},n=[...t.containers].sort((h,F)=>h.ordem-F.ordem);for(const h of n){if(h.repeatable||h.condicional&&!B(h.condicional,s,r))continue;const F=[...h.campos].sort((x,I)=>x.ordem-I.ordem);for(const x of F){if(!B(x.condicional,s,r)||x.tipo===f.FieldType.HIDDEN||x.isDisabled||x.isReadOnly)continue;if(x.tipo===f.FieldType.FIELD_ARRAY){const E=Array.isArray(s[x.nome])?s[x.nome]:[];x.obrigatorio&&E.length===0?i[x.nome]={type:"custom",message:"Adicione pelo menos um item"}:x.minItems&&E.length<x.minItems?i[x.nome]={type:"custom",message:`Mínimo de ${x.minItems} item${x.minItems!==1?"s":""}`}:x.maxItems&&E.length>x.maxItems&&(i[x.nome]={type:"custom",message:`Máximo de ${x.maxItems} item${x.maxItems!==1?"s":""}`});for(let b=0;b<E.length;b++){const p=E[b];for(const w of x.subFields??[]){if(w.isDisabled||w.isReadOnly||!B(w.condicional,p,r))continue;const j=ue(w,p[w.nome],r);if(j){ae(i,`${x.nome}.${b}.${w.nome}`,{type:"custom",message:j});continue}if((l=w.validate)!=null&&l.length){const C=await oe(w.validate,w.nome,p[w.nome],p,r,o);C&&ae(i,`${x.nome}.${b}.${w.nome}`,{type:"custom",message:C})}}}continue}if(x.tipo===f.FieldType.SUB_FORM){const E=s[x.nome]??{};x.obrigatorio&&Object.keys(E).length===0&&(i[x.nome]={type:"custom",message:"Campo obrigatório"});for(const b of((d=x.subSchema)==null?void 0:d.fields)??[]){if(b.isDisabled||b.isReadOnly)continue;const p=ue(b,E[b.nome],r);if(p){ae(i,`${x.nome}.${b.nome}`,{type:"custom",message:p});continue}if((c=b.validate)!=null&&c.length){const w=await oe(b.validate,b.nome,E[b.nome],E,r,o);w&&ae(i,`${x.nome}.${b.nome}`,{type:"custom",message:w})}}continue}const N=ue(x,s[x.nome],r);if(N&&(i[x.nome]={type:"custom",message:N}),!i[x.nome]&&((u=x.validate)!=null&&u.length)){const E=await oe(x.validate,x.nome,s[x.nome],s,r,o);E&&(i[x.nome]={type:"custom",message:E})}}}for(const h of n){if(!h.repeatable||!h.nome||h.condicional&&!B(h.condicional,s,r))continue;const F=Array.isArray(s[h.nome])?s[h.nome]:[];h.minItems&&F.length<h.minItems?i[h.nome]={type:"custom",message:`Mínimo de ${h.minItems} ${h.itemLabel??"item"}${h.minItems!==1?"s":""}`}:h.maxItems&&F.length>h.maxItems&&(i[h.nome]={type:"custom",message:`Máximo de ${h.maxItems} ${h.itemLabel??"item"}${h.maxItems!==1?"s":""}`});for(let x=0;x<F.length;x++){const I=F[x];for(const N of h.campos){if(!B(N.condicional,I,r)||N.tipo===f.FieldType.HIDDEN||N.isDisabled||N.isReadOnly)continue;const b=ue(N,I[N.nome],r);if(b){ae(i,`${h.nome}.${x}.${N.nome}`,{type:"custom",message:b});continue}if((m=N.validate)!=null&&m.length){const p=await oe(N.validate,N.nome,I[N.nome],I,r,o);p&&ae(i,`${h.nome}.${x}.${N.nome}`,{type:"custom",message:p})}}}}return Object.keys(i).length>0?{values:{},errors:i}:{values:s,errors:{}}},Pe=(t,r={},o={})=>async s=>{var a,l;const i={},n=[...t.containers].sort((d,c)=>d.ordem-c.ordem);for(const d of n)if(!(d.condicional&&!B(d.condicional,s,r))){if(d.repeatable&&d.nome){const c=Array.isArray(s[d.nome])?s[d.nome]:[];for(let u=0;u<c.length;u++){const m=c[u];for(const h of[...d.campos].sort((F,x)=>F.ordem-x.ordem)){if(!((a=h.warn)!=null&&a.length)||!B(h.condicional,m,r))continue;const x=await oe(h.warn,h.nome,m[h.nome],m,r,o);x&&(i[`${d.nome}.${u}.${h.nome}`]=x)}}continue}for(const c of[...d.campos].sort((u,m)=>u.ordem-m.ordem)){if(!((l=c.warn)!=null&&l.length)||!B(c.condicional,s,r))continue;const m=await oe(c.warn,c.nome,s[c.nome],s,r,o);m&&(i[c.nome]=m)}}return i},lt=/\{\{\s*(?:event|evento)\.([a-zA-Z0-9_.]+)\s*\}\}/g,W=(t,r)=>t?t.replace(lt,(o,s)=>r[`evento.${s}`]??r[s]??o):t??"",ct=(t,r)=>({...t,label:W(t.label,r)}),Ve=(t,r)=>{var o;return{...t,label:W(t.label,r),placeholder:W(t.placeholder,r),hint:W(t.hint,r),defaultValue:typeof t.defaultValue=="string"?W(t.defaultValue,r):t.defaultValue,opcoes:(o=t.opcoes)==null?void 0:o.map(s=>ct(s,r))}},he=(t,r)=>({...t,titulo:W(t.titulo,r),descricao:W(t.descricao,r),campos:t.campos.map(o=>Ve(o,r))}),Le=(t,r)=>({...t,titulo:W(t.titulo,r),descricao:W(t.descricao,r),containers:t.containers.map(o=>he(o,r))}),Me=()=>{const t=le.useTemplate(),r=t.layout.containerStyle,o=t.layout.roundness??"rounded-xl",s=y.cn("overflow-hidden",o,r==="card"?"border":"",r==="bordered"?"border":"",r==="glassmorphism"?"backdrop-blur-sm":""),i=r==="glassmorphism"?{background:"var(--t-surface)",borderColor:"var(--t-border)",borderWidth:"1px",borderStyle:"solid"}:{},n=y.cn("border-b px-6 py-4",r==="flat"?"border-transparent":"");return{wrapperClass:s,wrapperStyle:i,headerClass:n,headerStyle:r==="glassmorphism"?{borderColor:"var(--t-border)"}:{},tmpl:t}},z=({name:t,control:r,placeholder:o,type:s="text",disabled:i,readOnly:n})=>{var c;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=!!l.error;return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{...a,value:a.value??"",type:s,placeholder:o,disabled:i,readOnly:n,className:y.cn(d&&"border-destructive focus-visible:ring-destructive")}),((c=l.error)==null?void 0:c.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},ge=({name:t,control:r,placeholder:o,disabled:s,readOnly:i})=>{var l;const{field:n,fieldState:a}=S.useController({name:t,control:r});return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Textarea,{...n,value:n.value??"",placeholder:o,disabled:s,readOnly:i,rows:3,className:y.cn(a.error&&"border-destructive focus-visible:ring-destructive")}),((l=a.error)==null?void 0:l.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},be=({name:t,control:r,placeholder:o,options:s,disabled:i,readOnly:n})=>{var d;const{field:a,fieldState:l}=S.useController({name:t,control:r});return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(y.Select,{value:a.value??"",onValueChange:c=>!n&&a.onChange(c),disabled:i||n,children:[e.jsx(y.SelectTrigger,{className:y.cn(l.error&&"border-destructive focus:ring-destructive"),onBlur:a.onBlur,children:e.jsx(y.SelectValue,{placeholder:o??"Selecione..."})}),e.jsx(y.SelectContent,{children:s.map(c=>e.jsx(y.SelectItem,{value:c.valor,disabled:c.disabled,children:c.label},c.valor))})]}),((d=l.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},ve=({name:t,control:r,label:o,disabled:s,readOnly:i})=>{var l;const{field:n,fieldState:a}=S.useController({name:t,control:r});return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx(y.Checkbox,{name:n.name,checked:!!n.value,onCheckedChange:d=>!i&&n.onChange(!!d),onBlur:n.onBlur,disabled:s}),o&&e.jsx("span",{className:"text-sm leading-none",children:o})]}),((l=a.error)==null?void 0:l.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Ne=({name:t,control:r,options:o,disabled:s})=>{var d;const{field:i,fieldState:n}=S.useController({name:t,control:r}),a=Array.isArray(i.value)?i.value:[],l=c=>{const u=a.includes(c)?a.filter(m=>m!==c):[...a,c];i.onChange(u)};return e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex flex-col gap-2",onBlur:i.onBlur,children:o.map(c=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx(y.Checkbox,{checked:a.includes(c.valor),onCheckedChange:()=>l(c.valor),disabled:s||c.disabled}),e.jsx("span",{className:"text-sm leading-none",children:c.label})]},c.valor))}),((d=n.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:n.error.message})]})},Ce=({name:t,control:r,options:o,visualStyle:s="default",disabled:i})=>{var d;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=s==="card";return e.jsxs("div",{className:"space-y-1",onBlur:n.onBlur,children:[e.jsx(y.RadioGroup,{value:n.value??"",onValueChange:n.onChange,className:y.cn(l?"grid grid-cols-2 gap-2 sm:grid-cols-3":"flex flex-col gap-2"),children:o.map(c=>e.jsxs("label",{className:y.cn("flex items-center gap-2 cursor-pointer",l&&"rounded-lg border p-3 transition-colors hover:bg-accent data-[selected=true]:border-primary data-[selected=true]:bg-primary/5",(i||c.disabled)&&"cursor-not-allowed opacity-50"),"data-selected":n.value===c.valor?"true":void 0,children:[e.jsx(y.RadioGroupItem,{value:c.valor,disabled:i||c.disabled}),e.jsx("span",{className:"text-sm leading-none",children:c.label})]},c.valor))}),((d=a.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},_e=t=>{const r=t.getFullYear(),o=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${r}-${o}-${s}`},dt=t=>{const r=new Date;return r.setFullYear(r.getFullYear()-t),_e(r)},ut=t=>{const r=new Date;return r.setFullYear(r.getFullYear()-t),_e(r)},ie=({name:t,control:r,isDatetime:o,disabled:s,readOnly:i,validacao:n})=>{var h;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=o?"datetime-local":"date",c=F=>o?F+"T00:00":F,u=(n==null?void 0:n.minAge)!=null?c(dt(n.minAge)):(n==null?void 0:n.maxDate)!=null?c(n.maxDate):void 0,m=(n==null?void 0:n.maxAge)!=null?c(ut(n.maxAge)):(n==null?void 0:n.minDate)!=null?c(n.minDate):void 0;return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{name:a.name,value:a.value??"",onChange:a.onChange,onBlur:a.onBlur,type:d,min:m,max:u,disabled:s,readOnly:i,className:y.cn(l.error&&"border-destructive focus-visible:ring-destructive")}),((h=l.error)==null?void 0:h.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},De=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,Fe=({name:t,control:r,disabled:o,campo:s,fileTypes:i,maxFileSize:n})=>{var R;const{field:a,fieldState:l}=S.useController({name:t,control:r}),{uploadFile:d}=te(),[c,u]=g.useState({status:"idle"}),m=g.useRef(null),[h,F]=g.useState(!1),x=g.useRef(!0);g.useEffect(()=>()=>{x.current=!1},[]);const I=typeof a.value=="string"&&a.value?a.value:null,N=g.useCallback(async j=>{var C;if(i&&i.length>0){const v=((C=j.name.split(".").pop())==null?void 0:C.toLowerCase())??"",D=j.type.toLowerCase();if(!i.some(V=>{const M=V.toLowerCase();return!!(M===v||M===D||M.endsWith("/*")&&D.startsWith(M.slice(0,-1)))})){u({status:"error",message:`Tipo de arquivo não permitido. Permitidos: ${i.join(", ")}`});return}}if(n&&j.size>n){u({status:"error",message:`Arquivo muito grande. Tamanho máximo: ${De(n)}`});return}if(!d){u({status:"error",message:"Preview: upload não disponível sem configuração."});return}u({status:"uploading",fileName:j.name,progress:0});try{const v=await d(j,s??t,D=>{x.current&&u(T=>T.status==="uploading"?{...T,progress:Math.min(100,D)}:T)});if(!x.current)return;a.onChange(v),u({status:"done",uploadId:v,fileName:j.name,size:j.size})}catch{if(!x.current)return;u({status:"error",message:"Falha no upload. Tente novamente."})}},[d,s,t,a,i,n]),E=g.useCallback(j=>{var v;const C=(v=j.target.files)==null?void 0:v[0];C&&N(C),j.target.value=""},[N]),b=g.useCallback(()=>{a.onChange(""),u({status:"idle"}),m.current&&(m.current.value="")},[a]);if(c.status==="done"||c.status==="idle"&&!!I){const j=c.status==="done"?c.fileName:"Arquivo enviado",C=c.status==="done"?c.size:null;return e.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-input bg-muted/20 px-4 py-3 gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate flex-1",children:j}),C!==null&&e.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:De(C)}),!o&&e.jsx("button",{type:"button",onClick:b,className:"ml-2 shrink-0 text-muted-foreground hover:text-destructive transition-colors","aria-label":"Remover arquivo",children:"✕"})]})}if(c.status==="uploading"){const{fileName:j,progress:C}=c;return e.jsxs("div",{className:"rounded-lg border border-input px-4 py-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-medium truncate flex-1",children:j}),e.jsxs("span",{className:"text-xs text-muted-foreground ml-2",children:[C,"%"]})]}),e.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:e.jsx("div",{className:"h-full bg-primary transition-all duration-200 rounded-full",style:{width:`${C}%`}})})]})}const w=c.status==="error";return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{role:"button",tabIndex:o?-1:0,"aria-label":"Selecionar arquivo",className:y.cn("flex items-center justify-center rounded-lg border-2 border-dashed px-4 py-6 transition-colors cursor-pointer",h?"border-primary bg-primary/5":w||l.error?"border-destructive bg-destructive/5":"border-input hover:border-muted-foreground hover:bg-muted/20",o&&"opacity-50 cursor-not-allowed"),onClick:()=>{var j;return!o&&((j=m.current)==null?void 0:j.click())},onKeyDown:j=>{var C;(j.key==="Enter"||j.key===" ")&&((C=m.current)==null||C.click())},onDragOver:j=>{j.preventDefault(),o||F(!0)},onDragLeave:()=>F(!1),onDrop:o?void 0:j=>{var v;j.preventDefault(),F(!1);const C=(v=j.dataTransfer.files)==null?void 0:v[0];C&&N(C)},onBlur:a.onBlur,children:[e.jsx("input",{ref:m,type:"file",onChange:E,disabled:o,className:"sr-only"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:h?"Solte o arquivo aqui":"Clique ou arraste um arquivo"})]}),w&&e.jsxs("p",{className:"text-sm text-destructive",children:[c.message," · ",e.jsx("button",{type:"button",className:"underline hover:no-underline",onClick:()=>u({status:"idle"}),children:"Tentar novamente"})]}),!w&&((R=l.error)==null?void 0:R.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},mt={cpf:t=>t.replace(/\D/g,"").slice(0,11).replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d{1,2})$/,"$1-$2"),telefone:t=>{const r=t.replace(/\D/g,"").slice(0,11);return r.length<=10?r.replace(/(\d{2})(\d)/,"($1) $2").replace(/(\d{4})(\d)/,"$1-$2"):r.replace(/(\d{2})(\d)/,"($1) $2").replace(/(\d{5})(\d)/,"$1-$2")},cep:t=>t.replace(/\D/g,"").slice(0,8).replace(/(\d{5})(\d)/,"$1-$2")},re=({name:t,control:r,placeholder:o,maskType:s,disabled:i,readOnly:n})=>{var u;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=mt[s||""],c=g.useCallback(m=>{a.onChange(d?d(m.target.value):m.target.value)},[a,d]);return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{name:a.name,value:a.value||"",onChange:c,onBlur:a.onBlur,placeholder:o,disabled:i,readOnly:n,className:y.cn(l.error&&"border-destructive focus-visible:ring-destructive")}),((u=l.error)==null?void 0:u.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},ye=({name:t,control:r})=>{const{field:o}=S.useController({name:t,control:r});return e.jsx("input",{type:"hidden",...o,value:o.value??""})},Be=t=>t.replace(/\D/g,""),xt=t=>{const r=Be(t).slice(0,8);return r.length<=5?r:`${r.slice(0,5)}-${r.slice(5)}`},pt=async(t,r)=>{const o=await fetch(`https://viacep.com.br/ws/${t}/json/`,{signal:r});if(!o.ok)throw new Error("Falha ao consultar CEP");return o.json()},Te=({name:t,control:r,placeholder:o="00000-000",disabled:s,readOnly:i,cepFillMap:n})=>{var b,p;const{field:a,fieldState:l}=S.useController({name:t,control:r}),{setValue:d}=S.useFormContext(),{cepLookup:c}=te(),[u,m]=g.useState("idle"),[h,F]=g.useState(null),x=g.useRef(null),I=g.useRef(!0);g.useEffect(()=>()=>{var w;I.current=!1,(w=x.current)==null||w.abort()},[]);const N=g.useCallback(async()=>{var R;a.onBlur();const w=Be(a.value??"");if(w.length===8){(R=x.current)==null||R.abort(),x.current=new AbortController,m("loading"),F(null);try{let j;if(c){const D=x.current;if(j=await c(w,D.signal),D.signal.aborted||!I.current)return}else{const D=await pt(w,x.current.signal);if(!I.current)return;if(D.erro){m("error"),F("CEP não encontrado");return}j={logradouro:D.logradouro,bairro:D.bairro,cidade:D.localidade,estado:D.uf}}if(!I.current)return;if(j.erro){m("error"),F("CEP não encontrado");return}const C=t.includes(".")?`${t.substring(0,t.lastIndexOf("."))}.`:"",v=(D,T,V)=>{if(!V)return;const M=n!=null&&n[D]?`${C}${n[D]}`:`${C}${T}`;d(M,V,{shouldDirty:!0,shouldValidate:!0})};v("logradouro","_address_logradouro",j.logradouro),v("bairro","_address_bairro",j.bairro),v("cidade","_address_cidade",j.cidade),v("estado","_address_estado",j.estado),m("success")}catch(j){if(j instanceof Error&&j.name==="AbortError"||!I.current)return;m("error"),F("Erro ao buscar CEP")}}},[a,c,d,t,n]),E=g.useCallback(w=>{a.onChange(xt(w.target.value))},[a]);return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"relative",children:[e.jsx(y.Input,{name:a.name,value:a.value||"",onChange:E,onBlur:N,placeholder:o,disabled:s,readOnly:i,className:y.cn("pr-9",l.error&&"border-destructive focus-visible:ring-destructive")}),e.jsxs("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none",children:[u==="loading"&&e.jsx(A.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"}),u==="success"&&e.jsx(A.Check,{className:"h-4 w-4 text-green-500"}),u==="error"&&e.jsx(A.AlertCircle,{className:"h-4 w-4 text-destructive"})]})]}),(((b=l.error)==null?void 0:b.message)||h)&&e.jsx("p",{className:"text-sm text-destructive",children:((p=l.error)==null?void 0:p.message)||h})]})},ft=({field:t,control:r,nameOverride:o})=>{const s={name:o,control:r,placeholder:t.placeholder};switch(t.tipo){case f.FieldType.TEXTO:return e.jsx(z,{...s,type:"text"});case f.FieldType.EMAIL:return e.jsx(z,{...s,type:"email"});case f.FieldType.NUMBER:return e.jsx(z,{...s,type:"number"});case f.FieldType.TEXTAREA:return e.jsx(ge,{...s});case f.FieldType.SELECT:return e.jsx(be,{...s,options:t.opcoes??[]});case f.FieldType.RADIO:return e.jsx(Ce,{...s,options:t.opcoes??[]});case f.FieldType.CHECKBOX:return e.jsx(ve,{name:o,control:r,label:t.label});case f.FieldType.CHECKBOX_GROUP:return e.jsx(Ne,{...s,options:t.opcoes??[]});case f.FieldType.DATE:return e.jsx(ie,{...s,validacao:t.validacao});case f.FieldType.DATETIME:return e.jsx(ie,{...s,isDatetime:!0,validacao:t.validacao});case f.FieldType.FILE:return e.jsx(Fe,{name:o,control:r});case f.FieldType.TELEFONE:return e.jsx(re,{...s,maskType:"telefone"});case f.FieldType.CPF:return e.jsx(re,{...s,maskType:"cpf"});case f.FieldType.CEP:return e.jsx(Te,{name:o,control:r,placeholder:t.placeholder});case f.FieldType.HIDDEN:return e.jsx(ye,{name:o,control:r});default:return console.error(`[DFFieldArray] Tipo de sub-campo "${t.tipo}" não suportado em FIELD_ARRAY. Usando DFTextField como fallback.`),e.jsx(z,{...s,type:"text"})}},He=({name:t,control:r,subFields:o=[],minItems:s=1,maxItems:i,itemLabel:n="Item",addLabel:a})=>{var N;const{fields:l,append:d,remove:c}=S.useFieldArray({control:r,name:t}),{errors:u}=S.useFormState({control:r}),m=(N=u[t])==null?void 0:N.message,h=g.useCallback(()=>{const E={};for(const b of o)b.initialValue!==void 0?E[b.nome]=b.initialValue:b.defaultValue!==void 0&&(E[b.nome]=b.defaultValue);return E},[o]);g.useEffect(()=>{if(l.length<s)for(let E=l.length;E<s;E++)d(h())},[s]);const F=[...o].sort((E,b)=>E.ordem-b.ordem),x=!i||l.length<i,I=a??`Adicionar ${n.toLowerCase()}`;return e.jsxs("div",{className:"space-y-3",children:[l.map((E,b)=>e.jsxs("div",{className:"rounded-lg border border-input p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-primary/10 text-xs font-bold text-primary shrink-0",children:b+1}),e.jsxs("span",{className:"text-sm font-semibold",children:[n," ",b+1]})]}),l.length>s&&e.jsx(y.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>c(b),"aria-label":`Remover ${n.toLowerCase()} ${b+1}`,className:"text-muted-foreground hover:text-destructive",children:e.jsx(A.Trash2,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"grid grid-cols-12 gap-4",children:F.map(p=>{const w=`${t}.${b}.${p.nome}`,j=`span ${p.tamanho??12}`,C=e.jsx(ft,{field:p,control:r,nameOverride:w});return p.tipo===f.FieldType.CHECKBOX||p.tipo===f.FieldType.HIDDEN?e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:j},children:C},p.id):e.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:j},children:[e.jsxs("label",{className:"font-medium flex items-center gap-1 text-sm text-foreground",children:[p.label,p.obrigatorio&&e.jsx("span",{className:"text-destructive",children:"*"})]}),C,p.hint&&e.jsx("p",{className:"text-xs text-muted-foreground",children:p.hint})]},p.id)})})]},E.id)),x&&e.jsxs(y.Button,{type:"button",variant:"outline",className:"w-full",onClick:()=>d(h()),children:[e.jsx(A.Plus,{className:"w-4 h-4"}),I]}),i&&e.jsxs("p",{className:"text-xs text-center text-muted-foreground",children:["Máximo de ",i," ",n.toLowerCase(),i>1?"s":""]}),m&&e.jsxs("p",{className:"text-sm text-destructive flex items-center gap-1",children:[e.jsx(A.AlertCircle,{className:"w-4 h-4 shrink-0"}),m]})]})},Ee=t=>`R$ ${(t/100).toFixed(2).replace(".",",")}`,ht=(t,r)=>{const o=new Date(t.slice(0,10)+"T00:00:00Z"),s=new Date(r.slice(0,10)+"T00:00:00Z");return Math.round((s.getTime()-o.getTime())/864e5)+1},gt=(t,r)=>{const o=[],s=new Date(t.slice(0,10)+"T00:00:00Z"),i=new Date(r.slice(0,10)+"T00:00:00Z");let n=0;for(;s<=i&&n<60;)o.push(s.toISOString().slice(0,10)),s.setUTCDate(s.getUTCDate()+1),n++;return o},bt=t=>{const[r,o,s]=t.split("-").map(Number),i=new Date(Date.UTC(r,o-1,s)),n=String(s).padStart(2,"0"),a=String(o).padStart(2,"0"),l=new Intl.DateTimeFormat("pt-BR",{weekday:"long",timeZone:"UTC"}).format(i),d=l.charAt(0).toUpperCase()+l.slice(1);return`${n}/${a} - ${d}`},vt=(t,r)=>{const o=s=>{const[i,n,a]=s.slice(0,10).split("-");return`${a}/${n}/${i}`};return`${o(t)} a ${o(r)}`},Ue=({name:t,control:r})=>{var X;const{field:o,fieldState:s}=S.useController({name:t,control:r}),{externalData:i={}}=te(),n=o.value??null,a=(X=s.error)==null?void 0:X.message,l=k=>i[`evento.${k}`]??i[k],d=l("dataInicioEvento")??"",c=l("dataFimEvento")??"",u=Number(l("valor")??0),m=Number(l("valorPorDia")??0),h=l("vagasTotal"),F=l("vagasPorDia"),x=l("vagasMasculinas"),I=l("vagasFemininas"),N=h!=null?Number(h):null,E=F!=null?Number(F):null,b=x!=null?Number(x):null,p=I!=null?Number(I):null,w=d&&c?gt(d,c):[],j=(d&&c?ht(d,c):0)>1,C=b!=null&&b>0&&p!=null&&p>0,v=b!=null&&p==null?"masculino":p!=null&&b==null?"feminino":null,D=(n==null?void 0:n.tipo)??null,T=(n==null?void 0:n.data)??null,V=(n==null?void 0:n.genero)??null,M=g.useRef(n);M.current=n;const K=g.useRef(o.onChange);K.current=o.onChange,g.useEffect(()=>{var k,H,ne;v&&((k=M.current)==null?void 0:k.genero)!==v&&K.current({tipo:((H=M.current)==null?void 0:H.tipo)??null,data:((ne=M.current)==null?void 0:ne.data)??null,genero:v})},[v]);const q=k=>{const H={tipo:k,data:null};(C||v)&&(H.genero=V??v??void 0),o.onChange(H)},Y=k=>{const H={tipo:"por_dia",data:k};(C||v)&&(H.genero=V??v??void 0),o.onChange(H)},Q=k=>{o.onChange({tipo:D,data:T,genero:k})},U=k=>D===k;return e.jsxs("div",{className:"space-y-3",children:[C&&e.jsxs("div",{className:"flex items-center gap-2 px-1",children:[e.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:"Você é:"}),e.jsx("div",{className:"flex gap-2",children:["masculino","feminino"].map(k=>e.jsx("button",{type:"button",onClick:()=>Q(k),className:y.cn("px-3 py-1 rounded-full text-xs font-medium border transition-all",V===k?"border-primary bg-primary/10 text-primary":"border-input text-muted-foreground hover:border-primary/50"),children:k==="masculino"?"Masculino":"Feminino"},k))})]}),e.jsxs("button",{type:"button",onClick:()=>q("todos_os_dias"),className:y.cn("w-full text-left flex items-start gap-3 p-4 rounded-xl border-2 transition-all",U("todos_os_dias")?"border-primary bg-primary/5":"border-input hover:border-primary/50"),children:[e.jsx("div",{className:y.cn("mt-0.5 p-2 rounded-lg shrink-0 transition-colors",U("todos_os_dias")?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.jsx(A.CalendarCheck2,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-sm",children:"Participar todos os dias"}),d&&c?e.jsx("p",{className:"text-xs text-muted-foreground",children:vt(d,c)}):e.jsx("p",{className:"text-xs text-muted-foreground italic",children:"Datas do evento"})]}),e.jsxs("div",{className:"text-right shrink-0",children:[u>0&&e.jsx("p",{className:y.cn("font-bold text-sm",U("todos_os_dias")?"text-primary":"text-foreground"),children:Ee(u)}),N!=null&&N>0&&e.jsxs("p",{className:"text-xs flex items-center justify-end gap-1 text-muted-foreground",children:[e.jsx(A.Users,{className:"w-3 h-3"}),N," vagas disponíveis"]})]})]}),j?e.jsxs("button",{type:"button",onClick:()=>q("por_dia"),className:y.cn("w-full text-left flex items-start gap-3 p-4 rounded-xl border-2 transition-all",U("por_dia")?"border-primary bg-primary/5":"border-input hover:border-primary/50"),children:[e.jsx("div",{className:y.cn("mt-0.5 p-2 rounded-lg shrink-0 transition-colors",U("por_dia")?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.jsx(A.CalendarDays,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-sm",children:"Participar um dia"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Escolha o dia desejado abaixo"})]}),e.jsxs("div",{className:"text-right shrink-0",children:[m>0&&e.jsx("p",{className:y.cn("font-bold text-sm",U("por_dia")?"text-primary":"text-foreground"),children:Ee(m)}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"por dia"})]})]}):d?e.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg border border-input bg-muted/30",children:[e.jsx(A.Info,{className:"w-3.5 h-3.5 mt-0.5 shrink-0 text-muted-foreground"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'Este evento ocorre em apenas 1 dia — a opção "Participar um dia" não é necessária.'})]}):null,D==="por_dia"&&e.jsxs("div",{className:"pl-2 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:"Selecione o dia:"}),w.length===0?e.jsx("p",{className:"text-xs text-muted-foreground italic",children:"Nenhuma data configurada no evento"}):w.map(k=>e.jsxs("button",{type:"button",onClick:()=>Y(k),className:y.cn("w-full text-left flex items-center justify-between px-4 py-3 rounded-lg border transition-all",T===k?"border-primary bg-primary/5":"border-input hover:border-primary/50"),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:y.cn("w-4 h-4 rounded-full border-2 shrink-0 flex items-center justify-center transition-colors",T===k?"border-primary bg-primary":"border-input"),children:T===k&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-white"})}),e.jsx("span",{className:"text-sm",children:bt(k)})]}),E!=null&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:[E," vagas"]})]},k))]}),a&&e.jsx("p",{className:"text-sm text-destructive",children:a})]})},$e=.0315,Ae=.124,Ie=7,Se=12,We=[{id:"pix",label:"PIX",description:"Transferência instantânea (à vista)",Icon:A.Smartphone,taxa:0},{id:"dinheiro",label:"Dinheiro",description:"Pagamento em espécie",Icon:A.Banknote,taxa:0},{id:"cartao",label:"Cartão de Crédito",description:"Débito ou crédito na maquininha",Icon:A.CreditCard,taxa:$e,taxaLabel:`Taxa: ${($e*100).toFixed(2).replace(".",",")}%`}],Xe=[{id:"pix",label:"PIX à Vista",description:"Pagamento instantâneo sem parcelamento",Icon:A.Smartphone,taxa:0},{id:"pix_parcelado",label:"PIX Parcelado",description:`Parcelado em até ${Ie}x sem juros`,Icon:A.Smartphone,taxa:0,parcelas:Ie},{id:"cartao",label:"Cartão de Crédito",description:`Parcelado em até ${Se}x`,Icon:A.CreditCard,taxa:Ae,parcelas:Se,taxaLabel:`Taxa: ${(Ae*100).toFixed(2).replace(".",",")}%`},{id:"dinheiro",label:"Dinheiro",description:"Pagamento em espécie",Icon:A.Banknote,taxa:0}],me=t=>`R$ ${(t/100).toFixed(2).replace(".",",")}`,Re=(t,r)=>Math.round(t*(1+r)*100)/100,yt=(t,r)=>Math.round(t/r*100)/100,ze=({name:t,control:r,relatedFieldName:o="tipo_participacao"})=>{var b;const{field:s,fieldState:i}=S.useController({name:t,control:r}),{externalData:n={},paymentMethodOptions:a}=te(),l=s.value??null,d=(b=i.error)==null?void 0:b.message,c=S.useWatch({control:r,name:o}),u=(c==null?void 0:c.tipo)??null,m=p=>n[`evento.${p}`]??n[p],h=Number(m("valor")??0),F=Number(m("valorPorDia")??0),x=u==="por_dia"&&F>0?F:h,I=u==="por_dia"?(a==null?void 0:a.porDia)??We:(a==null?void 0:a.todosOsDias)??Xe,N=u==="por_dia"?(()=>{if(!(c!=null&&c.data))return"Um dia";const p=c.data.split("-");if(p.length===3){const[w,R,j]=p;return`${j}/${R}/${w}`}return c.data})():"Todos os dias",E=p=>{if(p.disabled)return;const w=Re(x,p.taxa),R={metodo:p.id,valorTotal:w};p.parcelas&&(R.parcelas=p.parcelas),s.onChange(R)};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between rounded-xl border border-input px-4 py-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Tipo de participação"}),e.jsx("p",{className:"font-semibold",children:N})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Valor base"}),e.jsx("p",{className:"text-lg font-bold text-primary",children:me(x)})]})]}),e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-input bg-muted/30 px-3 py-2.5",children:[e.jsx(A.Info,{className:"h-4 w-4 mt-0.5 shrink-0 text-muted-foreground"}),e.jsxs("p",{className:"text-xs",children:[e.jsx("span",{className:"font-bold",children:"Importante:"})," Para validar a inscrição e garantir sua vaga, o pagamento deve ser realizado no ato da inscrição."]})]}),e.jsx("p",{className:"text-sm font-semibold text-primary",children:"Selecione a forma de pagamento:"}),e.jsx("div",{className:"space-y-3",children:I.map(p=>{const{Icon:w}=p,R=(l==null?void 0:l.metodo)===p.id,j=Re(x,p.taxa),C=!!p.parcelas&&p.parcelas>1,v=C?yt(j,p.parcelas):null;return e.jsxs("button",{type:"button",disabled:p.disabled,onClick:()=>E(p),className:y.cn("w-full text-left flex items-center gap-4 px-4 py-3 rounded-xl border-2 transition-all",R?"border-primary bg-primary/5":"border-input hover:border-primary/50",p.disabled&&"opacity-50 cursor-not-allowed"),children:[e.jsx("div",{className:y.cn("flex items-center justify-center w-10 h-10 rounded-lg shrink-0 transition-colors",R?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.jsx(w,{className:"h-5 w-5"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-sm leading-tight",children:p.label}),e.jsx("p",{className:"text-xs text-muted-foreground",children:p.description}),p.taxaLabel&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:["* ",p.taxaLabel]}),p.taxa>0&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Total com taxa: ",me(j)]})]}),e.jsx("div",{className:"text-right shrink-0",children:C?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-xs text-muted-foreground",children:[p.parcelas,"x de"]}),e.jsx("p",{className:"text-base font-bold text-primary",children:me(v)})]}):e.jsx("p",{className:"text-base font-bold text-primary",children:me(j)})})]},p.id)})}),d&&e.jsx("p",{className:"text-xs text-destructive",children:d})]})},Ke=({name:t,control:r,label:o,termoTexto:s,termoPdfUrl:i,termoPdfUploadId:n})=>{var j;const{field:a,fieldState:l}=S.useController({name:t,control:r}),{resolveTermsUploadUrl:d}=te(),c=!!l.error,u=(j=l.error)==null?void 0:j.message,[m,h]=g.useState(null),[F,x]=g.useState(!1),[I,N]=g.useState(!1),E=g.useRef(null);g.useEffect(()=>{var C;I&&((C=E.current)==null||C.focus())},[I]),g.useEffect(()=>{if(!n||!d){h(null);return}let C=!1;return x(!0),d(n).then(v=>{C||h(v)}).catch(()=>{C||h(null)}).finally(()=>{C||x(!1)}),()=>{C=!0}},[n,d]);const b=a.value==="accepted",p=m||i||null,w=!!(s||p||n),R=!!p;return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:y.cn("rounded-lg border p-4 space-y-4 transition-colors",c?"border-destructive bg-destructive/5":b?"border-green-500 bg-green-500/5":"border-input"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A.ScrollText,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:o||"Termos e condições"})]}),w?e.jsxs(y.Button,{type:"button",variant:"outline",size:"sm",className:"h-7 px-2 text-xs",disabled:F,onClick:()=>N(!0),children:[F?e.jsx(A.Loader2,{className:"h-3 w-3 animate-spin"}):e.jsx(A.ExternalLink,{className:"h-3 w-3"}),"Ler termos"]}):e.jsx("span",{className:"text-xs text-muted-foreground italic",children:n&&F?"Carregando PDF...":"Conteúdo não configurado"})]}),e.jsxs("label",{className:"flex items-start gap-3 cursor-pointer select-none",children:[e.jsx(y.Checkbox,{className:"mt-0.5",checked:b,onCheckedChange:C=>a.onChange(C?"accepted":"")}),e.jsxs("span",{className:"text-sm leading-snug flex-1",children:["Li e aceito ",o?`"${o}"`:"os termos e condições"]}),b&&e.jsx(A.CheckCircle2,{className:"h-4 w-4 text-green-500 shrink-0 mt-0.5"})]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-destructive",children:[e.jsx(A.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),u||"Você precisa aceitar os termos para continuar"]}),I&&e.jsx("div",{ref:E,role:"dialog","aria-modal":"true","aria-label":"Termos e condições",tabIndex:-1,className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/60 outline-none",onClick:()=>N(!1),onKeyDown:C=>{C.key==="Escape"&&N(!1)},children:e.jsxs("div",{className:"relative w-full max-w-2xl max-h-[90vh] rounded-xl overflow-hidden flex flex-col bg-background shadow-xl",onClick:C=>C.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-input",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A.ScrollText,{className:"h-4 w-4"}),e.jsx("span",{className:"font-semibold",children:"Termos e condições"})]}),e.jsx(y.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>N(!1),children:e.jsx(A.X,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex-1 overflow-auto p-4",children:R?e.jsx("iframe",{src:p,className:"w-full rounded border",style:{height:"62vh"},title:"Termos e condições",sandbox:"allow-same-origin"}):e.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:s})})]})})]})},jt=({name:t,control:r,placeholder:o,disabled:s,readOnly:i})=>{var u;const{field:n,fieldState:a}=S.useController({name:t,control:r}),[l,d]=g.useState(!1),c=!!a.error;return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"relative",children:[e.jsx(y.Input,{...n,value:n.value??"",type:l?"text":"password",placeholder:o,disabled:s,readOnly:i,className:y.cn("pr-10",c&&"border-destructive focus-visible:ring-destructive")}),e.jsx("button",{type:"button",tabIndex:-1,onClick:()=>d(m=>!m),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors","aria-label":l?"Ocultar senha":"Mostrar senha",children:l?e.jsx(A.EyeOff,{size:16}):e.jsx(A.Eye,{size:16})})]}),((u=a.error)==null?void 0:u.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},qe=({name:t,control:r,label:o,disabled:s,readOnly:i})=>{var d;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=!!n.value;return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none",children:[e.jsx(y.Switch,{checked:l,onCheckedChange:c=>!i&&n.onChange(c),disabled:s||i,onBlur:n.onBlur}),e.jsx("span",{className:"text-sm leading-none",children:o})]}),((d=a.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Nt=({name:t,control:r,minValue:o=0,maxValue:s=100,step:i=1,disabled:n,readOnly:a})=>{var u;const{field:l,fieldState:d}=S.useController({name:t,control:r}),c=l.value??o;return g.useEffect(()=>{(l.value===void 0||l.value===null)&&l.onChange(o)},[]),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(y.Slider,{min:o,max:s,step:i,value:[c],onValueChange:m=>!a&&l.onChange(m[0]),disabled:n||a,className:"flex-1"}),e.jsx("span",{className:"text-sm font-medium text-primary min-w-[3rem] text-right tabular-nums",children:c})]}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:o}),e.jsx("span",{children:s})]}),((u=d.error)==null?void 0:u.message)&&e.jsx("p",{className:"text-sm text-destructive",children:d.error.message})]})},je=t=>/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(t),Ct=({name:t,control:r,disabled:o,readOnly:s})=>{var c;const{field:i,fieldState:n}=S.useController({name:t,control:r}),a=i.value||"#000000",[l,d]=g.useState(a);return g.useEffect(()=>{d(a)},[a]),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("input",{type:"color",value:je(a)?a:"#000000",disabled:o||s,onChange:u=>i.onChange(u.target.value),className:"h-10 w-14 cursor-pointer rounded-lg border border-input bg-transparent p-1 disabled:cursor-not-allowed disabled:opacity-50"}),e.jsx(y.Input,{type:"text",value:l,readOnly:s,disabled:o,onChange:u=>{const m=u.target.value;d(m),je(m)&&i.onChange(m.toUpperCase())},onBlur:()=>{je(l)||d(a),i.onBlur()},className:y.cn("flex-1 font-mono uppercase",n.error&&"border-destructive focus-visible:ring-destructive"),maxLength:7,placeholder:"#000000"})]}),((c=n.error)==null?void 0:c.message)&&e.jsx("p",{className:"text-sm text-destructive",children:n.error.message})]})},Ft=({name:t,control:r,options:o,placeholder:s,disabled:i,readOnly:n})=>{var v,D;const{field:a,fieldState:l}=S.useController({name:t,control:r}),[d,c]=g.useState(""),[u,m]=g.useState(!1),[h,F]=g.useState(-1),x=g.useRef(null),I=g.useRef(null),N=`autocomplete-${t}-listbox`,E=((v=o.find(T=>T.valor===a.value))==null?void 0:v.label)??"",b=d.length>0?o.filter(T=>T.label.toLowerCase().includes(d.toLowerCase())):o;g.useEffect(()=>{const T=V=>{x.current&&!x.current.contains(V.target)&&(m(!1),c(""),F(-1))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]);const p=()=>{m(!1),c(""),F(-1)};g.useEffect(()=>{if(h<0||!I.current)return;const T=I.current.querySelector(`[id="${N}-option-${h}"]`);T==null||T.scrollIntoView({block:"nearest"})},[h,N]);const w=T=>{T.disabled||(a.onChange(T.valor),p())},R=()=>{a.onChange(""),c(""),F(-1)},j=T=>{if(!u){(T.key==="ArrowDown"||T.key==="ArrowUp")&&(T.preventDefault(),m(!0),F(0));return}switch(T.key){case"ArrowDown":T.preventDefault(),F(V=>V<b.length-1?V+1:V);break;case"ArrowUp":T.preventDefault(),F(V=>V>0?V-1:0);break;case"Enter":T.preventDefault(),h>=0&&b[h]&&!b[h].disabled&&w(b[h]);break;case"Escape":T.preventDefault(),p();break;case"Tab":p();break}},C=u&&h>=0?`${N}-option-${h}`:void 0;return e.jsxs("div",{className:"space-y-1",ref:x,children:[e.jsxs("div",{className:"relative",children:[e.jsx(y.Input,{type:"text",role:"combobox","aria-expanded":u,"aria-haspopup":"listbox","aria-autocomplete":"list","aria-controls":N,"aria-activedescendant":C,value:u?d:E,placeholder:s??"Buscar...",disabled:i,readOnly:n,onChange:T=>{c(T.target.value),F(-1),m(!0)},onFocus:()=>!n&&m(!0),onKeyDown:j,className:y.cn("pr-8",l.error&&"border-destructive focus-visible:ring-destructive"),autoComplete:"off"}),e.jsx("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:a.value?e.jsx("button",{type:"button",onClick:R,className:"text-[var(--t-text-muted)] hover:text-[var(--t-text)]",tabIndex:-1,"aria-label":"Limpar seleção",children:e.jsx(A.X,{size:14})}):e.jsx(A.ChevronDown,{size:16,className:"text-muted-foreground pointer-events-none","aria-hidden":"true"})}),u&&!i&&!n&&e.jsx("ul",{role:"listbox",id:N,ref:I,"aria-label":"Opções disponíveis",className:"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-lg border border-input bg-popover shadow-lg",children:b.length===0?e.jsx("li",{role:"option","aria-selected":!1,className:"px-3 py-2 text-sm text-muted-foreground",children:"Nenhuma opção encontrada"}):b.map((T,V)=>e.jsx("li",{id:`${N}-option-${V}`,role:"option","aria-selected":a.value===T.valor,"aria-disabled":T.disabled,onMouseDown:()=>w(T),className:["flex cursor-pointer items-center px-3 py-2 text-sm",T.disabled?"cursor-not-allowed opacity-40":V===h?"bg-accent":"hover:bg-accent",a.value===T.valor?"font-medium text-primary":"text-foreground"].join(" "),children:T.label},T.valor))})]}),((D=l.error)==null?void 0:D.message)&&e.jsx("p",{className:"text-sm text-destructive",role:"alert",children:l.error.message})]})},Ge=({name:t,control:r,placeholder:o,disabled:s,readOnly:i})=>{var d;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=!!a.error;return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{...n,value:n.value??"",type:"time",placeholder:o,disabled:s,readOnly:i,className:y.cn(l&&"border-destructive focus-visible:ring-destructive")}),((d=a.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Tt=({name:t,control:r,startLabel:o="Data inicial",endLabel:s="Data final",disabled:i,readOnly:n})=>{var m;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=a.value??{},c=(h,F)=>{a.onChange({...d,[h]:F})},u=!!l.error;return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Label,{children:o}),e.jsx(y.Input,{type:"date",value:d.start??"",disabled:i,readOnly:n,onChange:h=>c("start",h.target.value),max:d.end??void 0,className:y.cn(u&&"border-destructive focus-visible:ring-destructive")})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Label,{children:s}),e.jsx(y.Input,{type:"date",value:d.end??"",disabled:i,readOnly:n,onChange:h=>c("end",h.target.value),min:d.start??void 0,className:y.cn(u&&"border-destructive focus-visible:ring-destructive")})]})]}),((m=l.error)==null?void 0:m.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},wt=({name:t,control:r,maxRating:o=5,disabled:s,readOnly:i})=>{var c;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=n.value??0,d=Array.from({length:o},(u,m)=>m+1);return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[d.map(u=>e.jsx("button",{type:"button",disabled:s||i,onClick:()=>n.onChange(u===l?0:u),className:"transition-transform hover:scale-110 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded","aria-label":`${u} estrela${u>1?"s":""}`,children:e.jsx(A.Star,{size:24,className:"transition-colors",fill:u<=l?"var(--color-primary)":"transparent",stroke:u<=l?"var(--color-primary)":"currentColor"})},u)),l>0&&e.jsxs("span",{className:"ml-2 text-sm text-muted-foreground",children:[l,"/",o]})]}),((c=a.error)==null?void 0:c.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Dt=({field:t,name:r,control:o,disabled:s,readOnly:i})=>{const n=s||t.isDisabled,a=i||t.isReadOnly;switch(t.tipo){case f.FieldType.EMAIL:return e.jsx(z,{name:r,control:o,type:"email",placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.NUMBER:return e.jsx(z,{name:r,control:o,type:"number",placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.PASSWORD:return e.jsx(z,{name:r,control:o,type:"password",placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.TELEFONE:return e.jsx(re,{name:r,control:o,maskType:"telefone",placeholder:t.placeholder??"(00) 00000-0000",disabled:n,readOnly:a});case f.FieldType.CPF:return e.jsx(re,{name:r,control:o,maskType:"cpf",placeholder:t.placeholder??"000.000.000-00",disabled:n,readOnly:a});case f.FieldType.CEP:return e.jsx(re,{name:r,control:o,maskType:"cep",placeholder:t.placeholder??"00000-000",disabled:n,readOnly:a});case f.FieldType.TEXTAREA:return e.jsx(ge,{name:r,control:o,placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.SELECT:return e.jsx(be,{name:r,control:o,options:t.opcoes??[],placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.CHECKBOX:return e.jsx(ve,{name:r,control:o,label:t.label??"",disabled:n,readOnly:a});case f.FieldType.SWITCH:return e.jsx(qe,{name:r,control:o,label:t.label??"",disabled:n,readOnly:a});case f.FieldType.DATE:return e.jsx(ie,{name:r,control:o,disabled:n,readOnly:a});case f.FieldType.TIME:return e.jsx(Ge,{name:r,control:o,disabled:n,readOnly:a});case f.FieldType.HIDDEN:return e.jsx(ye,{name:r,control:o});default:return e.jsx(z,{name:r,control:o,type:"text",placeholder:t.placeholder,disabled:n,readOnly:a})}},Et=({name:t,control:r,subSchema:o,disabled:s,readOnly:i})=>{if(!o||o.fields.length===0)return null;const n=[...o.fields].sort((a,l)=>a.ordem-l.ordem);return e.jsxs("div",{className:"rounded-xl border border-input bg-muted/30 p-4 space-y-4",children:[o.titulo&&e.jsx("h4",{className:"text-sm font-semibold text-muted-foreground",children:o.titulo}),e.jsx("div",{className:"grid grid-cols-12 gap-4",children:n.map(a=>{const l=`${t}.${a.nome}`,d=a.tipo===f.FieldType.CHECKBOX||a.tipo===f.FieldType.SWITCH||a.tipo===f.FieldType.HIDDEN,c=a.tamanho??6;return e.jsxs("div",{className:`col-span-${c}`,children:[!d&&e.jsxs("label",{className:"mb-1 block text-sm font-medium text-foreground",children:[a.label,a.obrigatorio&&e.jsx("span",{className:"text-destructive",children:" *"})]}),e.jsx(Dt,{field:a,name:l,control:r,disabled:s,readOnly:i})]},a.id)})})]})},Ye=({field:t,control:r,nameOverride:o})=>{var l,d;const s=o??t.nome,{componentMapper:i}=te(),n=i==null?void 0:i[t.tipo];if(n)return e.jsx(n,{name:s,control:r,field:t});const a={name:s,control:r,placeholder:t.placeholder,disabled:t.isDisabled,readOnly:t.isReadOnly};switch(t.tipo){case f.FieldType.TEXTO:return e.jsx(z,{...a,type:"text"});case f.FieldType.EMAIL:return e.jsx(z,{...a,type:"email"});case f.FieldType.NUMBER:return e.jsx(z,{...a,type:"number"});case f.FieldType.PASSWORD:return e.jsx(jt,{...a});case f.FieldType.TEXTAREA:return e.jsx(ge,{...a});case f.FieldType.SELECT:return e.jsx(be,{...a,options:t.opcoes??[]});case f.FieldType.AUTOCOMPLETE:return e.jsx(Ft,{...a,options:t.opcoes??[]});case f.FieldType.SWITCH:return e.jsx(qe,{name:s,control:r,label:t.label,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.SLIDER:return e.jsx(Nt,{name:s,control:r,minValue:t.minValue,maxValue:t.maxValue,step:t.step,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.RATING:return e.jsx(wt,{name:s,control:r,maxRating:t.maxRating,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.COLOR:return e.jsx(Ct,{name:s,control:r,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.TIME:return e.jsx(Ge,{...a});case f.FieldType.DATE_RANGE:return e.jsx(Tt,{name:s,control:r,startLabel:t.dateRangeStartLabel,endLabel:t.dateRangeEndLabel,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.RADIO:return e.jsx(Ce,{...a,options:t.opcoes??[]});case f.FieldType.CHECKBOX:return e.jsx(ve,{name:s,control:r,label:t.label,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.CHECKBOX_GROUP:return e.jsx(Ne,{...a,options:t.opcoes??[]});case f.FieldType.DATE:return e.jsx(ie,{name:s,control:r,disabled:t.isDisabled,readOnly:t.isReadOnly,validacao:t.validacao});case f.FieldType.DATETIME:return e.jsx(ie,{name:s,control:r,isDatetime:!0,disabled:t.isDisabled,readOnly:t.isReadOnly,validacao:t.validacao});case f.FieldType.FILE:return e.jsx(Fe,{name:s,control:r,disabled:t.isDisabled,fileTypes:(l=t.validacao)==null?void 0:l.fileTypes,maxFileSize:(d=t.validacao)==null?void 0:d.maxFileSize});case f.FieldType.TELEFONE:return e.jsx(re,{...a,maskType:"telefone"});case f.FieldType.CPF:return e.jsx(re,{...a,maskType:"cpf"});case f.FieldType.CEP:return e.jsx(Te,{name:s,control:r,placeholder:t.placeholder,disabled:t.isDisabled,readOnly:t.isReadOnly,cepFillMap:t.cepFillMap});case f.FieldType.HIDDEN:return e.jsx(ye,{name:s,control:r});case f.FieldType.PARTICIPATION_TYPE:return e.jsx(Ue,{name:s,control:r});case f.FieldType.PAYMENT_METHOD:return e.jsx(ze,{name:s,control:r,relatedFieldName:t.relatedFieldName});case f.FieldType.TERMS:return e.jsx(Ke,{name:s,control:r,label:t.label,termoTexto:t.termoTexto,termoPdfUrl:t.termoPdfUrl,termoPdfUploadId:t.termoPdfUploadId});case f.FieldType.FIELD_ARRAY:return e.jsx(He,{name:s,control:r,subFields:t.subFields,minItems:t.minItems,maxItems:t.maxItems,itemLabel:t.itemLabel,addLabel:t.addLabel});case f.FieldType.SUB_FORM:return e.jsx(Et,{name:s,control:r,subSchema:t.subSchema,disabled:t.isDisabled,readOnly:t.isReadOnly});default:return e.jsx(z,{...a,type:"text"})}},$t=({container:t,control:r})=>{var I;const{externalData:o={},fieldResolvers:s}=te(),i=t.icone?fe[t.icone]:void 0,n=o,a=g.useMemo(()=>he(t,n),[t,JSON.stringify(n)]),l=g.useMemo(()=>[...a.campos].sort((N,E)=>N.ordem-E.ordem),[a.campos]),d=S.useWatch({control:r}),{wrapperClass:c,wrapperStyle:u,headerClass:m,headerStyle:h,tmpl:F}=Me(),x=N=>{if(!B(N.condicional,d,o))return null;let b=N;if(N.resolvePropsKey&&(s!=null&&s[N.resolvePropsKey])){const C=s[N.resolvePropsKey](N,d,o);b={...N,...C}}if(b.opcoesFromVar){const C=o[b.opcoesFromVar];Array.isArray(C)&&(b={...b,opcoes:C.map(v=>typeof v=="string"?{valor:v,label:v}:v&&typeof v=="object"&&"valor"in v&&"label"in v?v:{valor:String(v),label:String(v)})})}const p=b.tamanho??12,w=b.inicioColuna,R=w?`${w} / span ${p}`:`span ${p}`,j=e.jsx(Ye,{field:b,control:r});return b.tipo===f.FieldType.CHECKBOX||b.tipo===f.FieldType.HIDDEN||b.tipo===f.FieldType.SWITCH?e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:R},children:j},b.id):e.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:R},children:[e.jsxs("label",{className:"font-medium flex items-center gap-1",style:{color:"var(--t-text)"},children:[b.label,b.obrigatorio&&e.jsx("span",{className:"text-destructive",children:"*"})]}),j,b.hint&&e.jsx("p",{className:"text-xs text-muted-foreground",children:b.hint})]},b.id)};return e.jsxs("div",{className:c,style:u,children:[(a.titulo||i)&&e.jsx("div",{className:m,style:h,children:e.jsxs("div",{className:"flex items-center gap-3",children:[i&&e.jsx("div",{className:"p-2 rounded-xl",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:e.jsx(i,{className:"w-5 h-5",style:{color:"var(--t-primary)"}})}),e.jsxs("div",{children:[e.jsx("h3",{className:((I=F.typography)==null?void 0:I.stepTitleClass)??"text-lg font-semibold",style:{color:"var(--t-text)"},children:a.titulo}),a.descricao&&e.jsx("p",{className:"text-sm",style:{color:"var(--t-text-muted)"},children:a.descricao})]})]})}),e.jsx("div",{className:"p-6 grid grid-cols-12 gap-4",children:l.map(x)})]})},At=({container:t,control:r})=>{var C;const{externalData:o={}}=te(),s=t.nome??"__invalid__",i=t.minItems??1,n=t.maxItems,a=t.itemLabel??"Item",l=t.icone?fe[t.icone]:void 0,d=o,c=g.useMemo(()=>he(t,d),[t,JSON.stringify(d)]),u=g.useMemo(()=>[...c.campos].sort((v,D)=>v.ordem-D.ordem),[c.campos]),m=g.useCallback(()=>{const v={};for(const D of u)D.initialValue!==void 0?v[D.nome]=typeof D.initialValue=="string"?W(D.initialValue,d):D.initialValue:D.defaultValue!==void 0&&(v[D.nome]=D.defaultValue);return v},[u,d]),{fields:h,append:F,remove:x}=S.useFieldArray({control:r,name:s});g.useEffect(()=>{if(t.nome&&h.length<i)for(let v=h.length;v<i;v++)F(m())},[i]);const I=S.useWatch({control:r}),N=g.useMemo(()=>{const v=I[s];return Array.isArray(v)?v:[]},[I,s]),{wrapperClass:E,wrapperStyle:b,headerClass:p,headerStyle:w,tmpl:R}=Me();if(!t.nome)return console.error("[RepeatableContainerRenderer] container.nome é obrigatório para containers repetíveis. Container id:",t.id),null;const j=(v,D)=>{const T=N[D]??{};if(!B(v.condicional,T,o))return null;const M=`${s}.${D}.${v.nome}`,K=v.tamanho??12,q=v.inicioColuna,Y=q?`${q} / span ${K}`:`span ${K}`,Q=e.jsx(Ye,{field:v,control:r,nameOverride:M});return v.tipo===f.FieldType.CHECKBOX||v.tipo===f.FieldType.HIDDEN?e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:Y},children:Q},`${v.id}-${D}`):e.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:Y},children:[e.jsxs("label",{className:"font-medium flex items-center gap-1",style:{color:"var(--t-text)"},children:[v.label,v.obrigatorio&&e.jsx("span",{className:"text-destructive",children:"*"})]}),Q,v.hint&&e.jsx("p",{className:"text-xs text-muted-foreground",children:v.hint})]},`${v.id}-${D}`)};return e.jsxs("div",{className:E,style:b,children:[(c.titulo||l)&&e.jsx("div",{className:p,style:w,children:e.jsxs("div",{className:"flex items-center gap-3",children:[l&&e.jsx("div",{className:"p-2 rounded-xl",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:e.jsx(l,{className:"w-5 h-5",style:{color:"var(--t-primary)"}})}),e.jsxs("div",{children:[e.jsx("h3",{className:((C=R.typography)==null?void 0:C.stepTitleClass)??"text-lg font-semibold",style:{color:"var(--t-text)"},children:c.titulo}),c.descricao&&e.jsx("p",{className:"text-sm",style:{color:"var(--t-text-muted)"},children:c.descricao})]})]})}),e.jsxs("div",{className:"p-6 space-y-4",children:[h.map((v,D)=>e.jsxs("div",{className:"border border-input rounded-lg p-4 bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0 bg-primary text-primary-foreground",children:D+1}),e.jsxs("span",{className:"text-sm font-semibold",children:[a," ",D+1]})]}),h.length>i&&e.jsx("button",{type:"button",onClick:()=>x(D),className:"inline-flex items-center justify-center rounded-md p-1.5 text-destructive hover:bg-destructive/10 transition-colors","aria-label":"Remover item",children:e.jsx(A.Trash2,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"grid grid-cols-12 gap-4",children:u.map(T=>j(T,D))})]},v.id)),(!n||h.length<n)&&e.jsxs("button",{type:"button",className:"w-full flex items-center justify-center gap-2 py-2 px-4 border border-input rounded-lg text-sm hover:bg-accent transition-colors",onClick:()=>F(m()),children:[e.jsx(A.Plus,{className:"w-4 h-4"}),"Adicionar ",a.toLowerCase()]}),n&&e.jsxs("p",{className:"text-xs text-center text-muted-foreground",children:["Máximo de ",n," ",a.toLowerCase(),n>1?"s":""]})]})]})},Ze=t=>t.container.repeatable&&t.container.nome?e.jsx(At,{...t}):e.jsx($t,{...t}),Je=({step:t,control:r,externalData:o={}})=>{const s=g.useMemo(()=>[...t.containers].sort((n,a)=>n.ordem-a.ordem),[t.containers]),i=S.useWatch({control:r});return e.jsx("div",{className:"grid grid-cols-12 gap-4",children:s.map(n=>{if(n.condicional&&!B(n.condicional,i,o))return null;const a=n.tamanho??12,l=n.inicioColuna,d=l?`${l} / span ${a}`:`span ${a}`;return e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:d},children:e.jsx(Ze,{container:n,control:r})},n.id)})})},ce=g.createContext({submitting:!1,warnings:{},requestSubmit:()=>{}}),It=ce.Provider,St=()=>{const t=S.useFormContext(),r=g.useContext(ce);return{change:(o,s)=>t.setValue(o,s,{shouldValidate:!0,shouldDirty:!0}),reset:o=>t.reset(o),submit:r.requestSubmit,getState:()=>{const{errors:o,isDirty:s,isValid:i}=t.formState;return{values:t.getValues(),errors:Object.fromEntries(Object.entries(o).map(([n,a])=>[n,a==null?void 0:a.message])),warnings:r.warnings,dirty:s,valid:i,submitting:r.submitting}}}},Qe=()=>{const t=S.useFormContext(),r=g.useContext(ce),o=S.useWatch({control:t.control}),{errors:s,isDirty:i,isValid:n}=t.formState;return{values:o,errors:Object.fromEntries(Object.entries(s).map(([a,l])=>[a,l==null?void 0:l.message])),warnings:r.warnings,dirty:i,valid:n,submitting:r.submitting}},Rt=t=>{var n;const r=S.useFormContext(),{warnings:o}=g.useContext(ce),s=S.useWatch({control:r.control,name:t}),i=r.getFieldState(t,r.formState);return{value:s,error:(n=i.error)==null?void 0:n.message,warning:o[t],dirty:i.isDirty,touched:i.isTouched,valid:!i.error}},kt=t=>{var n;const{control:r}=S.useFormContext(),{warnings:o}=g.useContext(ce),{field:s,fieldState:i}=S.useController({name:t,control:r});return{input:{name:s.name,value:s.value,onChange:s.onChange,onBlur:s.onBlur,ref:s.ref},meta:{error:(n=i.error)==null?void 0:n.message,warning:o[t],touched:i.isTouched,dirty:i.isDirty,valid:!i.error}}},ke=({stepIndex:t,totalSteps:r,step:o,defaultValues:s,externalData:i,fieldErrors:n,isSubmitting:a,submitError:l,validatorMapper:d={},onWarningsChange:c,onValuesChange:u,onSubmit:m,onBack:h})=>{const F=t===r-1,x=g.useMemo(()=>JSON.stringify(i),[i]),I=g.useMemo(()=>Oe(o,i,d),[o.id,x]),N=g.useMemo(()=>Pe(o,i,d),[o.id,x]),[E,b]=g.useState({}),p=g.useRef(c);p.current=c;const w=i,R=g.useMemo(()=>Le(o,w),[o,x]),j=S.useForm({resolver:I,defaultValues:s,mode:"onTouched"}),{control:C,handleSubmit:v,setError:D,clearErrors:T,setValue:V}=j;g.useEffect(()=>{T();for(const[$,G]of Object.entries(n))D($,{type:"server",message:G})},[n,D,T]);const M=g.useMemo(()=>o.containers.filter($=>!$.repeatable).flatMap($=>$.campos).filter($=>!!$.condicional),[o.containers]),K=g.useMemo(()=>o.containers.filter($=>!!$.condicional),[o.containers]),q=g.useMemo(()=>o.containers.filter($=>!$.repeatable).flatMap($=>$.campos).filter($=>{var G;return $.condicional&&((G=$.setValues)==null?void 0:G.length)}),[o.containers]),Y=g.useMemo(()=>o.containers.filter($=>$.repeatable&&!!$.nome).map($=>({container:$,fields:$.campos.filter(G=>!!G.condicional)})).filter($=>$.fields.length>0),[o.containers]),Q=g.useRef({}),U=g.useRef(!0),X=S.useWatch({control:C}),k=g.useRef(u);k.current=u,g.useEffect(()=>{var $;($=k.current)==null||$.call(k,X)},[X]),g.useEffect(()=>{let $=!1;return N(X).then(J=>{var O;$||(b(J),(O=p.current)==null||O.call(p,J))}).catch(J=>{$||console.error("[StepForm] warnComputer error:",J)}),()=>{$=!0}},[X,N]),g.useEffect(()=>{var J;if(!M.length&&!q.length&&!K.length&&!Y.length)return;const $=X;for(const O of M)if(!B(O.condicional,$,i)){if(T(O.nome),O.tipo===f.FieldType.FIELD_ARRAY){const L=$[O.nome];Array.isArray(L)&&L.forEach((P,_)=>{(O.subFields??[]).forEach(Z=>T(`${O.nome}.${_}.${Z.nome}`))})}if(O.clearedValue!==void 0){const L=O.clearedValue??"";$[O.nome]!==L&&V(O.nome,L,{shouldValidate:!1})}}for(const O of K)if(!B(O.condicional,$,i))if(O.repeatable&&O.nome)(Array.isArray($[O.nome])?$[O.nome]:[]).forEach((P,_)=>{for(const Z of O.campos)T(`${O.nome}.${_}.${Z.nome}`)});else for(const L of O.campos){T(L.nome);const P=L.clearedValue!==void 0?L.clearedValue:void 0;P!==void 0&&$[L.nome]!==P&&V(L.nome,P,{shouldValidate:!1})}for(const{container:O,fields:ee}of Y){const L=O.nome,P=Array.isArray($[L])?$[L]:[];for(let _=0;_<P.length;_++){const Z=P[_];for(const se of ee)if(!B(se.condicional,Z,i)&&(T(`${L}.${_}.${se.nome}`),se.clearedValue!==void 0)){const we=se.clearedValue??"";Z[se.nome]!==we&&V(`${L}.${_}.${se.nome}`,we,{shouldValidate:!1})}}}const G=U.current;for(const O of q){const ee=B(O.condicional,$,i),L=G?ee:Q.current[O.nome]??!1;if(ee&&!L&&((J=O.setValues)!=null&&J.length))for(const P of O.setValues){const _=typeof P.valor=="string"?W(P.valor,w):P.valor;V(P.campo,_,{shouldValidate:!1})}Q.current[O.nome]=ee}U.current=!1},[X,M,q,K,Y,i,V,T]);const H=R.icone?fe[R.icone]:void 0,ne=g.useMemo(()=>()=>{j.handleSubmit(m)()},[m]);return e.jsx(S.FormProvider,{...j,children:e.jsx(It,{value:{submitting:a,warnings:E,requestSubmit:ne},children:e.jsx("form",{onSubmit:v(m),noValidate:!0,onKeyDown:$=>{$.key==="Enter"&&$.target.tagName==="INPUT"&&$.preventDefault()},children:e.jsxs("div",{className:"space-y-6",children:[R.showLabel!==!1&&e.jsxs("div",{className:"text-center space-y-2",children:[H&&e.jsx("div",{className:"w-12 h-12 mx-auto rounded-xl flex items-center justify-center",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:e.jsx(H,{className:"w-6 h-6",style:{color:"var(--t-primary)"}})}),e.jsx("h2",{className:"text-2xl font-bold",style:{color:"var(--t-text)"},children:R.titulo}),R.descricao&&e.jsx("p",{className:"text-sm text-muted-foreground",children:R.descricao})]}),e.jsx(Je,{step:R,control:C,externalData:i}),e.jsxs("div",{className:"flex items-center justify-between gap-4 pt-6 pb-2",children:[e.jsxs(y.Button,{type:"button",variant:"outline",onClick:h,disabled:t===0,className:y.cn(t>0&&"border-primary/40 text-primary hover:bg-primary/5"),children:[e.jsx(A.ChevronLeft,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Anterior"})]}),e.jsxs("span",{className:"text-xs font-semibold tabular-nums sm:hidden text-muted-foreground",children:[t+1,"/",r]}),e.jsxs(y.Button,{type:"submit",disabled:a,children:[a?e.jsx(A.Loader2,{className:"w-4 h-4 animate-spin"}):F?e.jsx(A.Check,{className:"w-4 h-4"}):e.jsx(A.ChevronRight,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:F?"Finalizar":"Próximo"})]})]}),l&&e.jsx("p",{className:"text-sm text-destructive mt-2 text-center",children:l})]})})})})},pe=t=>{if(t)return fe[t]},Ot=({steps:t,currentStep:r,onStepClick:o})=>e.jsx("div",{className:"flex items-center justify-center gap-2 flex-wrap",children:t.map((s,i)=>e.jsx("div",{role:o?"button":void 0,tabIndex:o?0:void 0,onClick:()=>o==null?void 0:o(i),onKeyDown:n=>n.key==="Enter"&&(o==null?void 0:o(i)),className:y.cn("w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all shrink-0",o&&"cursor-pointer hover:opacity-80"),style:i===r?{background:"var(--t-primary)",color:"#ffffff",boxShadow:"0 0 0 3px color-mix(in srgb, var(--t-primary) 30%, transparent)"}:i<r?{background:"#22c55e",color:"#ffffff"}:{background:"hsl(var(--muted))",color:"hsl(var(--muted-foreground))"},children:i<r?e.jsx(A.Check,{className:"w-4 h-4"}):i+1},s.id))}),Pt=({steps:t,currentStep:r,onStepClick:o})=>e.jsx("div",{className:"flex items-center justify-center gap-2 flex-wrap",children:t.map((s,i)=>{const n=pe(s.icone)??A.CircleDot;return e.jsx("div",{role:o?"button":void 0,tabIndex:o?0:void 0,onClick:()=>o==null?void 0:o(i),onKeyDown:a=>a.key==="Enter"&&(o==null?void 0:o(i)),className:y.cn("w-9 h-9 rounded-full flex items-center justify-center transition-all shrink-0",o&&"cursor-pointer hover:opacity-80"),style:i===r?{background:"var(--t-primary)",color:"#ffffff",boxShadow:"0 0 0 3px color-mix(in srgb, var(--t-primary) 30%, transparent)"}:i<r?{background:"#22c55e",color:"#ffffff"}:{background:"hsl(var(--muted))",color:"hsl(var(--muted-foreground))"},children:i<r?e.jsx(A.Check,{className:"w-4 h-4"}):e.jsx(n,{className:"w-4 h-4"})},s.id)})}),Vt=({steps:t,currentStep:r,position:o,orientation:s="horizontal",onStepClick:i})=>s==="vertical"?e.jsx("div",{className:"flex flex-col gap-0",children:t.map((n,a)=>{const l=pe(n.icone)??A.CircleDot,d=a===r,c=a<r,u=a===t.length-1;return e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx("button",{type:"button",onClick:()=>i==null?void 0:i(a),className:y.cn("w-8 h-8 rounded-full flex items-center justify-center transition-all shrink-0",i&&"cursor-pointer hover:opacity-80"),style:d?{background:"var(--t-primary)",color:"#fff",boxShadow:"0 0 10px color-mix(in srgb, var(--t-primary) 50%, transparent)"}:c?{background:"#22c55e",color:"#fff"}:{background:"color-mix(in srgb, var(--t-text) 8%, transparent)",color:"var(--t-text-muted)",border:"1.5px solid color-mix(in srgb, var(--t-border) 60%, transparent)"},children:c?e.jsx(A.Check,{className:"w-3.5 h-3.5"}):e.jsx(l,{className:"w-3.5 h-3.5"})}),!u&&e.jsx("div",{className:"w-[2px] my-1",style:{height:"24px",background:c?"#22c55e":"color-mix(in srgb, var(--t-border) 50%, transparent)"}})]}),e.jsx("span",{className:"text-sm font-medium leading-tight mt-1.5",style:d?{color:"var(--t-primary)"}:c?{color:"#16a34a"}:{color:"var(--t-text-muted)"},children:n.label??n.id})]},n.id)})}):e.jsx("div",{className:"w-full flex items-start",children:t.map((n,a)=>{const l=pe(n.icone)??A.CircleDot,d=a===r,c=a<r,u=a===t.length-1;return e.jsxs("div",{className:y.cn("flex items-start",!u&&"flex-1"),children:[e.jsxs("div",{className:"flex flex-col items-center gap-1.5 w-[56px] shrink-0 mx-auto",children:[e.jsx("button",{type:"button",onClick:()=>i==null?void 0:i(a),className:y.cn("w-10 h-10 rounded-full flex items-center justify-center transition-all shrink-0",i&&"cursor-pointer hover:opacity-80"),style:d?{background:"var(--t-primary)",color:"#ffffff",boxShadow:"0 0 12px color-mix(in srgb, var(--t-primary) 50%, transparent)"}:c?{background:"#22c55e",color:"#ffffff"}:{background:"color-mix(in srgb, var(--t-text) 8%, transparent)",color:"var(--t-text-muted)",border:"1.5px solid color-mix(in srgb, var(--t-border) 60%, transparent)"},children:c?e.jsx(A.Check,{className:"w-4 h-4"}):e.jsx(l,{className:"w-4 h-4"})}),e.jsx("span",{className:"text-[10px] font-medium text-center leading-tight line-clamp-2 px-0.5",style:d?{color:"var(--t-primary)"}:c?{color:"#16a34a"}:{color:"var(--t-text-muted)"},children:n.label??n.id})]}),!u&&e.jsx("div",{className:"flex-1 h-[1.5px] mt-5 mx-1",style:{background:c?"linear-gradient(90deg, var(--t-primary), color-mix(in srgb, var(--t-primary) 40%, transparent))":"color-mix(in srgb, var(--t-border) 50%, transparent)"}})]},n.id)})}),et=({steps:t,currentStep:r,onStepClick:o,className:s,forceShow:i})=>{const n=le.useTemplate(),{layout:a}=n;if(!a.showStepIndicators||t.length<=1&&!i)return null;const l=a.stepIndicatorVariant??"numbers",d=a.stepIndicatorPosition??"top-center",c=a.stepIndicatorOrientation??"horizontal",u=(r+1)/t.length*100,m=t[r],h=pe(m==null?void 0:m.icone)??A.CircleDot,F=e.jsx("div",{className:"h-1 rounded-full overflow-hidden",style:{background:"color-mix(in srgb, var(--t-primary) 15%, transparent)"},children:e.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${u}%`,background:"linear-gradient(90deg, var(--t-primary), var(--t-accent))"}})}),x=e.jsxs("div",{className:"block sm:hidden space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full flex items-center justify-center shrink-0",style:{background:"var(--t-primary)",color:"#fff"},children:e.jsx(h,{className:"w-5 h-5"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold leading-tight truncate",style:{color:"var(--t-text)"},children:(m==null?void 0:m.label)??(m==null?void 0:m.id)}),e.jsxs("p",{className:"text-xs leading-tight",style:{color:"var(--t-text-muted)"},children:["Passo ",r+1," de ",t.length]})]})]}),F]}),I=e.jsxs("div",{className:"hidden sm:block",children:[l==="numbers"&&e.jsx(Ot,{steps:t,currentStep:r,onStepClick:o}),l==="icons"&&e.jsx(Pt,{steps:t,currentStep:r,onStepClick:o}),l==="icons-labeled"&&e.jsx(Vt,{steps:t,currentStep:r,position:d,orientation:c,onStepClick:o})]}),N=a.showProgressBar?e.jsx("div",{className:"hidden sm:block",children:F}):null;return c==="vertical"?e.jsxs("div",{className:y.cn("flex gap-6 items-start",s),children:[x,e.jsxs("div",{className:"hidden sm:flex gap-6 items-start shrink-0",children:[I,N&&e.jsx("div",{className:"flex-1 pt-4",children:N})]})]}):e.jsxs("div",{className:y.cn("space-y-3",s),children:[x,e.jsxs("div",{className:"hidden sm:block space-y-3",children:[I,N]})]})},Lt=(t,r,o)=>{var n;const s={...r},i=o;for(const a of t.containers){for(const l of a.campos)if(s[l.nome]===void 0&&(l.initialValue!==void 0?s[l.nome]=typeof l.initialValue=="string"?W(l.initialValue,i):l.initialValue:l.defaultValue!==void 0&&(s[l.nome]=l.defaultValue)),l.tipo===f.FieldType.FIELD_ARRAY&&((n=l.subFields)!=null&&n.length)){const d=s[l.nome];Array.isArray(d)&&d.length>0&&(s[l.nome]=d.map(c=>{const u={...c};for(const m of l.subFields)u[m.nome]===void 0&&(m.initialValue!==void 0?u[m.nome]=typeof m.initialValue=="string"?W(m.initialValue,i):m.initialValue:m.defaultValue!==void 0&&(u[m.nome]=m.defaultValue));return u}))}if(a.repeatable&&a.nome){const l=s[a.nome];Array.isArray(l)&&l.length>0&&(s[a.nome]=l.map(d=>{const c={...d};for(const u of a.campos)c[u.nome]===void 0&&(u.initialValue!==void 0?c[u.nome]=typeof u.initialValue=="string"?W(u.initialValue,i):u.initialValue:u.defaultValue!==void 0&&(c[u.nome]=u.defaultValue));return c}))}}return s},Mt=({schema:t,initialValues:r={},initialStep:o=0,onSubmitStep:s,onComplete:i,template:n,formTitle:a,externalData:l={},fieldErrors:d={},uploadFile:c,cepLookup:u,resolveTermsUploadUrl:m,fieldResolvers:h,validatorMapper:F,componentMapper:x,paymentMethodOptions:I,onValuesChange:N,className:E,StepIndicator:b=et})=>{const[p,w]=g.useState(()=>o),[R,j]=g.useState({...r}),[C,v]=g.useState(()=>o),[D,T]=g.useState(!1),[V,M]=g.useState(null),[K,q]=g.useState({}),Y=g.useMemo(()=>JSON.stringify(l),[l]),Q=g.useMemo(()=>JSON.stringify(t.stepConfig),[t.stepConfig]),U=g.useMemo(()=>{const P=le.getTemplateConfig(n);return t.stepConfig?{...P,layout:{...P.layout,...t.stepConfig}}:P},[n,Q]),X=g.useMemo(()=>[...t.steps].sort((P,_)=>P.ordem-_.ordem),[t.steps]),k=X.length,H=k>0?X[Math.min(p,k-1)]:null,ne=g.useMemo(()=>H?Lt(H,R,l):{},[H,R,Y]),$=g.useMemo(()=>({uploadFile:c,cepLookup:u,resolveTermsUploadUrl:m,externalData:l,fieldResolvers:h,validatorMapper:F,fieldWarnings:K,componentMapper:x,paymentMethodOptions:I}),[c,u,m,h,F,K,x,I,Y]),G=g.useCallback(async P=>{if(!D){T(!0),M(null);try{const _={...R,...P};if(j(_),s&&await s(p,P),p===k-1)i&&await i(_);else{const Z=p+1;w(Z),v(se=>Math.max(se,Z))}}catch(_){console.error("[FormRenderer] Submit error:",_);const Z=_ instanceof Error?_.message:"Ocorreu um erro. Tente novamente.";M(Z)}finally{T(!1)}}},[p,R,D,k,s,i]),J=g.useCallback(()=>{p>0&&w(P=>P-1)},[p]);if(!H)return e.jsx(xe.Provider,{value:$,children:e.jsx(le.TemplateProvider,{config:U,className:`min-h-dvh ${U.wrapperClass??""} ${E??""}`,renderWrapper:!0,children:e.jsx("div",{className:"w-full max-w-4xl mx-auto px-4 py-6 sm:px-6 text-center text-muted-foreground",children:"Nenhum step configurado."})})});const O=U.layout.eventTitleStyle??"bar",ee=(U.layout.stepIndicatorOrientation??"horizontal")==="vertical",L=k>=1?e.jsx(b,{steps:X.map(P=>({id:P.id,label:P.titulo,icone:P.icone})),currentStep:p,onStepClick:P=>{P!==p&&P<=C&&w(P)}}):null;return e.jsx(xe.Provider,{value:$,children:e.jsx(le.TemplateProvider,{config:U,className:`min-h-dvh ${U.wrapperClass??""} ${E??""}`,renderWrapper:!0,children:e.jsxs("div",{className:"w-full max-w-4xl mx-auto px-4 py-6 sm:px-6",children:[a&&O==="bar"&&e.jsx("div",{className:"w-full text-center text-sm font-medium py-2.5 px-4 mb-6 rounded-lg border border-input text-muted-foreground bg-muted/30",children:a}),a&&O==="inline"&&e.jsxs("div",{className:"text-center mb-6",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest mb-1",style:{color:"var(--t-text-muted)"},children:"Inscrição"}),e.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--t-text)"},children:a}),e.jsx("div",{className:"h-0.5 w-12 mx-auto mt-3 rounded-full",style:{background:"var(--t-primary)"}})]}),ee?e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"hidden sm:block shrink-0 w-44 pt-1",children:L}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"sm:hidden mb-6",children:L}),e.jsx(ke,{stepIndex:p,totalSteps:k,step:H,defaultValues:ne,externalData:l,fieldErrors:d,isSubmitting:D,submitError:V,validatorMapper:F,onWarningsChange:q,onValuesChange:N,onSubmit:G,onBack:J},p)]})]}):e.jsxs(e.Fragment,{children:[L&&e.jsx("div",{className:"mb-8",children:L}),e.jsx(ke,{stepIndex:p,totalSteps:k,step:H,defaultValues:ne,externalData:l,fieldErrors:d,isSubmitting:D,submitError:V,validatorMapper:F,onWarningsChange:q,onValuesChange:N,onSubmit:G,onBack:J},p)]})]})})})},_t=({children:t,render:r,onChange:o})=>{const s=Qe(),i=g.useRef(o);return i.current=o,g.useEffect(()=>{var n;(n=i.current)==null||n.call(i,s)},[s.values,s.dirty,s.valid,s.submitting,s.errors,s.warnings]),r?e.jsx(e.Fragment,{children:r(s)}):typeof t=="function"?e.jsx(e.Fragment,{children:t(s)}):t!==void 0?e.jsx(e.Fragment,{children:t}):null};exports.ContainerRenderer=Ze;exports.DFCepField=Te;exports.DFCheckbox=ve;exports.DFCheckboxGroup=Ne;exports.DFDateField=ie;exports.DFFieldArray=He;exports.DFFileUpload=Fe;exports.DFHidden=ye;exports.DFMaskedInput=re;exports.DFParticipationType=Ue;exports.DFPaymentMethod=ze;exports.DFRadioGroup=Ce;exports.DFSelect=be;exports.DFTerms=Ke;exports.DFTextField=z;exports.DFTextarea=ge;exports.DefaultStepIndicator=et;exports.FormRenderer=Mt;exports.FormSpy=_t;exports.OPCOES_POR_DIA=We;exports.OPCOES_TODOS_OS_DIAS=Xe;exports.RendererContext=xe;exports.StepRenderer=Je;exports.evaluateFieldCondition=B;exports.interpolate=W;exports.interpolateContainer=he;exports.interpolateField=Ve;exports.interpolateStep=Le;exports.makeStepResolver=Oe;exports.makeStepWarnComputer=Pe;exports.useField=Rt;exports.useFieldApi=kt;exports.useFormApi=St;exports.useFormState=Qe;exports.useRendererContext=te;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("react"),le=require("@schema-forms-data/templates"),S=require("react-hook-form"),A=require("lucide-react"),y=require("@schema-forms-data/ui"),f=require("@schema-forms-data/core");function st(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}return r.default=t,Object.freeze(r)}const fe=st(A),xe=g.createContext({}),te=()=>g.useContext(xe),B=(t,r,o={})=>{if(!t)return!0;if("and"in t||"or"in t){const c="and"in t&&Array.isArray(t.and)&&t.and.length>0,u="or"in t&&Array.isArray(t.or)&&t.or.length>0;return c&&u?(console.warn("[evaluateFieldCondition] FieldConditionGroup com `and` e `or` simultâneos — apenas `and` será avaliado."),t.and.every(m=>B(m,r,o))):c?t.and.every(m=>B(m,r,o)):u?t.or.some(m=>B(m,r,o)):!0}const s=t;if(!s.campoId)return!0;const i=s.source==="evento"?o[s.campoId]:r[s.campoId];if(Array.isArray(i)){const c=s.valor;switch(s.operador){case"contem":return i.includes(c);case"naoContem":return!i.includes(c);case"vazio":return i.length===0;case"naoVazio":return i.length>0;case"igual":return i.length===1&&i[0]===c;case"diferente":return!(i.length===1&&i[0]===c);default:return!0}}const n=i==null||i===!1?"":i===!0?"1":String(i),a=s.valor!==void 0?String(s.valor):"",l=Number(n),d=Number(a);switch(s.operador){case"igual":return n===a;case"diferente":return n!==a;case"vazio":return!n;case"naoVazio":return!!n;case"contem":return n.includes(a);case"naoContem":return!n.includes(a);case"maiorQue":return!isNaN(l)&&!isNaN(d)?l>d:n>a;case"menorQue":return!isNaN(l)&&!isNaN(d)?l<d:n<a;case"maiorOuIgual":return!isNaN(l)&&!isNaN(d)?l>=d:n>=a;case"menorOuIgual":return!isNaN(l)&&!isNaN(d)?l<=d:n<=a;default:return!0}},rt=/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/,nt=/^\(?\d{2}\)?\s?\d{4,5}-?\d{4}$/,at=/^\d{5}-?\d{3}$/,ot=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,it=t=>{const r=t.replace(/\D/g,"");if(r.length!==11||/^(\d)\1{10}$/.test(r))return!1;const o=s=>{let i=0;for(let a=0;a<s;a++)i+=parseInt(r[a])*(s+1-a);const n=i*10%11;return n>=10?0:n};return o(9)===parseInt(r[9])&&o(10)===parseInt(r[10])},de=new Map,lt=t=>{if(de.has(t))return de.get(t);try{const r=t.startsWith("/")?t.replace(/\/g(?=[^\/]*$)/,"/"):t,o=new RegExp(r);return de.set(t,o),o}catch{return de.set(t,null),null}},ue=(t,r,o={})=>{const s=t.validacao;if(t.tipo===f.FieldType.CHECKBOX||t.tipo===f.FieldType.SWITCH)return t.obrigatorio&&!r?"Campo obrigatório":void 0;if(t.tipo===f.FieldType.SLIDER){const n=r!=null&&r!==""?Number(r):NaN;return t.obrigatorio&&isNaN(n)?"Campo obrigatório":isNaN(n)?void 0:(s==null?void 0:s.min)!==void 0&&n<s.min?`Valor mínimo: ${s.min}`:(s==null?void 0:s.max)!==void 0&&n>s.max?`Valor máximo: ${s.max}`:void 0}if(t.tipo===f.FieldType.RATING){const n=r!==void 0?Number(r):0;return t.obrigatorio&&(!n||n<1)?"Avaliação obrigatória":void 0}if(t.tipo===f.FieldType.DATE_RANGE){const n=r;if(t.obrigatorio){if(!(n!=null&&n.start))return"Data inicial obrigatória";if(!(n!=null&&n.end))return"Data final obrigatória"}return n!=null&&n.start&&(n!=null&&n.end)&&n.start>n.end?"A data inicial deve ser menor ou igual à data final":void 0}if(t.tipo===f.FieldType.PARTICIPATION_TYPE){if(!t.obrigatorio)return;const n=r;return n!=null&&n.tipo?n.tipo==="por_dia"&&!n.data?"Selecione um dia para participar":"genero"in(n??{})&&!(n!=null&&n.genero)?"Selecione o sexo":void 0:"Selecione o tipo de participação"}if(t.tipo===f.FieldType.CHECKBOX_GROUP){const n=Array.isArray(r)?r:[];return t.obrigatorio&&n.length===0?"Selecione pelo menos uma opção":void 0}if(t.tipo===f.FieldType.FILE)return t.obrigatorio&&!r?"Arquivo obrigatório":void 0;if(t.tipo===f.FieldType.TERMS)return t.obrigatorio&&r!=="accepted"?"Você precisa aceitar os termos para continuar":void 0;if(t.tipo===f.FieldType.NUMBER){const n=r!=null?String(r):"";if(t.obrigatorio&&!n)return"Campo obrigatório";if(!n)return;const a=Number(n);return isNaN(a)?"Deve ser um número":(s==null?void 0:s.min)!==void 0&&a<s.min?`Valor mínimo: ${s.min}`:(s==null?void 0:s.max)!==void 0&&a>s.max?`Valor máximo: ${s.max}`:void 0}const i=r!=null?String(r):"";if(t.obrigatorio&&!i.trim())return"Campo obrigatório";if(i){if(t.tipo===f.FieldType.EMAIL&&!ot.test(i))return"E-mail inválido";if(t.tipo===f.FieldType.CPF&&(!rt.test(i)||!it(i)))return"CPF inválido";if(t.tipo===f.FieldType.TELEFONE&&!nt.test(i))return"Telefone inválido";if(t.tipo===f.FieldType.CEP&&!at.test(i))return"CEP inválido";if(s!=null&&s.minLength&&i.length<s.minLength)return`Mínimo ${s.minLength} caracteres`;if(s!=null&&s.maxLength&&i.length>s.maxLength)return`Máximo ${s.maxLength} caracteres`;if((t.tipo===f.FieldType.DATE||t.tipo===f.FieldType.DATETIME)&&i){if(s!=null&&s.minDate&&i<s.minDate)return`Data mínima: ${s.minDate}`;if(s!=null&&s.maxDate&&i>s.maxDate)return`Data máxima: ${s.maxDate}`}if((t.tipo===f.FieldType.DATE||t.tipo===f.FieldType.DATETIME)&&i&&((s==null?void 0:s.minAge)!=null||(s==null?void 0:s.maxAge)!=null)){const n=i.split("T")[0],a=new Date(n+"T00:00:00"),l=o["evento.dataInicioEvento"],d=l?new Date(l.split("T")[0]+"T00:00:00"):new Date;let c=d.getFullYear()-a.getFullYear();const u=d.getMonth()-a.getMonth();if((u<0||u===0&&d.getDate()<a.getDate())&&c--,s.minAge!=null&&c<s.minAge)return`Idade mínima: ${s.minAge} ano${s.minAge!==1?"s":""}`;if(s.maxAge!=null&&c>s.maxAge)return`Idade máxima: ${s.maxAge} ano${s.maxAge!==1?"s":""}`}if(s!=null&&s.regex){const n=lt(s.regex);if(n&&!n.test(i))return s.regexMessage||"Formato inválido"}}},ae=(t,r,o)=>{const s=r.split(".");let i=t;for(let n=0;n<s.length-1;n++){const a=s[n];(i[a]==null||typeof i[a]!="object")&&(i[a]={}),i=i[a]}i[s[s.length-1]]=o},oe=async(t,r,o,s,i,n)=>{for(const a of t){const l=n[a.type];if(!l)continue;const d=await l(o,s,a,i);if(d)return a.message??d}},Oe=(t,r={},o={})=>async s=>{var l,d,c,u,m;const i={},n=[...t.containers].sort((h,F)=>h.ordem-F.ordem);for(const h of n){if(h.repeatable||h.condicional&&!B(h.condicional,s,r))continue;const F=[...h.campos].sort((x,I)=>x.ordem-I.ordem);for(const x of F){if(!B(x.condicional,s,r)||x.tipo===f.FieldType.HIDDEN||x.isDisabled||x.isReadOnly)continue;if(x.tipo===f.FieldType.FIELD_ARRAY){const E=Array.isArray(s[x.nome])?s[x.nome]:[];x.obrigatorio&&E.length===0?i[x.nome]={type:"custom",message:"Adicione pelo menos um item"}:x.minItems&&E.length<x.minItems?i[x.nome]={type:"custom",message:`Mínimo de ${x.minItems} item${x.minItems!==1?"s":""}`}:x.maxItems&&E.length>x.maxItems&&(i[x.nome]={type:"custom",message:`Máximo de ${x.maxItems} item${x.maxItems!==1?"s":""}`});for(let b=0;b<E.length;b++){const p=E[b];for(const w of x.subFields??[]){if(w.isDisabled||w.isReadOnly||!B(w.condicional,p,r))continue;const j=ue(w,p[w.nome],r);if(j){ae(i,`${x.nome}.${b}.${w.nome}`,{type:"custom",message:j});continue}if((l=w.validate)!=null&&l.length){const C=await oe(w.validate,w.nome,p[w.nome],p,r,o);C&&ae(i,`${x.nome}.${b}.${w.nome}`,{type:"custom",message:C})}}}continue}if(x.tipo===f.FieldType.SUB_FORM){const E=s[x.nome]??{};x.obrigatorio&&Object.keys(E).length===0&&(i[x.nome]={type:"custom",message:"Campo obrigatório"});for(const b of((d=x.subSchema)==null?void 0:d.fields)??[]){if(b.isDisabled||b.isReadOnly)continue;const p=ue(b,E[b.nome],r);if(p){ae(i,`${x.nome}.${b.nome}`,{type:"custom",message:p});continue}if((c=b.validate)!=null&&c.length){const w=await oe(b.validate,b.nome,E[b.nome],E,r,o);w&&ae(i,`${x.nome}.${b.nome}`,{type:"custom",message:w})}}continue}const N=ue(x,s[x.nome],r);if(N&&(i[x.nome]={type:"custom",message:N}),!i[x.nome]&&((u=x.validate)!=null&&u.length)){const E=await oe(x.validate,x.nome,s[x.nome],s,r,o);E&&(i[x.nome]={type:"custom",message:E})}}}for(const h of n){if(!h.repeatable||!h.nome||h.condicional&&!B(h.condicional,s,r))continue;const F=Array.isArray(s[h.nome])?s[h.nome]:[];h.minItems&&F.length<h.minItems?i[h.nome]={type:"custom",message:`Mínimo de ${h.minItems} ${h.itemLabel??"item"}${h.minItems!==1?"s":""}`}:h.maxItems&&F.length>h.maxItems&&(i[h.nome]={type:"custom",message:`Máximo de ${h.maxItems} ${h.itemLabel??"item"}${h.maxItems!==1?"s":""}`});for(let x=0;x<F.length;x++){const I=F[x];for(const N of h.campos){if(!B(N.condicional,I,r)||N.tipo===f.FieldType.HIDDEN||N.isDisabled||N.isReadOnly)continue;const b=ue(N,I[N.nome],r);if(b){ae(i,`${h.nome}.${x}.${N.nome}`,{type:"custom",message:b});continue}if((m=N.validate)!=null&&m.length){const p=await oe(N.validate,N.nome,I[N.nome],I,r,o);p&&ae(i,`${h.nome}.${x}.${N.nome}`,{type:"custom",message:p})}}}}return Object.keys(i).length>0?{values:{},errors:i}:{values:s,errors:{}}},Pe=(t,r={},o={})=>async s=>{var a,l;const i={},n=[...t.containers].sort((d,c)=>d.ordem-c.ordem);for(const d of n)if(!(d.condicional&&!B(d.condicional,s,r))){if(d.repeatable&&d.nome){const c=Array.isArray(s[d.nome])?s[d.nome]:[];for(let u=0;u<c.length;u++){const m=c[u];for(const h of[...d.campos].sort((F,x)=>F.ordem-x.ordem)){if(!((a=h.warn)!=null&&a.length)||!B(h.condicional,m,r))continue;const x=await oe(h.warn,h.nome,m[h.nome],m,r,o);x&&(i[`${d.nome}.${u}.${h.nome}`]=x)}}continue}for(const c of[...d.campos].sort((u,m)=>u.ordem-m.ordem)){if(!((l=c.warn)!=null&&l.length)||!B(c.condicional,s,r))continue;const m=await oe(c.warn,c.nome,s[c.nome],s,r,o);m&&(i[c.nome]=m)}}return i},ct=/\{\{\s*(?:event|evento)\.([a-zA-Z0-9_.]+)\s*\}\}/g,U=(t,r)=>t?t.replace(ct,(o,s)=>r[`evento.${s}`]??r[s]??o):t??"",dt=(t,r)=>({...t,label:U(t.label,r)}),Ve=(t,r)=>{var o;return{...t,label:U(t.label,r),placeholder:U(t.placeholder,r),hint:U(t.hint,r),defaultValue:typeof t.defaultValue=="string"?U(t.defaultValue,r):t.defaultValue,opcoes:(o=t.opcoes)==null?void 0:o.map(s=>dt(s,r))}},he=(t,r)=>({...t,titulo:U(t.titulo,r),descricao:U(t.descricao,r),campos:t.campos.map(o=>Ve(o,r))}),Le=(t,r)=>({...t,titulo:U(t.titulo,r),descricao:U(t.descricao,r),containers:t.containers.map(o=>he(o,r))}),Me=()=>{const t=le.useTemplate(),r=t.layout.containerStyle,o=t.layout.roundness??"rounded-xl",s=y.cn("overflow-hidden",o,r==="card"?"border":"",r==="bordered"?"border":"",r==="glassmorphism"?"backdrop-blur-sm":""),i=r==="glassmorphism"?{background:"var(--t-surface)",borderColor:"var(--t-border)",borderWidth:"1px",borderStyle:"solid"}:{},n=y.cn("border-b px-6 py-4",r==="flat"?"border-transparent":"");return{wrapperClass:s,wrapperStyle:i,headerClass:n,headerStyle:r==="glassmorphism"?{borderColor:"var(--t-border)"}:{},tmpl:t}},z=({name:t,control:r,placeholder:o,type:s="text",disabled:i,readOnly:n})=>{var c;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=!!l.error;return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{...a,value:a.value??"",type:s,placeholder:o,disabled:i,readOnly:n,className:y.cn(d&&"border-destructive focus-visible:ring-destructive")}),((c=l.error)==null?void 0:c.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},ge=({name:t,control:r,placeholder:o,disabled:s,readOnly:i})=>{var l;const{field:n,fieldState:a}=S.useController({name:t,control:r});return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Textarea,{...n,value:n.value??"",placeholder:o,disabled:s,readOnly:i,rows:3,className:y.cn(a.error&&"border-destructive focus-visible:ring-destructive")}),((l=a.error)==null?void 0:l.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},be=({name:t,control:r,placeholder:o,options:s,disabled:i,readOnly:n})=>{var d;const{field:a,fieldState:l}=S.useController({name:t,control:r});return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(y.Select,{value:a.value??"",onValueChange:c=>!n&&a.onChange(c),disabled:i||n,children:[e.jsx(y.SelectTrigger,{className:y.cn(l.error&&"border-destructive focus:ring-destructive"),onBlur:a.onBlur,children:e.jsx(y.SelectValue,{placeholder:o??"Selecione..."})}),e.jsx(y.SelectContent,{children:s.map(c=>e.jsx(y.SelectItem,{value:c.valor,disabled:c.disabled,children:c.label},c.valor))})]}),((d=l.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},ve=({name:t,control:r,label:o,disabled:s,readOnly:i})=>{var l;const{field:n,fieldState:a}=S.useController({name:t,control:r});return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx(y.Checkbox,{name:n.name,checked:!!n.value,onCheckedChange:d=>!i&&n.onChange(!!d),onBlur:n.onBlur,disabled:s}),o&&e.jsx("span",{className:"text-sm leading-none",children:o})]}),((l=a.error)==null?void 0:l.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Ne=({name:t,control:r,options:o,disabled:s})=>{var d;const{field:i,fieldState:n}=S.useController({name:t,control:r}),a=Array.isArray(i.value)?i.value:[],l=c=>{const u=a.includes(c)?a.filter(m=>m!==c):[...a,c];i.onChange(u)};return e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex flex-col gap-2",onBlur:i.onBlur,children:o.map(c=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx(y.Checkbox,{checked:a.includes(c.valor),onCheckedChange:()=>l(c.valor),disabled:s||c.disabled}),e.jsx("span",{className:"text-sm leading-none",children:c.label})]},c.valor))}),((d=n.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:n.error.message})]})},Ce=({name:t,control:r,options:o,visualStyle:s="default",disabled:i})=>{var d;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=s==="card";return e.jsxs("div",{className:"space-y-1",onBlur:n.onBlur,children:[e.jsx(y.RadioGroup,{value:n.value??"",onValueChange:n.onChange,className:y.cn(l?"grid grid-cols-2 gap-2 sm:grid-cols-3":"flex flex-col gap-2"),children:o.map(c=>e.jsxs("label",{className:y.cn("flex items-center gap-2 cursor-pointer",l&&"rounded-lg border p-3 transition-colors hover:bg-accent data-[selected=true]:border-primary data-[selected=true]:bg-primary/5",(i||c.disabled)&&"cursor-not-allowed opacity-50"),"data-selected":n.value===c.valor?"true":void 0,children:[e.jsx(y.RadioGroupItem,{value:c.valor,disabled:i||c.disabled}),e.jsx("span",{className:"text-sm leading-none",children:c.label})]},c.valor))}),((d=a.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},_e=t=>{const r=t.getFullYear(),o=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${r}-${o}-${s}`},ut=t=>{const r=new Date;return r.setFullYear(r.getFullYear()-t),_e(r)},mt=t=>{const r=new Date;return r.setFullYear(r.getFullYear()-t),_e(r)},ie=({name:t,control:r,isDatetime:o,disabled:s,readOnly:i,validacao:n})=>{var h;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=o?"datetime-local":"date",c=F=>o?F+"T00:00":F,u=(n==null?void 0:n.minAge)!=null?c(ut(n.minAge)):(n==null?void 0:n.maxDate)!=null?c(n.maxDate):void 0,m=(n==null?void 0:n.maxAge)!=null?c(mt(n.maxAge)):(n==null?void 0:n.minDate)!=null?c(n.minDate):void 0;return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{name:a.name,value:a.value??"",onChange:a.onChange,onBlur:a.onBlur,type:d,min:m,max:u,disabled:s,readOnly:i,className:y.cn(l.error&&"border-destructive focus-visible:ring-destructive")}),((h=l.error)==null?void 0:h.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},De=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,Fe=({name:t,control:r,disabled:o,campo:s,fileTypes:i,maxFileSize:n})=>{var R;const{field:a,fieldState:l}=S.useController({name:t,control:r}),{uploadFile:d}=te(),[c,u]=g.useState({status:"idle"}),m=g.useRef(null),[h,F]=g.useState(!1),x=g.useRef(!0);g.useEffect(()=>()=>{x.current=!1},[]);const I=typeof a.value=="string"&&a.value?a.value:null,N=g.useCallback(async j=>{var C;if(i&&i.length>0){const v=((C=j.name.split(".").pop())==null?void 0:C.toLowerCase())??"",D=j.type.toLowerCase();if(!i.some(V=>{const M=V.toLowerCase();return!!(M===v||M===D||M.endsWith("/*")&&D.startsWith(M.slice(0,-1)))})){u({status:"error",message:`Tipo de arquivo não permitido. Permitidos: ${i.join(", ")}`});return}}if(n&&j.size>n){u({status:"error",message:`Arquivo muito grande. Tamanho máximo: ${De(n)}`});return}if(!d){u({status:"error",message:"Preview: upload não disponível sem configuração."});return}u({status:"uploading",fileName:j.name,progress:0});try{const v=await d(j,s??t,D=>{x.current&&u(T=>T.status==="uploading"?{...T,progress:Math.min(100,D)}:T)});if(!x.current)return;a.onChange(v),u({status:"done",uploadId:v,fileName:j.name,size:j.size})}catch{if(!x.current)return;u({status:"error",message:"Falha no upload. Tente novamente."})}},[d,s,t,a,i,n]),E=g.useCallback(j=>{var v;const C=(v=j.target.files)==null?void 0:v[0];C&&N(C),j.target.value=""},[N]),b=g.useCallback(()=>{a.onChange(""),u({status:"idle"}),m.current&&(m.current.value="")},[a]);if(c.status==="done"||c.status==="idle"&&!!I){const j=c.status==="done"?c.fileName:"Arquivo enviado",C=c.status==="done"?c.size:null;return e.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-input bg-muted/20 px-4 py-3 gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate flex-1",children:j}),C!==null&&e.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:De(C)}),!o&&e.jsx("button",{type:"button",onClick:b,className:"ml-2 shrink-0 text-muted-foreground hover:text-destructive transition-colors","aria-label":"Remover arquivo",children:"✕"})]})}if(c.status==="uploading"){const{fileName:j,progress:C}=c;return e.jsxs("div",{className:"rounded-lg border border-input px-4 py-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-medium truncate flex-1",children:j}),e.jsxs("span",{className:"text-xs text-muted-foreground ml-2",children:[C,"%"]})]}),e.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:e.jsx("div",{className:"h-full bg-primary transition-all duration-200 rounded-full",style:{width:`${C}%`}})})]})}const w=c.status==="error";return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{role:"button",tabIndex:o?-1:0,"aria-label":"Selecionar arquivo",className:y.cn("flex items-center justify-center rounded-lg border-2 border-dashed px-4 py-6 transition-colors cursor-pointer",h?"border-primary bg-primary/5":w||l.error?"border-destructive bg-destructive/5":"border-input hover:border-muted-foreground hover:bg-muted/20",o&&"opacity-50 cursor-not-allowed"),onClick:()=>{var j;return!o&&((j=m.current)==null?void 0:j.click())},onKeyDown:j=>{var C;(j.key==="Enter"||j.key===" ")&&((C=m.current)==null||C.click())},onDragOver:j=>{j.preventDefault(),o||F(!0)},onDragLeave:()=>F(!1),onDrop:o?void 0:j=>{var v;j.preventDefault(),F(!1);const C=(v=j.dataTransfer.files)==null?void 0:v[0];C&&N(C)},onBlur:a.onBlur,children:[e.jsx("input",{ref:m,type:"file",onChange:E,disabled:o,className:"sr-only"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:h?"Solte o arquivo aqui":"Clique ou arraste um arquivo"})]}),w&&e.jsxs("p",{className:"text-sm text-destructive",children:[c.message," · ",e.jsx("button",{type:"button",className:"underline hover:no-underline",onClick:()=>u({status:"idle"}),children:"Tentar novamente"})]}),!w&&((R=l.error)==null?void 0:R.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},xt={cpf:t=>t.replace(/\D/g,"").slice(0,11).replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d)/,"$1.$2").replace(/(\d{3})(\d{1,2})$/,"$1-$2"),telefone:t=>{const r=t.replace(/\D/g,"").slice(0,11);return r.length<=10?r.replace(/(\d{2})(\d)/,"($1) $2").replace(/(\d{4})(\d)/,"$1-$2"):r.replace(/(\d{2})(\d)/,"($1) $2").replace(/(\d{5})(\d)/,"$1-$2")},cep:t=>t.replace(/\D/g,"").slice(0,8).replace(/(\d{5})(\d)/,"$1-$2")},re=({name:t,control:r,placeholder:o,maskType:s,disabled:i,readOnly:n})=>{var u;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=xt[s||""],c=g.useCallback(m=>{a.onChange(d?d(m.target.value):m.target.value)},[a,d]);return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{name:a.name,value:a.value||"",onChange:c,onBlur:a.onBlur,placeholder:o,disabled:i,readOnly:n,className:y.cn(l.error&&"border-destructive focus-visible:ring-destructive")}),((u=l.error)==null?void 0:u.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},ye=({name:t,control:r})=>{const{field:o}=S.useController({name:t,control:r});return e.jsx("input",{type:"hidden",...o,value:o.value??""})},Be=t=>t.replace(/\D/g,""),pt=t=>{const r=Be(t).slice(0,8);return r.length<=5?r:`${r.slice(0,5)}-${r.slice(5)}`},ft=async(t,r)=>{const o=await fetch(`https://viacep.com.br/ws/${t}/json/`,{signal:r});if(!o.ok)throw new Error("Falha ao consultar CEP");return o.json()},Te=({name:t,control:r,placeholder:o="00000-000",disabled:s,readOnly:i,cepFillMap:n})=>{var b,p;const{field:a,fieldState:l}=S.useController({name:t,control:r}),{setValue:d}=S.useFormContext(),{cepLookup:c}=te(),[u,m]=g.useState("idle"),[h,F]=g.useState(null),x=g.useRef(null),I=g.useRef(!0);g.useEffect(()=>()=>{var w;I.current=!1,(w=x.current)==null||w.abort()},[]);const N=g.useCallback(async()=>{var R;a.onBlur();const w=Be(a.value??"");if(w.length===8){(R=x.current)==null||R.abort(),x.current=new AbortController,m("loading"),F(null);try{let j;if(c){const D=x.current;if(j=await c(w,D.signal),D.signal.aborted||!I.current)return}else{const D=await ft(w,x.current.signal);if(!I.current)return;if(D.erro){m("error"),F("CEP não encontrado");return}j={logradouro:D.logradouro,bairro:D.bairro,cidade:D.localidade,estado:D.uf}}if(!I.current)return;if(j.erro){m("error"),F("CEP não encontrado");return}const C=t.includes(".")?`${t.substring(0,t.lastIndexOf("."))}.`:"",v=(D,T,V)=>{if(!V)return;const M=n!=null&&n[D]?`${C}${n[D]}`:`${C}${T}`;d(M,V,{shouldDirty:!0,shouldValidate:!0})};v("logradouro","_address_logradouro",j.logradouro),v("bairro","_address_bairro",j.bairro),v("cidade","_address_cidade",j.cidade),v("estado","_address_estado",j.estado),m("success")}catch(j){if(j instanceof Error&&j.name==="AbortError"||!I.current)return;m("error"),F("Erro ao buscar CEP")}}},[a,c,d,t,n]),E=g.useCallback(w=>{a.onChange(pt(w.target.value))},[a]);return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"relative",children:[e.jsx(y.Input,{name:a.name,value:a.value||"",onChange:E,onBlur:N,placeholder:o,disabled:s,readOnly:i,className:y.cn("pr-9",l.error&&"border-destructive focus-visible:ring-destructive")}),e.jsxs("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none",children:[u==="loading"&&e.jsx(A.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"}),u==="success"&&e.jsx(A.Check,{className:"h-4 w-4 text-green-500"}),u==="error"&&e.jsx(A.AlertCircle,{className:"h-4 w-4 text-destructive"})]})]}),(((b=l.error)==null?void 0:b.message)||h)&&e.jsx("p",{className:"text-sm text-destructive",children:((p=l.error)==null?void 0:p.message)||h})]})},ht=({field:t,control:r,nameOverride:o})=>{const s={name:o,control:r,placeholder:t.placeholder};switch(t.tipo){case f.FieldType.TEXTO:return e.jsx(z,{...s,type:"text"});case f.FieldType.EMAIL:return e.jsx(z,{...s,type:"email"});case f.FieldType.NUMBER:return e.jsx(z,{...s,type:"number"});case f.FieldType.TEXTAREA:return e.jsx(ge,{...s});case f.FieldType.SELECT:return e.jsx(be,{...s,options:t.opcoes??[]});case f.FieldType.RADIO:return e.jsx(Ce,{...s,options:t.opcoes??[]});case f.FieldType.CHECKBOX:return e.jsx(ve,{name:o,control:r,label:t.label});case f.FieldType.CHECKBOX_GROUP:return e.jsx(Ne,{...s,options:t.opcoes??[]});case f.FieldType.DATE:return e.jsx(ie,{...s,validacao:t.validacao});case f.FieldType.DATETIME:return e.jsx(ie,{...s,isDatetime:!0,validacao:t.validacao});case f.FieldType.FILE:return e.jsx(Fe,{name:o,control:r});case f.FieldType.TELEFONE:return e.jsx(re,{...s,maskType:"telefone"});case f.FieldType.CPF:return e.jsx(re,{...s,maskType:"cpf"});case f.FieldType.CEP:return e.jsx(Te,{name:o,control:r,placeholder:t.placeholder});case f.FieldType.HIDDEN:return e.jsx(ye,{name:o,control:r});default:return console.error(`[DFFieldArray] Tipo de sub-campo "${t.tipo}" não suportado em FIELD_ARRAY. Usando DFTextField como fallback.`),e.jsx(z,{...s,type:"text"})}},We=({name:t,control:r,subFields:o=[],minItems:s=1,maxItems:i,itemLabel:n="Item",addLabel:a})=>{var N;const{fields:l,append:d,remove:c}=S.useFieldArray({control:r,name:t}),{errors:u}=S.useFormState({control:r}),m=(N=u[t])==null?void 0:N.message,h=g.useCallback(()=>{const E={};for(const b of o)b.initialValue!==void 0?E[b.nome]=b.initialValue:b.defaultValue!==void 0&&(E[b.nome]=b.defaultValue);return E},[o]);g.useEffect(()=>{if(l.length<s)for(let E=l.length;E<s;E++)d(h())},[s]);const F=[...o].sort((E,b)=>E.ordem-b.ordem),x=!i||l.length<i,I=a??`Adicionar ${n.toLowerCase()}`;return e.jsxs("div",{className:"space-y-3",children:[l.map((E,b)=>e.jsxs("div",{className:"rounded-lg border border-input p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-primary/10 text-xs font-bold text-primary shrink-0",children:b+1}),e.jsxs("span",{className:"text-sm font-semibold",children:[n," ",b+1]})]}),l.length>s&&e.jsx(y.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>c(b),"aria-label":`Remover ${n.toLowerCase()} ${b+1}`,className:"text-muted-foreground hover:text-destructive",children:e.jsx(A.Trash2,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"grid grid-cols-12 gap-4",children:F.map(p=>{const w=`${t}.${b}.${p.nome}`,j=`span ${p.tamanho??12}`,C=e.jsx(ht,{field:p,control:r,nameOverride:w});return p.tipo===f.FieldType.CHECKBOX||p.tipo===f.FieldType.HIDDEN?e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:j},children:C},p.id):e.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:j},children:[e.jsxs("label",{className:"font-medium flex items-center gap-1 text-sm text-foreground",children:[p.label,p.obrigatorio&&e.jsx("span",{className:"text-destructive",children:"*"})]}),C,p.hint&&e.jsx("p",{className:"text-xs text-muted-foreground",children:p.hint})]},p.id)})})]},E.id)),x&&e.jsxs(y.Button,{type:"button",variant:"outline",className:"w-full",onClick:()=>d(h()),children:[e.jsx(A.Plus,{className:"w-4 h-4"}),I]}),i&&e.jsxs("p",{className:"text-xs text-center text-muted-foreground",children:["Máximo de ",i," ",n.toLowerCase(),i>1?"s":""]}),m&&e.jsxs("p",{className:"text-sm text-destructive flex items-center gap-1",children:[e.jsx(A.AlertCircle,{className:"w-4 h-4 shrink-0"}),m]})]})},Ee=t=>`R$ ${(t/100).toFixed(2).replace(".",",")}`,gt=(t,r)=>{const o=new Date(t.slice(0,10)+"T00:00:00Z"),s=new Date(r.slice(0,10)+"T00:00:00Z");return Math.round((s.getTime()-o.getTime())/864e5)+1},bt=(t,r)=>{const o=[],s=new Date(t.slice(0,10)+"T00:00:00Z"),i=new Date(r.slice(0,10)+"T00:00:00Z");let n=0;for(;s<=i&&n<60;)o.push(s.toISOString().slice(0,10)),s.setUTCDate(s.getUTCDate()+1),n++;return o},vt=t=>{const[r,o,s]=t.split("-").map(Number),i=new Date(Date.UTC(r,o-1,s)),n=String(s).padStart(2,"0"),a=String(o).padStart(2,"0"),l=new Intl.DateTimeFormat("pt-BR",{weekday:"long",timeZone:"UTC"}).format(i),d=l.charAt(0).toUpperCase()+l.slice(1);return`${n}/${a} - ${d}`},yt=(t,r)=>{const o=s=>{const[i,n,a]=s.slice(0,10).split("-");return`${a}/${n}/${i}`};return`${o(t)} a ${o(r)}`},He=({name:t,control:r})=>{var X;const{field:o,fieldState:s}=S.useController({name:t,control:r}),{externalData:i={}}=te(),n=o.value??null,a=(X=s.error)==null?void 0:X.message,l=k=>i[`evento.${k}`]??i[k],d=l("dataInicioEvento")??"",c=l("dataFimEvento")??"",u=Number(l("valor")??0),m=Number(l("valorPorDia")??0),h=l("vagasTotal"),F=l("vagasPorDia"),x=l("vagasMasculinas"),I=l("vagasFemininas"),N=h!=null?Number(h):null,E=F!=null?Number(F):null,b=x!=null?Number(x):null,p=I!=null?Number(I):null,w=d&&c?bt(d,c):[],j=(d&&c?gt(d,c):0)>1,C=b!=null&&b>0&&p!=null&&p>0,v=b!=null&&p==null?"masculino":p!=null&&b==null?"feminino":null,D=(n==null?void 0:n.tipo)??null,T=(n==null?void 0:n.data)??null,V=(n==null?void 0:n.genero)??null,M=g.useRef(n);M.current=n;const K=g.useRef(o.onChange);K.current=o.onChange,g.useEffect(()=>{var k,W,ne;v&&((k=M.current)==null?void 0:k.genero)!==v&&K.current({tipo:((W=M.current)==null?void 0:W.tipo)??null,data:((ne=M.current)==null?void 0:ne.data)??null,genero:v})},[v]);const q=k=>{const W={tipo:k,data:null};(C||v)&&(W.genero=V??v??void 0),o.onChange(W)},Y=k=>{const W={tipo:"por_dia",data:k};(C||v)&&(W.genero=V??v??void 0),o.onChange(W)},Q=k=>{o.onChange({tipo:D,data:T,genero:k})},H=k=>D===k;return e.jsxs("div",{className:"space-y-3",children:[C&&e.jsxs("div",{className:"flex items-center gap-2 px-1",children:[e.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:"Você é:"}),e.jsx("div",{className:"flex gap-2",children:["masculino","feminino"].map(k=>e.jsx("button",{type:"button",onClick:()=>Q(k),className:y.cn("px-3 py-1 rounded-full text-xs font-medium border transition-all",V===k?"border-primary bg-primary/10 text-primary":"border-input text-muted-foreground hover:border-primary/50"),children:k==="masculino"?"Masculino":"Feminino"},k))})]}),e.jsxs("button",{type:"button",onClick:()=>q("todos_os_dias"),className:y.cn("w-full text-left flex items-start gap-3 p-4 rounded-xl border-2 transition-all",H("todos_os_dias")?"border-primary bg-primary/5":"border-input hover:border-primary/50"),children:[e.jsx("div",{className:y.cn("mt-0.5 p-2 rounded-lg shrink-0 transition-colors",H("todos_os_dias")?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.jsx(A.CalendarCheck2,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-sm",children:"Participar todos os dias"}),d&&c?e.jsx("p",{className:"text-xs text-muted-foreground",children:yt(d,c)}):e.jsx("p",{className:"text-xs text-muted-foreground italic",children:"Datas do evento"})]}),e.jsxs("div",{className:"text-right shrink-0",children:[u>0&&e.jsx("p",{className:y.cn("font-bold text-sm",H("todos_os_dias")?"text-primary":"text-foreground"),children:Ee(u)}),N!=null&&N>0&&e.jsxs("p",{className:"text-xs flex items-center justify-end gap-1 text-muted-foreground",children:[e.jsx(A.Users,{className:"w-3 h-3"}),N," vagas disponíveis"]})]})]}),j?e.jsxs("button",{type:"button",onClick:()=>q("por_dia"),className:y.cn("w-full text-left flex items-start gap-3 p-4 rounded-xl border-2 transition-all",H("por_dia")?"border-primary bg-primary/5":"border-input hover:border-primary/50"),children:[e.jsx("div",{className:y.cn("mt-0.5 p-2 rounded-lg shrink-0 transition-colors",H("por_dia")?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.jsx(A.CalendarDays,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-sm",children:"Participar um dia"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Escolha o dia desejado abaixo"})]}),e.jsxs("div",{className:"text-right shrink-0",children:[m>0&&e.jsx("p",{className:y.cn("font-bold text-sm",H("por_dia")?"text-primary":"text-foreground"),children:Ee(m)}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"por dia"})]})]}):d?e.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg border border-input bg-muted/30",children:[e.jsx(A.Info,{className:"w-3.5 h-3.5 mt-0.5 shrink-0 text-muted-foreground"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'Este evento ocorre em apenas 1 dia — a opção "Participar um dia" não é necessária.'})]}):null,D==="por_dia"&&e.jsxs("div",{className:"pl-2 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:"Selecione o dia:"}),w.length===0?e.jsx("p",{className:"text-xs text-muted-foreground italic",children:"Nenhuma data configurada no evento"}):w.map(k=>e.jsxs("button",{type:"button",onClick:()=>Y(k),className:y.cn("w-full text-left flex items-center justify-between px-4 py-3 rounded-lg border transition-all",T===k?"border-primary bg-primary/5":"border-input hover:border-primary/50"),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:y.cn("w-4 h-4 rounded-full border-2 shrink-0 flex items-center justify-center transition-colors",T===k?"border-primary bg-primary":"border-input"),children:T===k&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-white"})}),e.jsx("span",{className:"text-sm",children:vt(k)})]}),E!=null&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:[E," vagas"]})]},k))]}),a&&e.jsx("p",{className:"text-sm text-destructive",children:a})]})},$e=.0315,Ae=.124,Ie=7,Se=12,Ue=[{id:"pix",label:"PIX",description:"Transferência instantânea (à vista)",Icon:A.Smartphone,taxa:0},{id:"dinheiro",label:"Dinheiro",description:"Pagamento em espécie",Icon:A.Banknote,taxa:0},{id:"cartao",label:"Cartão de Crédito",description:"Débito ou crédito na maquininha",Icon:A.CreditCard,taxa:$e,taxaLabel:`Taxa: ${($e*100).toFixed(2).replace(".",",")}%`}],Xe=[{id:"pix",label:"PIX à Vista",description:"Pagamento instantâneo sem parcelamento",Icon:A.Smartphone,taxa:0},{id:"pix_parcelado",label:"PIX Parcelado",description:`Parcelado em até ${Ie}x sem juros`,Icon:A.Smartphone,taxa:0,parcelas:Ie},{id:"cartao",label:"Cartão de Crédito",description:`Parcelado em até ${Se}x`,Icon:A.CreditCard,taxa:Ae,parcelas:Se,taxaLabel:`Taxa: ${(Ae*100).toFixed(2).replace(".",",")}%`},{id:"dinheiro",label:"Dinheiro",description:"Pagamento em espécie",Icon:A.Banknote,taxa:0}],me=t=>`R$ ${(t/100).toFixed(2).replace(".",",")}`,Re=(t,r)=>Math.round(t*(1+r)*100)/100,jt=(t,r)=>Math.round(t/r*100)/100,ze=({name:t,control:r,relatedFieldName:o="tipo_participacao"})=>{var b;const{field:s,fieldState:i}=S.useController({name:t,control:r}),{externalData:n={},paymentMethodOptions:a}=te(),l=s.value??null,d=(b=i.error)==null?void 0:b.message,c=S.useWatch({control:r,name:o}),u=(c==null?void 0:c.tipo)??null,m=p=>n[`evento.${p}`]??n[p],h=Number(m("valor")??0),F=Number(m("valorPorDia")??0),x=u==="por_dia"&&F>0?F:h,I=u==="por_dia"?(a==null?void 0:a.porDia)??Ue:(a==null?void 0:a.todosOsDias)??Xe,N=u==="por_dia"?(()=>{if(!(c!=null&&c.data))return"Um dia";const p=c.data.split("-");if(p.length===3){const[w,R,j]=p;return`${j}/${R}/${w}`}return c.data})():"Todos os dias",E=p=>{if(p.disabled)return;const w=Re(x,p.taxa),R={metodo:p.id,valorTotal:w};p.parcelas&&(R.parcelas=p.parcelas),s.onChange(R)};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between rounded-xl border border-input px-4 py-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Tipo de participação"}),e.jsx("p",{className:"font-semibold",children:N})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Valor base"}),e.jsx("p",{className:"text-lg font-bold text-primary",children:me(x)})]})]}),e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-input bg-muted/30 px-3 py-2.5",children:[e.jsx(A.Info,{className:"h-4 w-4 mt-0.5 shrink-0 text-muted-foreground"}),e.jsxs("p",{className:"text-xs",children:[e.jsx("span",{className:"font-bold",children:"Importante:"})," Para validar a inscrição e garantir sua vaga, o pagamento deve ser realizado no ato da inscrição."]})]}),e.jsx("p",{className:"text-sm font-semibold text-primary",children:"Selecione a forma de pagamento:"}),e.jsx("div",{className:"space-y-3",children:I.map(p=>{const{Icon:w}=p,R=(l==null?void 0:l.metodo)===p.id,j=Re(x,p.taxa),C=!!p.parcelas&&p.parcelas>1,v=C?jt(j,p.parcelas):null;return e.jsxs("button",{type:"button",disabled:p.disabled,onClick:()=>E(p),className:y.cn("w-full text-left flex items-center gap-4 px-4 py-3 rounded-xl border-2 transition-all",R?"border-primary bg-primary/5":"border-input hover:border-primary/50",p.disabled&&"opacity-50 cursor-not-allowed"),children:[e.jsx("div",{className:y.cn("flex items-center justify-center w-10 h-10 rounded-lg shrink-0 transition-colors",R?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.jsx(w,{className:"h-5 w-5"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-sm leading-tight",children:p.label}),e.jsx("p",{className:"text-xs text-muted-foreground",children:p.description}),p.taxaLabel&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:["* ",p.taxaLabel]}),p.taxa>0&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Total com taxa: ",me(j)]})]}),e.jsx("div",{className:"text-right shrink-0",children:C?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-xs text-muted-foreground",children:[p.parcelas,"x de"]}),e.jsx("p",{className:"text-base font-bold text-primary",children:me(v)})]}):e.jsx("p",{className:"text-base font-bold text-primary",children:me(j)})})]},p.id)})}),d&&e.jsx("p",{className:"text-xs text-destructive",children:d})]})},Ke=({name:t,control:r,label:o,termoTexto:s,termoPdfUrl:i,termoPdfUploadId:n})=>{var j;const{field:a,fieldState:l}=S.useController({name:t,control:r}),{resolveTermsUploadUrl:d}=te(),c=!!l.error,u=(j=l.error)==null?void 0:j.message,[m,h]=g.useState(null),[F,x]=g.useState(!1),[I,N]=g.useState(!1),E=g.useRef(null);g.useEffect(()=>{var C;I&&((C=E.current)==null||C.focus())},[I]),g.useEffect(()=>{if(!n||!d){h(null);return}let C=!1;return x(!0),d(n).then(v=>{C||h(v)}).catch(()=>{C||h(null)}).finally(()=>{C||x(!1)}),()=>{C=!0}},[n,d]);const b=a.value==="accepted",p=m||i||null,w=!!(s||p||n),R=!!p;return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:y.cn("rounded-lg border p-4 space-y-4 transition-colors",c?"border-destructive bg-destructive/5":b?"border-green-500 bg-green-500/5":"border-input"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A.ScrollText,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:o||"Termos e condições"})]}),w?e.jsxs(y.Button,{type:"button",variant:"outline",size:"sm",className:"h-7 px-2 text-xs",disabled:F,onClick:()=>N(!0),children:[F?e.jsx(A.Loader2,{className:"h-3 w-3 animate-spin"}):e.jsx(A.ExternalLink,{className:"h-3 w-3"}),"Ler termos"]}):e.jsx("span",{className:"text-xs text-muted-foreground italic",children:n&&F?"Carregando PDF...":"Conteúdo não configurado"})]}),e.jsxs("label",{className:"flex items-start gap-3 cursor-pointer select-none",children:[e.jsx(y.Checkbox,{className:"mt-0.5",checked:b,onCheckedChange:C=>a.onChange(C?"accepted":"")}),e.jsxs("span",{className:"text-sm leading-snug flex-1",children:["Li e aceito ",o?`"${o}"`:"os termos e condições"]}),b&&e.jsx(A.CheckCircle2,{className:"h-4 w-4 text-green-500 shrink-0 mt-0.5"})]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-destructive",children:[e.jsx(A.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),u||"Você precisa aceitar os termos para continuar"]}),I&&e.jsx("div",{ref:E,role:"dialog","aria-modal":"true","aria-label":"Termos e condições",tabIndex:-1,className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/60 outline-none",onClick:()=>N(!1),onKeyDown:C=>{C.key==="Escape"&&N(!1)},children:e.jsxs("div",{className:"relative w-full max-w-2xl max-h-[90vh] rounded-xl overflow-hidden flex flex-col bg-background shadow-xl",onClick:C=>C.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-input",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A.ScrollText,{className:"h-4 w-4"}),e.jsx("span",{className:"font-semibold",children:"Termos e condições"})]}),e.jsx(y.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>N(!1),children:e.jsx(A.X,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex-1 overflow-auto p-4",children:R?e.jsx("iframe",{src:p,className:"w-full rounded border",style:{height:"62vh"},title:"Termos e condições",sandbox:"allow-same-origin"}):e.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:s})})]})})]})},Nt=({name:t,control:r,placeholder:o,disabled:s,readOnly:i})=>{var u;const{field:n,fieldState:a}=S.useController({name:t,control:r}),[l,d]=g.useState(!1),c=!!a.error;return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"relative",children:[e.jsx(y.Input,{...n,value:n.value??"",type:l?"text":"password",placeholder:o,disabled:s,readOnly:i,className:y.cn("pr-10",c&&"border-destructive focus-visible:ring-destructive")}),e.jsx("button",{type:"button",tabIndex:-1,onClick:()=>d(m=>!m),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors","aria-label":l?"Ocultar senha":"Mostrar senha",children:l?e.jsx(A.EyeOff,{size:16}):e.jsx(A.Eye,{size:16})})]}),((u=a.error)==null?void 0:u.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},qe=({name:t,control:r,label:o,disabled:s,readOnly:i})=>{var d;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=!!n.value;return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none",children:[e.jsx(y.Switch,{checked:l,onCheckedChange:c=>!i&&n.onChange(c),disabled:s||i,onBlur:n.onBlur}),e.jsx("span",{className:"text-sm leading-none",children:o})]}),((d=a.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Ct=({name:t,control:r,minValue:o=0,maxValue:s=100,step:i=1,disabled:n,readOnly:a})=>{var u;const{field:l,fieldState:d}=S.useController({name:t,control:r}),c=l.value??o;return g.useEffect(()=>{(l.value===void 0||l.value===null)&&l.onChange(o)},[]),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(y.Slider,{min:o,max:s,step:i,value:[c],onValueChange:m=>!a&&l.onChange(m[0]),disabled:n||a,className:"flex-1"}),e.jsx("span",{className:"text-sm font-medium text-primary min-w-[3rem] text-right tabular-nums",children:c})]}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:o}),e.jsx("span",{children:s})]}),((u=d.error)==null?void 0:u.message)&&e.jsx("p",{className:"text-sm text-destructive",children:d.error.message})]})},je=t=>/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(t),Ft=({name:t,control:r,disabled:o,readOnly:s})=>{var c;const{field:i,fieldState:n}=S.useController({name:t,control:r}),a=i.value||"#000000",[l,d]=g.useState(a);return g.useEffect(()=>{d(a)},[a]),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("input",{type:"color",value:je(a)?a:"#000000",disabled:o||s,onChange:u=>i.onChange(u.target.value),className:"h-10 w-14 cursor-pointer rounded-lg border border-input bg-transparent p-1 disabled:cursor-not-allowed disabled:opacity-50"}),e.jsx(y.Input,{type:"text",value:l,readOnly:s,disabled:o,onChange:u=>{const m=u.target.value;d(m),je(m)&&i.onChange(m.toUpperCase())},onBlur:()=>{je(l)||d(a),i.onBlur()},className:y.cn("flex-1 font-mono uppercase",n.error&&"border-destructive focus-visible:ring-destructive"),maxLength:7,placeholder:"#000000"})]}),((c=n.error)==null?void 0:c.message)&&e.jsx("p",{className:"text-sm text-destructive",children:n.error.message})]})},Tt=({name:t,control:r,options:o,placeholder:s,disabled:i,readOnly:n})=>{var v,D;const{field:a,fieldState:l}=S.useController({name:t,control:r}),[d,c]=g.useState(""),[u,m]=g.useState(!1),[h,F]=g.useState(-1),x=g.useRef(null),I=g.useRef(null),N=`autocomplete-${t}-listbox`,E=((v=o.find(T=>T.valor===a.value))==null?void 0:v.label)??"",b=d.length>0?o.filter(T=>T.label.toLowerCase().includes(d.toLowerCase())):o;g.useEffect(()=>{const T=V=>{x.current&&!x.current.contains(V.target)&&(m(!1),c(""),F(-1))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]);const p=()=>{m(!1),c(""),F(-1)};g.useEffect(()=>{if(h<0||!I.current)return;const T=I.current.querySelector(`[id="${N}-option-${h}"]`);T==null||T.scrollIntoView({block:"nearest"})},[h,N]);const w=T=>{T.disabled||(a.onChange(T.valor),p())},R=()=>{a.onChange(""),c(""),F(-1)},j=T=>{if(!u){(T.key==="ArrowDown"||T.key==="ArrowUp")&&(T.preventDefault(),m(!0),F(0));return}switch(T.key){case"ArrowDown":T.preventDefault(),F(V=>V<b.length-1?V+1:V);break;case"ArrowUp":T.preventDefault(),F(V=>V>0?V-1:0);break;case"Enter":T.preventDefault(),h>=0&&b[h]&&!b[h].disabled&&w(b[h]);break;case"Escape":T.preventDefault(),p();break;case"Tab":p();break}},C=u&&h>=0?`${N}-option-${h}`:void 0;return e.jsxs("div",{className:"space-y-1",ref:x,children:[e.jsxs("div",{className:"relative",children:[e.jsx(y.Input,{type:"text",role:"combobox","aria-expanded":u,"aria-haspopup":"listbox","aria-autocomplete":"list","aria-controls":N,"aria-activedescendant":C,value:u?d:E,placeholder:s??"Buscar...",disabled:i,readOnly:n,onChange:T=>{c(T.target.value),F(-1),m(!0)},onFocus:()=>!n&&m(!0),onKeyDown:j,className:y.cn("pr-8",l.error&&"border-destructive focus-visible:ring-destructive"),autoComplete:"off"}),e.jsx("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:a.value?e.jsx("button",{type:"button",onClick:R,className:"text-[var(--t-text-muted)] hover:text-[var(--t-text)]",tabIndex:-1,"aria-label":"Limpar seleção",children:e.jsx(A.X,{size:14})}):e.jsx(A.ChevronDown,{size:16,className:"text-muted-foreground pointer-events-none","aria-hidden":"true"})}),u&&!i&&!n&&e.jsx("ul",{role:"listbox",id:N,ref:I,"aria-label":"Opções disponíveis",className:"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-lg border border-input bg-popover shadow-lg",children:b.length===0?e.jsx("li",{role:"option","aria-selected":!1,className:"px-3 py-2 text-sm text-muted-foreground",children:"Nenhuma opção encontrada"}):b.map((T,V)=>e.jsx("li",{id:`${N}-option-${V}`,role:"option","aria-selected":a.value===T.valor,"aria-disabled":T.disabled,onMouseDown:()=>w(T),className:["flex cursor-pointer items-center px-3 py-2 text-sm",T.disabled?"cursor-not-allowed opacity-40":V===h?"bg-accent":"hover:bg-accent",a.value===T.valor?"font-medium text-primary":"text-foreground"].join(" "),children:T.label},T.valor))})]}),((D=l.error)==null?void 0:D.message)&&e.jsx("p",{className:"text-sm text-destructive",role:"alert",children:l.error.message})]})},Ge=({name:t,control:r,placeholder:o,disabled:s,readOnly:i})=>{var d;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=!!a.error;return e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Input,{...n,value:n.value??"",type:"time",placeholder:o,disabled:s,readOnly:i,className:y.cn(l&&"border-destructive focus-visible:ring-destructive")}),((d=a.error)==null?void 0:d.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},wt=({name:t,control:r,startLabel:o="Data inicial",endLabel:s="Data final",disabled:i,readOnly:n})=>{var m;const{field:a,fieldState:l}=S.useController({name:t,control:r}),d=a.value??{},c=(h,F)=>{a.onChange({...d,[h]:F})},u=!!l.error;return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Label,{children:o}),e.jsx(y.Input,{type:"date",value:d.start??"",disabled:i,readOnly:n,onChange:h=>c("start",h.target.value),max:d.end??void 0,className:y.cn(u&&"border-destructive focus-visible:ring-destructive")})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(y.Label,{children:s}),e.jsx(y.Input,{type:"date",value:d.end??"",disabled:i,readOnly:n,onChange:h=>c("end",h.target.value),min:d.start??void 0,className:y.cn(u&&"border-destructive focus-visible:ring-destructive")})]})]}),((m=l.error)==null?void 0:m.message)&&e.jsx("p",{className:"text-sm text-destructive",children:l.error.message})]})},Dt=({name:t,control:r,maxRating:o=5,disabled:s,readOnly:i})=>{var c;const{field:n,fieldState:a}=S.useController({name:t,control:r}),l=n.value??0,d=Array.from({length:o},(u,m)=>m+1);return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[d.map(u=>e.jsx("button",{type:"button",disabled:s||i,onClick:()=>n.onChange(u===l?0:u),className:"transition-transform hover:scale-110 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded","aria-label":`${u} estrela${u>1?"s":""}`,children:e.jsx(A.Star,{size:24,className:"transition-colors",fill:u<=l?"var(--color-primary)":"transparent",stroke:u<=l?"var(--color-primary)":"currentColor"})},u)),l>0&&e.jsxs("span",{className:"ml-2 text-sm text-muted-foreground",children:[l,"/",o]})]}),((c=a.error)==null?void 0:c.message)&&e.jsx("p",{className:"text-sm text-destructive",children:a.error.message})]})},Et=({field:t,name:r,control:o,disabled:s,readOnly:i})=>{const n=s||t.isDisabled,a=i||t.isReadOnly;switch(t.tipo){case f.FieldType.EMAIL:return e.jsx(z,{name:r,control:o,type:"email",placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.NUMBER:return e.jsx(z,{name:r,control:o,type:"number",placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.PASSWORD:return e.jsx(z,{name:r,control:o,type:"password",placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.TELEFONE:return e.jsx(re,{name:r,control:o,maskType:"telefone",placeholder:t.placeholder??"(00) 00000-0000",disabled:n,readOnly:a});case f.FieldType.CPF:return e.jsx(re,{name:r,control:o,maskType:"cpf",placeholder:t.placeholder??"000.000.000-00",disabled:n,readOnly:a});case f.FieldType.CEP:return e.jsx(re,{name:r,control:o,maskType:"cep",placeholder:t.placeholder??"00000-000",disabled:n,readOnly:a});case f.FieldType.TEXTAREA:return e.jsx(ge,{name:r,control:o,placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.SELECT:return e.jsx(be,{name:r,control:o,options:t.opcoes??[],placeholder:t.placeholder,disabled:n,readOnly:a});case f.FieldType.CHECKBOX:return e.jsx(ve,{name:r,control:o,label:t.label??"",disabled:n,readOnly:a});case f.FieldType.SWITCH:return e.jsx(qe,{name:r,control:o,label:t.label??"",disabled:n,readOnly:a});case f.FieldType.DATE:return e.jsx(ie,{name:r,control:o,disabled:n,readOnly:a});case f.FieldType.TIME:return e.jsx(Ge,{name:r,control:o,disabled:n,readOnly:a});case f.FieldType.HIDDEN:return e.jsx(ye,{name:r,control:o});default:return e.jsx(z,{name:r,control:o,type:"text",placeholder:t.placeholder,disabled:n,readOnly:a})}},$t=({name:t,control:r,subSchema:o,disabled:s,readOnly:i})=>{if(!o||o.fields.length===0)return null;const n=[...o.fields].sort((a,l)=>a.ordem-l.ordem);return e.jsxs("div",{className:"rounded-xl border border-input bg-muted/30 p-4 space-y-4",children:[o.titulo&&e.jsx("h4",{className:"text-sm font-semibold text-muted-foreground",children:o.titulo}),e.jsx("div",{className:"grid grid-cols-12 gap-4",children:n.map(a=>{const l=`${t}.${a.nome}`,d=a.tipo===f.FieldType.CHECKBOX||a.tipo===f.FieldType.SWITCH||a.tipo===f.FieldType.HIDDEN,c=a.tamanho??6;return e.jsxs("div",{className:`col-span-${c}`,children:[!d&&e.jsxs("label",{className:"mb-1 block text-sm font-medium text-foreground",children:[a.label,a.obrigatorio&&e.jsx("span",{className:"text-destructive",children:" *"})]}),e.jsx(Et,{field:a,name:l,control:r,disabled:s,readOnly:i})]},a.id)})})]})},Ye=({field:t,control:r,nameOverride:o})=>{var l,d;const s=o??t.nome,{componentMapper:i}=te(),n=i==null?void 0:i[t.tipo];if(n)return e.jsx(n,{name:s,control:r,field:t});const a={name:s,control:r,placeholder:t.placeholder,disabled:t.isDisabled,readOnly:t.isReadOnly};switch(t.tipo){case f.FieldType.TEXTO:return e.jsx(z,{...a,type:"text"});case f.FieldType.EMAIL:return e.jsx(z,{...a,type:"email"});case f.FieldType.NUMBER:return e.jsx(z,{...a,type:"number"});case f.FieldType.PASSWORD:return e.jsx(Nt,{...a});case f.FieldType.TEXTAREA:return e.jsx(ge,{...a});case f.FieldType.SELECT:return e.jsx(be,{...a,options:t.opcoes??[]});case f.FieldType.AUTOCOMPLETE:return e.jsx(Tt,{...a,options:t.opcoes??[]});case f.FieldType.SWITCH:return e.jsx(qe,{name:s,control:r,label:t.label,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.SLIDER:return e.jsx(Ct,{name:s,control:r,minValue:t.minValue,maxValue:t.maxValue,step:t.step,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.RATING:return e.jsx(Dt,{name:s,control:r,maxRating:t.maxRating,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.COLOR:return e.jsx(Ft,{name:s,control:r,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.TIME:return e.jsx(Ge,{...a});case f.FieldType.DATE_RANGE:return e.jsx(wt,{name:s,control:r,startLabel:t.dateRangeStartLabel,endLabel:t.dateRangeEndLabel,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.RADIO:return e.jsx(Ce,{...a,options:t.opcoes??[]});case f.FieldType.CHECKBOX:return e.jsx(ve,{name:s,control:r,label:t.label,disabled:t.isDisabled,readOnly:t.isReadOnly});case f.FieldType.CHECKBOX_GROUP:return e.jsx(Ne,{...a,options:t.opcoes??[]});case f.FieldType.DATE:return e.jsx(ie,{name:s,control:r,disabled:t.isDisabled,readOnly:t.isReadOnly,validacao:t.validacao});case f.FieldType.DATETIME:return e.jsx(ie,{name:s,control:r,isDatetime:!0,disabled:t.isDisabled,readOnly:t.isReadOnly,validacao:t.validacao});case f.FieldType.FILE:return e.jsx(Fe,{name:s,control:r,disabled:t.isDisabled,fileTypes:(l=t.validacao)==null?void 0:l.fileTypes,maxFileSize:(d=t.validacao)==null?void 0:d.maxFileSize});case f.FieldType.TELEFONE:return e.jsx(re,{...a,maskType:"telefone"});case f.FieldType.CPF:return e.jsx(re,{...a,maskType:"cpf"});case f.FieldType.CEP:return e.jsx(Te,{name:s,control:r,placeholder:t.placeholder,disabled:t.isDisabled,readOnly:t.isReadOnly,cepFillMap:t.cepFillMap});case f.FieldType.HIDDEN:return e.jsx(ye,{name:s,control:r});case f.FieldType.PARTICIPATION_TYPE:return e.jsx(He,{name:s,control:r});case f.FieldType.PAYMENT_METHOD:return e.jsx(ze,{name:s,control:r,relatedFieldName:t.relatedFieldName});case f.FieldType.TERMS:return e.jsx(Ke,{name:s,control:r,label:t.label,termoTexto:t.termoTexto,termoPdfUrl:t.termoPdfUrl,termoPdfUploadId:t.termoPdfUploadId});case f.FieldType.FIELD_ARRAY:return e.jsx(We,{name:s,control:r,subFields:t.subFields,minItems:t.minItems,maxItems:t.maxItems,itemLabel:t.itemLabel,addLabel:t.addLabel});case f.FieldType.SUB_FORM:return e.jsx($t,{name:s,control:r,subSchema:t.subSchema,disabled:t.isDisabled,readOnly:t.isReadOnly});default:return e.jsx(z,{...a,type:"text"})}},At=({container:t,control:r})=>{var I;const{externalData:o={},fieldResolvers:s}=te(),i=t.icone?fe[t.icone]:void 0,n=o,a=g.useMemo(()=>he(t,n),[t,JSON.stringify(n)]),l=g.useMemo(()=>[...a.campos].sort((N,E)=>N.ordem-E.ordem),[a.campos]),d=S.useWatch({control:r}),{wrapperClass:c,wrapperStyle:u,headerClass:m,headerStyle:h,tmpl:F}=Me(),x=N=>{if(!B(N.condicional,d,o))return null;let b=N;if(N.resolvePropsKey&&(s!=null&&s[N.resolvePropsKey])){const C=s[N.resolvePropsKey](N,d,o);b={...N,...C}}if(b.opcoesFromVar){const C=o[b.opcoesFromVar];Array.isArray(C)&&(b={...b,opcoes:C.map(v=>typeof v=="string"?{valor:v,label:v}:v&&typeof v=="object"&&"valor"in v&&"label"in v?v:{valor:String(v),label:String(v)})})}const p=b.tamanho??12,w=b.inicioColuna,R=w?`${w} / span ${p}`:`span ${p}`,j=e.jsx(Ye,{field:b,control:r});return b.tipo===f.FieldType.CHECKBOX||b.tipo===f.FieldType.HIDDEN||b.tipo===f.FieldType.SWITCH?e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:R},children:j},b.id):e.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:R},children:[e.jsxs("label",{className:"font-medium flex items-center gap-1",style:{color:"var(--t-text)"},children:[b.label,b.obrigatorio&&e.jsx("span",{className:"text-destructive",children:"*"})]}),j,b.hint&&e.jsx("p",{className:"text-xs text-muted-foreground",children:b.hint})]},b.id)};return e.jsxs("div",{className:c,style:u,children:[(a.titulo||i)&&e.jsx("div",{className:m,style:h,children:e.jsxs("div",{className:"flex items-center gap-3",children:[i&&e.jsx("div",{className:"p-2 rounded-xl",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:e.jsx(i,{className:"w-5 h-5",style:{color:"var(--t-primary)"}})}),e.jsxs("div",{children:[e.jsx("h3",{className:((I=F.typography)==null?void 0:I.stepTitleClass)??"text-lg font-semibold",style:{color:"var(--t-text)"},children:a.titulo}),a.descricao&&e.jsx("p",{className:"text-sm",style:{color:"var(--t-text-muted)"},children:a.descricao})]})]})}),e.jsx("div",{className:"p-6 grid grid-cols-12 gap-4",children:l.map(x)})]})},It=({container:t,control:r})=>{var C;const{externalData:o={}}=te(),s=t.nome??"__invalid__",i=t.minItems??1,n=t.maxItems,a=t.itemLabel??"Item",l=t.icone?fe[t.icone]:void 0,d=o,c=g.useMemo(()=>he(t,d),[t,JSON.stringify(d)]),u=g.useMemo(()=>[...c.campos].sort((v,D)=>v.ordem-D.ordem),[c.campos]),m=g.useCallback(()=>{const v={};for(const D of u)D.initialValue!==void 0?v[D.nome]=typeof D.initialValue=="string"?U(D.initialValue,d):D.initialValue:D.defaultValue!==void 0&&(v[D.nome]=D.defaultValue);return v},[u,d]),{fields:h,append:F,remove:x}=S.useFieldArray({control:r,name:s});g.useEffect(()=>{if(t.nome&&h.length<i)for(let v=h.length;v<i;v++)F(m())},[i]);const I=S.useWatch({control:r}),N=g.useMemo(()=>{const v=I[s];return Array.isArray(v)?v:[]},[I,s]),{wrapperClass:E,wrapperStyle:b,headerClass:p,headerStyle:w,tmpl:R}=Me();if(!t.nome)return console.error("[RepeatableContainerRenderer] container.nome é obrigatório para containers repetíveis. Container id:",t.id),null;const j=(v,D)=>{const T=N[D]??{};if(!B(v.condicional,T,o))return null;const M=`${s}.${D}.${v.nome}`,K=v.tamanho??12,q=v.inicioColuna,Y=q?`${q} / span ${K}`:`span ${K}`,Q=e.jsx(Ye,{field:v,control:r,nameOverride:M});return v.tipo===f.FieldType.CHECKBOX||v.tipo===f.FieldType.HIDDEN?e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:Y},children:Q},`${v.id}-${D}`):e.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:Y},children:[e.jsxs("label",{className:"font-medium flex items-center gap-1",style:{color:"var(--t-text)"},children:[v.label,v.obrigatorio&&e.jsx("span",{className:"text-destructive",children:"*"})]}),Q,v.hint&&e.jsx("p",{className:"text-xs text-muted-foreground",children:v.hint})]},`${v.id}-${D}`)};return e.jsxs("div",{className:E,style:b,children:[(c.titulo||l)&&e.jsx("div",{className:p,style:w,children:e.jsxs("div",{className:"flex items-center gap-3",children:[l&&e.jsx("div",{className:"p-2 rounded-xl",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:e.jsx(l,{className:"w-5 h-5",style:{color:"var(--t-primary)"}})}),e.jsxs("div",{children:[e.jsx("h3",{className:((C=R.typography)==null?void 0:C.stepTitleClass)??"text-lg font-semibold",style:{color:"var(--t-text)"},children:c.titulo}),c.descricao&&e.jsx("p",{className:"text-sm",style:{color:"var(--t-text-muted)"},children:c.descricao})]})]})}),e.jsxs("div",{className:"p-6 space-y-4",children:[h.map((v,D)=>e.jsxs("div",{className:"border border-input rounded-lg p-4 bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0 bg-primary text-primary-foreground",children:D+1}),e.jsxs("span",{className:"text-sm font-semibold",children:[a," ",D+1]})]}),h.length>i&&e.jsx("button",{type:"button",onClick:()=>x(D),className:"inline-flex items-center justify-center rounded-md p-1.5 text-destructive hover:bg-destructive/10 transition-colors","aria-label":"Remover item",children:e.jsx(A.Trash2,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"grid grid-cols-12 gap-4",children:u.map(T=>j(T,D))})]},v.id)),(!n||h.length<n)&&e.jsxs("button",{type:"button",className:"w-full flex items-center justify-center gap-2 py-2 px-4 border border-input rounded-lg text-sm hover:bg-accent transition-colors",onClick:()=>F(m()),children:[e.jsx(A.Plus,{className:"w-4 h-4"}),"Adicionar ",a.toLowerCase()]}),n&&e.jsxs("p",{className:"text-xs text-center text-muted-foreground",children:["Máximo de ",n," ",a.toLowerCase(),n>1?"s":""]})]})]})},Ze=t=>t.container.repeatable&&t.container.nome?e.jsx(It,{...t}):e.jsx(At,{...t}),Je=({step:t,control:r,externalData:o={}})=>{const s=g.useMemo(()=>[...t.containers].sort((n,a)=>n.ordem-a.ordem),[t.containers]),i=S.useWatch({control:r});return e.jsx("div",{className:"grid grid-cols-12 gap-4",children:s.map(n=>{if(n.condicional&&!B(n.condicional,i,o))return null;const a=n.tamanho??12,l=n.inicioColuna,d=l?`${l} / span ${a}`:`span ${a}`;return e.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:d},children:e.jsx(Ze,{container:n,control:r})},n.id)})})},ce=g.createContext({submitting:!1,warnings:{},requestSubmit:()=>{}}),St=ce.Provider,Rt=()=>{const t=et("useFormApi"),r=g.useContext(ce);return{change:(o,s)=>t.setValue(o,s,{shouldValidate:!0,shouldDirty:!0}),reset:o=>t.reset(o),submit:r.requestSubmit,getState:()=>{const{errors:o,isDirty:s,isValid:i}=t.formState;return{values:t.getValues(),errors:Object.fromEntries(Object.entries(o).map(([n,a])=>[n,a==null?void 0:a.message])),warnings:r.warnings,dirty:s,valid:i,submitting:r.submitting}}}},Qe=()=>{const t=et("useFormState"),r=g.useContext(ce),o=S.useWatch({control:t.control}),{errors:s,isDirty:i,isValid:n}=t.formState;return{values:o,errors:Object.fromEntries(Object.entries(s).map(([a,l])=>[a,l==null?void 0:l.message])),warnings:r.warnings,dirty:i,valid:n,submitting:r.submitting}},kt=t=>{var n;const r=S.useFormContext(),{warnings:o}=g.useContext(ce),s=S.useWatch({control:r.control,name:t}),i=r.getFieldState(t,r.formState);return{value:s,error:(n=i.error)==null?void 0:n.message,warning:o[t],dirty:i.isDirty,touched:i.isTouched,valid:!i.error}},Ot=t=>{var n;const{control:r}=S.useFormContext(),{warnings:o}=g.useContext(ce),{field:s,fieldState:i}=S.useController({name:t,control:r});return{input:{name:s.name,value:s.value,onChange:s.onChange,onBlur:s.onBlur,ref:s.ref},meta:{error:(n=i.error)==null?void 0:n.message,warning:o[t],touched:i.isTouched,dirty:i.isDirty,valid:!i.error}}},et=t=>{const r=S.useFormContext();if(!r)throw new Error(`[SchemaForms] O hook '${t}' foi chamado fora de um <FormRenderer />. Certifique-se de que o componente está dentro da árvore de renderização do formulário.`);return r},ke=({stepIndex:t,totalSteps:r,step:o,defaultValues:s,externalData:i,fieldErrors:n,isSubmitting:a,submitError:l,validatorMapper:d={},onWarningsChange:c,onValuesChange:u,onSubmit:m,onBack:h})=>{const F=t===r-1,x=g.useMemo(()=>JSON.stringify(i),[i]),I=g.useMemo(()=>Oe(o,i,d),[o.id,x]),N=g.useMemo(()=>Pe(o,i,d),[o.id,x]),[E,b]=g.useState({}),p=g.useRef(c);p.current=c;const w=i,R=g.useMemo(()=>Le(o,w),[o,x]),j=S.useForm({resolver:I,defaultValues:s,mode:"onTouched"}),{control:C,handleSubmit:v,setError:D,clearErrors:T,setValue:V}=j;g.useEffect(()=>{T();for(const[$,G]of Object.entries(n))D($,{type:"server",message:G})},[n,D,T]);const M=g.useMemo(()=>o.containers.filter($=>!$.repeatable).flatMap($=>$.campos).filter($=>!!$.condicional),[o.containers]),K=g.useMemo(()=>o.containers.filter($=>!!$.condicional),[o.containers]),q=g.useMemo(()=>o.containers.filter($=>!$.repeatable).flatMap($=>$.campos).filter($=>{var G;return $.condicional&&((G=$.setValues)==null?void 0:G.length)}),[o.containers]),Y=g.useMemo(()=>o.containers.filter($=>$.repeatable&&!!$.nome).map($=>({container:$,fields:$.campos.filter(G=>!!G.condicional)})).filter($=>$.fields.length>0),[o.containers]),Q=g.useRef({}),H=g.useRef(!0),X=S.useWatch({control:C}),k=g.useRef(u);k.current=u,g.useEffect(()=>{var $;($=k.current)==null||$.call(k,X)},[X]),g.useEffect(()=>{let $=!1;return N(X).then(J=>{var O;$||(b(J),(O=p.current)==null||O.call(p,J))}).catch(J=>{$||console.error("[StepForm] warnComputer error:",J)}),()=>{$=!0}},[X,N]),g.useEffect(()=>{var J;if(!M.length&&!q.length&&!K.length&&!Y.length)return;const $=X;for(const O of M)if(!B(O.condicional,$,i)){if(T(O.nome),O.tipo===f.FieldType.FIELD_ARRAY){const L=$[O.nome];Array.isArray(L)&&L.forEach((P,_)=>{(O.subFields??[]).forEach(Z=>T(`${O.nome}.${_}.${Z.nome}`))})}if(O.clearedValue!==void 0){const L=O.clearedValue??"";$[O.nome]!==L&&V(O.nome,L,{shouldValidate:!1})}}for(const O of K)if(!B(O.condicional,$,i))if(O.repeatable&&O.nome)(Array.isArray($[O.nome])?$[O.nome]:[]).forEach((P,_)=>{for(const Z of O.campos)T(`${O.nome}.${_}.${Z.nome}`)});else for(const L of O.campos){T(L.nome);const P=L.clearedValue!==void 0?L.clearedValue:void 0;P!==void 0&&$[L.nome]!==P&&V(L.nome,P,{shouldValidate:!1})}for(const{container:O,fields:ee}of Y){const L=O.nome,P=Array.isArray($[L])?$[L]:[];for(let _=0;_<P.length;_++){const Z=P[_];for(const se of ee)if(!B(se.condicional,Z,i)&&(T(`${L}.${_}.${se.nome}`),se.clearedValue!==void 0)){const we=se.clearedValue??"";Z[se.nome]!==we&&V(`${L}.${_}.${se.nome}`,we,{shouldValidate:!1})}}}const G=H.current;for(const O of q){const ee=B(O.condicional,$,i),L=G?ee:Q.current[O.nome]??!1;if(ee&&!L&&((J=O.setValues)!=null&&J.length))for(const P of O.setValues){const _=typeof P.valor=="string"?U(P.valor,w):P.valor;V(P.campo,_,{shouldValidate:!1})}Q.current[O.nome]=ee}H.current=!1},[X,M,q,K,Y,i,V,T]);const W=R.icone?fe[R.icone]:void 0,ne=g.useMemo(()=>()=>{j.handleSubmit(m)()},[m]);return e.jsx(S.FormProvider,{...j,children:e.jsx(St,{value:{submitting:a,warnings:E,requestSubmit:ne},children:e.jsx("form",{onSubmit:v(m),noValidate:!0,onKeyDown:$=>{$.key==="Enter"&&$.target.tagName==="INPUT"&&$.preventDefault()},children:e.jsxs("div",{className:"space-y-6",children:[R.showLabel!==!1&&e.jsxs("div",{className:"text-center space-y-2",children:[W&&e.jsx("div",{className:"w-12 h-12 mx-auto rounded-xl flex items-center justify-center",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:e.jsx(W,{className:"w-6 h-6",style:{color:"var(--t-primary)"}})}),e.jsx("h2",{className:"text-2xl font-bold",style:{color:"var(--t-text)"},children:R.titulo}),R.descricao&&e.jsx("p",{className:"text-sm text-muted-foreground",children:R.descricao})]}),e.jsx(Je,{step:R,control:C,externalData:i}),e.jsxs("div",{className:"flex items-center justify-between gap-4 pt-6 pb-2",children:[e.jsxs(y.Button,{type:"button",variant:"outline",onClick:h,disabled:t===0,className:y.cn(t>0&&"border-primary/40 text-primary hover:bg-primary/5"),children:[e.jsx(A.ChevronLeft,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Anterior"})]}),e.jsxs("span",{className:"text-xs font-semibold tabular-nums sm:hidden text-muted-foreground",children:[t+1,"/",r]}),e.jsxs(y.Button,{type:"submit",disabled:a,children:[a?e.jsx(A.Loader2,{className:"w-4 h-4 animate-spin"}):F?e.jsx(A.Check,{className:"w-4 h-4"}):e.jsx(A.ChevronRight,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:F?"Finalizar":"Próximo"})]})]}),l&&e.jsx("p",{className:"text-sm text-destructive mt-2 text-center",children:l})]})})})})},pe=t=>{if(t)return fe[t]},Pt=({steps:t,currentStep:r,onStepClick:o})=>e.jsx("div",{className:"flex items-center justify-center gap-2 flex-wrap",children:t.map((s,i)=>e.jsx("div",{role:o?"button":void 0,tabIndex:o?0:void 0,onClick:()=>o==null?void 0:o(i),onKeyDown:n=>n.key==="Enter"&&(o==null?void 0:o(i)),className:y.cn("w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all shrink-0",o&&"cursor-pointer hover:opacity-80"),style:i===r?{background:"var(--t-primary)",color:"#ffffff",boxShadow:"0 0 0 3px color-mix(in srgb, var(--t-primary) 30%, transparent)"}:i<r?{background:"#22c55e",color:"#ffffff"}:{background:"hsl(var(--muted))",color:"hsl(var(--muted-foreground))"},children:i<r?e.jsx(A.Check,{className:"w-4 h-4"}):i+1},s.id))}),Vt=({steps:t,currentStep:r,onStepClick:o})=>e.jsx("div",{className:"flex items-center justify-center gap-2 flex-wrap",children:t.map((s,i)=>{const n=pe(s.icone)??A.CircleDot;return e.jsx("div",{role:o?"button":void 0,tabIndex:o?0:void 0,onClick:()=>o==null?void 0:o(i),onKeyDown:a=>a.key==="Enter"&&(o==null?void 0:o(i)),className:y.cn("w-9 h-9 rounded-full flex items-center justify-center transition-all shrink-0",o&&"cursor-pointer hover:opacity-80"),style:i===r?{background:"var(--t-primary)",color:"#ffffff",boxShadow:"0 0 0 3px color-mix(in srgb, var(--t-primary) 30%, transparent)"}:i<r?{background:"#22c55e",color:"#ffffff"}:{background:"hsl(var(--muted))",color:"hsl(var(--muted-foreground))"},children:i<r?e.jsx(A.Check,{className:"w-4 h-4"}):e.jsx(n,{className:"w-4 h-4"})},s.id)})}),Lt=({steps:t,currentStep:r,position:o,orientation:s="horizontal",onStepClick:i})=>s==="vertical"?e.jsx("div",{className:"flex flex-col gap-0",children:t.map((n,a)=>{const l=pe(n.icone)??A.CircleDot,d=a===r,c=a<r,u=a===t.length-1;return e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx("button",{type:"button",onClick:()=>i==null?void 0:i(a),className:y.cn("w-8 h-8 rounded-full flex items-center justify-center transition-all shrink-0",i&&"cursor-pointer hover:opacity-80"),style:d?{background:"var(--t-primary)",color:"#fff",boxShadow:"0 0 10px color-mix(in srgb, var(--t-primary) 50%, transparent)"}:c?{background:"#22c55e",color:"#fff"}:{background:"color-mix(in srgb, var(--t-text) 8%, transparent)",color:"var(--t-text-muted)",border:"1.5px solid color-mix(in srgb, var(--t-border) 60%, transparent)"},children:c?e.jsx(A.Check,{className:"w-3.5 h-3.5"}):e.jsx(l,{className:"w-3.5 h-3.5"})}),!u&&e.jsx("div",{className:"w-[2px] my-1",style:{height:"24px",background:c?"#22c55e":"color-mix(in srgb, var(--t-border) 50%, transparent)"}})]}),e.jsx("span",{className:"text-sm font-medium leading-tight mt-1.5",style:d?{color:"var(--t-primary)"}:c?{color:"#16a34a"}:{color:"var(--t-text-muted)"},children:n.label??n.id})]},n.id)})}):e.jsx("div",{className:"w-full flex items-start",children:t.map((n,a)=>{const l=pe(n.icone)??A.CircleDot,d=a===r,c=a<r,u=a===t.length-1;return e.jsxs("div",{className:y.cn("flex items-start",!u&&"flex-1"),children:[e.jsxs("div",{className:"flex flex-col items-center gap-1.5 w-[56px] shrink-0 mx-auto",children:[e.jsx("button",{type:"button",onClick:()=>i==null?void 0:i(a),className:y.cn("w-10 h-10 rounded-full flex items-center justify-center transition-all shrink-0",i&&"cursor-pointer hover:opacity-80"),style:d?{background:"var(--t-primary)",color:"#ffffff",boxShadow:"0 0 12px color-mix(in srgb, var(--t-primary) 50%, transparent)"}:c?{background:"#22c55e",color:"#ffffff"}:{background:"color-mix(in srgb, var(--t-text) 8%, transparent)",color:"var(--t-text-muted)",border:"1.5px solid color-mix(in srgb, var(--t-border) 60%, transparent)"},children:c?e.jsx(A.Check,{className:"w-4 h-4"}):e.jsx(l,{className:"w-4 h-4"})}),e.jsx("span",{className:"text-[10px] font-medium text-center leading-tight line-clamp-2 px-0.5",style:d?{color:"var(--t-primary)"}:c?{color:"#16a34a"}:{color:"var(--t-text-muted)"},children:n.label??n.id})]}),!u&&e.jsx("div",{className:"flex-1 h-[1.5px] mt-5 mx-1",style:{background:c?"linear-gradient(90deg, var(--t-primary), color-mix(in srgb, var(--t-primary) 40%, transparent))":"color-mix(in srgb, var(--t-border) 50%, transparent)"}})]},n.id)})}),tt=({steps:t,currentStep:r,onStepClick:o,className:s,forceShow:i})=>{const n=le.useTemplate(),{layout:a}=n;if(!a.showStepIndicators||t.length<=1&&!i)return null;const l=a.stepIndicatorVariant??"numbers",d=a.stepIndicatorPosition??"top-center",c=a.stepIndicatorOrientation??"horizontal",u=(r+1)/t.length*100,m=t[r],h=pe(m==null?void 0:m.icone)??A.CircleDot,F=e.jsx("div",{className:"h-1 rounded-full overflow-hidden",style:{background:"color-mix(in srgb, var(--t-primary) 15%, transparent)"},children:e.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${u}%`,background:"linear-gradient(90deg, var(--t-primary), var(--t-accent))"}})}),x=e.jsxs("div",{className:"block sm:hidden space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full flex items-center justify-center shrink-0",style:{background:"var(--t-primary)",color:"#fff"},children:e.jsx(h,{className:"w-5 h-5"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold leading-tight truncate",style:{color:"var(--t-text)"},children:(m==null?void 0:m.label)??(m==null?void 0:m.id)}),e.jsxs("p",{className:"text-xs leading-tight",style:{color:"var(--t-text-muted)"},children:["Passo ",r+1," de ",t.length]})]})]}),F]}),I=e.jsxs("div",{className:"hidden sm:block",children:[l==="numbers"&&e.jsx(Pt,{steps:t,currentStep:r,onStepClick:o}),l==="icons"&&e.jsx(Vt,{steps:t,currentStep:r,onStepClick:o}),l==="icons-labeled"&&e.jsx(Lt,{steps:t,currentStep:r,position:d,orientation:c,onStepClick:o})]}),N=a.showProgressBar?e.jsx("div",{className:"hidden sm:block",children:F}):null;return c==="vertical"?e.jsxs("div",{className:y.cn("flex gap-6 items-start",s),children:[x,e.jsxs("div",{className:"hidden sm:flex gap-6 items-start shrink-0",children:[I,N&&e.jsx("div",{className:"flex-1 pt-4",children:N})]})]}):e.jsxs("div",{className:y.cn("space-y-3",s),children:[x,e.jsxs("div",{className:"hidden sm:block space-y-3",children:[I,N]})]})},Mt=(t,r,o)=>{var n;const s={...r},i=o;for(const a of t.containers){for(const l of a.campos)if(s[l.nome]===void 0&&(l.initialValue!==void 0?s[l.nome]=typeof l.initialValue=="string"?U(l.initialValue,i):l.initialValue:l.defaultValue!==void 0&&(s[l.nome]=l.defaultValue)),l.tipo===f.FieldType.FIELD_ARRAY&&((n=l.subFields)!=null&&n.length)){const d=s[l.nome];Array.isArray(d)&&d.length>0&&(s[l.nome]=d.map(c=>{const u={...c};for(const m of l.subFields)u[m.nome]===void 0&&(m.initialValue!==void 0?u[m.nome]=typeof m.initialValue=="string"?U(m.initialValue,i):m.initialValue:m.defaultValue!==void 0&&(u[m.nome]=m.defaultValue));return u}))}if(a.repeatable&&a.nome){const l=s[a.nome];Array.isArray(l)&&l.length>0&&(s[a.nome]=l.map(d=>{const c={...d};for(const u of a.campos)c[u.nome]===void 0&&(u.initialValue!==void 0?c[u.nome]=typeof u.initialValue=="string"?U(u.initialValue,i):u.initialValue:u.defaultValue!==void 0&&(c[u.nome]=u.defaultValue));return c}))}}return s},_t=({schema:t,initialValues:r={},initialStep:o=0,onSubmitStep:s,onComplete:i,template:n,formTitle:a,externalData:l={},fieldErrors:d={},uploadFile:c,cepLookup:u,resolveTermsUploadUrl:m,fieldResolvers:h,validatorMapper:F,componentMapper:x,paymentMethodOptions:I,onValuesChange:N,className:E,StepIndicator:b=tt})=>{const[p,w]=g.useState(()=>o),[R,j]=g.useState({...r}),[C,v]=g.useState(()=>o),[D,T]=g.useState(!1),[V,M]=g.useState(null),[K,q]=g.useState({}),Y=g.useMemo(()=>JSON.stringify(l),[l]),Q=g.useMemo(()=>JSON.stringify(t.stepConfig),[t.stepConfig]),H=g.useMemo(()=>{const P=le.getTemplateConfig(n);return t.stepConfig?{...P,layout:{...P.layout,...t.stepConfig}}:P},[n,Q]),X=g.useMemo(()=>[...t.steps].sort((P,_)=>P.ordem-_.ordem),[t.steps]),k=X.length,W=k>0?X[Math.min(p,k-1)]:null,ne=g.useMemo(()=>W?Mt(W,R,l):{},[W,R,Y]),$=g.useMemo(()=>({uploadFile:c,cepLookup:u,resolveTermsUploadUrl:m,externalData:l,fieldResolvers:h,validatorMapper:F,fieldWarnings:K,componentMapper:x,paymentMethodOptions:I}),[c,u,m,h,F,K,x,I,Y]),G=g.useCallback(async P=>{if(!D){T(!0),M(null);try{const _={...R,...P};if(j(_),s&&await s(p,P),p===k-1)i&&await i(_);else{const Z=p+1;w(Z),v(se=>Math.max(se,Z))}}catch(_){console.error("[FormRenderer] Submit error:",_);const Z=_ instanceof Error?_.message:"Ocorreu um erro. Tente novamente.";M(Z)}finally{T(!1)}}},[p,R,D,k,s,i]),J=g.useCallback(()=>{p>0&&w(P=>P-1)},[p]);if(!W)return e.jsx(xe.Provider,{value:$,children:e.jsx(le.TemplateProvider,{config:H,className:`min-h-dvh ${H.wrapperClass??""} ${E??""}`,renderWrapper:!0,children:e.jsx("div",{className:"w-full max-w-4xl mx-auto px-4 py-6 sm:px-6 text-center text-muted-foreground",children:"Nenhum step configurado."})})});const O=H.layout.eventTitleStyle??"bar",ee=(H.layout.stepIndicatorOrientation??"horizontal")==="vertical",L=k>=1?e.jsx(b,{steps:X.map(P=>({id:P.id,label:P.titulo,icone:P.icone})),currentStep:p,onStepClick:P=>{P!==p&&P<=C&&w(P)}}):null;return e.jsx(xe.Provider,{value:$,children:e.jsx(le.TemplateProvider,{config:H,className:`min-h-dvh ${H.wrapperClass??""} ${E??""}`,renderWrapper:!0,children:e.jsxs("div",{className:"w-full max-w-4xl mx-auto px-4 py-6 sm:px-6",children:[a&&O==="bar"&&e.jsx("div",{className:"w-full text-center text-sm font-medium py-2.5 px-4 mb-6 rounded-lg border border-input text-muted-foreground bg-muted/30",children:a}),a&&O==="inline"&&e.jsxs("div",{className:"text-center mb-6",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest mb-1",style:{color:"var(--t-text-muted)"},children:"Inscrição"}),e.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--t-text)"},children:a}),e.jsx("div",{className:"h-0.5 w-12 mx-auto mt-3 rounded-full",style:{background:"var(--t-primary)"}})]}),ee?e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"hidden sm:block shrink-0 w-44 pt-1",children:L}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"sm:hidden mb-6",children:L}),e.jsx(ke,{stepIndex:p,totalSteps:k,step:W,defaultValues:ne,externalData:l,fieldErrors:d,isSubmitting:D,submitError:V,validatorMapper:F,onWarningsChange:q,onValuesChange:N,onSubmit:G,onBack:J},p)]})]}):e.jsxs(e.Fragment,{children:[L&&e.jsx("div",{className:"mb-8",children:L}),e.jsx(ke,{stepIndex:p,totalSteps:k,step:W,defaultValues:ne,externalData:l,fieldErrors:d,isSubmitting:D,submitError:V,validatorMapper:F,onWarningsChange:q,onValuesChange:N,onSubmit:G,onBack:J},p)]})]})})})},Bt=({children:t,render:r,onChange:o})=>{const s=Qe(),i=g.useRef(o);return i.current=o,g.useEffect(()=>{var n;(n=i.current)==null||n.call(i,s)},[s.values,s.dirty,s.valid,s.submitting,s.errors,s.warnings]),r?e.jsx(e.Fragment,{children:r(s)}):typeof t=="function"?e.jsx(e.Fragment,{children:t(s)}):t!==void 0?e.jsx(e.Fragment,{children:t}):null};exports.ContainerRenderer=Ze;exports.DFCepField=Te;exports.DFCheckbox=ve;exports.DFCheckboxGroup=Ne;exports.DFDateField=ie;exports.DFFieldArray=We;exports.DFFileUpload=Fe;exports.DFHidden=ye;exports.DFMaskedInput=re;exports.DFParticipationType=He;exports.DFPaymentMethod=ze;exports.DFRadioGroup=Ce;exports.DFSelect=be;exports.DFTerms=Ke;exports.DFTextField=z;exports.DFTextarea=ge;exports.DefaultStepIndicator=tt;exports.FormRenderer=_t;exports.FormSpy=Bt;exports.OPCOES_POR_DIA=Ue;exports.OPCOES_TODOS_OS_DIAS=Xe;exports.RendererContext=xe;exports.StepRenderer=Je;exports.evaluateFieldCondition=B;exports.interpolate=U;exports.interpolateContainer=he;exports.interpolateField=Ve;exports.interpolateStep=Le;exports.makeStepResolver=Oe;exports.makeStepWarnComputer=Pe;exports.useField=kt;exports.useFieldApi=Ot;exports.useFormApi=Rt;exports.useFormState=Qe;exports.useRendererContext=te;
|