@schema-forms-data/renderer 0.3.21

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 SchemaForms
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,103 @@
1
+ # @schema-forms-data/renderer
2
+
3
+ [![npm](https://img.shields.io/npm/v/@schema-forms-data/renderer)](https://www.npmjs.com/package/@schema-forms-data/renderer)
4
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](../../LICENSE)
5
+
6
+ Renders a `FormSchema` as a live, multi-step form powered by `react-hook-form`.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ npm install @schema-forms-data/renderer react-hook-form lucide-react
12
+ ```
13
+
14
+ ## Basic usage
15
+
16
+ ```tsx
17
+ import { FormRenderer } from "@schema-forms-data/renderer";
18
+ import type { FormSchema } from "@schema-forms-data/core";
19
+
20
+ const schema: FormSchema = {
21
+ /* ... */
22
+ };
23
+
24
+ export default function Page() {
25
+ return (
26
+ <FormRenderer
27
+ schema={schema}
28
+ formTitle="Registration"
29
+ onSubmit={(values) => console.log(values)}
30
+ />
31
+ );
32
+ }
33
+ ```
34
+
35
+ ## Props
36
+
37
+ | Prop | Type | Default | Description |
38
+ | ----------------------- | ---------------------------------------------------- | ----------------- | ---------------------------------------------------- |
39
+ | `schema` | `FormSchema` | **required** | The form definition |
40
+ | `formTitle` | `string` | `""` | Title shown above the form |
41
+ | `template` | `string` | `"moderno"` | Visual template key |
42
+ | `externalData` | `Record<string, unknown>` | `{}` | Data available in conditions and field interpolation |
43
+ | `onSubmit` | `(values) => void\|Promise<void>` | **required** | Called with form values on final step submit |
44
+ | `onStepChange` | `(step: number) => void` | — | Called when the user navigates between steps |
45
+ | `uploadFile` | `(file: File, fieldName: string) => Promise<string>` | — | Inject your own file upload logic |
46
+ | `cepLookup` | `(cep: string) => Promise<CepLookupResult>` | ViaCEP public API | Inject your own CEP/zip lookup |
47
+ | `resolveTermsUploadUrl` | `(uploadId: string) => Promise<string>` | — | Resolve URL of a terms PDF by its upload ID |
48
+ | `StepIndicator` | `React.ComponentType<StepIndicatorProps>` | built-in | Custom step indicator component |
49
+ | `submitLabel` | `string` | `"Enviar"` | Label of the submit button |
50
+ | `nextLabel` | `string` | `"Próximo"` | Label of the next button |
51
+ | `prevLabel` | `string` | `"Voltar"` | Label of the prev button |
52
+
53
+ ## Inject dependencies (RendererContext)
54
+
55
+ All integrations are injectable — the renderer never makes HTTP calls directly:
56
+
57
+ ```tsx
58
+ import { FormRenderer } from '@schema-forms-data/renderer';
59
+
60
+ <FormRenderer
61
+ schema={schema}
62
+ formTitle="Event Registration"
63
+ externalData={{ eventName: 'React Conf', price: 150 }}
64
+ uploadFile={async (file, fieldName) => {
65
+ const url = await myApi.upload(file);
66
+ return url;
67
+ }}
68
+ cepLookup={async (cep) => {
69
+ const data = await myApi.getCep(cep);
70
+ return { logradouro: data.street, bairro: data.district, ... };
71
+ }}
72
+ onSubmit={async (values) => {
73
+ await myApi.submitRegistration(values);
74
+ }}
75
+ />
76
+ ```
77
+
78
+ ## CSS customization
79
+
80
+ The renderer uses `sfr-*` CSS class names — no Tailwind or shadcn dependency:
81
+
82
+ ```css
83
+ /* Override form styles */
84
+ .sfr-input {
85
+ /* text inputs */
86
+ }
87
+ .sfr-label {
88
+ /* field labels */
89
+ }
90
+ .sfr-error {
91
+ /* validation error messages */
92
+ }
93
+ .sfr-step-header {
94
+ /* step title area */
95
+ }
96
+ .sfr-form-actions {
97
+ /* submit/next/prev buttons area */
98
+ }
99
+ ```
100
+
101
+ ## License
102
+
103
+ MIT © [SchemaForms](https://github.com/SchemaForms)
package/dist/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),b=require("react"),S=require("react-hook-form"),Oe=require("@schema-forms-data/templates"),p=require("@schema-forms-data/core"),O=require("lucide-react");function Lr(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const t=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,t.get?t:{enumerable:!0,get:()=>e[s]})}}return r.default=e,Object.freeze(r)}const je=Lr(O);function z(e,r,s){function t(c,l){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:l,constr:i,traits:new Set},enumerable:!1}),c._zod.traits.has(e))return;c._zod.traits.add(e),r(c,l);const d=i.prototype,f=Object.keys(d);for(let u=0;u<f.length;u++){const g=f[u];g in c||(c[g]=d[g].bind(c))}}const n=(s==null?void 0:s.Parent)??Object;class o extends n{}Object.defineProperty(o,"name",{value:e});function i(c){var l;const d=s!=null&&s.Parent?new o:this;t(d,c),(l=d._zod).deferred??(l.deferred=[]);for(const f of d._zod.deferred)f();return d}return Object.defineProperty(i,"init",{value:t}),Object.defineProperty(i,Symbol.hasInstance,{value:c=>{var l,d;return s!=null&&s.Parent&&c instanceof s.Parent?!0:(d=(l=c==null?void 0:c._zod)==null?void 0:l.traits)==null?void 0:d.has(e)}}),Object.defineProperty(i,"name",{value:e}),i}class ce extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class ur extends Error{constructor(r){super(`Encountered unidirectional transform during encode: ${r}`),this.name="ZodEncodeError"}}const Vr={};function ne(e){return Vr}function Fe(e,r){return typeof r=="bigint"?r.toString():r}function Pe(e){return e==null}function De(e){const r=e.startsWith("^")?1:0,s=e.endsWith("$")?e.length-1:e.length;return e.slice(r,s)}const Be=Symbol("evaluating");function k(e,r,s){let t;Object.defineProperty(e,r,{get(){if(t!==Be)return t===void 0&&(t=Be,t=s()),t},set(n){Object.defineProperty(e,r,{value:n})},configurable:!0})}function Jr(...e){const r={};for(const s of e){const t=Object.getOwnPropertyDescriptors(s);Object.assign(r,t)}return Object.defineProperties({},r)}const fr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(e){if(Ue(e)===!1)return!1;const r=e.constructor;if(r===void 0||typeof r!="function")return!0;const s=r.prototype;return!(Ue(s)===!1||Object.prototype.hasOwnProperty.call(s,"isPrototypeOf")===!1)}function mr(e){return ke(e)?{...e}:Array.isArray(e)?[...e]:e}function Br(e,r,s){const t=new e._zod.constr(r??e._zod.def);return(!r||s!=null&&s.parent)&&(t._zod.parent=e),t}function se(e){const r=e;if(!r)return{};if(typeof r=="string")return{error:()=>r};if((r==null?void 0:r.message)!==void 0){if((r==null?void 0:r.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");r.error=r.message}return delete r.message,typeof r.error=="string"?{...r,error:()=>r.error}:r}function ie(e,r=0){var s;if(e.aborted===!0)return!0;for(let t=r;t<e.issues.length;t++)if(((s=e.issues[t])==null?void 0:s.continue)!==!0)return!0;return!1}function Ur(e,r){return r.map(s=>{var t;return(t=s).path??(t.path=[]),s.path.unshift(e),s})}function he(e){return typeof e=="string"?e:e==null?void 0:e.message}function oe(e,r,s){var n,o,i,c,l,d;const t={...e,path:e.path??[]};if(!e.message){const f=he((i=(o=(n=e.inst)==null?void 0:n._zod.def)==null?void 0:o.error)==null?void 0:i.call(o,e))??he((c=r==null?void 0:r.error)==null?void 0:c.call(r,e))??he((l=s.customError)==null?void 0:l.call(s,e))??he((d=s.localeError)==null?void 0:d.call(s,e))??"Invalid input";t.message=f}return delete t.inst,delete t.continue,r!=null&&r.reportInput||delete t.input,t}function Ae(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function fe(...e){const[r,s,t]=e;return typeof r=="string"?{message:r,code:"custom",input:s,inst:t}:{...r}}const pr=(e,r)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:r,enumerable:!1}),e.message=JSON.stringify(r,Fe,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},hr=z("$ZodError",pr),gr=z("$ZodError",pr,{Parent:Error});function Hr(e,r=s=>s.message){const s={},t=[];for(const n of e.issues)n.path.length>0?(s[n.path[0]]=s[n.path[0]]||[],s[n.path[0]].push(r(n))):t.push(r(n));return{formErrors:t,fieldErrors:s}}function Wr(e,r=s=>s.message){const s={_errors:[]},t=n=>{for(const o of n.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(i=>t({issues:i}));else if(o.code==="invalid_key")t({issues:o.issues});else if(o.code==="invalid_element")t({issues:o.issues});else if(o.path.length===0)s._errors.push(r(o));else{let i=s,c=0;for(;c<o.path.length;){const l=o.path[c];c===o.path.length-1?(i[l]=i[l]||{_errors:[]},i[l]._errors.push(r(o))):i[l]=i[l]||{_errors:[]},i=i[l],c++}}};return t(e),s}const Re=e=>(r,s,t,n)=>{const o=t?Object.assign(t,{async:!1}):{async:!1},i=r._zod.run({value:s,issues:[]},o);if(i instanceof Promise)throw new ce;if(i.issues.length){const c=new((n==null?void 0:n.Err)??e)(i.issues.map(l=>oe(l,o,ne())));throw fr(c,n==null?void 0:n.callee),c}return i.value},Ie=e=>async(r,s,t,n)=>{const o=t?Object.assign(t,{async:!0}):{async:!0};let i=r._zod.run({value:s,issues:[]},o);if(i instanceof Promise&&(i=await i),i.issues.length){const c=new((n==null?void 0:n.Err)??e)(i.issues.map(l=>oe(l,o,ne())));throw fr(c,n==null?void 0:n.callee),c}return i.value},_e=e=>(r,s,t)=>{const n=t?{...t,async:!1}:{async:!1},o=r._zod.run({value:s,issues:[]},n);if(o instanceof Promise)throw new ce;return o.issues.length?{success:!1,error:new(e??hr)(o.issues.map(i=>oe(i,n,ne())))}:{success:!0,data:o.value}},Xr=_e(gr),Ne=e=>async(r,s,t)=>{const n=t?Object.assign(t,{async:!0}):{async:!0};let o=r._zod.run({value:s,issues:[]},n);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(i=>oe(i,n,ne())))}:{success:!0,data:o.value}},qr=Ne(gr),Kr=e=>(r,s,t)=>{const n=t?Object.assign(t,{direction:"backward"}):{direction:"backward"};return Re(e)(r,s,n)},Gr=e=>(r,s,t)=>Re(e)(r,s,t),Yr=e=>async(r,s,t)=>{const n=t?Object.assign(t,{direction:"backward"}):{direction:"backward"};return Ie(e)(r,s,n)},Qr=e=>async(r,s,t)=>Ie(e)(r,s,t),et=e=>(r,s,t)=>{const n=t?Object.assign(t,{direction:"backward"}):{direction:"backward"};return _e(e)(r,s,n)},rt=e=>(r,s,t)=>_e(e)(r,s,t),tt=e=>async(r,s,t)=>{const n=t?Object.assign(t,{direction:"backward"}):{direction:"backward"};return Ne(e)(r,s,n)},st=e=>async(r,s,t)=>Ne(e)(r,s,t),de=z("$ZodCheck",(e,r)=>{var s;e._zod??(e._zod={}),e._zod.def=r,(s=e._zod).onattach??(s.onattach=[])}),nt=z("$ZodCheckMaxLength",(e,r)=>{var s;de.init(e,r),(s=e._zod.def).when??(s.when=t=>{const n=t.value;return!Pe(n)&&n.length!==void 0}),e._zod.onattach.push(t=>{const n=t._zod.bag.maximum??Number.POSITIVE_INFINITY;r.maximum<n&&(t._zod.bag.maximum=r.maximum)}),e._zod.check=t=>{const n=t.value;if(n.length<=r.maximum)return;const i=Ae(n);t.issues.push({origin:i,code:"too_big",maximum:r.maximum,inclusive:!0,input:n,inst:e,continue:!r.abort})}}),ot=z("$ZodCheckMinLength",(e,r)=>{var s;de.init(e,r),(s=e._zod.def).when??(s.when=t=>{const n=t.value;return!Pe(n)&&n.length!==void 0}),e._zod.onattach.push(t=>{const n=t._zod.bag.minimum??Number.NEGATIVE_INFINITY;r.minimum>n&&(t._zod.bag.minimum=r.minimum)}),e._zod.check=t=>{const n=t.value;if(n.length>=r.minimum)return;const i=Ae(n);t.issues.push({origin:i,code:"too_small",minimum:r.minimum,inclusive:!0,input:n,inst:e,continue:!r.abort})}}),at=z("$ZodCheckLengthEquals",(e,r)=>{var s;de.init(e,r),(s=e._zod.def).when??(s.when=t=>{const n=t.value;return!Pe(n)&&n.length!==void 0}),e._zod.onattach.push(t=>{const n=t._zod.bag;n.minimum=r.length,n.maximum=r.length,n.length=r.length}),e._zod.check=t=>{const n=t.value,o=n.length;if(o===r.length)return;const i=Ae(n),c=o>r.length;t.issues.push({origin:i,...c?{code:"too_big",maximum:r.length}:{code:"too_small",minimum:r.length},inclusive:!0,exact:!0,input:t.value,inst:e,continue:!r.abort})}}),it=z("$ZodCheckOverwrite",(e,r)=>{de.init(e,r),e._zod.check=s=>{s.value=r.tx(s.value)}}),ct={major:4,minor:3,patch:6},I=z("$ZodType",(e,r)=>{var n;var s;e??(e={}),e._zod.def=r,e._zod.bag=e._zod.bag||{},e._zod.version=ct;const t=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&t.unshift(e);for(const o of t)for(const i of o._zod.onattach)i(e);if(t.length===0)(s=e._zod).deferred??(s.deferred=[]),(n=e._zod.deferred)==null||n.push(()=>{e._zod.run=e._zod.parse});else{const o=(c,l,d)=>{let f=ie(c),u;for(const g of l){if(g._zod.def.when){if(!g._zod.def.when(c))continue}else if(f)continue;const x=c.issues.length,v=g._zod.check(c);if(v instanceof Promise&&(d==null?void 0:d.async)===!1)throw new ce;if(u||v instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await v,c.issues.length!==x&&(f||(f=ie(c,x)))});else{if(c.issues.length===x)continue;f||(f=ie(c,x))}}return u?u.then(()=>c):c},i=(c,l,d)=>{if(ie(c))return c.aborted=!0,c;const f=o(l,t,d);if(f instanceof Promise){if(d.async===!1)throw new ce;return f.then(u=>e._zod.parse(u,d))}return e._zod.parse(f,d)};e._zod.run=(c,l)=>{if(l.skipChecks)return e._zod.parse(c,l);if(l.direction==="backward"){const f=e._zod.parse({value:c.value,issues:[]},{...l,skipChecks:!0});return f instanceof Promise?f.then(u=>i(u,c,l)):i(f,c,l)}const d=e._zod.parse(c,l);if(d instanceof Promise){if(l.async===!1)throw new ce;return d.then(f=>o(f,t,l))}return o(d,t,l)}}k(e,"~standard",()=>({validate:o=>{var i;try{const c=Xr(e,o);return c.success?{value:c.data}:{issues:(i=c.error)==null?void 0:i.issues}}catch{return qr(e,o).then(l=>{var d;return l.success?{value:l.data}:{issues:(d=l.error)==null?void 0:d.issues}})}},vendor:"zod",version:1}))}),lt=z("$ZodUnknown",(e,r)=>{I.init(e,r),e._zod.parse=s=>s});function He(e,r,s){e.issues.length&&r.issues.push(...Ur(s,e.issues)),r.value[s]=e.value}const dt=z("$ZodArray",(e,r)=>{I.init(e,r),e._zod.parse=(s,t)=>{const n=s.value;if(!Array.isArray(n))return s.issues.push({expected:"array",code:"invalid_type",input:n,inst:e}),s;s.value=Array(n.length);const o=[];for(let i=0;i<n.length;i++){const c=n[i],l=r.element._zod.run({value:c,issues:[]},t);l instanceof Promise?o.push(l.then(d=>He(d,s,i))):He(l,s,i)}return o.length?Promise.all(o).then(()=>s):s}});function We(e,r,s,t){for(const o of e)if(o.issues.length===0)return r.value=o.value,r;const n=e.filter(o=>!ie(o));return n.length===1?(r.value=n[0].value,n[0]):(r.issues.push({code:"invalid_union",input:r.value,inst:s,errors:e.map(o=>o.issues.map(i=>oe(i,t,ne())))}),r)}const ut=z("$ZodUnion",(e,r)=>{I.init(e,r),k(e._zod,"optin",()=>r.options.some(n=>n._zod.optin==="optional")?"optional":void 0),k(e._zod,"optout",()=>r.options.some(n=>n._zod.optout==="optional")?"optional":void 0),k(e._zod,"values",()=>{if(r.options.every(n=>n._zod.values))return new Set(r.options.flatMap(n=>Array.from(n._zod.values)))}),k(e._zod,"pattern",()=>{if(r.options.every(n=>n._zod.pattern)){const n=r.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>De(o.source)).join("|")})$`)}});const s=r.options.length===1,t=r.options[0]._zod.run;e._zod.parse=(n,o)=>{if(s)return t(n,o);let i=!1;const c=[];for(const l of r.options){const d=l._zod.run({value:n.value,issues:[]},o);if(d instanceof Promise)c.push(d),i=!0;else{if(d.issues.length===0)return d;c.push(d)}}return i?Promise.all(c).then(l=>We(l,n,e,o)):We(c,n,e,o)}}),ft=z("$ZodIntersection",(e,r)=>{I.init(e,r),e._zod.parse=(s,t)=>{const n=s.value,o=r.left._zod.run({value:n,issues:[]},t),i=r.right._zod.run({value:n,issues:[]},t);return o instanceof Promise||i instanceof Promise?Promise.all([o,i]).then(([l,d])=>Xe(s,l,d)):Xe(s,o,i)}});function $e(e,r){if(e===r)return{valid:!0,data:e};if(e instanceof Date&&r instanceof Date&&+e==+r)return{valid:!0,data:e};if(ke(e)&&ke(r)){const s=Object.keys(r),t=Object.keys(e).filter(o=>s.indexOf(o)!==-1),n={...e,...r};for(const o of t){const i=$e(e[o],r[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n[o]=i.data}return{valid:!0,data:n}}if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return{valid:!1,mergeErrorPath:[]};const s=[];for(let t=0;t<e.length;t++){const n=e[t],o=r[t],i=$e(n,o);if(!i.valid)return{valid:!1,mergeErrorPath:[t,...i.mergeErrorPath]};s.push(i.data)}return{valid:!0,data:s}}return{valid:!1,mergeErrorPath:[]}}function Xe(e,r,s){const t=new Map;let n;for(const c of r.issues)if(c.code==="unrecognized_keys"){n??(n=c);for(const l of c.keys)t.has(l)||t.set(l,{}),t.get(l).l=!0}else e.issues.push(c);for(const c of s.issues)if(c.code==="unrecognized_keys")for(const l of c.keys)t.has(l)||t.set(l,{}),t.get(l).r=!0;else e.issues.push(c);const o=[...t].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(o.length&&n&&e.issues.push({...n,keys:o}),ie(e))return e;const i=$e(r.value,s.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const mt=z("$ZodTransform",(e,r)=>{I.init(e,r),e._zod.parse=(s,t)=>{if(t.direction==="backward")throw new ur(e.constructor.name);const n=r.transform(s.value,s);if(t.async)return(n instanceof Promise?n:Promise.resolve(n)).then(i=>(s.value=i,s));if(n instanceof Promise)throw new ce;return s.value=n,s}});function qe(e,r){return e.issues.length&&r===void 0?{issues:[],value:void 0}:e}const xr=z("$ZodOptional",(e,r)=>{I.init(e,r),e._zod.optin="optional",e._zod.optout="optional",k(e._zod,"values",()=>r.innerType._zod.values?new Set([...r.innerType._zod.values,void 0]):void 0),k(e._zod,"pattern",()=>{const s=r.innerType._zod.pattern;return s?new RegExp(`^(${De(s.source)})?$`):void 0}),e._zod.parse=(s,t)=>{if(r.innerType._zod.optin==="optional"){const n=r.innerType._zod.run(s,t);return n instanceof Promise?n.then(o=>qe(o,s.value)):qe(n,s.value)}return s.value===void 0?s:r.innerType._zod.run(s,t)}}),pt=z("$ZodExactOptional",(e,r)=>{xr.init(e,r),k(e._zod,"values",()=>r.innerType._zod.values),k(e._zod,"pattern",()=>r.innerType._zod.pattern),e._zod.parse=(s,t)=>r.innerType._zod.run(s,t)}),ht=z("$ZodNullable",(e,r)=>{I.init(e,r),k(e._zod,"optin",()=>r.innerType._zod.optin),k(e._zod,"optout",()=>r.innerType._zod.optout),k(e._zod,"pattern",()=>{const s=r.innerType._zod.pattern;return s?new RegExp(`^(${De(s.source)}|null)$`):void 0}),k(e._zod,"values",()=>r.innerType._zod.values?new Set([...r.innerType._zod.values,null]):void 0),e._zod.parse=(s,t)=>s.value===null?s:r.innerType._zod.run(s,t)}),gt=z("$ZodDefault",(e,r)=>{I.init(e,r),e._zod.optin="optional",k(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(s,t)=>{if(t.direction==="backward")return r.innerType._zod.run(s,t);if(s.value===void 0)return s.value=r.defaultValue,s;const n=r.innerType._zod.run(s,t);return n instanceof Promise?n.then(o=>Ke(o,r)):Ke(n,r)}});function Ke(e,r){return e.value===void 0&&(e.value=r.defaultValue),e}const xt=z("$ZodPrefault",(e,r)=>{I.init(e,r),e._zod.optin="optional",k(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(s,t)=>(t.direction==="backward"||s.value===void 0&&(s.value=r.defaultValue),r.innerType._zod.run(s,t))}),yt=z("$ZodNonOptional",(e,r)=>{I.init(e,r),k(e._zod,"values",()=>{const s=r.innerType._zod.values;return s?new Set([...s].filter(t=>t!==void 0)):void 0}),e._zod.parse=(s,t)=>{const n=r.innerType._zod.run(s,t);return n instanceof Promise?n.then(o=>Ge(o,e)):Ge(n,e)}});function Ge(e,r){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:r}),e}const bt=z("$ZodCatch",(e,r)=>{I.init(e,r),k(e._zod,"optin",()=>r.innerType._zod.optin),k(e._zod,"optout",()=>r.innerType._zod.optout),k(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(s,t)=>{if(t.direction==="backward")return r.innerType._zod.run(s,t);const n=r.innerType._zod.run(s,t);return n instanceof Promise?n.then(o=>(s.value=o.value,o.issues.length&&(s.value=r.catchValue({...s,error:{issues:o.issues.map(i=>oe(i,t,ne()))},input:s.value}),s.issues=[]),s)):(s.value=n.value,n.issues.length&&(s.value=r.catchValue({...s,error:{issues:n.issues.map(o=>oe(o,t,ne()))},input:s.value}),s.issues=[]),s)}}),vt=z("$ZodPipe",(e,r)=>{I.init(e,r),k(e._zod,"values",()=>r.in._zod.values),k(e._zod,"optin",()=>r.in._zod.optin),k(e._zod,"optout",()=>r.out._zod.optout),k(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(s,t)=>{if(t.direction==="backward"){const o=r.out._zod.run(s,t);return o instanceof Promise?o.then(i=>ge(i,r.in,t)):ge(o,r.in,t)}const n=r.in._zod.run(s,t);return n instanceof Promise?n.then(o=>ge(o,r.out,t)):ge(n,r.out,t)}});function ge(e,r,s){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:e.value,issues:e.issues},s)}const jt=z("$ZodReadonly",(e,r)=>{I.init(e,r),k(e._zod,"propValues",()=>r.innerType._zod.propValues),k(e._zod,"values",()=>r.innerType._zod.values),k(e._zod,"optin",()=>{var s,t;return(t=(s=r.innerType)==null?void 0:s._zod)==null?void 0:t.optin}),k(e._zod,"optout",()=>{var s,t;return(t=(s=r.innerType)==null?void 0:s._zod)==null?void 0:t.optout}),e._zod.parse=(s,t)=>{if(t.direction==="backward")return r.innerType._zod.run(s,t);const n=r.innerType._zod.run(s,t);return n instanceof Promise?n.then(Ye):Ye(n)}});function Ye(e){return e.value=Object.freeze(e.value),e}const _t=z("$ZodCustom",(e,r)=>{de.init(e,r),I.init(e,r),e._zod.parse=(s,t)=>s,e._zod.check=s=>{const t=s.value,n=r.fn(t);if(n instanceof Promise)return n.then(o=>Qe(o,s,t,e));Qe(n,s,t,e)}});function Qe(e,r,s,t){if(!e){const n={code:"custom",input:s,inst:t,path:[...t._zod.def.path??[]],continue:!t._zod.def.abort};t._zod.def.params&&(n.params=t._zod.def.params),r.issues.push(fe(n))}}var er;class Nt{constructor(){this._map=new WeakMap,this._idmap=new Map}add(r,...s){const t=s[0];return this._map.set(r,t),t&&typeof t=="object"&&"id"in t&&this._idmap.set(t.id,r),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(r){const s=this._map.get(r);return s&&typeof s=="object"&&"id"in s&&this._idmap.delete(s.id),this._map.delete(r),this}get(r){const s=r._zod.parent;if(s){const t={...this.get(s)??{}};delete t.id;const n={...t,...this._map.get(r)};return Object.keys(n).length?n:void 0}return this._map.get(r)}has(r){return this._map.has(r)}}function wt(){return new Nt}(er=globalThis).__zod_globalRegistry??(er.__zod_globalRegistry=wt());const ue=globalThis.__zod_globalRegistry;function Tt(e){return new e({type:"unknown"})}function Ct(e,r){return new nt({check:"max_length",...se(r),maximum:e})}function rr(e,r){return new ot({check:"min_length",...se(r),minimum:e})}function St(e,r){return new at({check:"length_equals",...se(r),length:e})}function zt(e){return new it({check:"overwrite",tx:e})}function Et(e,r,s){return new e({type:"array",element:r,...se(s)})}function Ot(e,r,s){return new e({type:"custom",check:"custom",fn:r,...se(s)})}function Ft(e){const r=kt(s=>(s.addIssue=t=>{if(typeof t=="string")s.issues.push(fe(t,s.value,r._zod.def));else{const n=t;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=s.value),n.inst??(n.inst=r),n.continue??(n.continue=!r._zod.def.abort),s.issues.push(fe(n))}},e(s.value,s)));return r}function kt(e,r){const s=new de({check:"custom",...se(r)});return s._zod.check=e,s}function yr(e){let r=(e==null?void 0:e.target)??"draft-2020-12";return r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),{processors:e.processors??{},metadataRegistry:(e==null?void 0:e.metadata)??ue,target:r,unrepresentable:(e==null?void 0:e.unrepresentable)??"throw",override:(e==null?void 0:e.override)??(()=>{}),io:(e==null?void 0:e.io)??"output",counter:0,seen:new Map,cycles:(e==null?void 0:e.cycles)??"ref",reused:(e==null?void 0:e.reused)??"inline",external:(e==null?void 0:e.external)??void 0}}function R(e,r,s={path:[],schemaPath:[]}){var f,u;var t;const n=e._zod.def,o=r.seen.get(e);if(o)return o.count++,s.schemaPath.includes(e)&&(o.cycle=s.path),o.schema;const i={schema:{},count:1,cycle:void 0,path:s.path};r.seen.set(e,i);const c=(u=(f=e._zod).toJSONSchema)==null?void 0:u.call(f);if(c)i.schema=c;else{const g={...s,schemaPath:[...s.schemaPath,e],path:s.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(r,i.schema,g);else{const v=i.schema,y=r.processors[n.type];if(!y)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${n.type}`);y(e,r,v,g)}const x=e._zod.parent;x&&(i.ref||(i.ref=x),R(x,r,g),r.seen.get(x).isParent=!0)}const l=r.metadataRegistry.get(e);return l&&Object.assign(i.schema,l),r.io==="input"&&A(e)&&(delete i.schema.examples,delete i.schema.default),r.io==="input"&&i.schema._prefault&&((t=i.schema).default??(t.default=i.schema._prefault)),delete i.schema._prefault,r.seen.get(e).schema}function br(e,r){var i,c,l,d;const s=e.seen.get(r);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const t=new Map;for(const f of e.seen.entries()){const u=(i=e.metadataRegistry.get(f[0]))==null?void 0:i.id;if(u){const g=t.get(u);if(g&&g!==f[0])throw new Error(`Duplicate schema id "${u}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);t.set(u,f[0])}}const n=f=>{var y;const u=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const j=(y=e.external.registry.get(f[0]))==null?void 0:y.id,_=e.external.uri??(m=>m);if(j)return{ref:_(j)};const h=f[1].defId??f[1].schema.id??`schema${e.counter++}`;return f[1].defId=h,{defId:h,ref:`${_("__shared")}#/${u}/${h}`}}if(f[1]===s)return{ref:"#"};const x=`#/${u}/`,v=f[1].schema.id??`__schema${e.counter++}`;return{defId:v,ref:x+v}},o=f=>{if(f[1].schema.$ref)return;const u=f[1],{ref:g,defId:x}=n(f);u.def={...u.schema},x&&(u.defId=x);const v=u.schema;for(const y in v)delete v[y];v.$ref=g};if(e.cycles==="throw")for(const f of e.seen.entries()){const u=f[1];if(u.cycle)throw new Error(`Cycle detected: #/${(c=u.cycle)==null?void 0:c.join("/")}/<root>
2
+
3
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const f of e.seen.entries()){const u=f[1];if(r===f[0]){o(f);continue}if(e.external){const x=(l=e.external.registry.get(f[0]))==null?void 0:l.id;if(r!==f[0]&&x){o(f);continue}}if((d=e.metadataRegistry.get(f[0]))==null?void 0:d.id){o(f);continue}if(u.cycle){o(f);continue}if(u.count>1&&e.reused==="ref"){o(f);continue}}}function vr(e,r){var i,c,l;const s=e.seen.get(r);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const t=d=>{const f=e.seen.get(d);if(f.ref===null)return;const u=f.def??f.schema,g={...u},x=f.ref;if(f.ref=null,x){t(x);const y=e.seen.get(x),j=y.schema;if(j.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(j)):Object.assign(u,j),Object.assign(u,g),d._zod.parent===x)for(const h in u)h==="$ref"||h==="allOf"||h in g||delete u[h];if(j.$ref&&y.def)for(const h in u)h==="$ref"||h==="allOf"||h in y.def&&JSON.stringify(u[h])===JSON.stringify(y.def[h])&&delete u[h]}const v=d._zod.parent;if(v&&v!==x){t(v);const y=e.seen.get(v);if(y!=null&&y.schema.$ref&&(u.$ref=y.schema.$ref,y.def))for(const j in u)j==="$ref"||j==="allOf"||j in y.def&&JSON.stringify(u[j])===JSON.stringify(y.def[j])&&delete u[j]}e.override({zodSchema:d,jsonSchema:u,path:f.path??[]})};for(const d of[...e.seen.entries()].reverse())t(d[0]);const n={};if(e.target==="draft-2020-12"?n.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?n.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?n.$schema="http://json-schema.org/draft-04/schema#":e.target,(i=e.external)!=null&&i.uri){const d=(c=e.external.registry.get(r))==null?void 0:c.id;if(!d)throw new Error("Schema is missing an `id` property");n.$id=e.external.uri(d)}Object.assign(n,s.def??s.schema);const o=((l=e.external)==null?void 0:l.defs)??{};for(const d of e.seen.entries()){const f=d[1];f.def&&f.defId&&(o[f.defId]=f.def)}e.external||Object.keys(o).length>0&&(e.target==="draft-2020-12"?n.$defs=o:n.definitions=o);try{const d=JSON.parse(JSON.stringify(n));return Object.defineProperty(d,"~standard",{value:{...r["~standard"],jsonSchema:{input:ve(r,"input",e.processors),output:ve(r,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function A(e,r){const s=r??{seen:new Set};if(s.seen.has(e))return!1;s.seen.add(e);const t=e._zod.def;if(t.type==="transform")return!0;if(t.type==="array")return A(t.element,s);if(t.type==="set")return A(t.valueType,s);if(t.type==="lazy")return A(t.getter(),s);if(t.type==="promise"||t.type==="optional"||t.type==="nonoptional"||t.type==="nullable"||t.type==="readonly"||t.type==="default"||t.type==="prefault")return A(t.innerType,s);if(t.type==="intersection")return A(t.left,s)||A(t.right,s);if(t.type==="record"||t.type==="map")return A(t.keyType,s)||A(t.valueType,s);if(t.type==="pipe")return A(t.in,s)||A(t.out,s);if(t.type==="object"){for(const n in t.shape)if(A(t.shape[n],s))return!0;return!1}if(t.type==="union"){for(const n of t.options)if(A(n,s))return!0;return!1}if(t.type==="tuple"){for(const n of t.items)if(A(n,s))return!0;return!!(t.rest&&A(t.rest,s))}return!1}const $t=(e,r={})=>s=>{const t=yr({...s,processors:r});return R(e,t),br(t,e),vr(t,e)},ve=(e,r,s={})=>t=>{const{libraryOptions:n,target:o}=t??{},i=yr({...n??{},target:o,io:r,processors:s});return R(e,i),br(i,e),vr(i,e)},Pt=(e,r,s,t)=>{},Dt=(e,r,s,t)=>{if(r.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},At=(e,r,s,t)=>{if(r.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Rt=(e,r,s,t)=>{const n=s,o=e._zod.def,{minimum:i,maximum:c}=e._zod.bag;typeof i=="number"&&(n.minItems=i),typeof c=="number"&&(n.maxItems=c),n.type="array",n.items=R(o.element,r,{...t,path:[...t.path,"items"]})},It=(e,r,s,t)=>{const n=e._zod.def,o=n.inclusive===!1,i=n.options.map((c,l)=>R(c,r,{...t,path:[...t.path,o?"oneOf":"anyOf",l]}));o?s.oneOf=i:s.anyOf=i},Zt=(e,r,s,t)=>{const n=e._zod.def,o=R(n.left,r,{...t,path:[...t.path,"allOf",0]}),i=R(n.right,r,{...t,path:[...t.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,l=[...c(o)?o.allOf:[o],...c(i)?i.allOf:[i]];s.allOf=l},Mt=(e,r,s,t)=>{const n=e._zod.def,o=R(n.innerType,r,t),i=r.seen.get(e);r.target==="openapi-3.0"?(i.ref=n.innerType,s.nullable=!0):s.anyOf=[o,{type:"null"}]},Lt=(e,r,s,t)=>{const n=e._zod.def;R(n.innerType,r,t);const o=r.seen.get(e);o.ref=n.innerType},Vt=(e,r,s,t)=>{const n=e._zod.def;R(n.innerType,r,t);const o=r.seen.get(e);o.ref=n.innerType,s.default=JSON.parse(JSON.stringify(n.defaultValue))},Jt=(e,r,s,t)=>{const n=e._zod.def;R(n.innerType,r,t);const o=r.seen.get(e);o.ref=n.innerType,r.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(n.defaultValue)))},Bt=(e,r,s,t)=>{const n=e._zod.def;R(n.innerType,r,t);const o=r.seen.get(e);o.ref=n.innerType;let i;try{i=n.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=i},Ut=(e,r,s,t)=>{const n=e._zod.def,o=r.io==="input"?n.in._zod.def.type==="transform"?n.out:n.in:n.out;R(o,r,t);const i=r.seen.get(e);i.ref=o},Ht=(e,r,s,t)=>{const n=e._zod.def;R(n.innerType,r,t);const o=r.seen.get(e);o.ref=n.innerType,s.readOnly=!0},jr=(e,r,s,t)=>{const n=e._zod.def;R(n.innerType,r,t);const o=r.seen.get(e);o.ref=n.innerType},Wt=(e,r)=>{hr.init(e,r),e.name="ZodError",Object.defineProperties(e,{format:{value:s=>Wr(e,s)},flatten:{value:s=>Hr(e,s)},addIssue:{value:s=>{e.issues.push(s),e.message=JSON.stringify(e.issues,Fe,2)}},addIssues:{value:s=>{e.issues.push(...s),e.message=JSON.stringify(e.issues,Fe,2)}},isEmpty:{get(){return e.issues.length===0}}})},W=z("ZodError",Wt,{Parent:Error}),Xt=Re(W),qt=Ie(W),Kt=_e(W),Gt=Ne(W),Yt=Kr(W),Qt=Gr(W),es=Yr(W),rs=Qr(W),ts=et(W),ss=rt(W),ns=tt(W),os=st(W),Z=z("ZodType",(e,r)=>(I.init(e,r),Object.assign(e["~standard"],{jsonSchema:{input:ve(e,"input"),output:ve(e,"output")}}),e.toJSONSchema=$t(e,{}),e.def=r,e.type=r.type,Object.defineProperty(e,"_def",{value:r}),e.check=(...s)=>e.clone(Jr(r,{checks:[...r.checks??[],...s.map(t=>typeof t=="function"?{_zod:{check:t,def:{check:"custom"},onattach:[]}}:t)]}),{parent:!0}),e.with=e.check,e.clone=(s,t)=>Br(e,s,t),e.brand=()=>e,e.register=(s,t)=>(s.add(e,t),e),e.parse=(s,t)=>Xt(e,s,t,{callee:e.parse}),e.safeParse=(s,t)=>Kt(e,s,t),e.parseAsync=async(s,t)=>qt(e,s,t,{callee:e.parseAsync}),e.safeParseAsync=async(s,t)=>Gt(e,s,t),e.spa=e.safeParseAsync,e.encode=(s,t)=>Yt(e,s,t),e.decode=(s,t)=>Qt(e,s,t),e.encodeAsync=async(s,t)=>es(e,s,t),e.decodeAsync=async(s,t)=>rs(e,s,t),e.safeEncode=(s,t)=>ts(e,s,t),e.safeDecode=(s,t)=>ss(e,s,t),e.safeEncodeAsync=async(s,t)=>ns(e,s,t),e.safeDecodeAsync=async(s,t)=>os(e,s,t),e.refine=(s,t)=>e.check(ks(s,t)),e.superRefine=s=>e.check($s(s)),e.overwrite=s=>e.check(zt(s)),e.optional=()=>tr(e),e.exactOptional=()=>ys(e),e.nullable=()=>sr(e),e.nullish=()=>tr(sr(e)),e.nonoptional=s=>Ts(e,s),e.array=()=>ls(e),e.or=s=>us([e,s]),e.and=s=>ms(e,s),e.transform=s=>nr(e,hs(s)),e.default=s=>js(e,s),e.prefault=s=>Ns(e,s),e.catch=s=>Ss(e,s),e.pipe=s=>nr(e,s),e.readonly=()=>Os(e),e.describe=s=>{const t=e.clone();return ue.add(t,{description:s}),t},Object.defineProperty(e,"description",{get(){var s;return(s=ue.get(e))==null?void 0:s.description},configurable:!0}),e.meta=(...s)=>{if(s.length===0)return ue.get(e);const t=e.clone();return ue.add(t,s[0]),t},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=s=>s(e),e)),as=z("ZodUnknown",(e,r)=>{lt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Pt()});function is(){return Tt(as)}const cs=z("ZodArray",(e,r)=>{dt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Rt(e,s,t,n),e.element=r.element,e.min=(s,t)=>e.check(rr(s,t)),e.nonempty=s=>e.check(rr(1,s)),e.max=(s,t)=>e.check(Ct(s,t)),e.length=(s,t)=>e.check(St(s,t)),e.unwrap=()=>e.element});function ls(e,r){return Et(cs,e,r)}const ds=z("ZodUnion",(e,r)=>{ut.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>It(e,s,t,n),e.options=r.options});function us(e,r){return new ds({type:"union",options:e,...se(r)})}const fs=z("ZodIntersection",(e,r)=>{ft.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Zt(e,s,t,n)});function ms(e,r){return new fs({type:"intersection",left:e,right:r})}const ps=z("ZodTransform",(e,r)=>{mt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>At(e,s),e._zod.parse=(s,t)=>{if(t.direction==="backward")throw new ur(e.constructor.name);s.addIssue=o=>{if(typeof o=="string")s.issues.push(fe(o,s.value,r));else{const i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=s.value),i.inst??(i.inst=e),s.issues.push(fe(i))}};const n=r.transform(s.value,s);return n instanceof Promise?n.then(o=>(s.value=o,s)):(s.value=n,s)}});function hs(e){return new ps({type:"transform",transform:e})}const gs=z("ZodOptional",(e,r)=>{xr.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>jr(e,s,t,n),e.unwrap=()=>e._zod.def.innerType});function tr(e){return new gs({type:"optional",innerType:e})}const xs=z("ZodExactOptional",(e,r)=>{pt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>jr(e,s,t,n),e.unwrap=()=>e._zod.def.innerType});function ys(e){return new xs({type:"optional",innerType:e})}const bs=z("ZodNullable",(e,r)=>{ht.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Mt(e,s,t,n),e.unwrap=()=>e._zod.def.innerType});function sr(e){return new bs({type:"nullable",innerType:e})}const vs=z("ZodDefault",(e,r)=>{gt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Vt(e,s,t,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function js(e,r){return new vs({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():mr(r)}})}const _s=z("ZodPrefault",(e,r)=>{xt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Jt(e,s,t,n),e.unwrap=()=>e._zod.def.innerType});function Ns(e,r){return new _s({type:"prefault",innerType:e,get defaultValue(){return typeof r=="function"?r():mr(r)}})}const ws=z("ZodNonOptional",(e,r)=>{yt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Lt(e,s,t,n),e.unwrap=()=>e._zod.def.innerType});function Ts(e,r){return new ws({type:"nonoptional",innerType:e,...se(r)})}const Cs=z("ZodCatch",(e,r)=>{bt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Bt(e,s,t,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ss(e,r){return new Cs({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}const zs=z("ZodPipe",(e,r)=>{vt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Ut(e,s,t,n),e.in=r.in,e.out=r.out});function nr(e,r){return new zs({type:"pipe",in:e,out:r})}const Es=z("ZodReadonly",(e,r)=>{jt.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Ht(e,s,t,n),e.unwrap=()=>e._zod.def.innerType});function Os(e){return new Es({type:"readonly",innerType:e})}const Fs=z("ZodCustom",(e,r)=>{_t.init(e,r),Z.init(e,r),e._zod.processJSONSchema=(s,t,n)=>Dt(e,s)});function ks(e,r={}){return Ot(Fs,e,r)}function $s(e){return Ft(e)}const Ps={custom:"custom"},G=(e,r,s={})=>{if(!e)return!0;if("and"in e||"or"in e)return"and"in e&&Array.isArray(e.and)?e.and.every(d=>G(d,r,s)):"or"in e&&Array.isArray(e.or)?e.or.some(d=>G(d,r,s)):!0;const t=e;if(!t.campoId)return!0;const n=t.source==="evento"?s[t.campoId]:r[t.campoId],o=n!=null?String(n):"",i=t.valor!==void 0?String(t.valor):"",c=parseFloat(o),l=parseFloat(i);switch(t.operador){case"igual":return o===i;case"diferente":return o!==i;case"vazio":return!o;case"naoVazio":return!!o;case"contem":return o.includes(i);case"naoContem":return!o.includes(i);case"maiorQue":return!isNaN(c)&&!isNaN(l)&&c>l;case"menorQue":return!isNaN(c)&&!isNaN(l)&&c<l;case"maiorOuIgual":return!isNaN(c)&&!isNaN(l)&&c>=l;case"menorOuIgual":return!isNaN(c)&&!isNaN(l)&&c<=l;default:return!0}},Ds=/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/,As=/^\(?\d{2}\)?\s?\d{4,5}-?\d{4}$/,Rs=/^\d{5}-?\d{3}$/,Is=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Ee=(e,r,s={})=>{const t=e.validacao;if(e.tipo===p.FieldType.CHECKBOX||e.tipo===p.FieldType.SWITCH)return e.obrigatorio&&!r?"Campo obrigatório":void 0;if(e.tipo===p.FieldType.SLIDER){const o=r!==void 0?Number(r):NaN;return e.obrigatorio&&isNaN(o)?"Campo obrigatório":isNaN(o)?void 0:(t==null?void 0:t.min)!==void 0&&o<t.min?`Valor mínimo: ${t.min}`:(t==null?void 0:t.max)!==void 0&&o>t.max?`Valor máximo: ${t.max}`:void 0}if(e.tipo===p.FieldType.RATING){const o=r!==void 0?Number(r):0;return e.obrigatorio&&(!o||o<1)?"Avaliação obrigatória":void 0}if(e.tipo===p.FieldType.DATE_RANGE){const o=r;if(e.obrigatorio){if(!(o!=null&&o.start))return"Data inicial obrigatória";if(!(o!=null&&o.end))return"Data final obrigatória"}return o!=null&&o.start&&(o!=null&&o.end)&&o.start>o.end?"A data inicial deve ser menor ou igual à data final":void 0}if(e.tipo===p.FieldType.PARTICIPATION_TYPE){if(!e.obrigatorio)return;const o=r;return o!=null&&o.tipo?o.tipo==="por_dia"&&!o.data?"Selecione um dia para participar":"genero"in(o??{})&&!(o!=null&&o.genero)?"Selecione o sexo":void 0:"Selecione o tipo de participação"}if(e.tipo===p.FieldType.CHECKBOX_GROUP){const o=Array.isArray(r)?r:[];return e.obrigatorio&&o.length===0?"Selecione pelo menos uma opção":void 0}if(e.tipo===p.FieldType.FILE)return e.obrigatorio&&!r?"Arquivo obrigatório":void 0;if(e.tipo===p.FieldType.NUMBER){const o=r!=null?String(r):"";if(e.obrigatorio&&!o)return"Campo obrigatório";if(!o)return;const i=Number(o);return isNaN(i)?"Deve ser um número":(t==null?void 0:t.min)!==void 0&&i<t.min?`Valor mínimo: ${t.min}`:(t==null?void 0:t.max)!==void 0&&i>t.max?`Valor máximo: ${t.max}`:void 0}const n=r!=null?String(r):"";if(e.obrigatorio&&!n.trim())return"Campo obrigatório";if(n){if(e.tipo===p.FieldType.EMAIL&&!Is.test(n))return"E-mail inválido";if(e.tipo===p.FieldType.CPF&&!Ds.test(n))return"CPF inválido";if(e.tipo===p.FieldType.TELEFONE&&!As.test(n))return"Telefone inválido";if(e.tipo===p.FieldType.CEP&&!Rs.test(n))return"CEP inválido";if(t!=null&&t.minLength&&n.length<t.minLength)return`Mínimo ${t.minLength} caracteres`;if(t!=null&&t.maxLength&&n.length>t.maxLength)return`Máximo ${t.maxLength} caracteres`;if((e.tipo===p.FieldType.DATE||e.tipo===p.FieldType.DATETIME)&&n){if(t!=null&&t.minDate&&n<t.minDate)return`Data mínima: ${t.minDate}`;if(t!=null&&t.maxDate&&n>t.maxDate)return`Data máxima: ${t.maxDate}`}if((e.tipo===p.FieldType.DATE||e.tipo===p.FieldType.DATETIME)&&n&&((t==null?void 0:t.minAge)!=null||(t==null?void 0:t.maxAge)!=null)){const o=n.split("T")[0],i=new Date(o+"T00:00:00"),c=s["evento.dataInicioEvento"],l=c?new Date(c.split("T")[0]+"T00:00:00"):new Date;let d=l.getFullYear()-i.getFullYear();const f=l.getMonth()-i.getMonth();if((f<0||f===0&&l.getDate()<i.getDate())&&d--,t.minAge!=null&&d<t.minAge)return`Idade mínima: ${t.minAge} ano${t.minAge!==1?"s":""}`;if(t.maxAge!=null&&d>t.maxAge)return`Idade máxima: ${t.maxAge} ano${t.maxAge!==1?"s":""}`}if(t!=null&&t.regex)try{if(!new RegExp(t.regex).test(n))return t.regexMessage||"Formato inválido"}catch{}}},xe=(e,r,s)=>{const t=r.split(".");let n=e;for(let o=0;o<t.length-1;o++){const i=t[o];(n[i]==null||typeof n[i]!="object")&&(n[i]={}),n=n[i]}n[t[t.length-1]]=s},Zs=e=>[...e.containers].sort((r,s)=>r.ordem-s.ordem).filter(r=>!r.repeatable).flatMap(r=>[...r.campos].sort((s,t)=>s.ordem-t.ordem)),_r=(e,r={},s={})=>async t=>{var l,d,f;const n=Zs(e),o={};for(const u of n){if(!G(u.condicional,t,r)||u.tipo===p.FieldType.HIDDEN)continue;if(u.tipo===p.FieldType.FIELD_ARRAY){const v=Array.isArray(t[u.nome])?t[u.nome]:[];u.obrigatorio&&v.length===0?o[u.nome]={type:"custom",message:"Adicione pelo menos um item"}:u.minItems&&v.length<u.minItems&&(o[u.nome]={type:"custom",message:`Mínimo de ${u.minItems} item${u.minItems!==1?"s":""}`});for(let y=0;y<v.length;y++){const j=v[y];for(const _ of u.subFields??[]){const h=Ee(_,j[_.nome],r);if(h){xe(o,`${u.nome}.${y}.${_.nome}`,{type:"custom",message:h});continue}if((l=_.validate)!=null&&l.length){const m=await be(_.validate,_.nome,j[_.nome],j,r,s);m&&xe(o,`${u.nome}.${y}.${_.nome}`,{type:"custom",message:m})}}}continue}const x=Ee(u,t[u.nome],r);if(x&&(o[u.nome]={type:"custom",message:x}),!o[u.nome]&&((d=u.validate)!=null&&d.length)){const v=await be(u.validate,u.nome,t[u.nome],t,r,s);v&&(o[u.nome]={type:"custom",message:v})}}const i=e.containers.filter(u=>u.repeatable&&u.nome);for(const u of i){const g=Array.isArray(t[u.nome])?t[u.nome]:[];for(let x=0;x<g.length;x++){const v=g[x];for(const y of u.campos){if(!G(y.condicional,v,r)||y.tipo===p.FieldType.HIDDEN)continue;const _=Ee(y,v[y.nome],r);if(_){xe(o,`${u.nome}.${x}.${y.nome}`,{type:"custom",message:_});continue}if((f=y.validate)!=null&&f.length){const h=await be(y.validate,y.nome,v[y.nome],v,r,s);h&&xe(o,`${u.nome}.${x}.${y.nome}`,{type:"custom",message:h})}}}}const c=Object.keys(o).length>0;return{values:c?{}:t,errors:c?o:{}}},be=async(e,r,s,t,n,o)=>{var l;let i=is();for(const d of e){const f=o[d.type];if(!f)continue;const u=f,g=d;i=i.superRefine(async(x,v)=>{const y=await u(x,t,g,n);y&&v.addIssue({code:Ps.custom,message:g.message??y})})}const c=await i.safeParseAsync(s);if(!c.success)return(l=c.error.issues[0])==null?void 0:l.message},Nr=(e,r={},s={})=>async t=>{var i;const n={},o=[...e.containers].sort((c,l)=>c.ordem-l.ordem).flatMap(c=>[...c.campos].sort((l,d)=>l.ordem-d.ordem));for(const c of o){if(!((i=c.warn)!=null&&i.length)||!G(c.condicional,t,r))continue;const d=await be(c.warn,c.nome,t[c.nome],t,r,s);d&&(n[c.nome]=d)}return n},Ms=/\{\{\s*(?:event|evento)\.([a-zA-Z0-9_.]+)\s*\}\}/g,H=(e,r)=>e?e.replace(Ms,(s,t)=>r[`evento.${t}`]??r[t]??s):e??"",Ls=(e,r)=>({...e,label:H(e.label,r)}),wr=(e,r)=>{var s;return{...e,label:H(e.label,r),placeholder:H(e.placeholder,r),hint:H(e.hint,r),defaultValue:typeof e.defaultValue=="string"?H(e.defaultValue,r):e.defaultValue,opcoes:(s=e.opcoes)==null?void 0:s.map(t=>Ls(t,r))}},we=(e,r)=>({...e,titulo:H(e.titulo,r),descricao:H(e.descricao,r),campos:e.campos.map(s=>wr(s,r))}),Tr=(e,r)=>({...e,titulo:H(e.titulo,r),descricao:H(e.descricao,r),containers:e.containers.map(s=>we(s,r))}),Ze=b.createContext({}),Q=()=>b.useContext(Ze),B=({name:e,control:r,placeholder:s,type:t="text",disabled:n,readOnly:o})=>{var d;const{field:i,fieldState:c}=S.useController({name:e,control:r}),l=!!c.error;return a.jsxs("div",{className:"space-y-1",children:[a.jsx("input",{...i,value:i.value??"",type:t,placeholder:s,disabled:n,readOnly:o,className:`sfr-input${l?" sfr-input--error":""}`,"data-sfr-field":"text"}),((d=c.error)==null?void 0:d.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},Te=({name:e,control:r,placeholder:s,disabled:t,readOnly:n})=>{var c;const{field:o,fieldState:i}=S.useController({name:e,control:r});return a.jsxs("div",{className:"space-y-1",children:[a.jsx("textarea",{...o,value:o.value??"",placeholder:s,disabled:t,readOnly:n,rows:3,className:`sfr-textarea${i.error?" sfr-input--error":""}`,"data-sfr-field":"textarea"}),((c=i.error)==null?void 0:c.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},Ce=({name:e,control:r,placeholder:s,options:t,disabled:n,readOnly:o})=>{var l;const{field:i,fieldState:c}=S.useController({name:e,control:r});return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("select",{...i,value:i.value??"",disabled:n||o,className:`sfr-select${c.error?" sfr-input--error":""}`,"data-sfr-field":"select",children:[s&&a.jsx("option",{value:"",children:s}),!s&&a.jsx("option",{value:"",children:"Selecione..."}),t.map(d=>a.jsx("option",{value:d.valor,disabled:d.disabled,children:d.label},d.valor))]}),((l=c.error)==null?void 0:l.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},Se=({name:e,control:r,label:s,disabled:t,readOnly:n})=>{var c;const{field:o,fieldState:i}=S.useController({name:e,control:r});return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("label",{className:"sfr-checkbox-label","data-sfr-field":"checkbox",children:[a.jsx("input",{type:"checkbox",name:o.name,checked:!!o.value,onChange:l=>!n&&o.onChange(l.target.checked),onBlur:o.onBlur,onKeyDown:l=>{n&&l.key===" "&&l.preventDefault()},disabled:t,readOnly:n,className:"sfr-checkbox"}),s&&a.jsx("span",{className:"sfr-checkbox-text",children:s})]}),((c=i.error)==null?void 0:c.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},Me=({name:e,control:r,options:s,disabled:t})=>{var l;const{field:n,fieldState:o}=S.useController({name:e,control:r}),i=Array.isArray(n.value)?n.value:[],c=d=>{const f=i.includes(d)?i.filter(u=>u!==d):[...i,d];n.onChange(f)};return a.jsxs("div",{className:"space-y-1",children:[a.jsx("div",{className:"sfr-checkbox-group","data-sfr-field":"checkbox-group",children:s.map(d=>a.jsxs("label",{className:"sfr-checkbox-label",children:[a.jsx("input",{type:"checkbox",checked:i.includes(d.valor),onChange:()=>c(d.valor),disabled:t||d.disabled,className:"sfr-checkbox"}),a.jsx("span",{className:"sfr-checkbox-text",children:d.label})]},d.valor))}),((l=o.error)==null?void 0:l.message)&&a.jsx("p",{className:"sfr-error",children:o.error.message})]})},Le=({name:e,control:r,options:s,visualStyle:t="default",disabled:n})=>{var l;const{field:o,fieldState:i}=S.useController({name:e,control:r}),c=t==="card";return a.jsxs("div",{className:"space-y-1",children:[a.jsx("div",{className:c?"sfr-radio-cards":"sfr-radio-group","data-sfr-field":"radio","data-style":t,children:s.map(d=>a.jsxs("label",{className:c?"sfr-radio-card":"sfr-radio-label","data-selected":o.value===d.valor?"true":void 0,children:[a.jsx("input",{type:"radio",name:o.name,value:d.valor,checked:o.value===d.valor,onChange:()=>o.onChange(d.valor),onBlur:o.onBlur,disabled:n||d.disabled,className:c?"sfr-radio-card-input":"sfr-radio"}),a.jsx("span",{className:c?"sfr-radio-card-label":"sfr-radio-text",children:d.label})]},d.valor))}),((l=i.error)==null?void 0:l.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},Vs=e=>{const r=new Date;return r.setFullYear(r.getFullYear()-e),r.toISOString().split("T")[0]},Js=e=>{const r=new Date;return r.setFullYear(r.getFullYear()-e),r.toISOString().split("T")[0]},le=({name:e,control:r,isDatetime:s,disabled:t,readOnly:n,validacao:o})=>{var g;const{field:i,fieldState:c}=S.useController({name:e,control:r}),l=s?"datetime-local":"date",d=x=>s?x+"T00:00":x,f=(o==null?void 0:o.minAge)!=null?d(Vs(o.minAge)):(o==null?void 0:o.maxDate)!=null?d(o.maxDate):void 0,u=(o==null?void 0:o.maxAge)!=null?d(Js(o.maxAge)):(o==null?void 0:o.minDate)!=null?d(o.minDate):void 0;return a.jsxs("div",{className:"space-y-1",children:[a.jsx("input",{name:i.name,value:i.value??"",onChange:i.onChange,onBlur:i.onBlur,type:l,min:u,max:f,disabled:t,readOnly:n,className:`sfr-input${c.error?" sfr-input--error":""}`,"data-sfr-field":"date"}),((g=c.error)==null?void 0:g.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},Bs=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`,Ve=({name:e,control:r,disabled:s,campo:t,fileTypes:n,maxFileSize:o})=>{var j;const{field:i,fieldState:c}=S.useController({name:e,control:r}),{uploadFile:l}=Q(),[d,f]=b.useState({status:"idle"}),u=b.useRef(null),g=typeof i.value=="string"&&i.value?i.value:null,x=b.useCallback(async _=>{var h;if(n&&n.length>0){const m=((h=_.name.split(".").pop())==null?void 0:h.toLowerCase())??"",E=_.type.toLowerCase();if(!n.some(T=>T.toLowerCase()===m||T.toLowerCase()===E)){f({status:"error",message:`Tipo de arquivo não permitido. Permitidos: ${n.join(", ")}`});return}}if(o&&_.size>o){f({status:"error",message:`Arquivo muito grande. Tamanho máximo: ${Bs(o)}`});return}if(!l){f({status:"error",message:"Preview: upload não disponível sem configuração."});return}f({status:"uploading",fileName:_.name,progress:0});try{const m=await l(_,t??e,E=>{f(C=>C.status==="uploading"?{...C,progress:Math.min(100,E)}:C)});i.onChange(m),f({status:"done",uploadId:m,fileName:_.name})}catch{f({status:"error",message:"Falha no upload. Tente novamente."})}},[l,t,e,i,n,o]),v=b.useCallback(_=>{var m;const h=(m=_.target.files)==null?void 0:m[0];h&&x(h)},[x]),y=b.useCallback(()=>{i.onChange(""),f({status:"idle"}),u.current&&(u.current.value="")},[i]);return a.jsxs("div",{className:"sfr-file-upload","data-sfr-field":"file","data-status":d.status,children:[!g&&d.status!=="done"&&a.jsxs("label",{className:"sfr-file-drop",children:[a.jsx("input",{ref:u,type:"file",onChange:v,disabled:s||d.status==="uploading",className:"sfr-file-input"}),a.jsx("span",{className:"sfr-file-label",children:d.status==="uploading"?`Enviando ${d.fileName}…`:"Clique ou arraste o arquivo"})]}),(g||d.status==="done")&&a.jsxs("div",{className:"sfr-file-done",children:[a.jsx("span",{className:"sfr-file-name",children:d.status==="done"?d.fileName:"Arquivo enviado"}),!s&&a.jsx("button",{type:"button",onClick:y,className:"sfr-file-remove",children:"✕"})]}),d.status==="error"&&a.jsx("p",{className:"sfr-error",children:d.message}),((j=c.error)==null?void 0:j.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},Us={cpf:e=>e.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:e=>{const r=e.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:e=>e.replace(/\D/g,"").slice(0,8).replace(/(\d{5})(\d)/,"$1-$2")},te=({name:e,control:r,placeholder:s,maskType:t,disabled:n,readOnly:o})=>{var f;const{field:i,fieldState:c}=S.useController({name:e,control:r}),l=Us[t||""],d=b.useCallback(u=>{i.onChange(l?l(u.target.value):u.target.value)},[i,l]);return a.jsxs("div",{className:"space-y-1",children:[a.jsx("input",{name:i.name,value:i.value||"",onChange:d,onBlur:i.onBlur,placeholder:s,disabled:n,readOnly:o,className:`sfr-input${c.error?" sfr-input--error":""}`,"data-sfr-field":"masked"}),((f=c.error)==null?void 0:f.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},ze=({name:e,control:r})=>{const{field:s}=S.useController({name:e,control:r});return a.jsx("input",{type:"hidden",...s,value:s.value??""})},Cr=e=>e.replace(/\D/g,""),Hs=e=>{const r=Cr(e).slice(0,8);return r.length<=5?r:`${r.slice(0,5)}-${r.slice(5)}`},Ws=async(e,r)=>{const s=await fetch(`https://viacep.com.br/ws/${e}/json/`,{signal:r});if(!s.ok)throw new Error("Falha ao consultar CEP");return s.json()},Je=({name:e,control:r,placeholder:s="00000-000",disabled:t,readOnly:n,cepFillMap:o})=>{var _,h;const{field:i,fieldState:c}=S.useController({name:e,control:r}),{setValue:l}=S.useFormContext(),{cepLookup:d}=Q(),[f,u]=b.useState("idle"),[g,x]=b.useState(null),v=b.useRef(null);b.useEffect(()=>()=>{var m;(m=v.current)==null||m.abort()},[]);const y=b.useCallback(async()=>{var E;i.onBlur();const m=Cr(i.value??"");if(m.length===8){(E=v.current)==null||E.abort(),v.current=new AbortController,u("loading"),x(null);try{let C;if(d){const w=v.current;if(C=await d(m),w.signal.aborted)return}else{const w=await Ws(m,v.current.signal);if(w.erro){u("error"),x("CEP não encontrado");return}C={logradouro:w.logradouro,bairro:w.bairro,cidade:w.localidade,estado:w.uf}}if(C.erro){u("error"),x("CEP não encontrado");return}const T=e.includes(".")?`${e.substring(0,e.lastIndexOf("."))}.`:"",F=(w,X,D)=>{if(!D)return;const M=o!=null&&o[w]?`${T}${o[w]}`:`${T}${X}`;l(M,D)};F("logradouro","_address_logradouro",C.logradouro),F("bairro","_address_bairro",C.bairro),F("cidade","_address_cidade",C.cidade),F("estado","_address_estado",C.estado),u("success")}catch(C){if(C instanceof Error&&C.name==="AbortError")return;u("error"),x("Erro ao buscar CEP")}}},[i,d,l,e,o]),j=b.useCallback(m=>{i.onChange(Hs(m.target.value))},[i]);return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"sfr-cep-wrapper","data-sfr-field":"cep","data-status":f,children:[a.jsx("input",{name:i.name,value:i.value||"",onChange:j,onBlur:y,placeholder:s,disabled:t,readOnly:n,className:`sfr-input${c.error?" sfr-input--error":""}`}),f==="loading"&&a.jsx("span",{className:"sfr-cep-indicator sfr-cep-loading"}),f==="success"&&a.jsx("span",{className:"sfr-cep-indicator sfr-cep-success"}),f==="error"&&a.jsx("span",{className:"sfr-cep-indicator sfr-cep-error"})]}),(((_=c.error)==null?void 0:_.message)||g)&&a.jsx("p",{className:"sfr-error",children:((h=c.error)==null?void 0:h.message)||g})]})},Xs=({field:e,control:r,nameOverride:s})=>{const t={name:s,control:r,placeholder:e.placeholder};switch(e.tipo){case p.FieldType.TEXTO:return a.jsx(B,{...t,type:"text"});case p.FieldType.EMAIL:return a.jsx(B,{...t,type:"email"});case p.FieldType.NUMBER:return a.jsx(B,{...t,type:"number"});case p.FieldType.TEXTAREA:return a.jsx(Te,{...t});case p.FieldType.SELECT:return a.jsx(Ce,{...t,options:e.opcoes??[]});case p.FieldType.RADIO:return a.jsx(Le,{...t,options:e.opcoes??[]});case p.FieldType.CHECKBOX:return a.jsx(Se,{name:s,control:r,label:e.label});case p.FieldType.CHECKBOX_GROUP:return a.jsx(Me,{...t,options:e.opcoes??[]});case p.FieldType.DATE:return a.jsx(le,{...t,validacao:e.validacao});case p.FieldType.DATETIME:return a.jsx(le,{...t,isDatetime:!0,validacao:e.validacao});case p.FieldType.FILE:return a.jsx(Ve,{name:s,control:r});case p.FieldType.TELEFONE:return a.jsx(te,{...t,maskType:"telefone"});case p.FieldType.CPF:return a.jsx(te,{...t,maskType:"cpf"});case p.FieldType.CEP:return a.jsx(Je,{name:s,control:r,placeholder:e.placeholder});case p.FieldType.HIDDEN:return a.jsx(ze,{name:s,control:r});default:return a.jsx(B,{...t,type:"text"})}},Sr=({name:e,control:r,subFields:s=[],minItems:t=1,maxItems:n,itemLabel:o="Item",addLabel:i})=>{var y;const{fields:c,append:l,remove:d}=S.useFieldArray({control:r,name:e}),{errors:f}=S.useFormState({control:r}),u=(y=f[e])==null?void 0:y.message;b.useEffect(()=>{if(c.length<t)for(let j=c.length;j<t;j++)l({})},[]);const g=[...s].sort((j,_)=>j.ordem-_.ordem),x=!n||c.length<n,v=i??`Adicionar ${o.toLowerCase()}`;return a.jsxs("div",{className:"sfr-field-array space-y-3",children:[c.map((j,_)=>a.jsxs("div",{className:"sfr-field-array__item border rounded-lg p-4",children:[a.jsxs("div",{className:"sfr-field-array__item-header flex items-center justify-between mb-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"sfr-field-array__counter w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0",children:_+1}),a.jsxs("span",{className:"text-sm font-semibold",children:[o," ",_+1]})]}),c.length>t&&a.jsx("button",{type:"button",onClick:()=>d(_),className:"sfr-field-array__remove","aria-label":`Remover ${o.toLowerCase()} ${_+1}`,children:a.jsx(O.Trash2,{className:"w-4 h-4"})})]}),a.jsx("div",{className:"grid grid-cols-12 gap-4",children:g.map(h=>{const m=`${e}.${_}.${h.nome}`,C=`span ${h.tamanho??12}`,T=a.jsx(Xs,{field:h,control:r,nameOverride:m});return h.tipo===p.FieldType.CHECKBOX||h.tipo===p.FieldType.HIDDEN?a.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:C},children:T},h.id):a.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:C},children:[a.jsxs("label",{className:"sfr-label font-medium flex items-center gap-1 text-sm",children:[h.label,h.obrigatorio&&a.jsx("span",{className:"sfr-required",children:"*"})]}),T,h.hint&&a.jsx("p",{className:"sfr-hint text-xs",children:h.hint})]},h.id)})})]},j.id)),x&&a.jsxs("button",{type:"button",className:"sfr-btn sfr-btn--outline w-full flex items-center justify-center gap-2 py-2 px-4 border rounded-lg text-sm",onClick:()=>l({}),children:[a.jsx(O.Plus,{className:"w-4 h-4"}),v]}),n&&a.jsxs("p",{className:"sfr-hint text-xs text-center",children:["Máximo de ",n," ",o.toLowerCase(),n>1?"s":""]}),u&&a.jsxs("p",{className:"sfr-error text-sm flex items-center gap-1",children:[a.jsx(O.AlertCircle,{className:"w-4 h-4 shrink-0"}),u]})]})},or=e=>`R$ ${(e/100).toFixed(2).replace(".",",")}`,qs=(e,r)=>{const s=new Date(e.slice(0,10)+"T00:00:00Z"),t=new Date(r.slice(0,10)+"T00:00:00Z");return Math.round((t.getTime()-s.getTime())/864e5)+1},Ks=(e,r)=>{const s=[],t=new Date(e.slice(0,10)+"T00:00:00Z"),n=new Date(r.slice(0,10)+"T00:00:00Z");let o=0;for(;t<=n&&o<60;)s.push(t.toISOString().slice(0,10)),t.setUTCDate(t.getUTCDate()+1),o++;return s},Gs=e=>{const[r,s,t]=e.split("-").map(Number),n=new Date(Date.UTC(r,s-1,t)),o=String(t).padStart(2,"0"),i=String(s).padStart(2,"0"),c=new Intl.DateTimeFormat("pt-BR",{weekday:"long",timeZone:"UTC"}).format(n),l=c.charAt(0).toUpperCase()+c.slice(1);return`${o}/${i} - ${l}`},Ys=(e,r)=>{const s=t=>{const[n,o,i]=t.slice(0,10).split("-");return`${i}/${o}/${n}`};return`${s(e)} a ${s(r)}`},zr=({name:e,control:r})=>{var ae;const{field:s,fieldState:t}=S.useController({name:e,control:r}),{externalData:n={}}=Q(),o=s.value??null,i=(ae=t.error)==null?void 0:ae.message,c=N=>n[`evento.${N}`]??n[N],l=c("dataInicioEvento")??"",d=c("dataFimEvento")??"",f=Number(c("valor")??0),u=Number(c("valorPorDia")??0),g=c("vagasTotal"),x=c("vagasPorDia"),v=c("vagasMasculinas"),y=c("vagasFemininas"),j=g!=null?Number(g):null,_=x!=null?Number(x):null,h=v!=null?Number(v):null,m=y!=null?Number(y):null,E=l&&d?Ks(l,d):[],T=(l&&d?qs(l,d):0)>1,F=h!=null&&h>0&&m!=null&&m>0,w=h!=null&&m==null?"masculino":m!=null&&h==null?"feminino":null,X=(o==null?void 0:o.tipo)??null,D=(o==null?void 0:o.data)??null,M=(o==null?void 0:o.genero)??null,V=b.useRef(o);V.current=o;const J=b.useRef(s.onChange);J.current=s.onChange,b.useEffect(()=>{var N,P,K;w&&((N=V.current)==null?void 0:N.genero)!==w&&J.current({tipo:((P=V.current)==null?void 0:P.tipo)??null,data:((K=V.current)==null?void 0:K.data)??null,genero:w})},[w]);const ee=N=>{const P={tipo:N,data:null};(F||w)&&(P.genero=M??w??void 0),s.onChange(P)},L=N=>{const P={tipo:"por_dia",data:N};(F||w)&&(P.genero=M??w??void 0),s.onChange(P)},Y=N=>{s.onChange({tipo:X,data:D,genero:N})},q=N=>X===N;return a.jsxs("div",{className:"sfr-participation-type space-y-3",children:[F&&a.jsxs("div",{className:"flex items-center gap-2 px-1",children:[a.jsx("span",{className:"text-xs sfr-text-muted shrink-0",children:"Você é:"}),a.jsx("div",{className:"flex gap-2",children:["masculino","feminino"].map(N=>a.jsx("button",{type:"button",onClick:()=>Y(N),className:"sfr-participation-type__gender-btn px-3 py-1 rounded-full text-xs font-medium border transition-all","data-selected":M===N?"true":void 0,children:N==="masculino"?"Masculino":"Feminino"},N))})]}),a.jsxs("button",{type:"button",onClick:()=>ee("todos_os_dias"),className:"sfr-participation-type__card w-full text-left flex items-start gap-3 p-4 rounded-xl border-2 transition-all","data-selected":q("todos_os_dias")?"true":void 0,children:[a.jsx("div",{className:"sfr-participation-type__card-icon mt-0.5 p-2 rounded-lg shrink-0","data-selected":q("todos_os_dias")?"true":void 0,children:a.jsx(O.CalendarCheck2,{className:"w-4 h-4"})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("p",{className:"font-semibold text-sm",children:"Participar todos os dias"}),l&&d?a.jsx("p",{className:"text-xs sfr-text-muted",children:Ys(l,d)}):a.jsx("p",{className:"text-xs sfr-text-muted italic",children:"Datas do evento"})]}),a.jsxs("div",{className:"text-right shrink-0",children:[f>0&&a.jsx("p",{className:"font-bold text-sm sfr-participation-type__price","data-selected":q("todos_os_dias")?"true":void 0,children:or(f)}),j!=null&&j>0&&a.jsxs("p",{className:"text-xs flex items-center justify-end gap-1 sfr-participation-type__vagas",children:[a.jsx(O.Users,{className:"w-3 h-3"}),j," vagas disponíveis"]})]})]}),T?a.jsxs("button",{type:"button",onClick:()=>ee("por_dia"),className:"sfr-participation-type__card w-full text-left flex items-start gap-3 p-4 rounded-xl border-2 transition-all","data-selected":q("por_dia")?"true":void 0,children:[a.jsx("div",{className:"sfr-participation-type__card-icon mt-0.5 p-2 rounded-lg shrink-0","data-selected":q("por_dia")?"true":void 0,children:a.jsx(O.CalendarDays,{className:"w-4 h-4"})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("p",{className:"font-semibold text-sm",children:"Participar um dia"}),a.jsx("p",{className:"text-xs sfr-text-muted",children:"Escolha o dia desejado abaixo"})]}),a.jsxs("div",{className:"text-right shrink-0",children:[u>0&&a.jsx("p",{className:"font-bold text-sm sfr-participation-type__price","data-selected":q("por_dia")?"true":void 0,children:or(u)}),a.jsx("p",{className:"text-xs sfr-text-muted",children:"por dia"})]})]}):l?a.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg border sfr-participation-type__notice",children:[a.jsx(O.Info,{className:"w-3.5 h-3.5 mt-0.5 shrink-0 sfr-text-muted"}),a.jsx("p",{className:"text-xs sfr-text-muted",children:'Este evento ocorre em apenas 1 dia — a opção "Participar um dia" não é necessária.'})]}):null,X==="por_dia"&&a.jsxs("div",{className:"pl-2 space-y-2 sfr-participation-type__days",children:[a.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide sfr-primary-text",children:"Selecione o dia:"}),E.length===0?a.jsx("p",{className:"text-xs sfr-text-muted italic",children:"Nenhuma data configurada no evento"}):E.map(N=>a.jsxs("button",{type:"button",onClick:()=>L(N),className:"sfr-participation-type__day-btn w-full text-left flex items-center justify-between px-4 py-3 rounded-lg border transition-all","data-selected":D===N?"true":void 0,children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("span",{className:"w-4 h-4 rounded-full border-2 shrink-0 flex items-center justify-center sfr-participation-type__day-radio","data-selected":D===N?"true":void 0,children:D===N&&a.jsx("span",{className:"w-2 h-2 rounded-full bg-white"})}),a.jsx("span",{className:"text-sm",children:Gs(N)})]}),_!=null&&a.jsxs("span",{className:"text-xs sfr-participation-type__vagas",children:[_," vagas"]})]},N))]}),i&&a.jsx("p",{className:"text-sm sfr-error",children:i})]})},ar=.0315,ir=.124,cr=7,lr=12,Er=[{id:"pix",label:"PIX",description:"Transferência instantânea (à vista)",Icon:O.Smartphone,taxa:0},{id:"dinheiro",label:"Dinheiro",description:"Pagamento em espécie",Icon:O.Banknote,taxa:0},{id:"cartao",label:"Cartão de Crédito",description:"Débito ou crédito na maquininha",Icon:O.CreditCard,taxa:ar,taxaLabel:`Taxa: ${(ar*100).toFixed(2).replace(".",",")}%`}],Or=[{id:"pix",label:"PIX à Vista",description:"Pagamento instantâneo sem parcelamento",Icon:O.Smartphone,taxa:0},{id:"pix_parcelado",label:"PIX Parcelado",description:`Parcelado em até ${cr}x sem juros`,Icon:O.Smartphone,taxa:0,parcelas:cr},{id:"cartao",label:"Cartão de Crédito",description:`Parcelado em até ${lr}x`,Icon:O.CreditCard,taxa:ir,parcelas:lr,taxaLabel:`Taxa: ${(ir*100).toFixed(2).replace(".",",")}%`},{id:"dinheiro",label:"Dinheiro",description:"Pagamento em espécie",Icon:O.Banknote,taxa:0}],ye=e=>`R$ ${(e/100).toFixed(2).replace(".",",")}`,dr=(e,r)=>Math.round(e*(1+r)*100)/100,Qs=(e,r)=>Math.round(e/r*100)/100,Fr=({name:e,control:r,relatedFieldName:s="tipo_participacao"})=>{var h;const{field:t,fieldState:n}=S.useController({name:e,control:r}),{externalData:o={},paymentMethodOptions:i}=Q(),c=t.value??null,l=(h=n.error)==null?void 0:h.message,d=S.useWatch({control:r,name:s}),f=(d==null?void 0:d.tipo)??null,u=m=>o[`evento.${m}`]??o[m],g=Number(u("valor")??0),x=Number(u("valorPorDia")??0),v=f==="por_dia"&&x>0?x:g,y=f==="por_dia"?(i==null?void 0:i.porDia)??Er:(i==null?void 0:i.todosOsDias)??Or,j=f==="por_dia"?(()=>{if(!(d!=null&&d.data))return"Um dia";const[m,E,C]=d.data.split("-");return`${C}/${E}/${m}`})():"Todos os dias",_=m=>{if(m.disabled)return;const E=dr(v,m.taxa),C={metodo:m.id,valorTotal:E};m.parcelas&&(C.parcelas=m.parcelas),t.onChange(C)};return a.jsxs("div",{className:"sfr-payment-method space-y-4",children:[a.jsxs("div",{className:"sfr-payment-method__summary flex items-center justify-between rounded-xl border px-4 py-3",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-xs sfr-text-muted",children:"Tipo de participação"}),a.jsx("p",{className:"font-semibold",children:j})]}),a.jsxs("div",{className:"text-right",children:[a.jsx("p",{className:"text-xs sfr-text-muted",children:"Valor base"}),a.jsx("p",{className:"text-lg font-bold sfr-primary-text",children:ye(v)})]})]}),a.jsxs("div",{className:"sfr-payment-method__notice flex items-start gap-2 rounded-lg border px-3 py-2.5",children:[a.jsx(O.Info,{className:"h-4 w-4 mt-0.5 shrink-0"}),a.jsxs("p",{className:"text-xs",children:[a.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."]})]}),a.jsx("p",{className:"text-sm font-semibold sfr-primary-text",children:"Selecione a forma de pagamento:"}),a.jsx("div",{className:"space-y-3",children:y.map(m=>{const{Icon:E}=m,C=(c==null?void 0:c.metodo)===m.id,T=dr(v,m.taxa),F=!!m.parcelas&&m.parcelas>1,w=F?Qs(T,m.parcelas):null;return a.jsxs("button",{type:"button",disabled:m.disabled,onClick:()=>_(m),className:"sfr-payment-method__card w-full text-left flex items-center gap-4 px-4 py-3 rounded-xl border-2 transition-all","data-selected":C?"true":void 0,"data-disabled":m.disabled?"true":void 0,children:[a.jsx("div",{className:"sfr-payment-method__card-icon flex items-center justify-center w-10 h-10 rounded-lg shrink-0","data-selected":C?"true":void 0,children:a.jsx(E,{className:"h-5 w-5"})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("p",{className:"font-semibold text-sm leading-tight",children:m.label}),a.jsx("p",{className:"text-xs sfr-text-muted",children:m.description}),m.taxaLabel&&a.jsxs("p",{className:"text-xs sfr-payment-method__taxa mt-0.5",children:["* ",m.taxaLabel]}),m.taxa>0&&a.jsxs("p",{className:"text-xs sfr-text-muted",children:["Total com taxa: ",ye(T)]})]}),a.jsx("div",{className:"text-right shrink-0",children:F?a.jsxs(a.Fragment,{children:[a.jsxs("p",{className:"text-xs sfr-text-muted",children:[m.parcelas,"x de"]}),a.jsx("p",{className:"text-base font-bold sfr-primary-text",children:ye(w)})]}):a.jsx("p",{className:"text-base font-bold sfr-primary-text",children:ye(T)})})]},m.id)})}),l&&a.jsx("p",{className:"text-xs sfr-error",children:l})]})},kr=({name:e,control:r,label:s,termoTexto:t,termoPdfUrl:n,termoPdfUploadId:o})=>{var F;const{field:i,fieldState:c}=S.useController({name:e,control:r}),{resolveTermsUploadUrl:l}=Q(),d=!!c.error,f=(F=c.error)==null?void 0:F.message,[u,g]=b.useState(null),[x,v]=b.useState(!1),[y,j]=b.useState(!1);b.useEffect(()=>{if(!o||!l){g(null);return}v(!0),l(o).then(w=>g(w)).catch(()=>g(null)).finally(()=>v(!1))},[o,l]);const _=i.value==="accepted",h=u||n||null,m=!!(t||h||o),E=!!h,C=d?"var(--sfr-error, #ef4444)":_?"var(--sfr-success, #22c55e)":"var(--sfr-border, #e2e8f0)",T=d?"color-mix(in srgb, var(--sfr-error, #ef4444) 5%, transparent)":_?"color-mix(in srgb, var(--sfr-success, #22c55e) 5%, transparent)":"transparent";return a.jsxs("div",{className:"sfr-terms space-y-2",children:[a.jsxs("div",{className:"sfr-terms__box rounded-lg border p-4 space-y-4",style:{borderColor:C,background:T},children:[a.jsxs("div",{className:"flex items-center justify-between gap-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(O.ScrollText,{className:"h-4 w-4 sfr-terms__icon shrink-0"}),a.jsx("span",{className:"text-sm font-medium",children:s||"Termos e condições"})]}),m?a.jsxs("button",{type:"button",className:"sfr-btn sfr-btn--outline flex items-center gap-1.5 text-xs h-7 px-2 border rounded",disabled:x,onClick:()=>j(!0),children:[x?a.jsx(O.Loader2,{className:"h-3 w-3 animate-spin"}):a.jsx(O.ExternalLink,{className:"h-3 w-3"}),"Ler termos"]}):a.jsx("span",{className:"text-xs sfr-text-muted italic",children:o&&x?"Carregando PDF...":"Conteúdo não configurado"})]}),a.jsxs("label",{className:"flex items-start gap-3 cursor-pointer select-none",children:[a.jsx("input",{type:"checkbox",className:"sfr-checkbox mt-0.5",checked:_,onChange:w=>i.onChange(w.target.checked?"accepted":""),style:d?{outline:"1px solid var(--sfr-error, #ef4444)"}:{}}),a.jsxs("span",{className:"text-sm leading-snug flex-1",children:["Li e aceito ",s?`"${s}"`:"os termos e condições"]}),_&&a.jsx(O.CheckCircle2,{className:"h-4 w-4 sfr-terms__check shrink-0 mt-0.5"})]})]}),d&&a.jsxs("div",{className:"flex items-center gap-1.5 text-xs sfr-error",children:[a.jsx(O.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),f||"Você precisa aceitar os termos para continuar"]}),y&&a.jsx("div",{className:"sfr-modal-backdrop fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.6)"},onClick:()=>j(!1),children:a.jsxs("div",{className:"sfr-modal relative w-full max-w-2xl max-h-[90vh] rounded-xl overflow-hidden flex flex-col",style:{background:"var(--sfr-surface, #ffffff)"},onClick:w=>w.stopPropagation(),children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b sfr-modal__header",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(O.ScrollText,{className:"h-4 w-4"}),a.jsx("span",{className:"font-semibold",children:"Termos e condições"})]}),a.jsx("button",{type:"button",className:"sfr-btn sfr-btn--ghost",onClick:()=>j(!1),children:a.jsx(O.X,{className:"h-4 w-4"})})]}),a.jsx("div",{className:"flex-1 overflow-auto p-4",children:E?a.jsx("iframe",{src:h,className:"w-full rounded border",style:{height:"62vh"},title:"Termos e condições",sandbox:"allow-scripts allow-same-origin"}):a.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:t})})]})})]})},en=({name:e,control:r,placeholder:s,disabled:t,readOnly:n})=>{var f;const{field:o,fieldState:i}=S.useController({name:e,control:r}),[c,l]=b.useState(!1),d=!!i.error;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"relative",children:[a.jsx("input",{...o,value:o.value??"",type:c?"text":"password",placeholder:s,disabled:t,readOnly:n,className:`sfr-input pr-10${d?" sfr-input--error":""}`,"data-sfr-field":"password"}),a.jsx("button",{type:"button",tabIndex:-1,onClick:()=>l(u=>!u),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--t-text-muted)] hover:text-[var(--t-text)] transition-colors","aria-label":c?"Ocultar senha":"Mostrar senha",children:c?a.jsx(O.EyeOff,{size:16}):a.jsx(O.Eye,{size:16})})]}),((f=i.error)==null?void 0:f.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},$r=({name:e,control:r,label:s,disabled:t,readOnly:n})=>{var l;const{field:o,fieldState:i}=S.useController({name:e,control:r}),c=!!o.value;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none",children:[a.jsx("button",{type:"button",role:"switch","aria-checked":c,disabled:t||n,onClick:()=>!n&&o.onChange(!c),className:["relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--t-primary)] focus-visible:ring-offset-2",c?"bg-[var(--t-primary)]":"bg-[var(--t-border)]",t?"opacity-50 cursor-not-allowed":"cursor-pointer"].join(" "),children:a.jsx("span",{className:["pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-lg transition-transform",c?"translate-x-5":"translate-x-0.5"].join(" ")})}),a.jsx("span",{className:"sfr-label !mb-0",children:s})]}),((l=i.error)==null?void 0:l.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},rn=({name:e,control:r,minValue:s=0,maxValue:t=100,step:n=1,disabled:o,readOnly:i})=>{var g;const{field:c,fieldState:l}=S.useController({name:e,control:r}),d=c.value??s,f=t-s,u=f>0?(d-s)/f*100:0;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"relative flex-1",children:a.jsx("input",{type:"range",min:s,max:t,step:n,value:d,disabled:o||i,onChange:x=>c.onChange(Number(x.target.value)),className:"sfr-slider w-full",style:{"--slider-pct":`${u}%`}})}),a.jsx("span",{className:"sfr-label !mb-0 min-w-[3rem] text-right tabular-nums",style:{color:"var(--t-primary)"},children:d})]}),a.jsxs("div",{className:"flex justify-between text-xs",style:{color:"var(--t-text-muted)"},children:[a.jsx("span",{children:s}),a.jsx("span",{children:t})]}),((g=l.error)==null?void 0:g.message)&&a.jsx("p",{className:"sfr-error",children:l.error.message})]})},tn=({name:e,control:r,disabled:s,readOnly:t})=>{var c;const{field:n,fieldState:o}=S.useController({name:e,control:r}),i=n.value??"#000000";return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("input",{type:"color",value:i,disabled:s||t,onChange:l=>n.onChange(l.target.value),className:"h-10 w-14 cursor-pointer rounded-lg border border-[var(--t-border)] bg-transparent p-1 disabled:cursor-not-allowed disabled:opacity-50","data-sfr-field":"color"}),a.jsx("input",{type:"text",value:i,readOnly:t,disabled:s,onChange:l=>{const d=l.target.value;/^#[0-9a-fA-F]{0,6}$/.test(d)&&n.onChange(d)},className:`sfr-input flex-1 font-mono uppercase${o.error?" sfr-input--error":""}`,maxLength:7,placeholder:"#000000"})]}),((c=o.error)==null?void 0:c.message)&&a.jsx("p",{className:"sfr-error",children:o.error.message})]})},sn=({name:e,control:r,options:s,placeholder:t,disabled:n,readOnly:o})=>{var _,h;const{field:i,fieldState:c}=S.useController({name:e,control:r}),[l,d]=b.useState(""),[f,u]=b.useState(!1),g=b.useRef(null),x=((_=s.find(m=>m.valor===i.value))==null?void 0:_.label)??"",v=l.length>0?s.filter(m=>m.label.toLowerCase().includes(l.toLowerCase())):s;b.useEffect(()=>{const m=E=>{g.current&&!g.current.contains(E.target)&&(u(!1),d(""))};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[]);const y=m=>{m.disabled||(i.onChange(m.valor),u(!1),d(""))},j=()=>{i.onChange(""),d("")};return a.jsxs("div",{className:"space-y-1",ref:g,children:[a.jsxs("div",{className:"relative",children:[a.jsx("input",{type:"text",value:f?l:x,placeholder:t??"Buscar...",disabled:n,readOnly:o,onChange:m=>{d(m.target.value),u(!0)},onFocus:()=>!o&&u(!0),className:`sfr-input pr-8${c.error?" sfr-input--error":""}`,"data-sfr-field":"autocomplete",autoComplete:"off"}),a.jsx("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:i.value?a.jsx("button",{type:"button",onClick:j,className:"text-[var(--t-text-muted)] hover:text-[var(--t-text)]",tabIndex:-1,children:a.jsx(O.X,{size:14})}):a.jsx(O.ChevronDown,{size:16,className:"text-[var(--t-text-muted)] pointer-events-none"})}),f&&!n&&!o&&a.jsx("ul",{className:"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-lg border border-[var(--t-border)] bg-[var(--t-surface)] shadow-lg",children:v.length===0?a.jsx("li",{className:"px-3 py-2 text-sm text-[var(--t-text-muted)]",children:"Nenhuma opção encontrada"}):v.map(m=>a.jsx("li",{onMouseDown:()=>y(m),className:["flex cursor-pointer items-center px-3 py-2 text-sm",m.disabled?"cursor-not-allowed opacity-40":"hover:bg-[var(--t-accent)]",i.value===m.valor?"font-medium text-[var(--t-primary)]":"text-[var(--t-text)]"].join(" "),children:m.label},m.valor))})]}),((h=c.error)==null?void 0:h.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},Pr=({name:e,control:r,placeholder:s,disabled:t,readOnly:n})=>{var l;const{field:o,fieldState:i}=S.useController({name:e,control:r}),c=!!i.error;return a.jsxs("div",{className:"space-y-1",children:[a.jsx("input",{...o,value:o.value??"",type:"time",placeholder:s,disabled:t,readOnly:n,className:`sfr-input${c?" sfr-input--error":""}`,"data-sfr-field":"time"}),((l=i.error)==null?void 0:l.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},nn=({name:e,control:r,startLabel:s="Data inicial",endLabel:t="Data final",disabled:n,readOnly:o})=>{var u;const{field:i,fieldState:c}=S.useController({name:e,control:r}),l=i.value??{},d=(g,x)=>{i.onChange({...l,[g]:x})},f=!!c.error;return a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"space-y-1",children:[a.jsx("label",{className:"sfr-label",children:s}),a.jsx("input",{type:"date",value:l.start??"",disabled:n,readOnly:o,onChange:g=>d("start",g.target.value),max:l.end??void 0,className:`sfr-input${f?" sfr-input--error":""}`,"data-sfr-field":"date-range-start"})]}),a.jsxs("div",{className:"space-y-1",children:[a.jsx("label",{className:"sfr-label",children:t}),a.jsx("input",{type:"date",value:l.end??"",disabled:n,readOnly:o,onChange:g=>d("end",g.target.value),min:l.start??void 0,className:`sfr-input${f?" sfr-input--error":""}`,"data-sfr-field":"date-range-end"})]})]}),((u=c.error)==null?void 0:u.message)&&a.jsx("p",{className:"sfr-error",children:c.error.message})]})},on=({name:e,control:r,maxRating:s=5,disabled:t,readOnly:n})=>{var d;const{field:o,fieldState:i}=S.useController({name:e,control:r}),c=o.value??0,l=Array.from({length:s},(f,u)=>u+1);return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1",children:[l.map(f=>a.jsx("button",{type:"button",disabled:t||n,onClick:()=>o.onChange(f===c?0:f),className:"transition-transform hover:scale-110 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--t-primary)] rounded","aria-label":`${f} estrela${f>1?"s":""}`,children:a.jsx(O.Star,{size:24,className:"transition-colors",fill:f<=c?"var(--t-primary)":"transparent",stroke:f<=c?"var(--t-primary)":"var(--t-border)"})},f)),c>0&&a.jsxs("span",{className:"ml-2 text-sm",style:{color:"var(--t-text-muted)"},children:[c,"/",s]})]}),((d=i.error)==null?void 0:d.message)&&a.jsx("p",{className:"sfr-error",children:i.error.message})]})},an=({field:e,name:r,control:s,disabled:t,readOnly:n})=>{const o=t||e.isDisabled,i=n||e.isReadOnly;switch(e.tipo){case p.FieldType.EMAIL:return a.jsx(B,{name:r,control:s,type:"email",placeholder:e.placeholder,disabled:o,readOnly:i});case p.FieldType.NUMBER:return a.jsx(B,{name:r,control:s,type:"number",placeholder:e.placeholder,disabled:o,readOnly:i});case p.FieldType.PASSWORD:return a.jsx(B,{name:r,control:s,type:"password",placeholder:e.placeholder,disabled:o,readOnly:i});case p.FieldType.TELEFONE:return a.jsx(te,{name:r,control:s,maskType:"telefone",placeholder:e.placeholder??"(00) 00000-0000",disabled:o,readOnly:i});case p.FieldType.CPF:return a.jsx(te,{name:r,control:s,maskType:"cpf",placeholder:e.placeholder??"000.000.000-00",disabled:o,readOnly:i});case p.FieldType.CEP:return a.jsx(te,{name:r,control:s,maskType:"cep",placeholder:e.placeholder??"00000-000",disabled:o,readOnly:i});case p.FieldType.TEXTAREA:return a.jsx(Te,{name:r,control:s,placeholder:e.placeholder,disabled:o,readOnly:i});case p.FieldType.SELECT:return a.jsx(Ce,{name:r,control:s,options:e.opcoes??[],placeholder:e.placeholder,disabled:o,readOnly:i});case p.FieldType.CHECKBOX:return a.jsx(Se,{name:r,control:s,label:e.label??"",disabled:o,readOnly:i});case p.FieldType.SWITCH:return a.jsx($r,{name:r,control:s,label:e.label??"",disabled:o,readOnly:i});case p.FieldType.DATE:return a.jsx(le,{name:r,control:s,disabled:o,readOnly:i});case p.FieldType.TIME:return a.jsx(Pr,{name:r,control:s,disabled:o,readOnly:i});case p.FieldType.HIDDEN:return a.jsx(ze,{name:r,control:s});default:return a.jsx(B,{name:r,control:s,type:"text",placeholder:e.placeholder,disabled:o,readOnly:i})}},cn=({name:e,control:r,subSchema:s,disabled:t,readOnly:n})=>{if(!s||s.fields.length===0)return null;const o=[...s.fields].sort((i,c)=>i.ordem-c.ordem);return a.jsxs("div",{className:"sfr-subform rounded-xl border p-4 space-y-4",style:{borderColor:"var(--t-border)",background:"color-mix(in srgb, var(--t-surface) 60%, transparent)"},children:[s.titulo&&a.jsx("h4",{className:"sfr-subform__title text-sm font-semibold",style:{color:"var(--t-text-muted)"},children:s.titulo}),a.jsx("div",{className:"grid grid-cols-12 gap-4",children:o.map(i=>{const c=`${e}.${i.nome}`,l=i.tipo===p.FieldType.CHECKBOX||i.tipo===p.FieldType.SWITCH||i.tipo===p.FieldType.HIDDEN,d=i.tamanho??6;return a.jsxs("div",{className:`col-span-${d}`,children:[!l&&a.jsxs("label",{className:"sfr-label mb-1 block",children:[i.label,i.obrigatorio&&a.jsx("span",{style:{color:"var(--t-error)"},children:" *"})]}),a.jsx(an,{field:i,name:c,control:r,disabled:t,readOnly:n})]},i.id)})})]})},Dr=({field:e,control:r,nameOverride:s})=>{var c,l;const t=s??e.nome,{componentMapper:n}=Q(),o=n==null?void 0:n[e.tipo];if(o)return a.jsx(o,{name:t,control:r,field:e});const i={name:t,control:r,placeholder:e.placeholder,disabled:e.isDisabled,readOnly:e.isReadOnly};switch(e.tipo){case p.FieldType.TEXTO:return a.jsx(B,{...i,type:"text"});case p.FieldType.EMAIL:return a.jsx(B,{...i,type:"email"});case p.FieldType.NUMBER:return a.jsx(B,{...i,type:"number"});case p.FieldType.PASSWORD:return a.jsx(en,{...i});case p.FieldType.TEXTAREA:return a.jsx(Te,{...i});case p.FieldType.SELECT:return a.jsx(Ce,{...i,options:e.opcoes??[]});case p.FieldType.AUTOCOMPLETE:return a.jsx(sn,{...i,options:e.opcoes??[]});case p.FieldType.SWITCH:return a.jsx($r,{name:t,control:r,label:e.label,disabled:e.isDisabled,readOnly:e.isReadOnly});case p.FieldType.SLIDER:return a.jsx(rn,{name:t,control:r,minValue:e.minValue,maxValue:e.maxValue,step:e.step,disabled:e.isDisabled,readOnly:e.isReadOnly});case p.FieldType.RATING:return a.jsx(on,{name:t,control:r,maxRating:e.maxRating,disabled:e.isDisabled,readOnly:e.isReadOnly});case p.FieldType.COLOR:return a.jsx(tn,{name:t,control:r,disabled:e.isDisabled,readOnly:e.isReadOnly});case p.FieldType.TIME:return a.jsx(Pr,{...i});case p.FieldType.DATE_RANGE:return a.jsx(nn,{name:t,control:r,startLabel:e.dateRangeStartLabel,endLabel:e.dateRangeEndLabel,disabled:e.isDisabled,readOnly:e.isReadOnly});case p.FieldType.RADIO:return a.jsx(Le,{...i,options:e.opcoes??[]});case p.FieldType.CHECKBOX:return a.jsx(Se,{name:t,control:r,label:e.label,disabled:e.isDisabled,readOnly:e.isReadOnly});case p.FieldType.CHECKBOX_GROUP:return a.jsx(Me,{...i,options:e.opcoes??[]});case p.FieldType.DATE:return a.jsx(le,{name:t,control:r,disabled:e.isDisabled,readOnly:e.isReadOnly,validacao:e.validacao});case p.FieldType.DATETIME:return a.jsx(le,{name:t,control:r,isDatetime:!0,disabled:e.isDisabled,readOnly:e.isReadOnly,validacao:e.validacao});case p.FieldType.FILE:return a.jsx(Ve,{name:t,control:r,disabled:e.isDisabled,fileTypes:(c=e.validacao)==null?void 0:c.fileTypes,maxFileSize:(l=e.validacao)==null?void 0:l.maxFileSize});case p.FieldType.TELEFONE:return a.jsx(te,{...i,maskType:"telefone"});case p.FieldType.CPF:return a.jsx(te,{...i,maskType:"cpf"});case p.FieldType.CEP:return a.jsx(Je,{name:t,control:r,placeholder:e.placeholder,disabled:e.isDisabled,readOnly:e.isReadOnly,cepFillMap:e.cepFillMap});case p.FieldType.HIDDEN:return a.jsx(ze,{name:t,control:r});case p.FieldType.PARTICIPATION_TYPE:return a.jsx(zr,{name:t,control:r});case p.FieldType.PAYMENT_METHOD:return a.jsx(Fr,{name:t,control:r,relatedFieldName:e.relatedFieldName});case p.FieldType.TERMS:return a.jsx(kr,{name:t,control:r,label:e.label,termoTexto:e.termoTexto,termoPdfUrl:e.termoPdfUrl,termoPdfUploadId:e.termoPdfUploadId});case p.FieldType.FIELD_ARRAY:return a.jsx(Sr,{name:t,control:r,subFields:e.subFields,minItems:e.minItems,maxItems:e.maxItems,itemLabel:e.itemLabel,addLabel:e.addLabel});case p.FieldType.SUB_FORM:return a.jsx(cn,{name:t,control:r,subSchema:e.subSchema,disabled:e.isDisabled,readOnly:e.isReadOnly});default:return a.jsx(B,{...i,type:"text"})}},Ar=()=>{const e=Oe.useTemplate(),r=e.layout.containerStyle,t=["sfr-container overflow-hidden",e.layout.roundness??"rounded-xl",r==="card"?"sfr-container--card border":"",r==="bordered"?"sfr-container--bordered border":"",r==="glassmorphism"?"sfr-container--glass backdrop-blur-sm":""].filter(Boolean).join(" "),n=r==="glassmorphism"?{background:"var(--t-surface)",borderColor:"var(--t-border)",borderWidth:"1px",borderStyle:"solid"}:{},o=["sfr-container__header border-b px-6 py-4",r==="flat"?"border-transparent":""].filter(Boolean).join(" ");return{wrapperClass:t,wrapperStyle:n,headerClass:o,headerStyle:r==="glassmorphism"?{borderColor:"var(--t-border)"}:{},tmpl:e}},ln=({container:e,control:r})=>{var y;const{externalData:s={}}=Q(),t=e.icone?je[e.icone]:void 0,n=s,o=b.useMemo(()=>we(e,n),[e,JSON.stringify(n)]),i=b.useMemo(()=>[...o.campos].sort((j,_)=>j.ordem-_.ordem),[o.campos]),c=S.useWatch({control:r}),{fieldResolvers:l}=Q(),{wrapperClass:d,wrapperStyle:f,headerClass:u,headerStyle:g,tmpl:x}=Ar(),v=j=>{if(!G(j.condicional,c,s))return null;let h=j;if(j.resolvePropsKey&&(l!=null&&l[j.resolvePropsKey])){const F=l[j.resolvePropsKey](j,c,s);h={...j,...F}}if(h.opcoesFromVar){const F=s[h.opcoesFromVar];Array.isArray(F)&&(h={...h,opcoes:F.map(w=>typeof w=="string"?{valor:w,label:w}:w&&typeof w=="object"&&"valor"in w&&"label"in w?w:{valor:String(w),label:String(w)})})}const m=h.tamanho??12,E=h.inicioColuna,C=E?`${E} / span ${m}`:`span ${m}`,T=a.jsx(Dr,{field:h,control:r});return h.tipo===p.FieldType.CHECKBOX||h.tipo===p.FieldType.HIDDEN||h.tipo===p.FieldType.SWITCH?a.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:C},children:T},h.id):a.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:C},children:[a.jsxs("label",{className:"sfr-label font-medium flex items-center gap-1",style:{color:"var(--t-text)"},children:[h.label,h.obrigatorio&&a.jsx("span",{className:"sfr-required",children:"*"})]}),T,h.hint&&a.jsx("p",{className:"sfr-hint text-xs",style:{color:"var(--t-text-muted)"},children:h.hint})]},h.id)};return a.jsxs("div",{className:d,style:f,children:[(o.titulo||t)&&a.jsx("div",{className:u,style:g,children:a.jsxs("div",{className:"flex items-center gap-3",children:[t&&a.jsx("div",{className:"p-2 rounded-xl",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:a.jsx(t,{className:"w-5 h-5",style:{color:"var(--t-primary)"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:((y=x.typography)==null?void 0:y.stepTitleClass)??"text-lg font-semibold",style:{color:"var(--t-text)"},children:o.titulo}),o.descricao&&a.jsx("p",{className:"text-sm",style:{color:"var(--t-text-muted)"},children:o.descricao})]})]})}),a.jsx("div",{className:"p-6 grid grid-cols-12 gap-4",children:i.map(v)})]})},dn=({container:e,control:r})=>{var C;const{externalData:s={}}=Q(),t=e.nome,n=e.minItems??1,o=e.maxItems,i=e.itemLabel??"Item",{fields:c,append:l,remove:d}=S.useFieldArray({control:r,name:t});b.useEffect(()=>{if(c.length<n)for(let T=c.length;T<n;T++)l({})},[]);const f=e.icone?je[e.icone]:void 0,u=s,g=b.useMemo(()=>we(e,u),[e,JSON.stringify(u)]),x=b.useMemo(()=>[...g.campos].sort((T,F)=>T.ordem-F.ordem),[g.campos]),v=S.useWatch({control:r}),{wrapperClass:y,wrapperStyle:j,headerClass:_,headerStyle:h,tmpl:m}=Ar(),E=(T,F)=>{if(!G(T.condicional,v,s))return null;const X=`${t}.${F}.${T.nome}`,D=T.tamanho??12,M=T.inicioColuna,V=M?`${M} / span ${D}`:`span ${D}`,J=a.jsx(Dr,{field:T,control:r,nameOverride:X});return T.tipo===p.FieldType.CHECKBOX||T.tipo===p.FieldType.HIDDEN?a.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:V},children:J},`${T.id}-${F}`):a.jsxs("div",{className:"max-sm:!col-span-12 space-y-2",style:{gridColumn:V},children:[a.jsxs("label",{className:"sfr-label font-medium flex items-center gap-1",style:{color:"var(--t-text)"},children:[T.label,T.obrigatorio&&a.jsx("span",{className:"sfr-required",children:"*"})]}),J,T.hint&&a.jsx("p",{className:"sfr-hint text-xs",style:{color:"var(--t-text-muted)"},children:T.hint})]},`${T.id}-${F}`)};return a.jsxs("div",{className:y,style:j,children:[(g.titulo||f)&&a.jsx("div",{className:_,style:h,children:a.jsxs("div",{className:"flex items-center gap-3",children:[f&&a.jsx("div",{className:"p-2 rounded-xl",style:{background:"color-mix(in srgb, var(--t-primary) 12%, transparent)"},children:a.jsx(f,{className:"w-5 h-5",style:{color:"var(--t-primary)"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:((C=m.typography)==null?void 0:C.stepTitleClass)??"text-lg font-semibold",style:{color:"var(--t-text)"},children:g.titulo}),g.descricao&&a.jsx("p",{className:"text-sm",style:{color:"var(--t-text-muted)"},children:g.descricao})]})]})}),a.jsxs("div",{className:"p-6 space-y-4",children:[c.map((T,F)=>a.jsxs("div",{className:"sfr-container__repeat-item border rounded-lg p-4",style:{borderColor:"var(--t-border)",background:"color-mix(in srgb, var(--t-surface) 60%, transparent)"},children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0",style:{background:"var(--t-primary)",color:"#fff"},children:F+1}),a.jsxs("span",{className:"text-sm font-semibold",style:{color:"var(--t-text)"},children:[i," ",F+1]})]}),c.length>n&&a.jsx("button",{type:"button",onClick:()=>d(F),className:"sfr-btn sfr-btn--ghost sfr-error","aria-label":"Remover item",children:a.jsx(O.Trash2,{className:"w-4 h-4"})})]}),a.jsx("div",{className:"grid grid-cols-12 gap-4",children:x.map(w=>E(w,F))})]},T.id)),(!o||c.length<o)&&a.jsxs("button",{type:"button",className:"sfr-btn sfr-btn--outline w-full flex items-center justify-center gap-2 py-2 px-4 border rounded-lg text-sm",onClick:()=>l({}),children:[a.jsx(O.Plus,{className:"w-4 h-4"}),"Adicionar ",i.toLowerCase()]}),o&&a.jsxs("p",{className:"text-xs text-center sfr-text-muted",children:["Máximo de ",o," ",i.toLowerCase(),o>1?"s":""]})]})]})},Rr=e=>e.container.repeatable&&e.container.nome?a.jsx(dn,{...e}):a.jsx(ln,{...e}),Ir=({step:e,control:r,externalData:s={}})=>{const t=b.useMemo(()=>[...e.containers].sort((o,i)=>o.ordem-i.ordem),[e.containers]),n=S.useWatch({control:r});return a.jsx("div",{className:"sfr-step grid grid-cols-12 gap-4 sfr-step--animate",children:t.map(o=>{if(o.condicional&&!G(o.condicional,n,s))return null;const i=o.tamanho??12,c=o.inicioColuna,l=c?`${c} / span ${i}`:`span ${i}`;return a.jsx("div",{className:"max-sm:!col-span-12",style:{gridColumn:l},children:a.jsx(Rr,{container:o,control:r})},o.id)})})},me=b.createContext({submitting:!1,warnings:{},requestSubmit:()=>{}}),un=me.Provider,fn=()=>{const e=S.useFormContext(),r=b.useContext(me);return{change:(s,t)=>e.setValue(s,t,{shouldValidate:!0,shouldDirty:!0}),reset:s=>e.reset(s),submit:r.requestSubmit,getState:()=>{const{errors:s,isDirty:t,isValid:n}=e.formState;return{values:e.getValues(),errors:Object.fromEntries(Object.entries(s).map(([o,i])=>[o,i==null?void 0:i.message])),warnings:r.warnings,dirty:t,valid:n,submitting:r.submitting}}}},Zr=()=>{const e=S.useFormContext(),r=b.useContext(me),s=S.useWatch({control:e.control}),{errors:t,isDirty:n,isValid:o}=e.formState;return{values:s,errors:Object.fromEntries(Object.entries(t).map(([i,c])=>[i,c==null?void 0:c.message])),warnings:r.warnings,dirty:n,valid:o,submitting:r.submitting}},mn=e=>{var o;const r=S.useFormContext(),{warnings:s}=b.useContext(me),t=S.useWatch({control:r.control,name:e}),n=r.getFieldState(e,r.formState);return{value:t,error:(o=n.error)==null?void 0:o.message,warning:s[e],dirty:n.isDirty,touched:n.isTouched,valid:!n.error}},pn=e=>{var o;const{control:r}=S.useFormContext(),{warnings:s}=b.useContext(me),{field:t,fieldState:n}=S.useController({name:e,control:r});return{input:{name:t.name,value:t.value,onChange:t.onChange,onBlur:t.onBlur,ref:t.ref},meta:{error:(o=n.error)==null?void 0:o.message,warning:s[e],touched:n.isTouched,dirty:n.isDirty,valid:!n.error}}},hn=({steps:e,currentStep:r,onStepClick:s})=>a.jsx("div",{className:"sfr-step-indicator flex items-center gap-2 justify-center flex-wrap",children:e.map((t,n)=>{const o=n<r,i=n===r,c=t.icone?je[t.icone]:void 0;return a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:()=>o&&(s==null?void 0:s(n)),disabled:!o,className:"sfr-step-indicator__dot flex items-center justify-center w-8 h-8 rounded-full text-xs font-bold transition-all","data-active":i?"true":void 0,"data-done":o?"true":void 0,title:t.label,children:o?a.jsx(O.Check,{className:"w-4 h-4"}):c?a.jsx(c,{className:"w-4 h-4"}):n+1}),t.label&&a.jsx("span",{className:"text-xs hidden sm:block sfr-step-indicator__label","data-active":i?"true":void 0,children:t.label}),n<e.length-1&&a.jsx("div",{className:"sfr-step-indicator__line w-6 h-0.5","data-done":o?"true":void 0})]},t.id)})}),gn=({stepIndex:e,totalSteps:r,step:s,defaultValues:t,externalData:n,fieldErrors:o,isSubmitting:i,submitError:c,validatorMapper:l={},onWarningsChange:d,onValuesChange:f,onSubmit:u,onBack:g})=>{const x=e===r-1,v=b.useMemo(()=>_r(s,n,l),[s.id]),y=b.useMemo(()=>Nr(s,n,l),[s.id]),[j,_]=b.useState({}),h=b.useRef(d);h.current=d;const m=n,E=b.useMemo(()=>Tr(s,m),[s,JSON.stringify(m)]),C=S.useForm({resolver:v,defaultValues:t,mode:"onTouched"}),{control:T,watch:F,setValue:w,handleSubmit:X,setError:D,clearErrors:M}=C;b.useEffect(()=>{M();for(const[N,P]of Object.entries(o))D(N,{type:"server",message:P})},[o,D,M]);const V=b.useMemo(()=>s.containers.flatMap(N=>N.campos).filter(N=>N.condicional&&N.clearedValue!==void 0),[s.containers]),J=b.useMemo(()=>s.containers.flatMap(N=>N.campos).filter(N=>{var P;return N.condicional&&((P=N.setValues)==null?void 0:P.length)}),[s.containers]),ee=b.useRef({}),L=S.useWatch({control:T}),Y=b.useRef(f);Y.current=f,b.useEffect(()=>{var N;(N=Y.current)==null||N.call(Y,L)},[L]),b.useEffect(()=>{let N=!1;return y(L).then(K=>{var $;N||(_(K),($=h.current)==null||$.call(h,K))}),()=>{N=!0}},[L,y]),b.useEffect(()=>{var K;if(!V.length&&!J.length)return;const N=L,P=n;for(const $ of V)if(!G($.condicional,N,n)){const re=$.clearedValue??"";N[$.nome]!==re&&w($.nome,re,{shouldValidate:!1})}for(const $ of J){const U=G($.condicional,N,n),re=ee.current[$.nome]??!1;if(U&&!re&&((K=$.setValues)!=null&&K.length))for(const pe of $.setValues){const Mr=typeof pe.valor=="string"?H(pe.valor,P):pe.valor;w(pe.campo,Mr,{shouldValidate:!1})}ee.current[$.nome]=U}},[L,V,J,n,w]);const q=E.icone?je[E.icone]:void 0,ae=b.useMemo(()=>()=>{C.handleSubmit(u)()},[u]);return a.jsx(S.FormProvider,{...C,children:a.jsx(un,{value:{submitting:i,warnings:j,requestSubmit:ae},children:a.jsx("form",{onSubmit:X(u),noValidate:!0,onKeyDown:N=>{N.key==="Enter"&&N.target.tagName==="INPUT"&&N.preventDefault()},children:a.jsxs("div",{className:"space-y-6",children:[E.showLabel!==!1&&a.jsxs("div",{className:"text-center space-y-2",children:[q&&a.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:a.jsx(q,{className:"w-6 h-6",style:{color:"var(--t-primary)"}})}),a.jsx("h2",{className:"sfr-step__title text-2xl font-bold",style:{color:"var(--t-text)"},children:E.titulo}),E.descricao&&a.jsx("p",{className:"sfr-step__desc text-sm",style:{color:"var(--t-text-muted)"},children:E.descricao})]}),a.jsx(Ir,{step:E,control:T,externalData:n}),a.jsxs("div",{className:"sfr-form__nav flex items-center justify-between gap-4 pt-6 pb-2",children:[a.jsxs("button",{type:"button",className:"sfr-btn sfr-btn--outline flex items-center gap-1 px-4 py-2 border rounded-lg text-sm",onClick:g,disabled:e===0,style:e>0?{borderColor:"color-mix(in srgb, var(--t-primary) 40%, transparent)",color:"var(--t-primary)"}:{},children:[a.jsx(O.ChevronLeft,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Anterior"})]}),a.jsxs("span",{className:"text-xs font-semibold tabular-nums sm:hidden",style:{color:"var(--t-text-muted)"},children:[e+1,"/",r]}),a.jsxs("button",{type:"submit",className:"sfr-btn sfr-btn--primary flex items-center gap-1 px-4 py-2 rounded-lg text-sm font-semibold",disabled:i,style:{background:"var(--t-primary)",color:"#ffffff"},children:[i?a.jsx(O.Loader2,{className:"w-4 h-4 animate-spin"}):x?a.jsx(O.Check,{className:"w-4 h-4"}):a.jsx(O.ChevronRight,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:x?"Finalizar":"Próximo"})]})]}),c&&a.jsx("p",{className:"sfr-error text-sm mt-2 text-center",children:c})]})})})})},xn=(e,r,s)=>{const t={...r},n=s;for(const o of e.containers)for(const i of o.campos)t[i.nome]===void 0&&(i.initialValue!==void 0?t[i.nome]=typeof i.initialValue=="string"?H(i.initialValue,n):i.initialValue:i.defaultValue!==void 0&&(t[i.nome]=i.defaultValue));return t},yn=({schema:e,initialValues:r={},initialStep:s=0,onSubmitStep:t,onComplete:n,template:o,formTitle:i,externalData:c={},fieldErrors:l={},uploadFile:d,cepLookup:f,resolveTermsUploadUrl:u,fieldResolvers:g,validatorMapper:x,componentMapper:v,paymentMethodOptions:y,onValuesChange:j,className:_,StepIndicator:h=hn})=>{const[m,E]=b.useState(()=>s),[C,T]=b.useState({...r}),[F,w]=b.useState(!1),[X,D]=b.useState(null),[M,V]=b.useState({}),J=b.useMemo(()=>Oe.getTemplateConfig(o),[o]),ee=b.useMemo(()=>[...e.steps].sort(($,U)=>$.ordem-U.ordem),[e.steps]),L=ee.length,Y=ee[Math.min(m,L-1)],q=b.useMemo(()=>xn(Y,C,c),[Y,C,JSON.stringify(c)]),ae=b.useMemo(()=>({uploadFile:d,cepLookup:f,resolveTermsUploadUrl:u,externalData:c,fieldResolvers:g,validatorMapper:x,fieldWarnings:M,componentMapper:v,paymentMethodOptions:y}),[d,f,u,g,x,M,v,y,JSON.stringify(c)]),N=b.useCallback(async $=>{w(!0),D(null);try{const U={...C,...$};T(U),t&&await t(m,$),m===L-1?n&&await n(U):E(re=>re+1)}catch(U){console.error("[FormRenderer] Submit error:",U);const re=U instanceof Error?U.message:"Ocorreu um erro. Tente novamente.";D(re)}finally{w(!1)}},[m,C,L,t,n]),P=b.useCallback(()=>{m>0&&E($=>$-1)},[m]),K=J.layout.eventTitleStyle??"bar";return a.jsx(Ze.Provider,{value:ae,children:a.jsx(Oe.TemplateProvider,{config:J,className:`sfr-root min-h-dvh ${J.wrapperClass??""} ${_??""}`,renderWrapper:!0,children:a.jsxs("div",{className:"sfr-form w-full max-w-4xl mx-auto px-4 py-6 sm:px-6",children:[i&&K==="bar"&&a.jsx("div",{className:"sfr-form__title w-full text-center text-sm font-medium py-2.5 px-4 mb-6 rounded-lg border",style:{background:"color-mix(in srgb, var(--t-surface) 80%, transparent)",borderColor:"var(--t-border)",color:"var(--t-text-muted)"},children:i}),i&&K==="inline"&&a.jsxs("div",{className:"text-center mb-6",children:[a.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest mb-1",style:{color:"var(--t-text-muted)"},children:"Inscrição"}),a.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--t-text)"},children:i}),a.jsx("div",{className:"h-0.5 w-12 mx-auto mt-3 rounded-full",style:{background:"var(--t-primary)"}})]}),L>1&&a.jsx("div",{className:"mb-8",children:a.jsx(h,{steps:ee.map($=>({id:$.id,label:$.titulo,icone:$.icone})),currentStep:m,onStepClick:E})}),a.jsx(gn,{stepIndex:m,totalSteps:L,step:Y,defaultValues:q,externalData:c,fieldErrors:l,isSubmitting:F,submitError:X,validatorMapper:x,onWarningsChange:V,onValuesChange:j,onSubmit:N,onBack:P},m)]})})})},bn=({children:e,render:r,onChange:s})=>{const t=Zr(),n=b.useRef(s);return n.current=s,b.useEffect(()=>{var o;(o=n.current)==null||o.call(n,t)},[t.values,t.dirty,t.valid,t.submitting,t.errors,t.warnings]),r?a.jsx(a.Fragment,{children:r(t)}):typeof e=="function"?a.jsx(a.Fragment,{children:e(t)}):e!==void 0?a.jsx(a.Fragment,{children:e}):null};exports.ContainerRenderer=Rr;exports.DFCepField=Je;exports.DFCheckbox=Se;exports.DFCheckboxGroup=Me;exports.DFDateField=le;exports.DFFieldArray=Sr;exports.DFFileUpload=Ve;exports.DFHidden=ze;exports.DFMaskedInput=te;exports.DFParticipationType=zr;exports.DFPaymentMethod=Fr;exports.DFRadioGroup=Le;exports.DFSelect=Ce;exports.DFTerms=kr;exports.DFTextField=B;exports.DFTextarea=Te;exports.FormRenderer=yn;exports.FormSpy=bn;exports.OPCOES_POR_DIA=Er;exports.OPCOES_TODOS_OS_DIAS=Or;exports.RendererContext=Ze;exports.StepRenderer=Ir;exports.evaluateFieldCondition=G;exports.interpolate=H;exports.interpolateContainer=we;exports.interpolateField=wr;exports.interpolateStep=Tr;exports.makeStepResolver=_r;exports.makeStepWarnComputer=Nr;exports.useField=mn;exports.useFieldApi=pn;exports.useFormApi=fn;exports.useFormState=Zr;exports.useRendererContext=Q;