@usefillo/dom 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var Fillo=(()=>{var He=Object.defineProperty;var Kr=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var qr=Object.prototype.hasOwnProperty;var Gr=(e,t)=>{for(var r in t)He(e,r,{get:t[r],enumerable:!0})},Jr=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Wr(t))!qr.call(e,n)&&n!==r&&He(e,n,{get:()=>t[n],enumerable:!(o=Kr(t,n))||o.enumerable});return e};var Xr=e=>Jr(He({},"__esModule",{value:!0}),e);var Mo={};Gr(Mo,{FilloClient:()=>Oe,FilloError:()=>w,createClient:()=>ye,createFormElement:()=>Hr,defineForm:()=>xt,registerFilloElement:()=>Et,renderForm:()=>je});var Zt;function y(e,t,r){function o(a,u){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:u,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,u);let c=s.prototype,d=Object.keys(c);for(let f=0;f<d.length;f++){let p=d[f];p in a||(a[p]=c[p].bind(a))}}let n=r?.Parent??Object;class i extends n{}Object.defineProperty(i,"name",{value:e});function s(a){var u;let c=r?.Parent?new i:this;o(c,a),(u=c._zod).deferred??(u.deferred=[]);for(let d of c._zod.deferred)d();return c}return Object.defineProperty(s,"init",{value:o}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var B=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};(Zt=globalThis).__zod_globalConfig??(Zt.__zod_globalConfig={});var Ke=globalThis.__zod_globalConfig;function W(e){return e&&Object.assign(Ke,e),Ke}function Ct(e){let t=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,n])=>t.indexOf(+o)===-1).map(([o,n])=>n)}function Pt(e,t){return typeof t=="bigint"?t.toString():t}function It(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function qe(e){return e==null}function Ft(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}var St=Symbol("evaluating");function q(e,t,r){let o;Object.defineProperty(e,t,{get(){if(o!==St)return o===void 0&&(o=St,o=r()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}var Ge="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Je(e){if(ke(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(ke(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Xe(e){return Je(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Mt=new Set(["string","number","symbol"]);function ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ye(e,t,r){let o=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(o._zod.parent=e),o}function C(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Nt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Yr={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function ue(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function Tt(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function G(e,t){return t.map(r=>{var o;return(o=r).path??(o.path=[]),r.path.unshift(e),r})}function ze(e){return typeof e=="string"?e:e?.message}function J(e,t,r){let o=e.message?e.message:ze(e.inst?._zod.def?.error?.(e))??ze(t?.error?.(e))??ze(r.customError?.(e))??ze(r.localeError?.(e))??"Invalid input",{inst:n,continue:i,input:s,...a}=e;return a.path??(a.path=[]),a.message=o,t?.reportInput&&(a.input=s),a}function Qe(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}var Lt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Pt,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Rt=y("$ZodError",Lt),le=y("$ZodError",Lt,{Parent:Error});var en=e=>(t,r,o,n)=>{let i=o?{...o,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new B;if(s.issues.length){let a=new(n?.Err??e)(s.issues.map(u=>J(u,i,W())));throw Ge(a,n?.callee),a}return s.value},Ae=en(le),tn=e=>async(t,r,o,n)=>{let i=o?{...o,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(n?.Err??e)(s.issues.map(u=>J(u,i,W())));throw Ge(a,n?.callee),a}return s.value},Ee=tn(le),rn=e=>(t,r,o)=>{let n=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},n);if(i instanceof Promise)throw new B;return i.issues.length?{success:!1,error:new(e??Rt)(i.issues.map(s=>J(s,n,W())))}:{success:!0,data:i.value}},de=rn(le),nn=e=>async(t,r,o)=>{let n=o?{...o,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},n);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>J(s,n,W())))}:{success:!0,data:i.value}},pe=nn(le);var Ot=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var on="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",sn=new RegExp(`^${on}$`);var Dt=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};var et=/^-?\d+(?:\.\d+)?$/;var ee=y("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),an={number:"number",bigint:"bigint",object:"date"};var jt=y("$ZodCheckGreaterThan",(e,t)=>{ee.init(e,t);let r=an[typeof t.value];e._zod.onattach.push(o=>{let n=o._zod.bag,i=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}});var Bt=y("$ZodCheckMaxLength",(e,t)=>{var r;ee.init(e,t),(r=e._zod.def).when??(r.when=o=>{let n=o.value;return!qe(n)&&n.length!==void 0}),e._zod.onattach.push(o=>{let n=o._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(o._zod.bag.maximum=t.maximum)}),e._zod.check=o=>{let n=o.value;if(n.length<=t.maximum)return;let s=Qe(n);o.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),Vt=y("$ZodCheckMinLength",(e,t)=>{var r;ee.init(e,t),(r=e._zod.def).when??(r.when=o=>{let n=o.value;return!qe(n)&&n.length!==void 0}),e._zod.onattach.push(o=>{let n=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(o._zod.bag.minimum=t.minimum)}),e._zod.check=o=>{let n=o.value;if(n.length>=t.minimum)return;let s=Qe(n);o.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}});var Ht=y("$ZodCheckStringFormat",(e,t)=>{var r,o;ee.init(e,t),e._zod.onattach.push(n=>{let i=n._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})});var Wt={major:4,minor:4,patch:3};var N=y("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Wt;let o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(let n of o)for(let i of n._zod.onattach)i(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let n=(s,a,u)=>{let c=ue(s),d;for(let f of a){if(f._zod.def.when){if(Tt(s)||!f._zod.def.when(s))continue}else if(c)continue;let p=s.issues.length,h=f._zod.check(s);if(h instanceof Promise&&u?.async===!1)throw new B;if(d||h instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await h,s.issues.length!==p&&(c||(c=ue(s,p)))});else{if(s.issues.length===p)continue;c||(c=ue(s,p))}}return d?d.then(()=>s):s},i=(s,a,u)=>{if(ue(s))return s.aborted=!0,s;let c=n(a,o,u);if(c instanceof Promise){if(u.async===!1)throw new B;return c.then(d=>e._zod.parse(d,u))}return e._zod.parse(c,u)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){let c=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return c instanceof Promise?c.then(d=>i(d,s,a)):i(c,s,a)}let u=e._zod.parse(s,a);if(u instanceof Promise){if(a.async===!1)throw new B;return u.then(c=>n(c,o,a))}return n(u,o,a)}}q(e,"~standard",()=>({validate:n=>{try{let i=de(e,n);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return pe(e,n).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),tt=y("$ZodString",(e,t)=>{N.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Dt(e._zod.bag),e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),rt=y("$ZodStringFormat",(e,t)=>{Ht.init(e,t),tt.init(e,t)});var Xt=y("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ot),rt.init(e,t)});var Yt=y("$ZodNumber",(e,t)=>{N.init(e,t),e._zod.pattern=e._zod.bag.pattern??et,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let n=r.value;if(typeof n=="number"&&!Number.isNaN(n)&&Number.isFinite(n))return r;let i=typeof n=="number"?Number.isNaN(n)?"NaN":Number.isFinite(n)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:n,inst:e,...i?{received:i}:{}}),r}});var Qt=y("$ZodUnknown",(e,t)=>{N.init(e,t),e._zod.parse=r=>r});function qt(e,t,r){e.issues.length&&t.issues.push(...G(r,e.issues)),t.value[r]=e.value}var er=y("$ZodArray",(e,t)=>{N.init(e,t),e._zod.parse=(r,o)=>{let n=r.value;if(!Array.isArray(n))return r.issues.push({expected:"array",code:"invalid_type",input:n,inst:e}),r;r.value=Array(n.length);let i=[];for(let s=0;s<n.length;s++){let a=n[s],u=t.element._zod.run({value:a,issues:[]},o);u instanceof Promise?i.push(u.then(c=>qt(c,r,s))):qt(u,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Ze(e,t,r,o,n,i){let s=r in o;if(e.issues.length){if(n&&i&&!s)return;t.issues.push(...G(r,e.issues))}if(!s&&!n){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?s&&(t.value[r]=void 0):t.value[r]=e.value}function un(e){let t=Object.keys(e.shape);for(let o of t)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);let r=Nt(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function ln(e,t,r,o,n,i){let s=[],a=n.keySet,u=n.catchall._zod,c=u.def.type,d=u.optin==="optional",f=u.optout==="optional";for(let p in t){if(p==="__proto__"||a.has(p))continue;if(c==="never"){s.push(p);continue}let h=u.run({value:t[p],issues:[]},o);h instanceof Promise?e.push(h.then(b=>Ze(b,r,p,t,d,f))):Ze(h,r,p,t,d,f)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var tr=y("$ZodObject",(e,t)=>{if(N.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let u={...a};return Object.defineProperty(t,"shape",{value:u}),u}})}let o=It(()=>un(t));q(e._zod,"propValues",()=>{let a=t.shape,u={};for(let c in a){let d=a[c]._zod;if(d.values){u[c]??(u[c]=new Set);for(let f of d.values)u[c].add(f)}}return u});let n=ke,i=t.catchall,s;e._zod.parse=(a,u)=>{s??(s=o.value);let c=a.value;if(!n(c))return a.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),a;a.value={};let d=[],f=s.shape;for(let p of s.keys){let h=f[p],b=h._zod.optin==="optional",g=h._zod.optout==="optional",E=h._zod.run({value:c[p],issues:[]},u);E instanceof Promise?d.push(E.then(j=>Ze(j,a,p,c,b,g))):Ze(E,a,p,c,b,g)}return i?ln(d,c,a,u,o.value,e):d.length?Promise.all(d).then(()=>a):a}});var rr=y("$ZodRecord",(e,t)=>{N.init(e,t),e._zod.parse=(r,o)=>{let n=r.value;if(!Je(n))return r.issues.push({expected:"record",code:"invalid_type",input:n,inst:e}),r;let i=[],s=t.keyType._zod.values;if(s){r.value={};let a=new Set;for(let c of s)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){a.add(typeof c=="number"?c.toString():c);let d=t.keyType._zod.run({value:c,issues:[]},o);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(h=>J(h,o,W())),input:c,path:[c],inst:e});continue}let f=d.value,p=t.valueType._zod.run({value:n[c],issues:[]},o);p instanceof Promise?i.push(p.then(h=>{h.issues.length&&r.issues.push(...G(c,h.issues)),r.value[f]=h.value})):(p.issues.length&&r.issues.push(...G(c,p.issues)),r.value[f]=p.value)}let u;for(let c in n)a.has(c)||(u=u??[],u.push(c));u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:n,inst:e,keys:u})}else{r.value={};for(let a of Reflect.ownKeys(n)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(n,a))continue;let u=t.keyType._zod.run({value:a,issues:[]},o);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&et.test(a)&&u.issues.length){let f=t.keyType._zod.run({value:Number(a),issues:[]},o);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(u=f)}if(u.issues.length){t.mode==="loose"?r.value[a]=n[a]:r.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(f=>J(f,o,W())),input:a,path:[a],inst:e});continue}let d=t.valueType._zod.run({value:n[a],issues:[]},o);d instanceof Promise?i.push(d.then(f=>{f.issues.length&&r.issues.push(...G(a,f.issues)),r.value[u.value]=f.value})):(d.issues.length&&r.issues.push(...G(a,d.issues)),r.value[u.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var nr=y("$ZodEnum",(e,t)=>{N.init(e,t);let r=Ct(t.entries),o=new Set(r);e._zod.values=o,e._zod.pattern=new RegExp(`^(${r.filter(n=>Mt.has(typeof n)).map(n=>typeof n=="string"?ce(n):n.toString()).join("|")})$`),e._zod.parse=(n,i)=>{let s=n.value;return o.has(s)||n.issues.push({code:"invalid_value",values:r,input:s,inst:e}),n}}),or=y("$ZodLiteral",(e,t)=>{if(N.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(o=>typeof o=="string"?ce(o):o?ce(o.toString()):String(o)).join("|")})$`),e._zod.parse=(o,n)=>{let i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),o}});function Gt(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var ir=y("$ZodOptional",(e,t)=>{N.init(e,t),e._zod.optin="optional",e._zod.optout="optional",q(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),q(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ft(r.source)})?$`):void 0}),e._zod.parse=(r,o)=>{if(t.innerType._zod.optin==="optional"){let n=r.value,i=t.innerType._zod.run(r,o);return i instanceof Promise?i.then(s=>Gt(s,n)):Gt(i,n)}return r.value===void 0?r:t.innerType._zod.run(r,o)}});var sr=y("$ZodDefault",(e,t)=>{N.init(e,t),e._zod.optin="optional",q(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);if(r.value===void 0)return r.value=t.defaultValue,r;let n=t.innerType._zod.run(r,o);return n instanceof Promise?n.then(i=>Jt(i,t)):Jt(n,t)}});function Jt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}function ar(e,t){return new e({type:"string",...C(t)})}function cr(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...C(t)})}function ur(e,t){return new e({type:"number",checks:[],...C(t)})}function lr(e){return new e({type:"unknown"})}function nt(e,t){return new jt({check:"greater_than",...C(t),value:e,inclusive:!0})}function ot(e){return nt(0,e)}function I(e,t){return new Bt({check:"max_length",...C(t),maximum:e})}function se(e,t){return new Vt({check:"min_length",...C(t),minimum:e})}var D=y("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");N.init(e,t),e.def=t,e.type=t.type,e.parse=(r,o)=>Ae(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>de(e,r,o),e.parseAsync=async(r,o)=>Ee(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>pe(e,r,o),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]},{parent:!0}),e.with=e.check,e.clone=(r,o)=>Ye(e,r,o),e.brand=()=>e,e.register=((r,o)=>(r.add(e,o),e)),e.apply=r=>r(e)}),pr=y("ZodMiniString",(e,t)=>{tt.init(e,t),D.init(e,t)});function F(e){return ar(pr,e)}var pn=y("ZodMiniStringFormat",(e,t)=>{rt.init(e,t),pr.init(e,t)}),fn=y("ZodMiniEmail",(e,t)=>{Xt.init(e,t),pn.init(e,t)});function Se(e){return cr(fn,e)}var mn=y("ZodMiniNumber",(e,t)=>{Yt.init(e,t),D.init(e,t)});function fr(e){return ur(mn,e)}var hn=y("ZodMiniUnknown",(e,t)=>{Qt.init(e,t),D.init(e,t)});function Ce(){return lr(hn)}var gn=y("ZodMiniArray",(e,t)=>{er.init(e,t),D.init(e,t)});function X(e,t){return new gn({type:"array",element:e,...C(t)})}var mr=y("ZodMiniObject",(e,t)=>{tr.init(e,t),D.init(e,t),q(e,"shape",()=>t.shape)});function fe(e,t){let r={type:"object",shape:e??{},...C(t)};return new mr(r)}function it(e,t){return new mr({type:"object",shape:e,catchall:Ce(),...C(t)})}var dr=y("ZodMiniRecord",(e,t)=>{rr.init(e,t),D.init(e,t)});function hr(e,t,r){return!t||!t._zod?new dr({type:"record",keyType:F(),valueType:e,...C(t)}):new dr({type:"record",keyType:e,valueType:t,...C(r)})}var bn=y("ZodMiniEnum",(e,t)=>{nr.init(e,t),D.init(e,t),e.options=Object.values(t.entries)});function gr(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new bn({type:"enum",entries:r,...C(t)})}var vn=y("ZodMiniLiteral",(e,t)=>{or.init(e,t),D.init(e,t)});function br(e,t){return new vn({type:"literal",values:Array.isArray(e)?e:[e],...C(t)})}var yn=y("ZodMiniOptional",(e,t)=>{ir.init(e,t),D.init(e,t)});function T(e){return new yn({type:"optional",innerType:e})}var _n=y("ZodMiniDefault",(e,t)=>{sr.init(e,t),D.init(e,t)});function st(e,t){return new _n({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Xe(t)}})}var $n=["heading","paragraph","divider"];function re(e){return!$n.includes(e.kind)}function at(e){return e==null?!1:typeof e=="string"?e.trim()!=="":Array.isArray(e)?e.length>0:typeof e=="boolean"?e:typeof e=="object"?Object.keys(e).length>0:!0}function vr(e,t){return e===t?!0:typeof e=="number"&&typeof t=="string"&&t.trim()!==""?Number(t)===e:typeof t=="number"&&typeof e=="string"&&e.trim()!==""?Number(e)===t:!1}function zn(e,t){let r=t(e.fieldId);switch(e.op){case"answered":return at(r);case"not_answered":return!at(r);case"eq":return Array.isArray(r)?r.some(o=>o===e.value):vr(r,e.value);case"neq":return at(r)?Array.isArray(r)?!r.some(o=>o===e.value):!vr(r,e.value):!1;case"contains":return typeof r=="string"?r.toLowerCase().includes(String(e.value??"").toLowerCase()):Array.isArray(r)?r.some(o=>o===e.value):!1;case"gt":return typeof r=="number"&&r>Number(e.value);case"lt":return typeof r=="number"&&r<Number(e.value)}}function $r(e,t){return!e.visibleIf||e.visibleIf.length===0?!0:e.visibleIf.every(r=>zn(r,t))}function zr(e,t,r){return o=>t.has(o)&&!r.has(o)?void 0:e[o]}function kr(e,t){let r=new Set(e.map(n=>n.id)),o=r;for(let n=0;n<=e.length;n++){let i=zr(t,r,o),s=new Set;for(let a of e)$r(a,i)&&s.add(a.id);if(s.size===o.size&&[...s].every(a=>o.has(a)))return s;o=s}return o}function ct(e,t){let r=e.blocks.filter(re),o=new Set(r.map(i=>i.id)),n=zr(t,o,kr(r,t));return e.blocks.filter(i=>$r(i,n))}function Ar(e){return e.pages.flatMap(t=>t.blocks.filter(re))}function Ne(e,t){let r=Ar(e),o=kr(r,t);return r.filter(n=>o.has(n.id))}var m=(e,t,r,o=[],n=[],i="")=>({iso2:e,name:t,dialCode:r,lengths:o,groups:n,example:i}),V=[m("US","United States","1",[10],[3,3,4],"2015550123"),m("CA","Canada","1",[10],[3,3,4],"5145550123"),m("GB","United Kingdom","44",[10],[4,6],"7400123456"),m("AU","Australia","61",[9],[3,3,3],"412345678"),m("DE","Germany","49",[10,11],[4,7],"15123456789"),m("FR","France","33",[9],[1,2,2,2,2],"612345678"),m("IN","India","91",[10],[5,5],"8123456789"),m("DK","Denmark","45",[8],[2,2,2,2],"32123456"),m("SE","Sweden","46",[9],[2,3,4],"701234567"),m("NO","Norway","47",[8],[3,2,3],"40612345"),m("FI","Finland","358",[9,10],[2,3,4],"412345678"),m("NL","Netherlands","31",[9],[1,4,4],"612345678"),m("BE","Belgium","32",[9],[3,2,2,2],"470123456"),m("ES","Spain","34",[9],[3,3,3],"612345678"),m("IT","Italy","39",[9,10],[3,3,4],"3123456789"),m("PT","Portugal","351",[9],[3,3,3],"912345678"),m("IE","Ireland","353",[9],[2,3,4],"851234567"),m("CH","Switzerland","41",[9],[2,3,2,2],"781234567"),m("AT","Austria","43",[10,11],[3,7],"6641234567"),m("PL","Poland","48",[9],[3,3,3],"512345678"),m("CZ","Czechia","420",[9],[3,3,3],"601123456"),m("GR","Greece","30",[10],[3,3,4],"6912345678"),m("RO","Romania","40",[9],[3,3,3],"712345678"),m("HU","Hungary","36",[9],[2,3,4],"201234567"),m("UA","Ukraine","380",[9],[2,3,2,2],"501234567"),m("RU","Russia","7",[10],[3,3,2,2],"9123456789"),m("TR","Turkey","90",[10],[3,3,2,2],"5012345678"),m("IL","Israel","972",[9],[2,3,4],"501234567"),m("AE","United Arab Emirates","971",[9],[2,3,4],"501234567"),m("SA","Saudi Arabia","966",[9],[2,3,4],"512345678"),m("ZA","South Africa","27",[9],[2,3,4],"711234567"),m("NG","Nigeria","234",[10],[3,3,4],"8021234567"),m("KE","Kenya","254",[9],[3,3,3],"712123456"),m("EG","Egypt","20",[10],[3,3,4],"1001234567"),m("BR","Brazil","55",[10,11],[2,5,4],"11961234567"),m("MX","Mexico","52",[10],[3,3,4],"2221234567"),m("AR","Argentina","54",[10],[4,6],"1123456789"),m("CL","Chile","56",[9],[1,4,4],"221234567"),m("CO","Colombia","57",[10],[3,3,4],"3211234567"),m("PE","Peru","51",[9],[3,3,3],"912345678"),m("CN","China","86",[11],[3,4,4],"13123456789"),m("JP","Japan","81",[10],[2,4,4],"9012345678"),m("KR","South Korea","82",[9,10],[2,4,4],"1023456789"),m("SG","Singapore","65",[8],[4,4],"81234567"),m("HK","Hong Kong","852",[8],[4,4],"51234567"),m("TW","Taiwan","886",[9],[3,3,3],"912345678"),m("MY","Malaysia","60",[9,10],[2,3,4],"123456789"),m("ID","Indonesia","62",[10,11],[3,4,4],"81234567890"),m("TH","Thailand","66",[9],[2,3,4],"812345678"),m("PH","Philippines","63",[10],[3,3,4],"9171234567"),m("VN","Vietnam","84",[9],[3,3,3],"912345678"),m("PK","Pakistan","92",[10],[3,3,4],"3012345678"),m("BD","Bangladesh","880",[10],[2,4,4],"1812345678"),m("NZ","New Zealand","64",[9,10],[2,3,4],"211234567"),m("SK","Slovakia","421",[9],[3,3,3],"912123456"),m("BG","Bulgaria","359",[9],[2,3,4],"481234567"),m("HR","Croatia","385",[8,9],[2,3,4],"921234567"),m("RS","Serbia","381",[8,9],[2,3,4],"601234567"),m("SI","Slovenia","386",[8],[2,3,3],"31234567"),m("LT","Lithuania","370",[8],[3,2,3],"61234567"),m("LV","Latvia","371",[8],[2,3,3],"21234567"),m("EE","Estonia","372",[7,8],[3,4],"51234567"),m("IS","Iceland","354",[7],[3,4],"6111234"),m("LU","Luxembourg","352",[9],[3,3,3],"628123456"),m("MA","Morocco","212",[9],[3,3,3],"650123456"),m("CR","Costa Rica","506",[8],[4,4],"83123456"),m("EC","Ecuador","593",[9],[2,3,4],"991234567"),m("UY","Uruguay","598",[8],[1,3,4],"94231234"),m("QA","Qatar","974",[8],[4,4],"33123456"),m("KW","Kuwait","965",[8],[4,4],"50012345")],kn=new Map(V.map(e=>[e.iso2,e])),An={"Africa/Cairo":"EG","Africa/Casablanca":"MA","Africa/Johannesburg":"ZA","Africa/Lagos":"NG","Africa/Nairobi":"KE","America/Adak":"US","America/Anchorage":"US","America/Argentina/Buenos_Aires":"AR","America/Argentina/Cordoba":"AR","America/Argentina/Mendoza":"AR","America/Bahia":"BR","America/Belem":"BR","America/Bogota":"CO","America/Boise":"US","America/Boa_Vista":"BR","America/Cancun":"MX","America/Chicago":"US","America/Chihuahua":"MX","America/Campo_Grande":"BR","America/Costa_Rica":"CR","America/Cuiaba":"BR","America/Denver":"US","America/Detroit":"US","America/Edmonton":"CA","America/Fortaleza":"BR","America/Guayaquil":"EC","America/Halifax":"CA","America/Hermosillo":"MX","America/Indiana/Indianapolis":"US","America/Indianapolis":"US","America/Juneau":"US","America/Kentucky/Louisville":"US","America/Lima":"PE","America/Los_Angeles":"US","America/Maceio":"BR","America/Manaus":"BR","America/Matamoros":"MX","America/Mazatlan":"MX","America/Merida":"MX","America/Mexico_City":"MX","America/Moncton":"CA","America/Monterrey":"MX","America/Montevideo":"UY","America/New_York":"US","America/Noronha":"BR","America/Nome":"US","America/North_Dakota/Center":"US","America/Ojinaga":"MX","America/Phoenix":"US","America/Porto_Velho":"BR","America/Punta_Arenas":"CL","America/Recife":"BR","America/Regina":"CA","America/Rio_Branco":"BR","America/Santiago":"CL","America/Sao_Paulo":"BR","America/Sitka":"US","America/St_Johns":"CA","America/Tijuana":"MX","America/Toronto":"CA","America/Vancouver":"CA","America/Whitehorse":"CA","America/Winnipeg":"CA","America/Yakutat":"US","Asia/Bangkok":"TH","Asia/Calcutta":"IN","Asia/Dacca":"BD","Asia/Dhaka":"BD","Asia/Dubai":"AE","Asia/Hong_Kong":"HK","Asia/Ho_Chi_Minh":"VN","Asia/Jakarta":"ID","Asia/Jerusalem":"IL","Asia/Karachi":"PK","Asia/Kolkata":"IN","Asia/Kuala_Lumpur":"MY","Asia/Kuwait":"KW","Asia/Manila":"PH","Asia/Qatar":"QA","Asia/Riyadh":"SA","Asia/Seoul":"KR","Asia/Shanghai":"CN","Asia/Saigon":"VN","Asia/Singapore":"SG","Asia/Taipei":"TW","Asia/Tel_Aviv":"IL","Asia/Tokyo":"JP","Asia/Urumqi":"CN","Atlantic/Reykjavik":"IS","Australia/Adelaide":"AU","Australia/Brisbane":"AU","Australia/Darwin":"AU","Australia/Hobart":"AU","Australia/Melbourne":"AU","Australia/Perth":"AU","Australia/Sydney":"AU","Europe/Amsterdam":"NL","Europe/Athens":"GR","Europe/Belgrade":"RS","Europe/Berlin":"DE","Europe/Bratislava":"SK","Europe/Brussels":"BE","Europe/Bucharest":"RO","Europe/Budapest":"HU","Europe/Copenhagen":"DK","Europe/Dublin":"IE","Europe/Helsinki":"FI","Europe/Zagreb":"HR","Europe/Istanbul":"TR","Europe/Kiev":"UA","Europe/Kyiv":"UA","Europe/Lisbon":"PT","Europe/Ljubljana":"SI","Europe/London":"GB","Europe/Luxembourg":"LU","Europe/Madrid":"ES","Europe/Moscow":"RU","Europe/Oslo":"NO","Europe/Paris":"FR","Europe/Prague":"CZ","Europe/Riga":"LV","Europe/Rome":"IT","Europe/Sofia":"BG","Europe/Stockholm":"SE","Europe/Tallinn":"EE","Europe/Vienna":"AT","Europe/Vilnius":"LT","Europe/Warsaw":"PL","Europe/Zurich":"CH","Pacific/Auckland":"NZ"};function mt(e){let t=e.toUpperCase();return/^[A-Z]{2}$/.test(t)?String.fromCodePoint(...[...t].map(r=>127462+r.charCodeAt(0)-65)):"\u{1F3F3}\uFE0F"}function Te(e){return e?kn.get(e.toUpperCase()):void 0}function Er(e){return Te(e?An[e]:void 0)}function En(e){let t;for(let r of V)e.startsWith(r.dialCode)&&(!t||r.dialCode.length>t.dialCode.length)&&(t=r);return t}function H(e){return e.replace(/[^\d]/g,"")}function Le(e,t){let r=H(t);if(!r)return"";let o=e?.groups?.length?e.groups:[],n=[],i=0;for(let s of o){if(i>=r.length)break;n.push(r.slice(i,i+s)),i+=s}for(;i<r.length;)n.push(r.slice(i,i+3)),i+=3;return n.join(" ")}function Zr(e,t){let r=H(t);return r?`+${e.dialCode}${r}`:""}function Re(e,t){let r=(e??"").trim(),o=r.startsWith("+"),n=H(r);if(!n)return{country:t,national:"",e164:""};if(o){let i=En(n);if(i){let s=n.slice(i.dialCode.length);return{country:i,national:s,e164:`+${n}`}}return{national:n,e164:`+${n}`}}if(t){let i=n.startsWith(t.dialCode)?n.slice(t.dialCode.length):n;return{country:t,national:i,e164:`+${t.dialCode}${i}`}}return{national:n,e164:`+${n}`}}function Zn(e){let{country:t,national:r,e164:o}=Re(e);if(!o)return!1;let n=H(o).length;return n<8||n>15?!1:t?.lengths.length?t.lengths.includes(r.length):r.length>=4}var Sn=fe({fileId:F().check(se(1)),name:F(),size:fr().check(ot()),mime:F(),url:T(F())});function Sr(e){return e==null?!0:typeof e=="string"?e.trim()==="":Array.isArray(e)?e.length===0:typeof e=="boolean"?e===!1:typeof e=="object"?Object.keys(e).length===0:!1}function Cr(e,t){if(Sr(t))return e.required?"This field is required":null;switch(e.kind){case"short_text":case"long_text":{if(typeof t!="string")return"Expected text";if(e.maxLength&&t.length>e.maxLength)return`Must be at most ${e.maxLength} characters`;let r=e.kind==="long_text"?2e4:2e3;return!e.maxLength&&t.length>r?"Answer is too long":null}case"email":return Se().safeParse(t).success?null:"Enter a valid email address";case"url":{if(typeof t!="string")return"Enter a valid URL (including https://)";try{let r=new URL(t);if(r.protocol!=="http:"&&r.protocol!=="https:")return"Enter an http(s) URL"}catch{return"Enter a valid URL (including https://)"}return null}case"phone":return typeof t!="string"||!Zn(t)?"Enter a valid phone number":null;case"number":{let r=typeof t=="string"?Number(t):t;return typeof r!="number"||!Number.isFinite(r)?"Enter a number":e.min!==void 0&&r<e.min?`Must be at least ${e.min}`:e.max!==void 0&&r>e.max?`Must be at most ${e.max}`:null}case"select":case"dropdown":return typeof t!="string"||t===""?"Pick an option":e.options.some(r=>r.id===t)||e.allowOther&&t.length<=500?null:"Pick a valid option";case"multi_select":{if(!Array.isArray(t))return"Pick at least one option";let r=new Set(e.options.map(i=>i.id)),o=t,n=0;for(let i of o)if(!r.has(i)){if(e.allowOther!==!0||typeof i!="string"||i.length===0||i.length>500)return"Pick valid options";if(++n>1)return"Only one 'Other' answer is allowed"}return null}case"checkbox":return typeof t=="boolean"?null:"Invalid value";case"rating":{let r=e.max??5,o=typeof t=="string"?Number(t):t;return typeof o!="number"||!Number.isInteger(o)||o<1||o>r?`Pick a rating between 1 and ${r}`:null}case"linear_scale":{let r=e.min??1,o=e.max??10,n=typeof t=="string"?Number(t):t;return typeof n!="number"||!Number.isInteger(n)||n<r||n>o?`Pick a value between ${r} and ${o}`:null}case"ranking":{if(!Array.isArray(t))return"Drag the options into order";let r=e.options.map(n=>n.id).sort(),o=[...t].sort();return r.length!==o.length||r.some((n,i)=>n!==o[i])?"Rank every option":null}case"matrix":{if(typeof t!="object"||t===null||Array.isArray(t))return"Answer the grid";let r=t,o=new Set(e.columns.map(i=>i.id)),n=new Set(e.rows.map(i=>i.id));for(let[i,s]of Object.entries(r))if(!n.has(i)||!o.has(s))return"Invalid grid answer";return e.required&&Object.keys(r).length<e.rows.length?"Answer every row":null}case"signature":return typeof t!="string"||!t.startsWith("data:image/")?"Sign in the box":null;case"hidden":return typeof t=="string"?null:"Invalid value";case"custom":return null;case"date":{if(typeof t!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(t))return"Enter a valid date";let[r,o,n]=t.split("-").map(Number),i=new Date(Date.UTC(r,o-1,n));return i.getUTCFullYear()!==r||i.getUTCMonth()!==o-1||i.getUTCDate()!==n?"Enter a valid date":null}case"file_upload":{let r=X(Sn).safeParse(t);if(!r.success)return"Upload did not complete";let o=e.maxFiles??1;return r.data.length>o?`At most ${o} file${o===1?"":"s"}`:null}}}function ht(e,t){let r=Ne(e,t),o={},n={};for(let i of r){let s=Cn(i,t[i.id]),a=Cr(i,s);a?o[i.id]=a:Sr(s)||(n[i.id]=s)}return{ok:Object.keys(o).length===0,errors:o,data:n}}function Cn(e,t){if(t==null)return t;if(e.kind==="number"&&typeof t=="string"&&t.trim()!==""){let r=Number(t);return Number.isNaN(r)?t:r}if((e.kind==="rating"||e.kind==="linear_scale")&&typeof t=="string"){let r=Number(t);return Number.isNaN(r)?t:r}return typeof t=="string"?t.trim():t}var Pn=["short_text","long_text","email","url","phone","number","select","multi_select","dropdown","checkbox","rating","linear_scale","ranking","matrix","signature","date","file_upload","hidden","custom"],In=["heading","paragraph","divider"],Fn=[...Pn,...In],gt=F().check(se(1),I(128)),ut=it({id:gt,label:F().check(I(1e3)),icon:T(Ce())}),Mn=it({id:gt,kind:gr(Fn),label:T(F().check(I(2e3))),options:T(X(ut).check(I(200))),rows:T(X(ut).check(I(200))),columns:T(X(ut).check(I(200)))}),Nn=fe({id:gt,title:T(F().check(I(500))),blocks:X(Mn).check(I(500))}),Tn=fe({version:br(1),title:st(T(F().check(I(2e3))),""),description:T(F().check(I(5e3))),pages:X(Nn).check(se(1),I(50)),settings:st(T(hr(F(),Ce())),{})}),Ln=1,ft=1,yr="0.5.0";function U(e,t,r=""){return typeof e=="string"?e.trim().slice(0,t):r}function P(e,t){let r=U(e,t);return r===""?void 0:r}function be(e){return typeof e=="boolean"?e:void 0}function ge(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function te(e,t,r,o){let n=ge(e);return n===void 0?o:Math.max(t,Math.min(r,Math.round(n)))}function Pe(e,t=200){return Array.isArray(e)?e.slice(0,t).flatMap(r=>{if(!r||typeof r!="object")return[];let o=r,n=U(o.id,128),i=U(o.label,1e3),s=o.icon==="thumbs_up"||o.icon==="thumbs_down"?o.icon:void 0;return n&&i?[A({id:n,label:i,icon:s})]:[]}):[]}function Rn(e){if(!Array.isArray(e))return;let t=e.slice(0,20).flatMap(r=>{if(!r||typeof r!="object")return[];let o=r,n=o.op;if(n!=="eq"&&n!=="neq"&&n!=="contains"&&n!=="gt"&&n!=="lt"&&n!=="answered"&&n!=="not_answered")return[];let i=U(o.fieldId,128);if(!i)return[];let s=o.value,a=typeof s=="string"||typeof s=="number"||typeof s=="boolean"?s:void 0;return[{fieldId:i,op:n,...a!==void 0?{value:a}:{}}]});return t.length?t:void 0}function Pr(e){return{id:U(e.id,128),visibleIf:Rn(e.visibleIf)}}function M(e,t){return{...Pr(e),kind:t,label:U(e.label,2e3,"Untitled field"),description:P(e.description,5e3),required:be(e.required),placeholder:P(e.placeholder,500)}}function On(e){let t=P(e,2e3);if(t)try{let r=new URL(t);return r.protocol==="http:"||r.protocol==="https:"?t:void 0}catch{return}}function Dn(e){let t=e&&typeof e=="object"?e:{},r=t.submitMode==="button"||t.submitMode==="auto"?t.submitMode:void 0,o=t.submissionLimit==="once_per_visitor"||t.submissionLimit==="multiple"?t.submissionLimit:void 0;return{submitMode:r,submitLabel:P(t.submitLabel,100),successTitle:P(t.successTitle,200),successMessage:P(t.successMessage,5e3),redirectUrl:On(t.redirectUrl),showProgress:be(t.showProgress),submissionLimit:o,notifyEmail:Se().check(I(254)).safeParse(t.notifyEmail).success?t.notifyEmail:void 0,sendReceipt:be(t.sendReceipt)}}function A(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function Un(e){if(!e||typeof e!="object")return null;let t=e,r=t.kind,o=Pr(t);if(!o.id||typeof r!="string")return null;switch(r){case"heading":return A({...o,kind:r,text:U(t.text,2e3,"Section")});case"paragraph":return A({...o,kind:r,text:U(t.text,5e3)});case"divider":return A({...o,kind:r});case"short_text":case"email":case"url":return A({...M(t,r),maxLength:ge(t.maxLength)===void 0?void 0:te(t.maxLength,1,2e3,2e3)});case"phone":{let n=P(t.defaultCountry,2)?.toUpperCase();return A({...M(t,r),defaultCountry:n&&/^[A-Z]{2}$/.test(n)?n:void 0})}case"long_text":return A({...M(t,r),maxLength:ge(t.maxLength)===void 0?void 0:te(t.maxLength,1,2e4,2e4)});case"number":return A({...M(t,r),min:ge(t.min),max:ge(t.max)});case"select":case"multi_select":case"dropdown":{let n=Pe(t.options);return n.length===0?null:A({...M(t,r),options:n,allowOther:be(t.allowOther),shuffleOptions:be(t.shuffleOptions)})}case"checkbox":{let n=t.appearance==="toggle"?"toggle":void 0;return A({...M(t,r),appearance:n})}case"signature":case"date":return A(M(t,r));case"rating":return A({...M(t,r),max:te(t.max,1,10,5)});case"linear_scale":{let n=te(t.min,0,9,1),i=te(t.max,n+1,10,10);return A({...M(t,r),min:n,max:i,minLabel:P(t.minLabel,100),maxLabel:P(t.maxLabel,100)})}case"ranking":{let n=Pe(t.options);return n.length<2?null:A({...M(t,r),options:n})}case"matrix":{let n=Pe(t.rows),i=Pe(t.columns);return n.length===0||i.length===0?null:A({...M(t,r),rows:n,columns:i})}case"hidden":return A({...M(t,r),required:!1,paramName:P(t.paramName,128),defaultValue:P(t.defaultValue,1e3)});case"file_upload":return A({...M(t,r),maxFiles:te(t.maxFiles,1,20,1),maxFileSizeMb:te(t.maxFileSizeMb,1,5e3,500),accept:Array.isArray(t.accept)?t.accept.flatMap(n=>{let i=P(n,100);return i?[i]:[]}).slice(0,50):void 0});case"custom":return A({...M(t,r),component:U(t.component,128),config:t.config&&typeof t.config=="object"&&!Array.isArray(t.config)?t.config:void 0});default:return null}}function ve(e){let t=Tn.safeParse(e);if(!t.success){let s=t.error.issues[0],a=s?.path.join(".");return{ok:!1,error:s?`${a?`${a}: `:""}${s.message}`:"Invalid schema"}}if(t.data.version>Ln)return{ok:!1,error:`Unsupported schema version: ${t.data.version}`};let r=t.data.pages.map(s=>{let a=s.blocks.flatMap(u=>{let c=Un(u);return c?[c]:[]});return A({id:s.id,title:P(s.title,500),blocks:a})}),o=new Set;for(let s of r)for(let a of s.blocks){if(o.has(a.id))return{ok:!1,error:`Duplicate block id: ${a.id}`};o.add(a.id)}if(r.every(s=>s.blocks.length===0))return{ok:!1,error:"Schema must contain at least one valid block"};let n={version:ft,title:U(t.data.title,2e3),pages:r,settings:Dn(t.data.settings)},i=P(t.data.description,5e3);return i&&(n.description=i),{ok:!0,schema:n}}function me(e,t){let r=P(e,t);if(r&&!(/[;{}<>]/.test(r)||/url\s*\(/i.test(r)))return r}function bt(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,r=t.colorScheme==="light"||t.colorScheme==="dark"||t.colorScheme==="auto"?t.colorScheme:void 0,o=A({colorScheme:r,primary:me(t.primary,200),background:me(t.background,200),text:me(t.text,200),radius:me(t.radius,64),fontFamily:me(t.fontFamily,200)});return Object.keys(o).length>0?o:null}var jn="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",wc=256-256%jn.length;var Ir=class{h0=1732584193;h1=4023233417;h2=2562383102;h3=271733878;h4=3285377520;block=new Uint8Array(64);blockLen=0;totalLen=0;w=new Int32Array(80);update(e){this.totalLen+=e.length;let t=0;if(this.blockLen>0){for(;t<e.length&&this.blockLen<64;)this.block[this.blockLen++]=e[t++];this.blockLen===64&&(this.process(this.block),this.blockLen=0)}for(;t+64<=e.length;)this.process(e.subarray(t,t+64)),t+=64;for(;t<e.length;)this.block[this.blockLen++]=e[t++];return this}digest(){let e=Math.floor(this.totalLen/536870912),t=this.totalLen*8>>>0,r=[128],o=this.blockLen+1;for(;o%64!==56;)r.push(0),o++;r.push(e>>>24&255,e>>>16&255,e>>>8&255,e&255),r.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255),this.update(new Uint8Array(r));let n=new Uint8Array(20),i=[this.h0,this.h1,this.h2,this.h3,this.h4];for(let s=0;s<5;s++)n[s*4]=i[s]>>>24&255,n[s*4+1]=i[s]>>>16&255,n[s*4+2]=i[s]>>>8&255,n[s*4+3]=i[s]&255;return n}process(e){let t=this.w;for(let a=0;a<16;a++)t[a]=e[a*4]<<24|e[a*4+1]<<16|e[a*4+2]<<8|e[a*4+3];for(let a=16;a<80;a++){let u=t[a-3]^t[a-8]^t[a-14]^t[a-16];t[a]=u<<1|u>>>31}let r=this.h0,o=this.h1,n=this.h2,i=this.h3,s=this.h4;for(let a=0;a<80;a++){let u,c;a<20?(u=o&n|~o&i,c=1518500249):a<40?(u=o^n^i,c=1859775393):a<60?(u=o&n|o&i|n&i,c=2400959708):(u=o^n^i,c=3395469782);let d=(r<<5|r>>>27)+u+s+c+t[a]|0;s=i,i=n,n=o<<30|o>>>2,o=r,r=d}this.h0=this.h0+r|0,this.h1=this.h1+o|0,this.h2=this.h2+n|0,this.h3=this.h3+i|0,this.h4=this.h4+s|0}},Ie="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function vt(e){let t="";for(let r=0;r<e.length;r+=3){let o=e[r],n=r+1<e.length?e[r+1]:0,i=r+2<e.length?e[r+2]:0;t+=Ie[o>>2],t+=Ie[(o&3)<<4|n>>4],t+=r+1<e.length?Ie[(n&15)<<2|i>>6]:"=",t+=r+2<e.length?Ie[i&63]:"="}return t}var Bn=e=>vt(new Ir().update(e).digest()),w=class extends Error{constructor(e,t){super(e),this.status=t,this.name="FilloError"}status},Fe=3,he=3e4;function Me(e){return e>=500||e===429||e===408}function _r(e){return e instanceof DOMException&&e.name==="TimeoutError"?new w("Request timed out",0):e}function Vn(e,t){let r=e.split(".").map(n=>Number(n)||0),o=t.split(".").map(n=>Number(n)||0);for(let n=0;n<Math.max(r.length,o.length);n++){let i=(r[n]??0)-(o[n]??0);if(i!==0)return i}return 0}function Hn(e){if(e.schemaVersion!==void 0&&e.schemaVersion!==ft)throw new w(`This form uses schema version ${e.schemaVersion}; this SDK supports version ${ft}. Update @usefillo/* to render it.`,426);if(e.minSdkVersion&&Vn(yr,e.minSdkVersion)<0)throw new w(`This form requires @usefillo/* ${e.minSdkVersion} or newer. Current SDK is ${yr}.`,426)}function lt(e,t){return r=>t.onProgress?.({uploadedBytes:r,totalBytes:e,fraction:e===0?1:r/e})}async function Kn(e){let t=globalThis.crypto?.subtle;if(t){let r=await t.digest("SHA-1",e);return vt(new Uint8Array(r))}return Bn(e)}var Wn="https://fillo.so",Oe=class{baseUrl;fetch;key;constructor(e={}){this.baseUrl=e.sameOrigin?"":Wn,this.key=e.key,this.fetch=e.fetch??((...t)=>globalThis.fetch(...t))}url(e){return`${this.baseUrl}/api/v1${e}`}async json(e,t){let r=t?.body!=null?{"Content-Type":"application/json",...t?.headers}:t?.headers,o;try{o=await this.fetch(this.url(e),{...t,headers:r,signal:t?.signal??AbortSignal.timeout(he)})}catch(n){throw _r(n)}if(!o.ok){let n=await o.text().catch(()=>"");throw new w(n||`Request failed: ${o.status}`,o.status)}return await o.json()}async getForm(e){let t=await this.json(`/forms/${encodeURIComponent(e)}`);return Hn(t),t}syncForm(e,t,r){if(!this.key)return Promise.reject(new w("createClient needs a `key` (pk_\u2026) to sync code-defined forms",401));let o=ve(t);return o.ok?this.json("/forms/sync",{method:"POST",body:JSON.stringify({key:this.key,id:e,schema:o.schema,theme:bt(r)})}):Promise.reject(new w(`Invalid form schema: ${o.error}`,400))}async submit(e,t,r){let o;try{o=await this.fetch(this.url(`/forms/${encodeURIComponent(e)}/responses`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t,meta:r}),signal:AbortSignal.timeout(he)})}catch(i){throw _r(i)}if(o.status===422)return{ok:!1,errors:(await o.json()).errors};if(!o.ok)throw new w(`Submit failed: ${o.status}`,o.status);let n=await o.json();return{ok:!0,responseId:n.id,duplicate:n.duplicate}}async startSession(e,t){try{let r=await this.fetch(this.url(`/forms/${encodeURIComponent(e)}/sessions`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pageCount:t}),signal:AbortSignal.timeout(he)});return r.ok?(await r.json()).id:null}catch{return null}}reportProgress(e,t){try{this.fetch(this.url(`/sessions/${encodeURIComponent(e)}/progress`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),keepalive:!0,signal:AbortSignal.timeout(he)}).catch(()=>{})}catch{}}getUploadSession(e,t){return this.json(`/uploads/${encodeURIComponent(e)}`,t?{headers:{"X-Fillo-Upload-Token":t}}:void 0)}async uploadFile(e,t,r){let o=t instanceof File?t.name:"upload.bin",n=t.type||"application/octet-stream",i;r.sessionId?i=await this.getUploadSession(r.sessionId,r.uploadToken):i=await this.json(`/forms/${encodeURIComponent(e)}/uploads`,{method:"POST",body:JSON.stringify({fieldId:r.fieldId,fileName:o,size:t.size,mime:n})});let s;if(i.transport?.type==="gdrive")await this.driveUploadLoop(i,i.transport.uploadUrl,t,r);else if(i.transport?.type==="s3-put")await this.s3PutUpload(i.transport.uploadUrl,t,r);else if(i.transport?.type==="box")s=await this.boxUpload(i.transport,t,r);else throw new w("This form's storage doesn't support uploads \u2014 connect Drive, S3, or Box.");let a=await this.json(`/uploads/${encodeURIComponent(i.id)}/complete`,{method:"POST",headers:i.token?{"X-Fillo-Upload-Token":i.token}:void 0,...s?{body:JSON.stringify(s)}:{}});if(!a.file)throw new w("Upload completed but no file was returned");return a.file}async boxUpload(e,t,r){let o=lt(t.size,r);o(0);let n={Authorization:`Bearer ${e.token}`};if(e.mode==="simple"){let p=new FormData;p.append("attributes",JSON.stringify({name:e.fileName,parent:{id:e.folderId}})),p.append("file",t,e.fileName);let h=await this.retry(r,async()=>{let g=await this.fetch(e.uploadUrl,{method:"POST",headers:n,body:p,signal:this.uploadSignal(r)});if(!g.ok&&Me(g.status))throw new w(`Box upload failed: ${g.status}`,g.status);return g});if(!h.ok)throw new w(`Box upload failed: ${h.status}`,h.status);let b=await h.json();return o(t.size),{providerFileId:b.entries?.[0]?.id}}if(e.size!==t.size)throw new w(`File size changed since the upload was requested (${t.size} vs ${e.size}).`,400);let i=await this.retry(r,async()=>{let p=await this.fetch(e.sessionUrl,{method:"POST",headers:{...n,"Content-Type":"application/json"},body:JSON.stringify({folder_id:e.folderId,file_size:e.size,file_name:e.fileName}),signal:this.uploadSignal(r)});if(!p.ok&&Me(p.status))throw new w(`Box session failed: ${p.status}`,p.status);return p});if(!i.ok)throw new w(`Box session failed: ${i.status}`,i.status);let s=await i.json(),a=new Ir,u=[],c=0;for(;c<t.size;){r.signal?.throwIfAborted();let p=Math.min(c+s.part_size,t.size),h=new Uint8Array(await t.slice(c,p).arrayBuffer());a.update(h);let b=await Kn(h),g=await this.retry(r,async()=>{let E=await this.fetch(s.session_endpoints.upload_part,{method:"PUT",headers:{...n,"Content-Type":"application/octet-stream",Digest:`sha=${b}`,"Content-Range":`bytes ${c}-${p-1}/${t.size}`},body:h,signal:this.uploadSignal(r)});if(!E.ok&&Me(E.status))throw new w(`Box part failed: ${E.status}`,E.status);return E});if(!g.ok)throw new w(`Box part failed: ${g.status}`,g.status);u.push((await g.json()).part),c=p,o(c)}let d=await this.retry(r,async()=>{let p=await this.fetch(s.session_endpoints.commit,{method:"POST",headers:{...n,"Content-Type":"application/json",Digest:`sha=${vt(a.digest())}`},body:JSON.stringify({parts:u}),signal:this.uploadSignal(r)});if(!p.ok&&Me(p.status))throw new w(`Box commit failed: ${p.status}`,p.status);return p});if(!d.ok)throw new w(`Box commit failed: ${d.status}`,d.status);return{providerFileId:(await d.json()).entries?.[0]?.id}}uploadSignal(e){let t=AbortSignal.timeout(he);return e.signal?AbortSignal.any([e.signal,t]):t}async retry(e,t){let r=0;for(;;)try{return await t()}catch(o){if(e.signal?.aborted||(r+=1,r>=Fe))throw o;await new Promise(n=>setTimeout(n,500*2**r))}}async driveUploadLoop(e,t,r,o){let n=e.uploadedBytes,i=lt(r.size,o);i(n);let s=0;for(;n<r.size;){o.signal?.throwIfAborted();let a=n,u=Math.min(n+e.chunkSize,r.size),c=r.slice(n,u),d=0;for(;;)try{let f=await this.fetch(t,{method:"PUT",headers:{"Content-Range":`bytes ${n}-${u-1}/${r.size}`},body:c,signal:this.uploadSignal(o)});if(f.status===308){let p=f.headers.get("Range")??f.headers.get("range"),h=p?.match(/bytes=0-(\d+)/);h?n=Number(h[1])+1:p==null?n=0:n=(await this.getUploadSession(e.id,e.token)).uploadedBytes;break}if(f.ok){n=r.size;break}throw new w(`Drive chunk failed: ${f.status}`,f.status)}catch(f){if(o.signal?.aborted||(d+=1,d>=Fe))throw f;if(await new Promise(h=>setTimeout(h,500*2**d)),n=(await this.getUploadSession(e.id,e.token)).uploadedBytes,n>=r.size)break;u=Math.min(n+e.chunkSize,r.size),c=r.slice(n,u)}if(i(n),n<=a){if(++s>=Fe)throw new w("Drive upload stalled \u2014 the storage endpoint stopped accepting progress",0)}else s=0}}async s3PutUpload(e,t,r){let o=lt(t.size,r);o(0);let n=0;for(;;)try{let i=await this.fetch(e,{method:"PUT",headers:{"Content-Type":t.type||"application/octet-stream"},body:t,signal:this.uploadSignal(r)});if(!i.ok)throw new w(`S3 upload failed: ${i.status}`,i.status);o(t.size);return}catch(i){if(r.signal?.aborted||(n+=1,n>=Fe))throw i;await new Promise(s=>setTimeout(s,500*2**n))}}};function ye(e={}){return new Oe(e)}var qn={id:"empty",blocks:[]},xr=!1;function Gn(){xr||(xr=!0,console.warn("[fillo] This form has no `client`, so responses can't be submitted \u2014 it's render-only. Pass a client (createClient) to collect responses in Fillo, or forward them to your own backend with webhooks: https://fillo.so/docs"))}var Fr=new Map;function Mr(){try{return globalThis.localStorage??null}catch{return null}}function Nr(e){return`fillo:submission:${e}`}function yt(){let e=globalThis.crypto;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);return e?.getRandomValues?(e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")):`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function _t(e){let t=Mr();if(!t)return Fr.get(e)??null;try{let r=JSON.parse(t.getItem(Nr(e))??"null");if(r&&typeof r.key=="string")return r}catch{}return null}function Tr(e,t){Fr.set(e,t);let r=Mr();if(r)try{r.setItem(Nr(e),JSON.stringify(t))}catch{}}function Jn(e){let t=_t(e);if(t?.key)return t.key;let r={key:yt()};return Tr(e,r),r.key}function Xn(e,t){let r=_t(e);Tr(e,{key:r?.key??yt(),submittedAt:new Date().toISOString(),responseId:t})}function wr(e,t){return e.settings.submissionLimit!=="once_per_visitor"||!t?!1:!!_t(t)?.submittedAt}function Lr(e){let{onChange:t,onSubmitted:r}=e,o=ve(e.form);if(!o.ok)throw new Error(`Invalid form schema: ${o.error}`);let n=o.schema,i=e.formId,s=e.client,a={...e.initialData??{}},u={},c=0,d=wr(n,i)?"submitted":"idle",f=new Set,p=new Set,h=Date.now(),b=yt(),g=null,E=!1;function j(){let v=n.pages.length,_=Math.min(c,Math.max(v-1,0)),$=n.pages[_]??qn;return{data:a,errors:u,status:d,pageIndex:_,pageCount:v,page:$,blocks:ct($,a),isFirstPage:_===0,isLastPage:_===v-1,uploading:f.size>0}}let ne=j();function k(){ne=j();for(let v of p)v()}function Y(v,_){try{r?.(v,_)}catch($){console.error("[fillo] onSubmitted handler threw:",$)}}function Be(v){let _=n.pages[v];if(!_)return{};let $={};for(let S of ct(_,a)){if(!re(S))continue;let oe=Cr(S,a[S.id]);oe&&($[S.id]=oe)}return $}function Q(v,_){!E&&s&&i&&(E=!0,s.startSession(i,n.pages.length).then($=>g=$)),a={...a,[v]:_},t?.(a),v in u&&(u=Object.fromEntries(Object.entries(u).filter(([$])=>$!==v))),k()}function we(v,_){_?f.add(v):f.delete(v),k()}function $e(){let v=n.pages.length,_=Math.min(c,Math.max(v-1,0));if(!e.skipValidation){let $=Be(_);if(u=$,Object.keys($).length>0){k();return}}c=Math.min(_+1,v-1),g&&s&&s.reportProgress(g,{furthestPage:c}),k()}function Ve(){u={},c=Math.max(Math.min(c,n.pages.length-1)-1,0),k()}async function x(){if(d==="submitting"||d==="submitted")return;let v=ht(n,a);if(!v.ok){u=v.errors;let _=n.pages.findIndex($=>ct($,a).some(S=>S.id in v.errors));_>=0&&(c=_),k();return}if(s&&i){let _=n.settings.submissionLimit==="once_per_visitor"?Jn(i):void 0,$=_??b;d="submitting",k();let S;try{S=await s.submit(i,v.data,{hp:e.getHoneypot?.()??"",elapsedMs:Date.now()-h,surface:e.surface??"headless",submissionKey:$})}catch(oe){throw d="idle",k(),oe}if(!S.ok){u=S.errors??{},d="idle",k();return}g&&s.reportProgress(g,{completed:!0}),_&&Xn(i,S.responseId),d="submitted",k(),Y(S.responseId,v.data);return}if(e.skipValidation){d="submitted",k(),Y(void 0,v.data);return}Gn(),d="error",k()}return{getState:()=>ne,subscribe(v){return p.add(v),()=>{p.delete(v)}},setValue:Q,setUploading:we,next:$e,back:Ve,submit:x,setContext(v){if("formId"in v&&(i=v.formId),"client"in v&&(s=v.client),v.form&&v.form!==n){let _=ve(v.form);if(!_.ok)throw new Error(`Invalid form schema: ${_.error}`);n=_.schema}d==="idle"&&wr(n,i)&&(d="submitted"),k()},destroy(){p.clear()}}}function xt(e){return{id:e.id,theme:e.theme,schema:{version:1,title:e.title??"",description:e.description,pages:e.pages,settings:e.settings??{}},__filloCodeForm:!0}}function wt(e){return typeof e=="object"&&e!==null&&"__filloCodeForm"in e}var dt=new Map;function Yn(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r)|0;return(t>>>0).toString(36)}function Rr(e,t){let r=JSON.stringify(t.schema)+JSON.stringify(t.theme??null),o=`${e.baseUrl}:${e.key}:${t.id}:${Yn(r)}`,n=dt.get(o);return n||(n=e.syncForm(t.id,t.schema,t.theme??null),dt.set(o,n),n.catch(()=>dt.delete(o))),n}var Qn=/\{\{\s*([\w-]+)\s*\}\}/g;function pt(e,t,r){if(!e.includes("{{"))return e;let o=Ar(r);return e.replace(Qn,(n,i)=>{let s=o.find(c=>c.id===i),a=t[i];if(a==null||a==="")return"";let u=c=>s&&"options"in s?s.options.find(d=>d.id===c)?.label??c:c;return Array.isArray(a)?a.map(c=>u(String(c))).join(", "):typeof a=="string"?u(a):String(a)})}function Or(e,t,r){let o=n=>n===void 0?n:pt(n,t,r);switch(e.kind){case"heading":case"paragraph":return{...e,text:pt(e.text,t,r)};case"divider":return e;default:return{...e,label:pt(e.label,t,r),description:o(e.description)}}}var eo="fillo-",to=0,Dr='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';function ro(e,t){let r=`${eo}${e}-${t}`;return{inputId:r,labelId:`${r}-label`,descriptionId:`${r}-desc`,errorId:`${r}-error`,name:r}}function l(e,t={}){let r=document.createElement(e);t.className&&(r.className=t.className),t.text!==void 0&&(r.textContent=t.text);for(let[o,n]of Object.entries(t.attrs??{}))r.setAttribute(o,n);return r}function De(e,t){let r=bt(t);r&&(r.colorScheme&&e.setAttribute("data-fillo-color-scheme",r.colorScheme),r.primary&&e.style.setProperty("--fillo-primary",r.primary),r.background&&e.style.setProperty("--fillo-bg",r.background),r.text&&e.style.setProperty("--fillo-text",r.text),r.radius&&e.style.setProperty("--fillo-radius",r.radius),r.fontFamily&&e.style.setProperty("--fillo-font",r.fontFamily),(r.primary||r.background||r.text)&&e.setAttribute("data-fillo-has-color-theme",""))}function no(e){try{if(!e)return null;let t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"?null:t.toString()}catch{return null}}function oo(e){let t=new URL(no(e)??"https://fillo.so");return t.searchParams.set("utm_source","form_badge"),t.toString()}function zt(e){return typeof e=="string"||typeof e=="number"?String(e):""}function z(e,t){for(let r of t)r&&e.appendChild(r);return e}var Ur="http://www.w3.org/2000/svg",io={thumbs_up:"M7 10v10M7 10l4.8-6.1a2 2 0 0 1 3.5 1.7L14.6 10h4.8a2.1 2.1 0 0 1 2 2.5l-1.1 5.4A3 3 0 0 1 17.4 20H7M3 10h4v10H3z",thumbs_down:"M7 14V4M7 14l4.8 6.1a2 2 0 0 0 3.5-1.7L14.6 14h4.8a2.1 2.1 0 0 0 2-2.5l-1.1-5.4A3 3 0 0 0 17.4 4H7M3 4h4v10H3z"};function Vr(e){if(!e)return null;let t=document.createElementNS(Ur,"svg");t.setAttribute("class","fillo-option-icon"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.8"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),t.setAttribute("aria-hidden","true");let r=document.createElementNS(Ur,"path");return r.setAttribute("d",io[e]),t.appendChild(r),t}function L(e,t,r,o){r&&e.setAttribute("aria-invalid","true"),t.required&&e.setAttribute("aria-required","true");let n=[t.description?o.descriptionId:null,r?o.errorId:null].filter(Boolean).join(" ");n&&e.setAttribute("aria-describedby",n)}function R(e,t,r,o){let n=l("div",{className:`fillo-field fillo-field--${e.kind}${t?" fillo-field--error":""}`,attrs:{"data-field":e.id}}),i=l("label",{className:"fillo-label",text:e.label,attrs:{id:o.labelId,for:o.inputId}});return e.required||i.appendChild(l("span",{className:"fillo-optional",text:" (optional)"})),n.appendChild(i),e.description&&n.appendChild(l("p",{className:"fillo-description",text:e.description,attrs:{id:o.descriptionId}})),n.appendChild(r),t&&n.appendChild(l("p",{className:"fillo-error",text:t,attrs:{role:"alert",id:o.errorId}})),n}function _e(e,t){let r=l("input",{className:"fillo-input",attrs:{id:t.ids.inputId,type:e}});return r.value=zt(t.value),t.field.placeholder&&(r.placeholder=t.field.placeholder),r.addEventListener("input",()=>t.setValue(r.value,{render:!1})),r.addEventListener("change",()=>t.setValue(r.value)),L(r,t.field,t.error,t.ids),R(t.field,t.error,r,t.ids)}function so(){if(typeof navigator>"u")return;let t=(navigator.languages?.[0]||navigator.language||"").split("-")[1];return t&&/^[A-Za-z]{2}$/.test(t)?t.toUpperCase():void 0}function ao(){if(!(typeof Intl>"u"))try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return typeof e=="string"&&e?e:void 0}catch{return}}function co(e,t){if(t<=0)return e.setSelectionRange(0,0);let r=e.value,o=0,n=r.length;for(let i=0;i<r.length;i++)if(/\d/.test(r[i])&&++o===t){n=i+1;break}e.setSelectionRange(n,n)}var uo=8;function lo(e,t){if(typeof window>"u")return"below";let r=uo,o=document.documentElement.clientWidth||window.innerWidth,n=document.documentElement.clientHeight||window.innerHeight,i=e.getBoundingClientRect(),s=Math.max(0,n-i.bottom-r),a=Math.max(0,i.top-r),u=s<t.scrollHeight&&a>s?"above":"below",d=Math.max(0,Math.min(u==="above"?a:s,n-r*2)),f=Math.max(0,o-r*2);t.style.setProperty("--fillo-phone-popover-max-height",`${Math.floor(d)}px`),t.style.setProperty("--fillo-phone-popover-max-width",`${Math.floor(f)}px`),t.style.setProperty("--fillo-phone-popover-offset-x","0px");let p=Math.min(t.offsetWidth,f),h=0,b=i.left+p-(o-r);b>0&&(h-=b);let g=r-(i.left+h);return g>0&&(h+=g),t.style.setProperty("--fillo-phone-popover-offset-x",`${Math.round(h)}px`),u}function po(e){let t=e.field,r=Re(zt(e.value)).country??Te(t.defaultCountry)??Er(ao())??Te(so())??V[0],o=l("div",{className:"fillo-phone"}),n=l("div",{className:"fillo-phone-country"}),i=l("button",{className:"fillo-phone-flag",attrs:{type:"button","aria-haspopup":"listbox","aria-expanded":"false"}}),s=l("span",{className:"fillo-phone-flag-emoji",attrs:{"aria-hidden":"true"}}),a=l("span",{className:"fillo-phone-dial"});z(i,[s,a,l("span",{className:"fillo-phone-caret",text:"\u25BE",attrs:{"aria-hidden":"true"}})]),z(n,[i]);let u=l("input",{className:"fillo-input fillo-phone-input",attrs:{id:e.ids.inputId,type:"tel",inputmode:"tel",autocomplete:"tel-national"}});L(u,e.field,e.error,e.ids);let c=()=>{let x=H(zt(e.value));return x.startsWith(r.dialCode)?x.slice(r.dialCode.length):x},d=()=>{s.textContent=mt(r.iso2),a.textContent=`+${r.dialCode}`,i.setAttribute("aria-label",`Country: ${r.name} (+${r.dialCode})`)},f=()=>{u.value=Le(r,c()),u.placeholder=Le(r,r.example)},p=x=>e.setValue(x?Zr(r,x):"",{render:!1});d(),f(),u.addEventListener("input",()=>{let x=u.value,v=u.selectionStart??x.length,_=H(x.slice(0,v)).length;if(x.trimStart().startsWith("+")){let $=Re(x);$.country&&(r=$.country,d()),p($.country?$.national:H(x))}else p(H(x));u.value=Le(r,c()),co(u,_)});let h=e.registerOverlay,b=null,g=0,E=V,j=null,ne=null,k=`${e.ids.inputId}-countries`,Y=()=>{if(!b)return;let x=lo(n,b);b.classList.toggle("fillo-phone-popover--above",x==="above"),b.classList.toggle("fillo-phone-popover--below",x==="below")},Be=()=>{j?.();let x=()=>Y();Y(),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0),j=()=>{window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}},Q=()=>{j?.(),j=null,b?.remove(),b=null,i.setAttribute("aria-expanded","false"),document.removeEventListener("mousedown",we),ne?.(),ne=null},we=x=>{n.contains(x.target)||Q()},$e=x=>{x&&(r=x,d(),p(c()),f(),Q(),u.focus())},Ve=()=>{let x=l("div",{className:"fillo-phone-popover fillo-phone-popover--below"}),v=l("input",{className:"fillo-phone-search",attrs:{type:"text",role:"combobox","aria-expanded":"true","aria-controls":k,"aria-autocomplete":"list",placeholder:"Search country or code"}}),_=l("ul",{className:"fillo-phone-list",attrs:{role:"listbox",id:k,"aria-label":"Country"}}),$=()=>{if(_.replaceChildren(),E.length===0){_.appendChild(l("li",{className:"fillo-phone-empty",text:"No matches"})),Y();return}E.forEach((Z,O)=>{let K=l("li",{className:`fillo-phone-option${O===g?" fillo-phone-option--active":""}`,attrs:{id:`${k}-opt-${O}`,role:"option","aria-selected":String(Z.iso2===r.iso2)}});z(K,[l("span",{className:"fillo-phone-flag-emoji",text:mt(Z.iso2),attrs:{"aria-hidden":"true"}}),l("span",{className:"fillo-phone-option-name",text:Z.name}),l("span",{className:"fillo-phone-option-dial",text:`+${Z.dialCode}`})]),K.addEventListener("mouseenter",()=>{g=O,v.setAttribute("aria-activedescendant",K.id),S()}),K.addEventListener("mousedown",ae=>{ae.preventDefault(),$e(Z)}),_.appendChild(K)}),v.setAttribute("aria-activedescendant",`${k}-opt-${g}`),Y()},S=()=>{[..._.children].forEach((Z,O)=>Z.classList.toggle("fillo-phone-option--active",O===g)),document.getElementById(`${k}-opt-${g}`)?.scrollIntoView({block:"nearest"})},oe=Z=>{let O=Z.trim().toLowerCase(),K=O.replace(/[^\d]/g,"");E=O?V.filter(ae=>ae.name.toLowerCase().includes(O)||ae.iso2.toLowerCase()===O||K.length>0&&ae.dialCode.startsWith(K)):V,g=0,$()};v.addEventListener("input",()=>oe(v.value)),v.addEventListener("keydown",Z=>{Z.key==="ArrowDown"?(Z.preventDefault(),g=Math.min(g+1,E.length-1),S(),v.setAttribute("aria-activedescendant",`${k}-opt-${g}`)):Z.key==="ArrowUp"?(Z.preventDefault(),g=Math.max(g-1,0),S(),v.setAttribute("aria-activedescendant",`${k}-opt-${g}`)):Z.key==="Enter"?(Z.preventDefault(),$e(E[g])):Z.key==="Escape"&&(Z.preventDefault(),Q(),i.focus())}),z(x,[v,_]),b=x,n.appendChild(x),i.setAttribute("aria-expanded","true"),E=V,g=Math.max(0,V.indexOf(r)),$(),Be(),S(),document.addEventListener("mousedown",we),ne=h?.(Q)??null,requestAnimationFrame(()=>v.focus())};return i.addEventListener("click",()=>b?Q():Ve()),z(o,[n,u]),R(e.field,e.error,o,e.ids)}function fo(e){let t=l("textarea",{className:"fillo-input fillo-textarea",attrs:{id:e.ids.inputId,rows:"4"}});return t.value=typeof e.value=="string"?e.value:"",e.field.placeholder&&(t.placeholder=e.field.placeholder),t.addEventListener("input",()=>e.setValue(t.value,{render:!1})),t.addEventListener("change",()=>e.setValue(t.value)),L(t,e.field,e.error,e.ids),R(e.field,e.error,t,e.ids)}function mo(e){let t=e.field,r=At(t),o=typeof e.value=="string"?e.value:"",n=e.activeOtherFields,i=o!==""&&!t.options.some(u=>u.id===o),s=i||o===""&&n?.has(t.id)===!0,a=l("div",{className:"fillo-options",attrs:{role:"radiogroup","aria-labelledby":e.ids.labelId}});L(a,t,e.error,e.ids);for(let u of r){let c=l("label",{className:`fillo-option${u.icon?" fillo-option--has-icon":""}${o===u.id?" fillo-option--selected":""}`,attrs:{"data-option":u.id}}),d=l("input",{className:"fillo-option-input",attrs:{type:"radio",name:e.ids.name}});d.checked=o===u.id,d.addEventListener("change",()=>{n?.delete(t.id),e.setValue(u.id)}),z(c,[d,Vr(u.icon),l("span",{className:"fillo-option-label",text:u.label})]),a.appendChild(c)}if(t.allowOther){let u=l("label",{className:`fillo-option fillo-option--other${s?" fillo-option--selected fillo-option--with-other":""}`}),c=l("input",{className:"fillo-option-input",attrs:{type:"radio",name:e.ids.name}});if(c.checked=s,c.addEventListener("change",()=>{n?.add(t.id),e.setValue("",{render:!0})}),z(u,[z(l("span",{className:"fillo-option-main"}),[c,l("span",{className:"fillo-option-label",text:"Other"})])]),s){let d=l("input",{className:"fillo-input fillo-other-input",attrs:{type:"text"}});d.value=i?o:"",d.placeholder="Your answer",d.addEventListener("input",()=>{n?.add(t.id),e.setValue(d.value,{render:!1})}),d.addEventListener("change",()=>{n?.add(t.id),e.setValue(d.value)}),u.appendChild(d),i||queueMicrotask(()=>d.focus())}a.appendChild(u)}return R(t,e.error,a,e.ids)}function ho(e){let t=e.field,r=At(t),o=Array.isArray(e.value)?e.value:[],n=new Set(t.options.map(d=>d.id)),i=o.find(d=>!n.has(d)),s=e.activeOtherFields,a=()=>{let d=e.getValue?.()??e.value;return Array.isArray(d)?d:[]},u=l("div",{className:"fillo-options",attrs:{role:"group","aria-labelledby":e.ids.labelId}});L(u,t,e.error,e.ids);let c=d=>e.setValue(d);for(let d of r){let f=l("label",{className:`fillo-option${d.icon?" fillo-option--has-icon":""}${o.includes(d.id)?" fillo-option--selected":""}`,attrs:{"data-option":d.id}}),p=l("input",{className:"fillo-option-input",attrs:{type:"checkbox"}});p.checked=o.includes(d.id),p.addEventListener("change",()=>{let h=a();c(p.checked?[...h,d.id]:h.filter(b=>b!==d.id))}),z(f,[p,Vr(d.icon),l("span",{className:"fillo-option-label",text:d.label})]),u.appendChild(f)}if(t.allowOther){let d=i!==void 0||s?.has(t.id)===!0,f=l("label",{className:`fillo-option fillo-option--other${d?" fillo-option--selected fillo-option--with-other":""}`}),p=l("input",{className:"fillo-option-input",attrs:{type:"checkbox"}});if(p.checked=d,p.addEventListener("change",()=>{let h=a().filter(b=>n.has(b));p.checked?(s?.add(t.id),c(h)):(s?.delete(t.id),c(h))}),z(f,[z(l("span",{className:"fillo-option-main"}),[p,l("span",{className:"fillo-option-label",text:"Other"})])]),d){let h=l("input",{className:"fillo-input fillo-other-input",attrs:{type:"text"}});h.value=i??"",h.placeholder="Your answer",h.addEventListener("input",()=>{s?.add(t.id);let b=a().filter(g=>n.has(g));e.setValue(h.value?[...b,h.value]:b,{render:!1})}),h.addEventListener("change",()=>{s?.add(t.id);let b=a().filter(g=>n.has(g));e.setValue(h.value?[...b,h.value]:b)}),f.appendChild(h),i===void 0&&queueMicrotask(()=>h.focus())}u.appendChild(f)}return R(t,e.error,u,e.ids)}var $t="__fillo_other__";function go(e){let t=e.field,r=typeof e.value=="string"?e.value:"",o=e.activeOtherFields,n=r!==""&&!t.options.some(c=>c.id===r),i=n||r===""&&o?.has(t.id)===!0,s=l("div"),a=l("div",{className:"fillo-select-wrap"}),u=l("select",{className:"fillo-input fillo-select",attrs:{id:e.ids.inputId}});u.appendChild(l("option",{text:t.placeholder??"Choose...",attrs:{value:""}}));for(let c of At(t))u.appendChild(l("option",{text:c.label,attrs:{value:c.id}}));if(t.allowOther&&u.appendChild(l("option",{text:"Other...",attrs:{value:$t}})),u.value=i?$t:r,u.addEventListener("change",()=>{u.value===$t?(o?.add(t.id),e.setValue("",{render:!0})):(o?.delete(t.id),e.setValue(u.value||null))}),L(u,t,e.error,e.ids),z(a,[u,l("span",{className:"fillo-select-icon",attrs:{"aria-hidden":"true"}})]),s.appendChild(a),i){let c=l("input",{className:"fillo-input fillo-other-input fillo-other-input--block",attrs:{type:"text"}});c.value=n?r:"",c.placeholder="Your answer",c.addEventListener("input",()=>{o?.add(t.id),e.setValue(c.value,{render:!1})}),c.addEventListener("change",()=>{o?.add(t.id),e.setValue(c.value)}),s.appendChild(c),n||queueMicrotask(()=>c.focus())}return R(t,e.error,s,e.ids)}function bo(e){if(e.field.kind==="checkbox"&&e.field.appearance==="toggle"){let i=l("div",{className:`fillo-field fillo-field--checkbox fillo-field--toggle${e.error?" fillo-field--error":""}`,attrs:{"data-field":e.field.id}}),s=l("label",{className:"fillo-toggle"}),a=l("span",{className:"fillo-option-label",text:e.field.label});e.field.required||a.appendChild(l("span",{className:"fillo-optional",text:" (optional)"}));let u=l("span",{className:"fillo-toggle-copy"});u.appendChild(a);let c=l("input",{className:"fillo-toggle-input",attrs:{id:e.ids.inputId,type:"checkbox",role:"switch","aria-checked":String(e.value===!0)}});return c.checked=e.value===!0,c.addEventListener("change",()=>{c.setAttribute("aria-checked",String(c.checked)),e.setValue(c.checked)}),L(c,e.field,e.error,e.ids),z(s,[u,c,z(l("span",{className:"fillo-toggle-track",attrs:{"aria-hidden":"true"}}),[l("span",{className:"fillo-toggle-thumb"})])]),i.appendChild(s),e.field.description&&i.appendChild(l("p",{className:"fillo-description",text:e.field.description,attrs:{id:e.ids.descriptionId}})),e.error&&i.appendChild(l("p",{className:"fillo-error",text:e.error,attrs:{role:"alert",id:e.ids.errorId}})),i}let t=l("div",{className:`fillo-field fillo-field--checkbox${e.error?" fillo-field--error":""}`,attrs:{"data-field":e.field.id}}),r=l("label",{className:"fillo-option"}),o=l("input",{className:"fillo-option-input",attrs:{id:e.ids.inputId,type:"checkbox"}});o.checked=e.value===!0,o.addEventListener("change",()=>e.setValue(o.checked)),L(o,e.field,e.error,e.ids);let n=l("span",{className:"fillo-option-label",text:e.field.label});return e.field.required||n.appendChild(l("span",{className:"fillo-optional",text:" (optional)"})),z(r,[o,n]),t.appendChild(r),e.field.description&&t.appendChild(l("p",{className:"fillo-description",text:e.field.description,attrs:{id:e.ids.descriptionId}})),e.error&&t.appendChild(l("p",{className:"fillo-error",text:e.error,attrs:{role:"alert",id:e.ids.errorId}})),t}function vo(e){if(e.field.kind!=="rating")return l("div");let t=typeof e.field.max=="number"?e.field.max:5,r=typeof e.value=="number"?e.value:0,o=l("div",{className:"fillo-rating",attrs:{role:"group","aria-label":e.field.label}});L(o,e.field,e.error,e.ids);for(let n=1;n<=t;n++){let i=l("button",{className:`fillo-star${n<=r?" fillo-star--active":""}`,text:"*",attrs:{type:"button","aria-label":`${n} of ${t}`,"aria-pressed":String(n===r)}});i.addEventListener("click",()=>e.setValue(n===r?null:n)),o.appendChild(i)}return R(e.field,e.error,o,e.ids)}function yo(e){if(e.field.kind!=="linear_scale")return l("div");let t=typeof e.field.min=="number"?e.field.min:1,r=typeof e.field.max=="number"?e.field.max:10,o=l("div"),n=l("div",{className:"fillo-scale",attrs:{role:"group","aria-label":e.field.label}});L(n,e.field,e.error,e.ids);for(let i=t;i<=r;i++){let s=l("button",{className:`fillo-scale-step${e.value===i?" fillo-scale-step--active":""}`,text:String(i),attrs:{type:"button","aria-pressed":String(e.value===i)}});s.addEventListener("click",()=>e.setValue(e.value===i?null:i)),n.appendChild(s)}return o.appendChild(n),("minLabel"in e.field||"maxLabel"in e.field)&&z(o,[z(l("div",{className:"fillo-scale-labels"}),[l("span",{text:String(e.field.minLabel??"")}),l("span",{text:String(e.field.maxLabel??"")})])]),R(e.field,e.error,o,e.ids)}function _o(e){let t=e.field;if(t.kind!=="ranking")return null;let r=Array.isArray(e.value)?e.value:[],o=[...r.filter(i=>t.options.some(s=>s.id===i)),...t.options.map(i=>i.id).filter(i=>!r.includes(i))],n=l("ol",{className:"fillo-ranking"});for(let[i,s]of o.entries()){let a=t.options.find(h=>h.id===s);if(!a)continue;let u=l("li",{className:"fillo-ranking-item"}),c=l("span",{className:"fillo-ranking-controls"}),d=h=>{let b=i+h;if(b<0||b>=o.length)return;let g=[...o];[g[i],g[b]]=[g[b],g[i]],e.setValue(g)},f=l("button",{className:"fillo-ranking-move",text:"Up",attrs:{type:"button","data-fillo-rank-opt":s,"data-fillo-rank-dir":"up"}});f.toggleAttribute("disabled",i===0),f.addEventListener("click",()=>d(-1));let p=l("button",{className:"fillo-ranking-move",text:"Down",attrs:{type:"button","data-fillo-rank-opt":s,"data-fillo-rank-dir":"down"}});p.toggleAttribute("disabled",i===o.length-1),p.addEventListener("click",()=>d(1)),z(c,[f,p]),z(u,[l("span",{className:"fillo-ranking-index",text:String(i+1)}),l("span",{className:"fillo-ranking-label",text:a.label}),c]),n.appendChild(u)}return R(e.field,e.error,n,e.ids)}function xo(e){let t=e.field;if(t.kind!=="matrix")return null;let r=e.value&&typeof e.value=="object"&&!Array.isArray(e.value)?e.value:{},o=l("table",{className:"fillo-matrix"}),n=document.createElement("thead"),i=document.createElement("tr");i.appendChild(document.createElement("th"));for(let a of t.columns)i.appendChild(l("th",{text:a.label,attrs:{scope:"col"}}));n.appendChild(i),o.appendChild(n);let s=document.createElement("tbody");for(let a of t.rows){let u=document.createElement("tr");u.appendChild(l("th",{text:a.label,attrs:{scope:"row"}}));for(let c of t.columns){let d=document.createElement("td"),f=l("input",{className:"fillo-option-input",attrs:{type:"radio",name:`${e.ids.name}-${a.id}`,"aria-label":`${a.label}: ${c.label}`}});f.checked=r[a.id]===c.id,f.addEventListener("change",()=>e.setValue({...r,[a.id]:c.id})),d.appendChild(f),u.appendChild(d)}s.appendChild(u)}return o.appendChild(s),R(e.field,e.error,z(l("div",{className:"fillo-matrix-wrap"}),[o]),e.ids)}function wo(e){let t=l("div",{className:"fillo-signature-field"}),r=l("div",{className:"fillo-signature"}),o=l("canvas",{className:"fillo-signature-canvas",attrs:{"aria-hidden":"true"}}),n=l("button",{className:"fillo-signature-clear",text:"Clear",attrs:{type:"button"}}),i=l("div",{className:"fillo-signature-hint",text:"Sign here",attrs:{"aria-hidden":"true"}});o.width=720,o.height=220;let s=o.getContext("2d"),a=!1,u=typeof e.value=="string"&&e.value.startsWith("data:image/");if(u&&s){let b=new Image;b.onload=()=>s.drawImage(b,0,0,o.width,o.height),b.src=String(e.value),i.style.display="none"}let c=l("input",{className:"fillo-input fillo-signature-type-input",attrs:{id:e.ids.inputId,type:"text",autocomplete:"name",placeholder:"Type your full name to sign"}});L(c,e.field,e.error,e.ids);let d=b=>{s&&(s.clearRect(0,0,o.width,o.height),b.trim()?(s.fillStyle=getComputedStyle(o).color||"#18181b",s.font=`italic ${Math.min(96,o.height*.45)}px "Segoe Script", "Brush Script MT", cursive`,s.textBaseline="middle",s.fillText(b,24,o.height/2),u=!0,i.style.display="none",e.setValue(o.toDataURL("image/png"),{render:!1})):(u=!1,i.style.display="",e.setValue(null,{render:!1})))};c.addEventListener("input",()=>d(c.value));let f=b=>{let g=o.getBoundingClientRect();return{x:(b.clientX-g.left)/g.width*o.width,y:(b.clientY-g.top)/g.height*o.height}};o.addEventListener("pointerdown",b=>{if(!s)return;a=!0,u=!0,i.style.display="none",c.value&&(c.value=""),o.setPointerCapture(b.pointerId);let g=f(b);s.beginPath(),s.moveTo(g.x,g.y)}),o.addEventListener("pointermove",b=>{if(!a||!s)return;let g=f(b);s.lineWidth=2.4,s.lineCap="round",s.strokeStyle=getComputedStyle(o).color||"#18181b",s.lineTo(g.x,g.y),s.stroke()});let p=()=>{a&&(a=!1,u&&e.setValue(o.toDataURL("image/png"),{render:!1}))};o.addEventListener("pointerup",p),o.addEventListener("pointercancel",p),n.addEventListener("click",()=>{s?.clearRect(0,0,o.width,o.height),u=!1,i.style.display="",c.value="",e.setValue(null,{render:!1})}),z(r,[o,i,n]);let h=l("div",{className:"fillo-signature-type"});return h.appendChild(c),z(t,[r,h]),R(e.field,e.error,t,e.ids)}function $o(e){let t=e.field;if(t.kind!=="file_upload")return null;let r=l("input",{className:"fillo-input",attrs:{id:e.ids.inputId,type:"file"}});(t.maxFiles??1)>1&&(r.multiple=!0),t.accept?.length&&(r.accept=t.accept.join(",")),L(r,t,e.error,e.ids),r.addEventListener("change",()=>{let a=Array.from(r.files??[]);e.uploadFiles?.(t,a)});let o=l("div");o.appendChild(r);let n=e.uploadProgress?.get(t.id);if(n!==void 0){let a=l("div",{className:"fillo-upload-progress"});a.appendChild(l("div",{className:"fillo-upload-progress-fill"})),a.firstElementChild?.style.setProperty("width",`${Math.round(n*100)}%`),o.appendChild(a)}let i=Array.isArray(e.value)?e.value:[];for(let a of i)o.appendChild(l("p",{className:"fillo-description",text:`${a.name} (${Math.round(a.size/1024)} KB)`}));let s=e.uploadNotice;return s&&o.appendChild(l("p",{className:"fillo-upload-notice",text:s,attrs:{role:"status"}})),R(t,e.error,o,e.ids)}var jr=new Map;function At(e){if(!e.shuffleOptions)return e.options;let t=`${e.id}|${e.options.map(i=>i.id).join(",")}`,r=jr.get(t);if(!r){r=e.options.map(i=>i.id);for(let i=r.length-1;i>0;i--){let s=Math.floor(Math.random()*(i+1));[r[i],r[s]]=[r[s],r[i]]}jr.set(t,r)}let o=new Map(e.options.map(i=>[i.id,i])),n=r.flatMap(i=>o.get(i)??[]);return n.length===e.options.length?n:e.options}var zo={short_text:e=>_e("text",e),email:e=>_e("email",e),url:e=>_e("url",e),phone:po,number:e=>_e("number",e),date:e=>_e("date",e),long_text:fo,select:mo,multi_select:ho,dropdown:go,checkbox:bo,rating:vo,linear_scale:yo,ranking:_o,matrix:xo,signature:wo,file_upload:$o};function ko(e){return re(e)&&(e.kind==="select"||e.kind==="dropdown"||e.kind==="checkbox"||e.kind==="rating"||e.kind==="linear_scale")}function Ao(e){let t=e.filter(r=>!(re(r)&&r.kind==="hidden"));return t.length===0?!1:t.length>1?!0:!ko(t[0])}function Eo(e){if(e.field.kind==="hidden"||e.field.kind==="custom")return null;let t=zo[e.field.kind];return t?t(e):null}function Zo(e,t,r,o){if(r.form.settings.submitMode!=="auto"||!r.isLastPage||r.status!=="idle"||o||!(()=>{switch(e.kind){case"select":case"dropdown":return typeof t=="string"&&e.options.some(a=>a.id===t);case"checkbox":return t===!0;case"rating":case"linear_scale":return typeof t=="number";default:return!1}})())return!1;let i={...r.data,[e.id]:t},s=Ne(r.form,i).filter(a=>a.kind!=="hidden");return s.length!==1||s[0]?.id!==e.id?!1:ht(r.form,i).ok}var xe=class{constructor(t,r){this.target=t;this.options=r;this.element.className="fillo-dom-root",t.replaceChildren(this.element),this.resolve()}target;options;element=l("div");instanceId=`d${++to}`;schema=null;theme;formId;closed=!1;fetchedPoweredBy=null;fetchedBrandLabel;fetchedBrandHref;phase="loading";engine=null;destroyed=!1;renderQueued=!1;hpValue="";activeOtherFields=new Set;uploadProgress=new Map;uploadNotices=new Map;focusIntent=null;overlays=new Set;get status(){return this.phase==="ready"?this.engine?.getState().status??"idle":this.phase}get data(){return this.engine?.getState().data??this.options.initialData??{}}get form(){return this.schema}get mutableData(){return this.engine?.getState().data??this.options.initialData??{}}api(){let t=this.schema??{version:1,title:"",pages:[],settings:{}},r=this.engine?.getState(),o=r?.pageCount??t.pages.length;return{form:t,formId:this.formId,client:this.options.client,data:r?.data??this.mutableData,errors:r?.errors??{},status:this.status,pageIndex:r?.pageIndex??0,pageCount:o,page:r?.page??t.pages[0]??{id:"empty",blocks:[]},blocks:r?.blocks??[],isFirstPage:r?.isFirstPage??!0,isLastPage:r?.isLastPage??o<=1,setValue:(n,i,s)=>this.setValueInternal(n,i,s),next:()=>this.next(),back:()=>this.back(),submit:()=>this.submit()}}async resolve(){try{let t=wt(this.options.form)?this.options.form:null;if(t){this.setSchema(t.schema,this.options.theme??t.theme,this.options.formId),this.options.client?.key&&Rr(this.options.client,t).then(({formId:n,branding:i})=>{this.formId=n,this.engine?.setContext({formId:n}),i&&(this.fetchedPoweredBy=i.poweredBy,this.fetchedBrandLabel=i.label,this.fetchedBrandHref=i.href,this.render())}).catch(n=>this.handleError(Ue(n)));return}let r=this.options.form&&!wt(this.options.form)?this.options.form:null;if(r){this.setSchema(r,this.options.theme,this.options.formId);return}if(!this.options.formId)throw new w("Provide either `form`, or a `formId`.",0);this.options.client??=ye(),this.render();let o=await this.options.client.getForm(this.options.formId);this.closed=!!o.closed,this.fetchedPoweredBy=o.branding?.poweredBy??null,this.fetchedBrandLabel=o.branding?.label,this.fetchedBrandHref=o.branding?.href,this.setSchema(o.schema,this.options.theme??o.theme??void 0,o.id)}catch(t){this.handleError(Ue(t))}}setSchema(t,r,o){let n=ve(t);if(!n.ok)throw new w(`This form could not be rendered: ${n.error}`,422);let i=n.schema;this.schema=i,this.theme=r,this.formId=o,this.engine=Lr({form:i,formId:o,client:this.options.client,initialData:this.options.initialData,onChange:this.options.onChange,onSubmitted:this.options.onSubmitted,getHoneypot:()=>this.hpValue,surface:"default"}),this.phase=this.closed?"closed":"ready",this.render()}setValue(t,r){this.setValueInternal(t,r)}setValueInternal(t,r,o={}){this.engine?.setValue(t,r),o.render!==!1&&this.queueRender()}next(){if(!this.engine)return;let t=this.engine.getState().pageIndex;this.engine.next(),this.focusIntent=this.engine.getState().pageIndex!==t?"page":"error",this.render()}back(){this.engine&&(this.engine.back(),this.focusIntent="page",this.render())}async submit(){if(!this.engine||this.phase!=="ready")return;let t=this.engine.submit();this.hasErrors()&&(this.focusIntent="error"),this.render();try{await t}catch(r){this.handleError(Ue(r));return}this.hasErrors()&&(this.focusIntent="error"),this.render()}hasErrors(){return Object.keys(this.engine?.getState().errors??{}).length>0}setTheme(t){this.options.theme=t,this.theme=t,this.render()}setClient(t){this.options.client=t,this.engine?.setContext({client:t}),this.render()}async uploadFiles(t,r){if(!this.schema)return;let o=t.maxFiles??1,n=o>1&&Array.isArray(this.mutableData[t.id])?[...this.mutableData[t.id]]:[],i=Math.max(0,o-n.length),s=r.slice(0,i),a=r.length-s.length;if(a>0?this.uploadNotices.set(t.id,`You can attach up to ${o} file${o===1?"":"s"}. ${a} ${a===1?"file was":"files were"} not added.`):this.uploadNotices.delete(t.id),s.length===0){this.queueRender();return}this.uploadProgress.set(t.id,0),this.queueRender();try{let u=[];for(let[c,d]of s.entries())this.options.client&&this.formId?u.push(await this.options.client.uploadFile(this.formId,d,{fieldId:t.id,onProgress:f=>{this.uploadProgress.set(t.id,(c+f.fraction)/s.length),this.queueRender()}})):u.push({fileId:`local:${d.name}:${d.size}`,name:d.name,size:d.size,mime:d.type||"application/octet-stream"});this.uploadProgress.delete(t.id),this.setValueInternal(t.id,[...n,...u])}catch(u){this.uploadProgress.delete(t.id),this.handleError(Ue(u))}}destroy(){this.destroyed=!0,this.closeOverlays(),this.target.replaceChildren()}registerOverlay=t=>(this.overlays.add(t),()=>this.overlays.delete(t));closeOverlays(){if(this.overlays.size!==0){for(let t of Array.from(this.overlays))try{t()}catch{}this.overlays.clear()}}captureFocus(){if(typeof document>"u")return null;let t=document.activeElement;if(!t||!this.element.contains(t))return null;let r={};t.id&&(r.id=t.id);let o=t.getAttribute("data-fillo-rank-opt");o&&(r.rankOpt=o,r.rankDir=t.getAttribute("data-fillo-rank-dir")??void 0);let n=t.closest("[data-field]");if(n&&(r.fieldId=n.getAttribute("data-field")??void 0,r.controlIndex=Array.from(n.querySelectorAll(Dr)).indexOf(t)),t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)try{r.selStart=t.selectionStart,r.selEnd=t.selectionEnd}catch{}return r.id||r.rankOpt||r.fieldId?r:null}restoreFocus(t){if(typeof document>"u")return;let r=null;if(t.rankOpt){let o=Array.from(this.element.querySelectorAll("[data-fillo-rank-opt]")).filter(n=>n.getAttribute("data-fillo-rank-opt")===t.rankOpt);r=o.find(n=>n.getAttribute("data-fillo-rank-dir")===t.rankDir&&!n.disabled)??o.find(n=>!n.disabled)??null}if(!r&&t.id&&(r=document.getElementById(t.id)),!r&&t.fieldId!=null&&t.controlIndex!=null&&t.controlIndex>=0){let o=Array.from(this.element.querySelectorAll("[data-field]")).find(n=>n.getAttribute("data-field")===t.fieldId);o&&(r=Array.from(o.querySelectorAll(Dr))[t.controlIndex]??null)}if(!(!r||typeof r.focus!="function")&&(r.focus(),(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement)&&t.selStart!=null))try{r.setSelectionRange(t.selStart,t.selEnd??t.selStart)}catch{}}applyFocus(t,r){if(!(typeof document>"u")){if(t==="error"){this.element.querySelector('[aria-invalid="true"]')?.focus?.();return}if(t==="page"){let n=this.element.querySelector(".fillo-page-title, .fillo-title")??this.element.querySelector(".fillo-blocks");n&&(n.hasAttribute("tabindex")||n.setAttribute("tabindex","-1"),n.focus?.());return}r&&this.restoreFocus(r)}}handleError(t){this.phase="error",this.options.onError?.(t),this.render(t)}queueRender(){this.renderQueued||this.destroyed||(this.renderQueued=!0,queueMicrotask(()=>{this.renderQueued=!1,this.render()}))}render(t){if(this.destroyed)return;let r=this.focusIntent;this.focusIntent=null;let o=r?null:this.captureFocus();if(this.closeOverlays(),this.element.replaceChildren(),this.phase==="loading"){let n=l("div",{className:`fillo-form fillo-form--loading ${this.options.className??""}`,attrs:{"aria-busy":"true"}});De(n,this.theme),z(n,[l("div",{className:"fillo-skeleton"}),l("div",{className:"fillo-skeleton"}),l("div",{className:"fillo-skeleton fillo-skeleton--short"})]),this.element.appendChild(n);return}if(this.phase==="error"&&t){this.element.appendChild(this.options.renderError?.(t)??l("div",{className:"fillo-form fillo-form--error",text:t.message}));return}if(this.phase==="closed"){let n=l("div",{className:`fillo-form fillo-form--closed ${this.options.className??""}`});De(n,this.theme),n.appendChild(l("p",{className:"fillo-closed",text:"This form is no longer accepting responses."})),this.element.appendChild(n);return}if(this.schema){if(this.engine?.getState().status==="submitted"){let n=this.api(),i=this.options.renderSuccess?.(n)??Co(this.schema);De(i,this.theme),this.element.appendChild(i),this.brandingVisible()&&this.element.appendChild(Br(this.fetchedBrandLabel,this.fetchedBrandHref));return}!this.options.client&&Po()&&this.element.appendChild(Io()),this.element.appendChild(this.renderForm()),this.brandingVisible()&&this.element.appendChild(Br(this.fetchedBrandLabel,this.fetchedBrandHref)),this.applyFocus(r,o)}}brandingVisible(){return this.fetchedPoweredBy??!0}renderForm(){let t=this.api(),r=l("form",{className:`fillo-form ${this.options.className??""}`});De(r,this.theme),r.noValidate=!0;let o=()=>{t.isLastPage?this.submit():this.next()};if(r.addEventListener("submit",c=>{c.preventDefault(),o()}),t.pageCount>1&&this.schema?.settings.showProgress!==!1){let c=l("div",{className:"fillo-progress-track",attrs:{role:"progressbar","aria-valuemin":"0","aria-valuemax":String(t.pageCount),"aria-valuenow":String(t.pageIndex+1)}});c.appendChild(l("div",{className:"fillo-progress-fill"})),c.firstElementChild?.style.setProperty("width",`${(t.pageIndex+1)/t.pageCount*100}%`),r.appendChild(c)}if(t.pageIndex===0){let c=l("header",{className:"fillo-header"});c.appendChild(l("h1",{className:"fillo-title",text:t.form.title})),t.form.description&&c.appendChild(l("p",{className:"fillo-form-description",text:t.form.description})),r.appendChild(c)}else t.page.title&&r.appendChild(l("h2",{className:"fillo-page-title",text:t.page.title}));let n=l("div",{className:"fillo-blocks"});for(let c of t.blocks){let d=this.renderBlock(Or(c,this.mutableData,t.form),t);d&&n.appendChild(d)}r.appendChild(n);let i=l("input",{className:"fillo-hp",attrs:{type:"text",name:"fillo_hp_field",tabindex:"-1",autocomplete:"off","aria-hidden":"true"}});i.addEventListener("input",()=>{this.hpValue=i.value}),r.appendChild(i);let a=!(t.form.settings.submitMode==="auto")||!t.isLastPage||Ao(Ne(t.form,t.data));if(a||t.pageCount>1&&!t.isFirstPage){let c=l("footer",{className:"fillo-footer"});if(t.pageCount>1&&!t.isFirstPage){let d=l("button",{className:"fillo-button fillo-button--ghost",text:"Back",attrs:{type:"button"}});d.addEventListener("click",()=>this.back()),c.appendChild(d)}if(a){let d=l("button",{className:"fillo-button fillo-button--primary",text:t.status==="submitting"?"Submitting...":t.isLastPage?t.form.settings.submitLabel??"Submit":"Next",attrs:{type:"submit"}});d.toggleAttribute("disabled",t.status==="submitting"||this.uploadProgress.size>0),d.addEventListener("click",f=>{f.preventDefault(),o()}),c.appendChild(d)}r.appendChild(c)}return r}renderBlock(t,r){if(!re(t))return So(t);let o=(s,a)=>{this.setValueInternal(t.id,s,a),a?.render!==!1&&Zo(t,s,r,this.uploadProgress.size>0)&&this.submit()},n={field:t,value:r.data[t.id],error:r.errors[t.id],ids:ro(this.instanceId,t.id),api:r,setValue:o,uploadFiles:(s,a)=>this.uploadFiles(s,a),uploadProgress:this.uploadProgress,activeOtherFields:this.activeOtherFields,getValue:()=>this.engine?.getState().data[t.id],registerOverlay:this.registerOverlay,uploadNotice:this.uploadNotices.get(t.id)};return(t.kind==="custom"?this.options.customComponents?.[t.component]??this.options.components?.custom:this.options.components?.[t.kind]??Eo)?.(n)??null}};function So(e){switch(e.kind){case"heading":return l("h3",{className:"fillo-heading",text:e.text});case"paragraph":return l("p",{className:"fillo-paragraph",text:e.text});case"divider":return l("hr",{className:"fillo-divider"})}return l("div")}function Co(e){let t=l("div",{className:"fillo-form fillo-form--success"}),r=l("div",{className:"fillo-success"});return z(r,[l("div",{className:"fillo-success-mark",text:"\u2713",attrs:{"aria-hidden":"true"}}),l("h2",{className:"fillo-success-title",text:e.settings.successTitle??"Thanks!"}),l("p",{className:"fillo-success-message",text:e.settings.successMessage??"Your response has been recorded."})]),t.appendChild(r),t}function Br(e,t){return l("a",{className:"fillo-powered",text:e??"Powered by Fillo",attrs:{href:oo(t),target:"_blank",rel:"noopener noreferrer"}})}function Po(){return typeof process<"u"&&process.env?.NODE_ENV!=="production"}function Io(){return l("div",{className:"fillo-devwarning",text:"No Fillo client connected \u2014 this form is render-only and won't save responses. Pass a client to collect them in Fillo, or forward with webhooks. (Shown only in development.)",attrs:{role:"alert"}})}function Ue(e){return e instanceof w?e:new w(e instanceof Error?e.message:String(e),0)}function je(e,t){let r=typeof e=="string"?document.querySelector(e):e;if(!r)throw new w(`Fillo mount target not found: ${String(e)}`,0);return new xe(r,{...t,initialData:t.initialData??{}})}function Hr(e){let t=l("div");return je(t,e),t}var Fo=typeof HTMLElement<"u"?HTMLElement:class{},kt=class extends Fo{instance=null;assignedForm;assignedClient;assignedTheme;assignedInitialData;mounted=!1;mountScheduled=!1;static get observedAttributes(){return["publishable-key","form-id"]}connectedCallback(){this.scheduleMount()}disconnectedCallback(){this.instance?.destroy(),this.instance=null,this.mounted=!1}attributeChangedCallback(){this.mounted&&this.isConnected&&this.scheduleMount()}set form(t){this.assignedForm=t,this.mounted&&this.scheduleMount()}get form(){return this.assignedForm}set client(t){this.assignedClient=t,this.mounted&&this.instance instanceof xe&&this.instance.setClient(t)}set theme(t){this.assignedTheme=t,this.mounted&&this.instance instanceof xe&&this.instance.setTheme(t)}set initialData(t){this.assignedInitialData=t,this.mounted&&this.scheduleMount()}scheduleMount(){this.mountScheduled||(this.mountScheduled=!0,queueMicrotask(()=>{this.mountScheduled=!1,this.isConnected&&this.mount()}))}mount(){this.instance?.destroy();let t=this.getAttribute("publishable-key")??void 0,r=this.getAttribute("form-id")??void 0,o=this.assignedClient??(r||t?ye({key:t}):void 0);this.instance=je(this,{form:this.assignedForm,client:o,formId:r,theme:this.assignedTheme,initialData:this.assignedInitialData,onChange:n=>this.dispatchEvent(new CustomEvent("fillo-change",{detail:{data:n}})),onSubmitted:(n,i)=>this.dispatchEvent(new CustomEvent("fillo-submit",{detail:{responseId:n,data:i}})),onError:n=>this.dispatchEvent(new CustomEvent("fillo-error",{detail:{error:n}}))}),this.mounted=!0}};function Et(e="fillo-form"){typeof customElements>"u"||customElements.get(e)||customElements.define(e,kt)}typeof customElements<"u"&&Et();return Xr(Mo);})();
1
+ "use strict";var Fillo=(()=>{var We=Object.defineProperty;var an=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNames;var un=Object.prototype.hasOwnProperty;var ln=(e,t)=>{for(var r in t)We(e,r,{get:t[r],enumerable:!0})},dn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of cn(t))!un.call(e,o)&&o!==r&&We(e,o,{get:()=>t[o],enumerable:!(n=an(t,o))||n.enumerable});return e};var pn=e=>dn(We({},"__esModule",{value:!0}),e);var ri={};ln(ri,{FilloClient:()=>Ve,FilloError:()=>w,createClient:()=>_e,createFormElement:()=>sn,defineForm:()=>At,registerFilloElement:()=>Nt,renderForm:()=>Ke});var Mt;function _(e,t,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let u=s.prototype,l=Object.keys(u);for(let p=0;p<l.length;p++){let f=l[p];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var K=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};(Mt=globalThis).__zod_globalConfig??(Mt.__zod_globalConfig={});var Ge=globalThis.__zod_globalConfig;function J(e){return e&&Object.assign(Ge,e),Ge}function Lt(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function Ot(e,t){return typeof t=="bigint"?t.toString():t}function Rt(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Xe(e){return e==null}function Dt(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}var Tt=Symbol("evaluating");function X(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Tt)return n===void 0&&(n=Tt,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}var Ye="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Se(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qe(e){if(Se(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(Se(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function et(e){return Qe(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Ut=new Set(["string","number","symbol"]);function ue(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tt(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function P(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function jt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var fn={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function le(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function Bt(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function Y(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Ae(e){return typeof e=="string"?e:e?.message}function Q(e,t,r){let n=e.message?e.message:Ae(e.inst?._zod.def?.error?.(e))??Ae(t?.error?.(e))??Ae(r.customError?.(e))??Ae(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:s,...a}=e;return a.path??(a.path=[]),a.message=n,t?.reportInput&&(a.input=s),a}function rt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}var Vt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ot,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Ht=_("$ZodError",Vt),de=_("$ZodError",Vt,{Parent:Error});var hn=e=>(t,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new K;if(s.issues.length){let a=new(o?.Err??e)(s.issues.map(c=>Q(c,i,J())));throw Ye(a,o?.callee),a}return s.value},Ce=hn(de),gn=e=>async(t,r,n,o)=>{let i=n?{...n,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??e)(s.issues.map(c=>Q(c,i,J())));throw Ye(a,o?.callee),a}return s.value},Ze=gn(de),bn=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new K;return i.issues.length?{success:!1,error:new(e??Ht)(i.issues.map(s=>Q(s,o,J())))}:{success:!0,data:i.value}},pe=bn(de),vn=e=>async(t,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>Q(s,o,J())))}:{success:!0,data:i.value}},fe=vn(de);var Kt=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var yn="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",_n=new RegExp(`^${yn}$`);var qt=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};var nt=/^-?\d+(?:\.\d+)?$/;var re=_("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),xn={number:"number",bigint:"bigint",object:"date"};var Gt=_("$ZodCheckGreaterThan",(e,t)=>{re.init(e,t);let r=xn[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}});var Jt=_("$ZodCheckMaxLength",(e,t)=>{var r;re.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let s=rt(o);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xt=_("$ZodCheckMinLength",(e,t)=>{var r;re.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let s=rt(o);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}});var Yt=_("$ZodCheckStringFormat",(e,t)=>{var r,n;re.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})});var er={major:4,minor:4,patch:3};var L=_("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=er;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(s,a,c)=>{let u=le(s),l;for(let p of a){if(p._zod.def.when){if(Bt(s)||!p._zod.def.when(s))continue}else if(u)continue;let f=s.issues.length,h=p._zod.check(s);if(h instanceof Promise&&c?.async===!1)throw new K;if(l||h instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await h,s.issues.length!==f&&(u||(u=le(s,f)))});else{if(s.issues.length===f)continue;u||(u=le(s,f))}}return l?l.then(()=>s):s},i=(s,a,c)=>{if(le(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new K;return u.then(l=>e._zod.parse(l,c))}return e._zod.parse(u,c)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){let u=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,s,a)):i(u,s,a)}let c=e._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new K;return c.then(u=>o(u,n,a))}return o(c,n,a)}}X(e,"~standard",()=>({validate:o=>{try{let i=pe(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return fe(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),ot=_("$ZodString",(e,t)=>{L.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??qt(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),it=_("$ZodStringFormat",(e,t)=>{Yt.init(e,t),ot.init(e,t)});var or=_("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Kt),it.init(e,t)});var ir=_("$ZodNumber",(e,t)=>{L.init(e,t),e._zod.pattern=e._zod.bag.pattern??nt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}});var sr=_("$ZodUnknown",(e,t)=>{L.init(e,t),e._zod.parse=r=>r});function tr(e,t,r){e.issues.length&&t.issues.push(...Y(r,e.issues)),t.value[r]=e.value}var ar=_("$ZodArray",(e,t)=>{L.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],c=t.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(u=>tr(u,r,s))):tr(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Pe(e,t,r,n,o,i){let s=r in n;if(e.issues.length){if(o&&i&&!s)return;t.issues.push(...Y(r,e.issues))}if(!s&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?s&&(t.value[r]=void 0):t.value[r]=e.value}function $n(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=jt(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function zn(e,t,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optin==="optional",p=c.optout==="optional";for(let f in t){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}let h=c.run({value:t[f],issues:[]},n);h instanceof Promise?e.push(h.then(g=>Pe(g,r,f,t,l,p))):Pe(h,r,f,t,l,p)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var cr=_("$ZodObject",(e,t)=>{if(L.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}let n=Rt(()=>$n(t));X(e._zod,"propValues",()=>{let a=t.shape,c={};for(let u in a){let l=a[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let p of l.values)c[u].add(p)}}return c});let o=Se,i=t.catchall,s;e._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),a;a.value={};let l=[],p=s.shape;for(let f of s.keys){let h=p[f],g=h._zod.optin==="optional",b=h._zod.optout==="optional",E=h._zod.run({value:u[f],issues:[]},c);E instanceof Promise?l.push(E.then(H=>Pe(H,a,f,u,g,b))):Pe(E,a,f,u,g,b)}return i?zn(l,u,a,c,n.value,e):l.length?Promise.all(l).then(()=>a):a}});var ur=_("$ZodRecord",(e,t)=>{L.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Qe(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let i=[],s=t.keyType._zod.values;if(s){r.value={};let a=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let l=t.keyType._zod.run({value:u,issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(h=>Q(h,n,J())),input:u,path:[u],inst:e});continue}let p=l.value,f=t.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(h=>{h.issues.length&&r.issues.push(...Y(u,h.issues)),r.value[p]=h.value})):(f.issues.length&&r.issues.push(...Y(u,f.issues)),r.value[p]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=t.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&nt.test(a)&&c.issues.length){let p=t.keyType._zod.run({value:Number(a),issues:[]},n);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");p.issues.length===0&&(c=p)}if(c.issues.length){t.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(p=>Q(p,n,J())),input:a,path:[a],inst:e});continue}let l=t.valueType._zod.run({value:o[a],issues:[]},n);l instanceof Promise?i.push(l.then(p=>{p.issues.length&&r.issues.push(...Y(a,p.issues)),r.value[c.value]=p.value})):(l.issues.length&&r.issues.push(...Y(a,l.issues)),r.value[c.value]=l.value)}}return i.length?Promise.all(i).then(()=>r):r}});var lr=_("$ZodEnum",(e,t)=>{L.init(e,t);let r=Lt(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>Ut.has(typeof o)).map(o=>typeof o=="string"?ue(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:e}),o}}),dr=_("$ZodLiteral",(e,t)=>{if(L.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?ue(n):n?ue(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}});function rr(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var pr=_("$ZodOptional",(e,t)=>{L.init(e,t),e._zod.optin="optional",e._zod.optout="optional",X(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),X(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Dt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=r.value,i=t.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>rr(s,o)):rr(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}});var fr=_("$ZodDefault",(e,t)=>{L.init(e,t),e._zod.optin="optional",X(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>nr(i,t)):nr(o,t)}});function nr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}function mr(e,t){return new e({type:"string",...P(t)})}function hr(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...P(t)})}function gr(e,t){return new e({type:"number",checks:[],...P(t)})}function br(e){return new e({type:"unknown"})}function st(e,t){return new Gt({check:"greater_than",...P(t),value:e,inclusive:!0})}function at(e){return st(0,e)}function I(e,t){return new Jt({check:"max_length",...P(t),maximum:e})}function ae(e,t){return new Xt({check:"min_length",...P(t),minimum:e})}var B=_("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");L.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>Ce(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>pe(e,r,n),e.parseAsync=async(r,n)=>Ze(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>fe(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>tt(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),yr=_("ZodMiniString",(e,t)=>{ot.init(e,t),B.init(e,t)});function N(e){return mr(yr,e)}var En=_("ZodMiniStringFormat",(e,t)=>{it.init(e,t),yr.init(e,t)}),An=_("ZodMiniEmail",(e,t)=>{or.init(e,t),En.init(e,t)});function Fe(e){return hr(An,e)}var Sn=_("ZodMiniNumber",(e,t)=>{ir.init(e,t),B.init(e,t)});function _r(e){return gr(Sn,e)}var Cn=_("ZodMiniUnknown",(e,t)=>{sr.init(e,t),B.init(e,t)});function Ie(){return br(Cn)}var Zn=_("ZodMiniArray",(e,t)=>{ar.init(e,t),B.init(e,t)});function ee(e,t){return new Zn({type:"array",element:e,...P(t)})}var xr=_("ZodMiniObject",(e,t)=>{cr.init(e,t),B.init(e,t),X(e,"shape",()=>t.shape)});function me(e,t){let r={type:"object",shape:e??{},...P(t)};return new xr(r)}function ct(e,t){return new xr({type:"object",shape:e,catchall:Ie(),...P(t)})}var vr=_("ZodMiniRecord",(e,t)=>{ur.init(e,t),B.init(e,t)});function wr(e,t,r){return!t||!t._zod?new vr({type:"record",keyType:N(),valueType:e,...P(t)}):new vr({type:"record",keyType:e,valueType:t,...P(r)})}var Pn=_("ZodMiniEnum",(e,t)=>{lr.init(e,t),B.init(e,t),e.options=Object.values(t.entries)});function $r(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Pn({type:"enum",entries:r,...P(t)})}var Fn=_("ZodMiniLiteral",(e,t)=>{dr.init(e,t),B.init(e,t)});function zr(e,t){return new Fn({type:"literal",values:Array.isArray(e)?e:[e],...P(t)})}var In=_("ZodMiniOptional",(e,t)=>{pr.init(e,t),B.init(e,t)});function O(e){return new In({type:"optional",innerType:e})}var Nn=_("ZodMiniDefault",(e,t)=>{fr.init(e,t),B.init(e,t)});function ut(e,t){return new Nn({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():et(t)}})}var Ln=["heading","paragraph","divider"];function oe(e){return!Ln.includes(e.kind)}function lt(e){return e==null?!1:typeof e=="string"?e.trim()!=="":Array.isArray(e)?e.length>0:typeof e=="boolean"?e:typeof e=="object"?Object.keys(e).length>0:!0}function kr(e,t){return e===t?!0:typeof e=="number"&&typeof t=="string"&&t.trim()!==""?Number(t)===e:typeof t=="number"&&typeof e=="string"&&e.trim()!==""?Number(e)===t:!1}function On(e,t){let r=t(e.fieldId);switch(e.op){case"answered":return lt(r);case"not_answered":return!lt(r);case"eq":return Array.isArray(r)?r.some(n=>n===e.value):kr(r,e.value);case"neq":return lt(r)?Array.isArray(r)?!r.some(n=>n===e.value):!kr(r,e.value):!1;case"contains":return typeof r=="string"?r.toLowerCase().includes(String(e.value??"").toLowerCase()):Array.isArray(r)?r.some(n=>n===e.value):!1;case"gt":return typeof r=="number"&&r>Number(e.value);case"lt":return typeof r=="number"&&r<Number(e.value)}}function Nr(e,t){return!e.visibleIf||e.visibleIf.length===0?!0:e.visibleIf.every(r=>On(r,t))}function Mr(e,t,r){return n=>t.has(n)&&!r.has(n)?void 0:e[n]}function Tr(e,t){let r=new Set(e.map(o=>o.id)),n=r;for(let o=0;o<=e.length;o++){let i=Mr(t,r,n),s=new Set;for(let a of e)Nr(a,i)&&s.add(a.id);if(s.size===n.size&&[...s].every(a=>n.has(a)))return s;n=s}return n}function dt(e,t){let r=e.blocks.filter(oe),n=new Set(r.map(i=>i.id)),o=Mr(t,n,Tr(r,t));return e.blocks.filter(i=>Nr(i,o))}function _t(e){return e.pages.flatMap(t=>t.blocks.filter(oe))}function De(e,t){let r=_t(e),n=Tr(r,t);return r.filter(o=>n.has(o.id))}var m=(e,t,r,n=[],o=[],i="")=>({iso2:e,name:t,dialCode:r,lengths:n,groups:o,example:i}),q=[m("US","United States","1",[10],[3,3,4],"2015550123"),m("CA","Canada","1",[10],[3,3,4],"5145550123"),m("GB","United Kingdom","44",[10],[4,6],"7400123456"),m("AU","Australia","61",[9],[3,3,3],"412345678"),m("DE","Germany","49",[10,11],[4,7],"15123456789"),m("FR","France","33",[9],[1,2,2,2,2],"612345678"),m("IN","India","91",[10],[5,5],"8123456789"),m("DK","Denmark","45",[8],[2,2,2,2],"32123456"),m("SE","Sweden","46",[9],[2,3,4],"701234567"),m("NO","Norway","47",[8],[3,2,3],"40612345"),m("FI","Finland","358",[9,10],[2,3,4],"412345678"),m("NL","Netherlands","31",[9],[1,4,4],"612345678"),m("BE","Belgium","32",[9],[3,2,2,2],"470123456"),m("ES","Spain","34",[9],[3,3,3],"612345678"),m("IT","Italy","39",[9,10],[3,3,4],"3123456789"),m("PT","Portugal","351",[9],[3,3,3],"912345678"),m("IE","Ireland","353",[9],[2,3,4],"851234567"),m("CH","Switzerland","41",[9],[2,3,2,2],"781234567"),m("AT","Austria","43",[10,11],[3,7],"6641234567"),m("PL","Poland","48",[9],[3,3,3],"512345678"),m("CZ","Czechia","420",[9],[3,3,3],"601123456"),m("GR","Greece","30",[10],[3,3,4],"6912345678"),m("RO","Romania","40",[9],[3,3,3],"712345678"),m("HU","Hungary","36",[9],[2,3,4],"201234567"),m("UA","Ukraine","380",[9],[2,3,2,2],"501234567"),m("RU","Russia","7",[10],[3,3,2,2],"9123456789"),m("TR","Turkey","90",[10],[3,3,2,2],"5012345678"),m("IL","Israel","972",[9],[2,3,4],"501234567"),m("AE","United Arab Emirates","971",[9],[2,3,4],"501234567"),m("SA","Saudi Arabia","966",[9],[2,3,4],"512345678"),m("ZA","South Africa","27",[9],[2,3,4],"711234567"),m("NG","Nigeria","234",[10],[3,3,4],"8021234567"),m("KE","Kenya","254",[9],[3,3,3],"712123456"),m("EG","Egypt","20",[10],[3,3,4],"1001234567"),m("BR","Brazil","55",[10,11],[2,5,4],"11961234567"),m("MX","Mexico","52",[10],[3,3,4],"2221234567"),m("AR","Argentina","54",[10],[4,6],"1123456789"),m("CL","Chile","56",[9],[1,4,4],"221234567"),m("CO","Colombia","57",[10],[3,3,4],"3211234567"),m("PE","Peru","51",[9],[3,3,3],"912345678"),m("CN","China","86",[11],[3,4,4],"13123456789"),m("JP","Japan","81",[10],[2,4,4],"9012345678"),m("KR","South Korea","82",[9,10],[2,4,4],"1023456789"),m("SG","Singapore","65",[8],[4,4],"81234567"),m("HK","Hong Kong","852",[8],[4,4],"51234567"),m("TW","Taiwan","886",[9],[3,3,3],"912345678"),m("MY","Malaysia","60",[9,10],[2,3,4],"123456789"),m("ID","Indonesia","62",[10,11],[3,4,4],"81234567890"),m("TH","Thailand","66",[9],[2,3,4],"812345678"),m("PH","Philippines","63",[10],[3,3,4],"9171234567"),m("VN","Vietnam","84",[9],[3,3,3],"912345678"),m("PK","Pakistan","92",[10],[3,3,4],"3012345678"),m("BD","Bangladesh","880",[10],[2,4,4],"1812345678"),m("NZ","New Zealand","64",[9,10],[2,3,4],"211234567"),m("SK","Slovakia","421",[9],[3,3,3],"912123456"),m("BG","Bulgaria","359",[9],[2,3,4],"481234567"),m("HR","Croatia","385",[8,9],[2,3,4],"921234567"),m("RS","Serbia","381",[8,9],[2,3,4],"601234567"),m("SI","Slovenia","386",[8],[2,3,3],"31234567"),m("LT","Lithuania","370",[8],[3,2,3],"61234567"),m("LV","Latvia","371",[8],[2,3,3],"21234567"),m("EE","Estonia","372",[7,8],[3,4],"51234567"),m("IS","Iceland","354",[7],[3,4],"6111234"),m("LU","Luxembourg","352",[9],[3,3,3],"628123456"),m("MA","Morocco","212",[9],[3,3,3],"650123456"),m("CR","Costa Rica","506",[8],[4,4],"83123456"),m("EC","Ecuador","593",[9],[2,3,4],"991234567"),m("UY","Uruguay","598",[8],[1,3,4],"94231234"),m("QA","Qatar","974",[8],[4,4],"33123456"),m("KW","Kuwait","965",[8],[4,4],"50012345")],Rn=new Map(q.map(e=>[e.iso2,e])),Dn={"Africa/Cairo":"EG","Africa/Casablanca":"MA","Africa/Johannesburg":"ZA","Africa/Lagos":"NG","Africa/Nairobi":"KE","America/Adak":"US","America/Anchorage":"US","America/Argentina/Buenos_Aires":"AR","America/Argentina/Cordoba":"AR","America/Argentina/Mendoza":"AR","America/Bahia":"BR","America/Belem":"BR","America/Bogota":"CO","America/Boise":"US","America/Boa_Vista":"BR","America/Cancun":"MX","America/Chicago":"US","America/Chihuahua":"MX","America/Campo_Grande":"BR","America/Costa_Rica":"CR","America/Cuiaba":"BR","America/Denver":"US","America/Detroit":"US","America/Edmonton":"CA","America/Fortaleza":"BR","America/Guayaquil":"EC","America/Halifax":"CA","America/Hermosillo":"MX","America/Indiana/Indianapolis":"US","America/Indianapolis":"US","America/Juneau":"US","America/Kentucky/Louisville":"US","America/Lima":"PE","America/Los_Angeles":"US","America/Maceio":"BR","America/Manaus":"BR","America/Matamoros":"MX","America/Mazatlan":"MX","America/Merida":"MX","America/Mexico_City":"MX","America/Moncton":"CA","America/Monterrey":"MX","America/Montevideo":"UY","America/New_York":"US","America/Noronha":"BR","America/Nome":"US","America/North_Dakota/Center":"US","America/Ojinaga":"MX","America/Phoenix":"US","America/Porto_Velho":"BR","America/Punta_Arenas":"CL","America/Recife":"BR","America/Regina":"CA","America/Rio_Branco":"BR","America/Santiago":"CL","America/Sao_Paulo":"BR","America/Sitka":"US","America/St_Johns":"CA","America/Tijuana":"MX","America/Toronto":"CA","America/Vancouver":"CA","America/Whitehorse":"CA","America/Winnipeg":"CA","America/Yakutat":"US","Asia/Bangkok":"TH","Asia/Calcutta":"IN","Asia/Dacca":"BD","Asia/Dhaka":"BD","Asia/Dubai":"AE","Asia/Hong_Kong":"HK","Asia/Ho_Chi_Minh":"VN","Asia/Jakarta":"ID","Asia/Jerusalem":"IL","Asia/Karachi":"PK","Asia/Kolkata":"IN","Asia/Kuala_Lumpur":"MY","Asia/Kuwait":"KW","Asia/Manila":"PH","Asia/Qatar":"QA","Asia/Riyadh":"SA","Asia/Seoul":"KR","Asia/Shanghai":"CN","Asia/Saigon":"VN","Asia/Singapore":"SG","Asia/Taipei":"TW","Asia/Tel_Aviv":"IL","Asia/Tokyo":"JP","Asia/Urumqi":"CN","Atlantic/Reykjavik":"IS","Australia/Adelaide":"AU","Australia/Brisbane":"AU","Australia/Darwin":"AU","Australia/Hobart":"AU","Australia/Melbourne":"AU","Australia/Perth":"AU","Australia/Sydney":"AU","Europe/Amsterdam":"NL","Europe/Athens":"GR","Europe/Belgrade":"RS","Europe/Berlin":"DE","Europe/Bratislava":"SK","Europe/Brussels":"BE","Europe/Bucharest":"RO","Europe/Budapest":"HU","Europe/Copenhagen":"DK","Europe/Dublin":"IE","Europe/Helsinki":"FI","Europe/Zagreb":"HR","Europe/Istanbul":"TR","Europe/Kiev":"UA","Europe/Kyiv":"UA","Europe/Lisbon":"PT","Europe/Ljubljana":"SI","Europe/London":"GB","Europe/Luxembourg":"LU","Europe/Madrid":"ES","Europe/Moscow":"RU","Europe/Oslo":"NO","Europe/Paris":"FR","Europe/Prague":"CZ","Europe/Riga":"LV","Europe/Rome":"IT","Europe/Sofia":"BG","Europe/Stockholm":"SE","Europe/Tallinn":"EE","Europe/Vienna":"AT","Europe/Vilnius":"LT","Europe/Warsaw":"PL","Europe/Zurich":"CH","Pacific/Auckland":"NZ"};function xt(e){let t=e.toUpperCase();return/^[A-Z]{2}$/.test(t)?String.fromCodePoint(...[...t].map(r=>127462+r.charCodeAt(0)-65)):"\u{1F3F3}\uFE0F"}function Ue(e){return e?Rn.get(e.toUpperCase()):void 0}function Lr(e){return Ue(e?Dn[e]:void 0)}function Un(e){let t;for(let r of q)e.startsWith(r.dialCode)&&(!t||r.dialCode.length>t.dialCode.length)&&(t=r);return t}function W(e){return e.replace(/[^\d]/g,"")}function je(e,t){let r=W(t);if(!r)return"";let n=e?.groups?.length?e.groups:[],o=[],i=0;for(let s of n){if(i>=r.length)break;o.push(r.slice(i,i+s)),i+=s}for(;i<r.length;)o.push(r.slice(i,i+3)),i+=3;return o.join(" ")}function Or(e,t){let r=W(t);return r?`+${e.dialCode}${r}`:""}function Be(e,t){let r=(e??"").trim(),n=r.startsWith("+"),o=W(r);if(!o)return{country:t,national:"",e164:""};if(n){let i=Un(o);if(i){let s=o.slice(i.dialCode.length);return{country:i,national:s,e164:`+${o}`}}return{national:o,e164:`+${o}`}}if(t){let i=o.startsWith(t.dialCode)?o.slice(t.dialCode.length):o;return{country:t,national:i,e164:`+${t.dialCode}${i}`}}return{national:o,e164:`+${o}`}}function jn(e){let{country:t,national:r,e164:n}=Be(e);if(!n)return!1;let o=W(n).length;return o<8||o>15?!1:t?.lengths.length?t.lengths.includes(r.length):r.length>=4}var Bn=me({fileId:N().check(ae(1)),name:N(),size:_r().check(at()),mime:N(),url:O(N())});function Rr(e){return e==null?!0:typeof e=="string"?e.trim()==="":Array.isArray(e)?e.length===0:typeof e=="boolean"?e===!1:typeof e=="object"?Object.keys(e).length===0:!1}function Dr(e,t){if(Rr(t))return e.required?"This field is required":null;switch(e.kind){case"short_text":case"long_text":{if(typeof t!="string")return"Expected text";if(e.maxLength&&t.length>e.maxLength)return`Must be at most ${e.maxLength} characters`;let r=e.kind==="long_text"?2e4:2e3;return!e.maxLength&&t.length>r?"Answer is too long":null}case"email":return Fe().safeParse(t).success?null:"Enter a valid email address";case"url":{if(typeof t!="string")return"Enter a valid URL (including https://)";try{let r=new URL(t);if(r.protocol!=="http:"&&r.protocol!=="https:")return"Enter an http(s) URL"}catch{return"Enter a valid URL (including https://)"}return null}case"phone":return typeof t!="string"||!jn(t)?"Enter a valid phone number":null;case"number":{let r=typeof t=="string"?Number(t):t;return typeof r!="number"||!Number.isFinite(r)?"Enter a number":e.min!==void 0&&r<e.min?`Must be at least ${e.min}`:e.max!==void 0&&r>e.max?`Must be at most ${e.max}`:null}case"select":case"dropdown":return typeof t!="string"||t===""?"Pick an option":e.options.some(r=>r.id===t)||e.allowOther&&t.length<=500?null:"Pick a valid option";case"multi_select":{if(!Array.isArray(t))return"Pick at least one option";let r=new Set(e.options.map(i=>i.id)),n=t,o=0;for(let i of n)if(!r.has(i)){if(e.allowOther!==!0||typeof i!="string"||i.length===0||i.length>500)return"Pick valid options";if(++o>1)return"Only one 'Other' answer is allowed"}return null}case"checkbox":return typeof t=="boolean"?null:"Invalid value";case"rating":{let r=e.max??5,n=typeof t=="string"?Number(t):t;return typeof n!="number"||!Number.isInteger(n)||n<1||n>r?`Pick a rating between 1 and ${r}`:null}case"linear_scale":{let r=e.min??1,n=e.max??10,o=typeof t=="string"?Number(t):t;return typeof o!="number"||!Number.isInteger(o)||o<r||o>n?`Pick a value between ${r} and ${n}`:null}case"ranking":{if(!Array.isArray(t))return"Drag the options into order";let r=e.options.map(o=>o.id).sort(),n=[...t].sort();return r.length!==n.length||r.some((o,i)=>o!==n[i])?"Rank every option":null}case"matrix":{if(typeof t!="object"||t===null||Array.isArray(t))return"Answer the grid";let r=t,n=new Set(e.columns.map(i=>i.id)),o=new Set(e.rows.map(i=>i.id));for(let[i,s]of Object.entries(r))if(!o.has(i)||!n.has(s))return"Invalid grid answer";return e.required&&Object.keys(r).length<e.rows.length?"Answer every row":null}case"signature":return typeof t!="string"||!t.startsWith("data:image/")?"Sign in the box":null;case"hidden":return typeof t=="string"?null:"Invalid value";case"custom":return null;case"date":{if(typeof t!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(t))return"Enter a valid date";let[r,n,o]=t.split("-").map(Number),i=new Date(Date.UTC(r,n-1,o));return i.getUTCFullYear()!==r||i.getUTCMonth()!==n-1||i.getUTCDate()!==o?"Enter a valid date":null}case"file_upload":{let r=ee(Bn).safeParse(t);if(!r.success)return"Upload did not complete";let n=e.maxFiles??1;return r.data.length>n?`At most ${n} file${n===1?"":"s"}`:null}}}function Ur(e,t){let r=De(e,t),n={},o={};for(let i of r){let s=Vn(i,t[i.id]),a=Dr(i,s);a?n[i.id]=a:Rr(s)||(o[i.id]=s)}return{ok:Object.keys(n).length===0,errors:n,data:o}}function Vn(e,t){if(t==null)return t;if(e.kind==="number"&&typeof t=="string"&&t.trim()!==""){let r=Number(t);return Number.isNaN(r)?t:r}if((e.kind==="rating"||e.kind==="linear_scale")&&typeof t=="string"){let r=Number(t);return Number.isNaN(r)?t:r}return typeof t=="string"?t.trim():t}var Hn=["short_text","long_text","email","url","phone","number","select","multi_select","dropdown","checkbox","rating","linear_scale","ranking","matrix","signature","date","file_upload","hidden","custom"],Kn=["heading","paragraph","divider"],qn=[...Hn,...Kn],wt=N().check(ae(1),I(128)),pt=ct({id:wt,label:N().check(I(1e3)),icon:O(Ie())}),Wn=ct({id:wt,kind:$r(qn),label:O(N().check(I(2e3))),options:O(ee(pt).check(I(200))),rows:O(ee(pt).check(I(200))),columns:O(ee(pt).check(I(200)))}),Gn=me({id:wt,title:O(N().check(I(500))),blocks:ee(Wn).check(I(500))}),Jn=me({version:zr(1),title:ut(O(N().check(I(2e3))),""),description:O(N().check(I(5e3))),pages:ee(Gn).check(ae(1),I(50)),settings:ut(O(wr(N(),Ie())),{})}),Xn=1,vt=1,yt="0.5.0";function V(e,t,r=""){return typeof e=="string"?e.trim().slice(0,t):r}function F(e,t){let r=V(e,t);return r===""?void 0:r}function ve(e){return typeof e=="boolean"?e:void 0}function be(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function ne(e,t,r,n){let o=be(e);return o===void 0?n:Math.max(t,Math.min(r,Math.round(o)))}function Ne(e,t=200){return Array.isArray(e)?e.slice(0,t).flatMap(r=>{if(!r||typeof r!="object")return[];let n=r,o=V(n.id,128),i=V(n.label,1e3),s=n.icon==="thumbs_up"||n.icon==="thumbs_down"?n.icon:void 0;return o&&i?[S({id:o,label:i,icon:s})]:[]}):[]}function Yn(e){if(!Array.isArray(e))return;let t=e.slice(0,20).flatMap(r=>{if(!r||typeof r!="object")return[];let n=r,o=n.op;if(o!=="eq"&&o!=="neq"&&o!=="contains"&&o!=="gt"&&o!=="lt"&&o!=="answered"&&o!=="not_answered")return[];let i=V(n.fieldId,128);if(!i)return[];let s=n.value,a=typeof s=="string"||typeof s=="number"||typeof s=="boolean"?s:void 0;return[{fieldId:i,op:o,...a!==void 0?{value:a}:{}}]});return t.length?t:void 0}function jr(e){return{id:V(e.id,128),visibleIf:Yn(e.visibleIf)}}function M(e,t){return{...jr(e),kind:t,label:V(e.label,2e3,"Untitled field"),description:F(e.description,5e3),required:ve(e.required),placeholder:F(e.placeholder,500)}}function Qn(e){let t=F(e,2e3);if(t)try{let r=new URL(t);return r.protocol==="http:"||r.protocol==="https:"?t:void 0}catch{return}}function eo(e){let t=e&&typeof e=="object"?e:{},r=t.submitMode==="button"||t.submitMode==="auto"?t.submitMode:void 0,n=t.submissionLimit==="once_per_visitor"||t.submissionLimit==="multiple"?t.submissionLimit:void 0;return{submitMode:r,submitLabel:F(t.submitLabel,100),successTitle:F(t.successTitle,200),successMessage:F(t.successMessage,5e3),redirectUrl:Qn(t.redirectUrl),showProgress:ve(t.showProgress),submissionLimit:n,notifyEmail:Fe().check(I(254)).safeParse(t.notifyEmail).success?t.notifyEmail:void 0,sendReceipt:ve(t.sendReceipt)}}function S(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function to(e){if(!e||typeof e!="object")return null;let t=e,r=t.kind,n=jr(t);if(!n.id||typeof r!="string")return null;switch(r){case"heading":return S({...n,kind:r,text:V(t.text,2e3,"Section")});case"paragraph":return S({...n,kind:r,text:V(t.text,5e3)});case"divider":return S({...n,kind:r});case"short_text":case"email":case"url":return S({...M(t,r),maxLength:be(t.maxLength)===void 0?void 0:ne(t.maxLength,1,2e3,2e3)});case"phone":{let o=F(t.defaultCountry,2)?.toUpperCase();return S({...M(t,r),defaultCountry:o&&/^[A-Z]{2}$/.test(o)?o:void 0})}case"long_text":return S({...M(t,r),maxLength:be(t.maxLength)===void 0?void 0:ne(t.maxLength,1,2e4,2e4)});case"number":return S({...M(t,r),min:be(t.min),max:be(t.max)});case"select":case"multi_select":case"dropdown":{let o=Ne(t.options);return o.length===0?null:S({...M(t,r),options:o,allowOther:ve(t.allowOther),shuffleOptions:ve(t.shuffleOptions)})}case"checkbox":{let o=t.appearance==="toggle"?"toggle":void 0;return S({...M(t,r),appearance:o})}case"signature":case"date":return S(M(t,r));case"rating":return S({...M(t,r),max:ne(t.max,1,10,5)});case"linear_scale":{let o=ne(t.min,0,9,1),i=ne(t.max,o+1,10,10);return S({...M(t,r),min:o,max:i,minLabel:F(t.minLabel,100),maxLabel:F(t.maxLabel,100)})}case"ranking":{let o=Ne(t.options);return o.length<2?null:S({...M(t,r),options:o})}case"matrix":{let o=Ne(t.rows),i=Ne(t.columns);return o.length===0||i.length===0?null:S({...M(t,r),rows:o,columns:i})}case"hidden":return S({...M(t,r),required:!1,paramName:F(t.paramName,128),defaultValue:F(t.defaultValue,1e3)});case"file_upload":return S({...M(t,r),maxFiles:ne(t.maxFiles,1,20,1),maxFileSizeMb:ne(t.maxFileSizeMb,1,5e3,500),accept:Array.isArray(t.accept)?t.accept.flatMap(o=>{let i=F(o,100);return i?[i]:[]}).slice(0,50):void 0});case"custom":return S({...M(t,r),component:V(t.component,128),config:t.config&&typeof t.config=="object"&&!Array.isArray(t.config)?t.config:void 0});default:return null}}function ye(e){let t=Jn.safeParse(e);if(!t.success){let s=t.error.issues[0],a=s?.path.join(".");return{ok:!1,error:s?`${a?`${a}: `:""}${s.message}`:"Invalid schema"}}if(t.data.version>Xn)return{ok:!1,error:`Unsupported schema version: ${t.data.version}`};let r=t.data.pages.map(s=>{let a=s.blocks.flatMap(c=>{let u=to(c);return u?[u]:[]});return S({id:s.id,title:F(s.title,500),blocks:a})}),n=new Set;for(let s of r)for(let a of s.blocks){if(n.has(a.id))return{ok:!1,error:`Duplicate block id: ${a.id}`};n.add(a.id)}if(r.every(s=>s.blocks.length===0))return{ok:!1,error:"Schema must contain at least one valid block"};let o={version:vt,title:V(t.data.title,2e3),pages:r,settings:eo(t.data.settings)},i=F(t.data.description,5e3);return i&&(o.description=i),{ok:!0,schema:o}}function he(e,t){let r=F(e,t);if(r&&!(/[;{}<>]/.test(r)||/url\s*\(/i.test(r)))return r}function $t(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,r=t.colorScheme==="light"||t.colorScheme==="dark"||t.colorScheme==="auto"?t.colorScheme:void 0,n=S({colorScheme:r,primary:he(t.primary,200),background:he(t.background,200),text:he(t.text,200),radius:he(t.radius,64),fontFamily:he(t.fontFamily,200)});return Object.keys(n).length>0?n:null}var ro="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",Vc=256-256%ro.length;var Br=class{h0=1732584193;h1=4023233417;h2=2562383102;h3=271733878;h4=3285377520;block=new Uint8Array(64);blockLen=0;totalLen=0;w=new Int32Array(80);update(e){this.totalLen+=e.length;let t=0;if(this.blockLen>0){for(;t<e.length&&this.blockLen<64;)this.block[this.blockLen++]=e[t++];this.blockLen===64&&(this.process(this.block),this.blockLen=0)}for(;t+64<=e.length;)this.process(e.subarray(t,t+64)),t+=64;for(;t<e.length;)this.block[this.blockLen++]=e[t++];return this}digest(){let e=Math.floor(this.totalLen/536870912),t=this.totalLen*8>>>0,r=[128],n=this.blockLen+1;for(;n%64!==56;)r.push(0),n++;r.push(e>>>24&255,e>>>16&255,e>>>8&255,e&255),r.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255),this.update(new Uint8Array(r));let o=new Uint8Array(20),i=[this.h0,this.h1,this.h2,this.h3,this.h4];for(let s=0;s<5;s++)o[s*4]=i[s]>>>24&255,o[s*4+1]=i[s]>>>16&255,o[s*4+2]=i[s]>>>8&255,o[s*4+3]=i[s]&255;return o}process(e){let t=this.w;for(let a=0;a<16;a++)t[a]=e[a*4]<<24|e[a*4+1]<<16|e[a*4+2]<<8|e[a*4+3];for(let a=16;a<80;a++){let c=t[a-3]^t[a-8]^t[a-14]^t[a-16];t[a]=c<<1|c>>>31}let r=this.h0,n=this.h1,o=this.h2,i=this.h3,s=this.h4;for(let a=0;a<80;a++){let c,u;a<20?(c=n&o|~n&i,u=1518500249):a<40?(c=n^o^i,u=1859775393):a<60?(c=n&o|n&i|o&i,u=2400959708):(c=n^o^i,u=3395469782);let l=(r<<5|r>>>27)+c+s+u+t[a]|0;s=i,i=o,o=n<<30|n>>>2,n=r,r=l}this.h0=this.h0+r|0,this.h1=this.h1+n|0,this.h2=this.h2+o|0,this.h3=this.h3+i|0,this.h4=this.h4+s|0}},Me="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function zt(e){let t="";for(let r=0;r<e.length;r+=3){let n=e[r],o=r+1<e.length?e[r+1]:0,i=r+2<e.length?e[r+2]:0;t+=Me[n>>2],t+=Me[(n&3)<<4|o>>4],t+=r+1<e.length?Me[(o&15)<<2|i>>6]:"=",t+=r+2<e.length?Me[i&63]:"="}return t}var no=e=>zt(new Br().update(e).digest()),w=class extends Error{constructor(e,t,r){super(e),this.status=t,this.retryAfterSec=r,this.name="FilloError"}status;retryAfterSec};function Re(e){return e instanceof Error&&e.name==="FilloError"}async function Er(e,t){try{let r=await e.json();if(typeof r.error=="string"&&r.error)return r.error}catch{}return t}function Ar(e){let t=Number(e.headers.get("retry-after"));return Number.isFinite(t)&&t>0?t:void 0}var Te=3,ge=3e4;function Le(e){return e>=500||e===429||e===408}function Sr(e){return e instanceof DOMException&&e.name==="TimeoutError"?new w("Request timed out",0):e}function oo(e,t){let r=e.split(".").map(o=>Number(o)||0),n=t.split(".").map(o=>Number(o)||0);for(let o=0;o<Math.max(r.length,n.length);o++){let i=(r[o]??0)-(n[o]??0);if(i!==0)return i}return 0}function io(e){if(e.schemaVersion!==void 0&&e.schemaVersion!==vt)throw new w(`This form uses schema version ${e.schemaVersion}; this SDK supports version ${vt}. Update @usefillo/* to render it.`,426);if(e.minSdkVersion&&oo(yt,e.minSdkVersion)<0)throw new w(`This form requires @usefillo/* ${e.minSdkVersion} or newer. Current SDK is ${yt}.`,426)}function ft(e,t){return r=>t.onProgress?.({uploadedBytes:r,totalBytes:e,fraction:e===0?1:r/e})}async function so(e){let t=globalThis.crypto?.subtle;if(t){let r=await t.digest("SHA-1",e);return zt(new Uint8Array(r))}return no(e)}var ao="https://fillo.so",Cr={"X-Fillo-Client":`@usefillo/core@${yt}`},Ve=class{baseUrl;fetch;key;constructor(e={}){this.baseUrl=e.baseUrl?e.baseUrl.replace(/\/$/,""):e.sameOrigin?"":ao,this.key=e.key,this.fetch=e.fetch??((...t)=>globalThis.fetch(...t))}url(e){return`${this.baseUrl}/api/v1${e}`}async json(e,t){let r=t?.body!=null?{"Content-Type":"application/json",...Cr,...t?.headers}:t?.headers,n;try{n=await this.fetch(this.url(e),{...t,headers:r,signal:t?.signal??AbortSignal.timeout(ge)})}catch(o){throw Sr(o)}if(!n.ok){let o=await Er(n,`Request failed: ${n.status}`);throw new w(o,n.status,Ar(n))}return await n.json()}async getForm(e){let t=await this.json(`/forms/${encodeURIComponent(e)}`);return io(t),t}syncForm(e,t,r){if(!this.key)return Promise.reject(new w("createClient needs a `key` (pk_\u2026) to sync code-defined forms",401));let n=ye(t);return n.ok?this.json("/forms/sync",{method:"POST",body:JSON.stringify({key:this.key,id:e,schema:n.schema,theme:$t(r)})}):Promise.reject(new w(`Invalid form schema: ${n.error}`,400))}async submit(e,t,r){let n;try{n=await this.fetch(this.url(`/forms/${encodeURIComponent(e)}/responses`),{method:"POST",headers:{"Content-Type":"application/json",...Cr},body:JSON.stringify({data:t,meta:r}),signal:AbortSignal.timeout(ge)})}catch(i){throw Sr(i)}if(n.status===422)return{ok:!1,errors:(await n.json()).errors};if(!n.ok){let i=await Er(n,`Submit failed: ${n.status}`);throw new w(i,n.status,Ar(n))}let o=await n.json();return{ok:!0,responseId:o.id,duplicate:o.duplicate}}async startSession(e,t){try{let r=await this.fetch(this.url(`/forms/${encodeURIComponent(e)}/sessions`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pageCount:t}),signal:AbortSignal.timeout(ge)});return r.ok?(await r.json()).id:null}catch{return null}}reportProgress(e,t){try{this.fetch(this.url(`/sessions/${encodeURIComponent(e)}/progress`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),keepalive:!0,signal:AbortSignal.timeout(ge)}).catch(()=>{})}catch{}}getUploadSession(e,t){return this.json(`/uploads/${encodeURIComponent(e)}`,t?{headers:{"X-Fillo-Upload-Token":t}}:void 0)}async uploadFile(e,t,r){let n=t instanceof File?t.name:"upload.bin",o=t.type||"application/octet-stream",i;r.sessionId?i=await this.getUploadSession(r.sessionId,r.uploadToken):i=await this.json(`/forms/${encodeURIComponent(e)}/uploads`,{method:"POST",body:JSON.stringify({fieldId:r.fieldId,fileName:n,size:t.size,mime:o})});let s;if(i.transport?.type==="gdrive")await this.driveUploadLoop(i,i.transport.uploadUrl,t,r);else if(i.transport?.type==="s3-put")await this.s3PutUpload(i.transport.uploadUrl,t,r);else if(i.transport?.type==="box")s=await this.boxUpload(i.transport,t,r);else throw new w("This form's storage doesn't support uploads \u2014 connect Drive, S3, or Box.");let a=await this.json(`/uploads/${encodeURIComponent(i.id)}/complete`,{method:"POST",headers:i.token?{"X-Fillo-Upload-Token":i.token}:void 0,...s?{body:JSON.stringify(s)}:{}});if(!a.file)throw new w("Upload completed but no file was returned");return a.file}async boxUpload(e,t,r){let n=ft(t.size,r);n(0);let o={Authorization:`Bearer ${e.token}`};if(e.mode==="simple"){let f=new FormData;f.append("attributes",JSON.stringify({name:e.fileName,parent:{id:e.folderId}})),f.append("file",t,e.fileName);let h=await this.retry(r,async()=>{let b=await this.fetch(e.uploadUrl,{method:"POST",headers:o,body:f,signal:this.uploadSignal(r)});if(!b.ok&&Le(b.status))throw new w(`Box upload failed: ${b.status}`,b.status);return b});if(!h.ok)throw new w(`Box upload failed: ${h.status}`,h.status);let g=await h.json();return n(t.size),{providerFileId:g.entries?.[0]?.id}}if(e.size!==t.size)throw new w(`File size changed since the upload was requested (${t.size} vs ${e.size}).`,400);let i=await this.retry(r,async()=>{let f=await this.fetch(e.sessionUrl,{method:"POST",headers:{...o,"Content-Type":"application/json"},body:JSON.stringify({folder_id:e.folderId,file_size:e.size,file_name:e.fileName}),signal:this.uploadSignal(r)});if(!f.ok&&Le(f.status))throw new w(`Box session failed: ${f.status}`,f.status);return f});if(!i.ok)throw new w(`Box session failed: ${i.status}`,i.status);let s=await i.json(),a=new Br,c=[],u=0;for(;u<t.size;){r.signal?.throwIfAborted();let f=Math.min(u+s.part_size,t.size),h=new Uint8Array(await t.slice(u,f).arrayBuffer());a.update(h);let g=await so(h),b=await this.retry(r,async()=>{let E=await this.fetch(s.session_endpoints.upload_part,{method:"PUT",headers:{...o,"Content-Type":"application/octet-stream",Digest:`sha=${g}`,"Content-Range":`bytes ${u}-${f-1}/${t.size}`},body:h,signal:this.uploadSignal(r)});if(!E.ok&&Le(E.status))throw new w(`Box part failed: ${E.status}`,E.status);return E});if(!b.ok)throw new w(`Box part failed: ${b.status}`,b.status);c.push((await b.json()).part),u=f,n(u)}let l=await this.retry(r,async()=>{let f=await this.fetch(s.session_endpoints.commit,{method:"POST",headers:{...o,"Content-Type":"application/json",Digest:`sha=${zt(a.digest())}`},body:JSON.stringify({parts:c}),signal:this.uploadSignal(r)});if(!f.ok&&Le(f.status))throw new w(`Box commit failed: ${f.status}`,f.status);return f});if(!l.ok)throw new w(`Box commit failed: ${l.status}`,l.status);return{providerFileId:(await l.json()).entries?.[0]?.id}}uploadSignal(e){let t=AbortSignal.timeout(ge);return e.signal?AbortSignal.any([e.signal,t]):t}async retry(e,t){let r=0;for(;;)try{return await t()}catch(n){if(e.signal?.aborted||(r+=1,r>=Te))throw n;await new Promise(o=>setTimeout(o,500*2**r))}}async driveUploadLoop(e,t,r,n){let o=e.uploadedBytes,i=ft(r.size,n);i(o);let s=0;for(;o<r.size;){n.signal?.throwIfAborted();let a=o,c=Math.min(o+e.chunkSize,r.size),u=r.slice(o,c),l=0;for(;;)try{let p=await this.fetch(t,{method:"PUT",headers:{"Content-Range":`bytes ${o}-${c-1}/${r.size}`},body:u,signal:this.uploadSignal(n)});if(p.status===308){let f=p.headers.get("Range")??p.headers.get("range"),h=f?.match(/bytes=0-(\d+)/);h?o=Number(h[1])+1:f==null?o=0:o=(await this.getUploadSession(e.id,e.token)).uploadedBytes;break}if(p.ok){o=r.size;break}throw new w(`Drive chunk failed: ${p.status}`,p.status)}catch(p){if(n.signal?.aborted||(l+=1,l>=Te))throw p;if(await new Promise(h=>setTimeout(h,500*2**l)),o=(await this.getUploadSession(e.id,e.token)).uploadedBytes,o>=r.size)break;c=Math.min(o+e.chunkSize,r.size),u=r.slice(o,c)}if(i(o),o<=a){if(++s>=Te)throw new w("Drive upload stalled \u2014 the storage endpoint stopped accepting progress",0)}else s=0}}async s3PutUpload(e,t,r){let n=ft(t.size,r);n(0);let o=0;for(;;)try{let i=await this.fetch(e,{method:"PUT",headers:{"Content-Type":t.type||"application/octet-stream"},body:t,signal:this.uploadSignal(r)});if(!i.ok)throw new w(`S3 upload failed: ${i.status}`,i.status);n(t.size);return}catch(i){if(r.signal?.aborted||(o+=1,o>=Te))throw i;await new Promise(s=>setTimeout(s,500*2**o))}}};function _e(e={}){return new Ve(e)}function mt(e){let t=e.trim();if(!/^-?\d*\.?\d+$/.test(t))return null;let r=Number(t);return Number.isFinite(r)?r:null}function co(e,t){let r={};for(let n of _t(e)){let o=n.kind==="hidden"?t[n.paramName??n.id]??n.defaultValue:t[n.id];if(!(o===void 0||o===""))switch(n.kind){case"number":{let i=mt(o);if(i===null||n.min!==void 0&&i<n.min||n.max!==void 0&&i>n.max)break;r[n.id]=i;break}case"rating":{let i=mt(o);i!==null&&Number.isInteger(i)&&i>=1&&i<=(n.max??5)&&(r[n.id]=i);break}case"linear_scale":{let i=mt(o),s=n.min??1,a=n.max??10;i!==null&&Number.isInteger(i)&&i>=s&&i<=a&&(r[n.id]=i);break}case"checkbox":r[n.id]=o==="true"||o==="1"||o==="yes";break;case"select":case"dropdown":{n.options.some(i=>i.id===o)&&(r[n.id]=o);break}case"multi_select":{let i=new Set(n.options.map(a=>a.id)),s=o.split(",").filter(a=>i.has(a));s.length>0&&(r[n.id]=s);break}case"file_upload":case"ranking":case"matrix":case"signature":case"custom":break;default:r[n.id]=o}}return r}var uo={id:"empty",blocks:[]},Zr=!1;function lo(){Zr||(Zr=!0,console.warn("[fillo] This form has no `client`, so responses can't be submitted \u2014 it's render-only. Pass a client (createClient) to collect responses in Fillo, or forward them to your own backend with webhooks: https://fillo.so/docs"))}var Vr=new Map;function Hr(){try{return globalThis.localStorage??null}catch{return null}}function Kr(e){return`fillo:submission:${e}`}function kt(){let e=globalThis.crypto;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);return e?.getRandomValues?(e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")):`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function Et(e){let t=Hr();if(!t)return Vr.get(e)??null;try{let r=JSON.parse(t.getItem(Kr(e))??"null");if(r&&typeof r.key=="string")return r}catch{}return null}function qr(e,t){Vr.set(e,t);let r=Hr();if(r)try{r.setItem(Kr(e),JSON.stringify(t))}catch{}}function po(e){let t=Et(e);if(t?.key)return t.key;let r={key:kt()};return qr(e,r),r.key}function fo(e,t){let r=Et(e);qr(e,{key:r?.key??kt(),submittedAt:new Date().toISOString(),responseId:t})}function Pr(e,t){return e.settings.submissionLimit!=="once_per_visitor"||!t?!1:!!Et(t)?.submittedAt}function Fr(e){return Re(e)&&e.status&&e.status>0&&e.message?e.message:"Couldn't reach the server \u2014 check your connection and try again. If this keeps happening, a browser extension, firewall, or the site's Content-Security-Policy may be blocking the request."}function Wr(e){let{onChange:t,onSubmitted:r}=e,n=ye(e.form);if(!n.ok)throw new Error(`Invalid form schema: ${n.error}`);let o=n.schema,i=e.formId,s=e.client,a={...e.initialData??{}},c={},u=0,l="idle";queueMicrotask(()=>{if(l==="idle"&&Pr(o,i)&&(l="submitted",A()),typeof location<"u"&&location.search){let v=Object.fromEntries(new URLSearchParams(location.search)),y=null;for(let[$,Z]of Object.entries(co(o,v)))a[$]===void 0&&(y=y??{...a},y[$]=Z);y&&l==="idle"&&(a=y,A())}});let p,f=new Set,h=new Set,g=Date.now(),b=kt(),E=null,H=!1;function ie(){let v=o.pages.length,y=Math.min(u,Math.max(v-1,0)),$=o.pages[y]??uo;return{data:a,errors:c,status:l,pageIndex:y,pageCount:v,page:$,blocks:dt($,a),isFirstPage:y===0,isLastPage:y===v-1,uploading:f.size>0,submitError:p}}let U=ie();function A(){U=ie();for(let v of h)v()}function ze(v,y){try{r?.(v,y)}catch($){console.error("[fillo] onSubmitted handler threw:",$)}}function te(v){let y=o.pages[v];if(!y)return{};let $={};for(let Z of dt(y,a)){if(!oe(Z))continue;let z=Dr(Z,a[Z.id]);z&&($[Z.id]=z)}return $}function ke(v,y){!H&&s&&i&&(H=!0,s.startSession(i,o.pages.length).then($=>E=$)),a={...a,[v]:y},t?.(a),p=void 0,v in c&&(c=Object.fromEntries(Object.entries(c).filter(([$])=>$!==v))),A()}function Ee(v,y){y?f.add(v):f.delete(v),A()}function qe(){let v=o.pages.length,y=Math.min(u,Math.max(v-1,0));if(!e.skipValidation){let $=te(y);if(c=$,Object.keys($).length>0){A();return}}u=Math.min(y+1,v-1),E&&s&&s.reportProgress(E,{furthestPage:u}),A()}function x(){c={},u=Math.max(Math.min(u,o.pages.length-1)-1,0),A()}async function T(){if(l==="submitting"||l==="submitted")return;let v=Ur(o,a);if(!v.ok){c=v.errors;let y=o.pages.findIndex($=>dt($,a).some(Z=>Z.id in v.errors));y>=0&&(u=y),A();return}if(s&&!i&&e.resolveFormId){l="submitting",p=void 0,A();try{i=await e.resolveFormId()}catch(y){throw l="idle",p=Fr(y),A(),y}}if(s&&i){let y=o.settings.submissionLimit==="once_per_visitor"?po(i):void 0,$=y??b;l="submitting",p=void 0,A();let Z;try{Z=await s.submit(i,v.data,{hp:e.getHoneypot?.()??"",elapsedMs:Date.now()-g,surface:e.surface??"headless",submissionKey:$})}catch(z){throw l="idle",p=Fr(z),A(),z}if(!Z.ok){c=Z.errors??{},l="idle",A();return}E&&s.reportProgress(E,{completed:!0}),y&&fo(i,Z.responseId),l="submitted",A(),ze(Z.responseId,v.data);return}if(e.skipValidation){l="submitted",A(),ze(void 0,v.data);return}lo(),l="error",A()}return{getState:()=>U,subscribe(v){return h.add(v),()=>{h.delete(v)}},setValue:ke,setUploading:Ee,next:qe,back:x,submit:T,setContext(v){if("formId"in v&&(i=v.formId),"client"in v&&(s=v.client),v.form&&v.form!==o){let y=ye(v.form);if(!y.ok)throw new Error(`Invalid form schema: ${y.error}`);o=y.schema}l==="idle"&&Pr(o,i)&&(l="submitted"),A()},destroy(){h.clear()}}}function mo(e){return oe(e)&&(e.kind==="select"||e.kind==="dropdown"||e.kind==="checkbox"||e.kind==="rating"||e.kind==="linear_scale")}function Gr(e){let t=e.filter(r=>!(oe(r)&&r.kind==="hidden"));return t.length===0?!1:t.length>1?!0:!mo(t[0])}function Jr(e,t,r){if(r.form.settings.submitMode!=="auto"||!r.isLastPage||r.status!=="idle"||r.uploading||!(()=>{switch(e.kind){case"select":case"dropdown":return typeof t=="string"&&e.options.some(s=>s.id===t);case"checkbox":return t===!0;case"rating":case"linear_scale":return typeof t=="number";default:return!1}})()||t===r.data[e.id])return!1;let o={...r.data,[e.id]:t},i=De(r.form,o).filter(s=>s.kind!=="hidden");return i.length!==1||i[0]?.id!==e.id?!1:Ur(r.form,o).ok}function At(e){return{id:e.id,theme:e.theme,schema:{version:1,title:e.title??"",description:e.description,pages:e.pages,settings:e.settings??{}},__filloCodeForm:!0}}function St(e){return typeof e=="object"&&e!==null&&"__filloCodeForm"in e}var Oe=new Map,ho=e=>new Promise(t=>setTimeout(t,e));async function go(e,t){let r=800;for(let n=0;;n++)try{return await e.syncForm(t.id,t.schema,t.theme??null)}catch(o){let i=Re(o)?o.status??0:0;if(!(!Re(o)||i===0||i===408||i===429||i>=500)||n>=2)throw o;let a=Re(o)?o.retryAfterSec:void 0;await ho(Math.min(a?a*1e3:r*(1+Math.random()*.5),15e3)),r*=2}}function bo(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r)|0;return(t>>>0).toString(36)}function Xr(e,t){return`fillo:sync:${e.baseUrl}|${e.key}|${t}`}function vo(e,t,r){try{let n=globalThis.localStorage?.getItem(Xr(e,t));if(!n)return null;let o=JSON.parse(n);if(typeof o.formId!="string"||o.hash!==r||typeof o.ts!="number")return null;let i=o.status==="published"?36e5:6e4;return Date.now()-o.ts>i?null:o}catch{return null}}function yo(e,t,r,n){try{globalThis.localStorage?.setItem(Xr(e,t),JSON.stringify({formId:n.formId,slug:n.slug,status:n.status,hash:r,ts:Date.now()}))}catch{}}function Ct(e,t,r){let n=JSON.stringify(t.schema)+JSON.stringify(t.theme??null),o=bo(n),i=`${e.baseUrl}:${e.key}:${t.id}:${o}`,s=Oe.get(i);if(s&&!r?.bypassCache)return s;if(!r?.bypassCache){let a=vo(e,t.id,o);if(a)return s=Promise.resolve({formId:a.formId,slug:a.slug,status:a.status}),Oe.set(i,s),s}return s=go(e,t).then(a=>(yo(e,t.id,o,a),a)),Oe.set(i,s),s.catch(()=>Oe.delete(i)),s}var _o=class extends Error{constructor(e,t){super(`[fillo] ${t} \u2014 https://fillo.so/docs/troubleshooting#jsx-${e.toLowerCase()}`),this.code=e,this.name="FilloJsxError"}code},xo=Symbol.for("fillo.block");var wo=["label","description","required","placeholder"],C=(e,t,r,n={})=>({name:e,kind:t,props:[...wo,...r],...n}),Ir=(e,t,r)=>({name:e,kind:t,props:r?["text"]:[],textChildren:r,content:!0}),ht=["options","allowOther","shuffleOptions"],$o=[C("Text","short_text",["maxLength"]),C("LongText","long_text",["maxLength"]),C("Email","email",["maxLength"]),C("Url","url",["maxLength"]),C("Phone","phone",["defaultCountry"]),C("Number","number",["min","max"]),C("Select","select",ht,{optionChildren:!0}),C("MultiSelect","multi_select",ht,{optionChildren:!0}),C("Dropdown","dropdown",ht,{optionChildren:!0}),C("Checkbox","checkbox",["appearance"]),C("Rating","rating",["max"]),C("Scale","linear_scale",["min","max","minLabel","maxLabel"]),C("Ranking","ranking",["options"],{optionChildren:!0}),C("Matrix","matrix",["rows","columns"]),C("Signature","signature",[]),C("Date","date",[]),C("FileUpload","file_upload",["maxFiles","maxFileSizeMb","accept"]),C("Hidden","hidden",["paramName","defaultValue"]),C("Custom","custom",["component","config"]),Ir("Heading","heading",!0),Ir("Paragraph","paragraph",!0),{name:"Divider",kind:"divider",props:[],content:!0}],zo={name:"Page",kind:"__page",props:["title"]},ko={name:"Option",kind:"__option",props:["label","icon"]};function gt(e){let t=()=>{throw new _o("RENDERED_INERT",`<Fillo.${e.name}> was rendered by React. Fillo fields are schema declarations, valid only inside <Fillo.Form> or Fillo.defineForm(). If this form lives in a server component, move it to a client module ("use client")`)};return t[xo]=e,t}var Hc=Object.fromEntries([...$o.map(e=>[e.name,gt(e)]),["Page",gt(zo)],["Option",gt(ko)]]);var Eo=/\{\{\s*([\w-]+)\s*\}\}/g;function bt(e,t,r){if(!e.includes("{{"))return e;let n=_t(r);return e.replace(Eo,(o,i)=>{let s=n.find(u=>u.id===i),a=t[i];if(a==null||a==="")return"";let c=u=>s&&"options"in s?s.options.find(l=>l.id===u)?.label??u:u;return Array.isArray(a)?a.map(u=>c(String(u))).join(", "):typeof a=="string"?c(a):String(a)})}function Yr(e,t,r){let n=o=>o===void 0?o:bt(o,t,r);switch(e.kind){case"heading":case"paragraph":return{...e,text:bt(e.text,t,r)};case"divider":return e;default:return{...e,label:bt(e.label,t,r),description:n(e.description)}}}var Ao="fillo-",So=0,Qr='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';function Co(e,t){let r=`${Ao}${e}-${t}`;return{inputId:r,labelId:`${r}-label`,descriptionId:`${r}-desc`,errorId:`${r}-error`,name:r}}function d(e,t={}){let r=document.createElement(e);t.className&&(r.className=t.className),t.text!==void 0&&(r.textContent=t.text);for(let[n,o]of Object.entries(t.attrs??{}))r.setAttribute(n,o);return r}function xe(e,t){let r=$t(t);r&&(r.colorScheme&&e.setAttribute("data-fillo-color-scheme",r.colorScheme),r.primary&&e.style.setProperty("--fillo-primary",r.primary),r.background&&e.style.setProperty("--fillo-bg",r.background),r.text&&e.style.setProperty("--fillo-text",r.text),r.radius&&e.style.setProperty("--fillo-radius",r.radius),r.fontFamily&&e.style.setProperty("--fillo-font",r.fontFamily),(r.primary||r.background||r.text)&&e.setAttribute("data-fillo-has-color-theme",""))}function Zo(e){try{if(!e)return null;let t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"?null:t.toString()}catch{return null}}function Po(e){let t=new URL(Zo(e)??"https://fillo.so");return t.searchParams.set("utm_source","form_badge"),t.toString()}function Pt(e){return typeof e=="string"||typeof e=="number"?String(e):""}function k(e,t){for(let r of t)r&&e.appendChild(r);return e}var en="http://www.w3.org/2000/svg",Fo={thumbs_up:"M7 10v10M7 10l4.8-6.1a2 2 0 0 1 3.5 1.7L14.6 10h4.8a2.1 2.1 0 0 1 2 2.5l-1.1 5.4A3 3 0 0 1 17.4 20H7M3 10h4v10H3z",thumbs_down:"M7 14V4M7 14l4.8 6.1a2 2 0 0 0 3.5-1.7L14.6 14h4.8a2.1 2.1 0 0 0 2-2.5l-1.1-5.4A3 3 0 0 0 17.4 4H7M3 4h4v10H3z"};function on(e){if(!e)return null;let t=document.createElementNS(en,"svg");t.setAttribute("class","fillo-option-icon"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.8"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),t.setAttribute("aria-hidden","true");let r=document.createElementNS(en,"path");return r.setAttribute("d",Fo[e]),t.appendChild(r),t}function R(e,t,r,n){r&&e.setAttribute("aria-invalid","true"),t.required&&e.setAttribute("aria-required","true");let o=[t.description?n.descriptionId:null,r?n.errorId:null].filter(Boolean).join(" ");o&&e.setAttribute("aria-describedby",o)}function D(e,t,r,n){let o=d("div",{className:`fillo-field fillo-field--${e.kind}${t?" fillo-field--error":""}`,attrs:{"data-field":e.id}}),i=d("label",{className:"fillo-label",text:e.label,attrs:{id:n.labelId,for:n.inputId}});return e.required||i.appendChild(d("span",{className:"fillo-optional",text:" (optional)"})),o.appendChild(i),e.description&&o.appendChild(d("p",{className:"fillo-description",text:e.description,attrs:{id:n.descriptionId}})),o.appendChild(r),t&&o.appendChild(d("p",{className:"fillo-error",text:t,attrs:{role:"alert",id:n.errorId}})),o}function we(e,t){let r=d("input",{className:"fillo-input",attrs:{id:t.ids.inputId,type:e}});return r.value=Pt(t.value),t.field.placeholder&&(r.placeholder=t.field.placeholder),r.addEventListener("input",()=>t.setValue(r.value,{render:!1})),r.addEventListener("change",()=>t.setValue(r.value)),R(r,t.field,t.error,t.ids),D(t.field,t.error,r,t.ids)}function Io(){if(typeof navigator>"u")return;let t=(navigator.languages?.[0]||navigator.language||"").split("-")[1];return t&&/^[A-Za-z]{2}$/.test(t)?t.toUpperCase():void 0}function No(){if(!(typeof Intl>"u"))try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return typeof e=="string"&&e?e:void 0}catch{return}}function Mo(e,t){if(t<=0)return e.setSelectionRange(0,0);let r=e.value,n=0,o=r.length;for(let i=0;i<r.length;i++)if(/\d/.test(r[i])&&++n===t){o=i+1;break}e.setSelectionRange(o,o)}var To=8;function Lo(e,t){if(typeof window>"u")return"below";let r=To,n=document.documentElement.clientWidth||window.innerWidth,o=document.documentElement.clientHeight||window.innerHeight,i=e.getBoundingClientRect(),s=Math.max(0,o-i.bottom-r),a=Math.max(0,i.top-r),c=s<t.scrollHeight&&a>s?"above":"below",l=Math.max(0,Math.min(c==="above"?a:s,o-r*2)),p=Math.max(0,n-r*2);t.style.setProperty("--fillo-phone-popover-max-height",`${Math.floor(l)}px`),t.style.setProperty("--fillo-phone-popover-max-width",`${Math.floor(p)}px`),t.style.setProperty("--fillo-phone-popover-offset-x","0px");let f=Math.min(t.offsetWidth,p),h=0,g=i.left+f-(n-r);g>0&&(h-=g);let b=r-(i.left+h);return b>0&&(h+=b),t.style.setProperty("--fillo-phone-popover-offset-x",`${Math.round(h)}px`),c}function Oo(e){let t=e.field,r=Be(Pt(e.value)).country??Ue(t.defaultCountry)??Lr(No())??Ue(Io())??q[0],n=d("div",{className:"fillo-phone"}),o=d("div",{className:"fillo-phone-country"}),i=d("button",{className:"fillo-phone-flag",attrs:{type:"button","aria-haspopup":"listbox","aria-expanded":"false"}}),s=d("span",{className:"fillo-phone-flag-emoji",attrs:{"aria-hidden":"true"}}),a=d("span",{className:"fillo-phone-dial"});k(i,[s,a,d("span",{className:"fillo-phone-caret",text:"\u25BE",attrs:{"aria-hidden":"true"}})]),k(o,[i]);let c=d("input",{className:"fillo-input fillo-phone-input",attrs:{id:e.ids.inputId,type:"tel",inputmode:"tel",autocomplete:"tel-national"}});R(c,e.field,e.error,e.ids);let u=()=>{let x=W(Pt(e.value));return x.startsWith(r.dialCode)?x.slice(r.dialCode.length):x},l=()=>{s.textContent=xt(r.iso2),a.textContent=`+${r.dialCode}`,i.setAttribute("aria-label",`Country: ${r.name} (+${r.dialCode})`)},p=()=>{c.value=je(r,u()),c.placeholder=je(r,r.example)},f=x=>e.setValue(x?Or(r,x):"",{render:!1});l(),p(),c.addEventListener("input",()=>{let x=c.value,T=c.selectionStart??x.length,v=W(x.slice(0,T)).length;if(x.trimStart().startsWith("+")){let y=Be(x);y.country&&(r=y.country,l()),f(y.country?y.national:W(x))}else f(W(x));c.value=je(r,u()),Mo(c,v)});let h=e.registerOverlay,g=null,b=0,E=q,H=null,ie=null,U=`${e.ids.inputId}-countries`,A=()=>{if(!g)return;let x=Lo(o,g);g.classList.toggle("fillo-phone-popover--above",x==="above"),g.classList.toggle("fillo-phone-popover--below",x==="below")},ze=()=>{H?.();let x=()=>A();A(),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0),H=()=>{window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}},te=()=>{H?.(),H=null,g?.remove(),g=null,i.setAttribute("aria-expanded","false"),document.removeEventListener("mousedown",ke),ie?.(),ie=null},ke=x=>{o.contains(x.target)||te()},Ee=x=>{x&&(r=x,l(),f(u()),p(),te(),c.focus())},qe=()=>{let x=d("div",{className:"fillo-phone-popover fillo-phone-popover--below"}),T=d("input",{className:"fillo-phone-search",attrs:{type:"text",role:"combobox","aria-expanded":"true","aria-controls":U,"aria-autocomplete":"list",placeholder:"Search country or code"}}),v=d("ul",{className:"fillo-phone-list",attrs:{role:"listbox",id:U,"aria-label":"Country"}}),y=()=>{if(v.replaceChildren(),E.length===0){v.appendChild(d("li",{className:"fillo-phone-empty",text:"No matches"})),A();return}E.forEach((z,j)=>{let G=d("li",{className:`fillo-phone-option${j===b?" fillo-phone-option--active":""}`,attrs:{id:`${U}-opt-${j}`,role:"option","aria-selected":String(z.iso2===r.iso2)}});k(G,[d("span",{className:"fillo-phone-flag-emoji",text:xt(z.iso2),attrs:{"aria-hidden":"true"}}),d("span",{className:"fillo-phone-option-name",text:z.name}),d("span",{className:"fillo-phone-option-dial",text:`+${z.dialCode}`})]),G.addEventListener("mouseenter",()=>{b=j,T.setAttribute("aria-activedescendant",G.id),$()}),G.addEventListener("mousedown",ce=>{ce.preventDefault(),Ee(z)}),v.appendChild(G)}),T.setAttribute("aria-activedescendant",`${U}-opt-${b}`),A()},$=()=>{[...v.children].forEach((z,j)=>z.classList.toggle("fillo-phone-option--active",j===b)),document.getElementById(`${U}-opt-${b}`)?.scrollIntoView({block:"nearest"})},Z=z=>{let j=z.trim().toLowerCase(),G=j.replace(/[^\d]/g,"");E=j?q.filter(ce=>ce.name.toLowerCase().includes(j)||ce.iso2.toLowerCase()===j||G.length>0&&ce.dialCode.startsWith(G)):q,b=0,y()};T.addEventListener("input",()=>Z(T.value)),T.addEventListener("keydown",z=>{z.key==="ArrowDown"?(z.preventDefault(),b=Math.min(b+1,E.length-1),$(),T.setAttribute("aria-activedescendant",`${U}-opt-${b}`)):z.key==="ArrowUp"?(z.preventDefault(),b=Math.max(b-1,0),$(),T.setAttribute("aria-activedescendant",`${U}-opt-${b}`)):z.key==="Enter"?(z.preventDefault(),Ee(E[b])):z.key==="Escape"&&(z.preventDefault(),te(),i.focus())}),k(x,[T,v]),g=x,o.appendChild(x),i.setAttribute("aria-expanded","true"),E=q,b=Math.max(0,q.indexOf(r)),y(),ze(),$(),document.addEventListener("mousedown",ke),ie=h?.(te)??null,requestAnimationFrame(()=>T.focus())};return i.addEventListener("click",()=>g?te():qe()),k(n,[o,c]),D(e.field,e.error,n,e.ids)}function Ro(e){let t=d("textarea",{className:"fillo-input fillo-textarea",attrs:{id:e.ids.inputId,rows:"4"}});return t.value=typeof e.value=="string"?e.value:"",e.field.placeholder&&(t.placeholder=e.field.placeholder),t.addEventListener("input",()=>e.setValue(t.value,{render:!1})),t.addEventListener("change",()=>e.setValue(t.value)),R(t,e.field,e.error,e.ids),D(e.field,e.error,t,e.ids)}function Do(e){let t=e.field,r=It(t),n=typeof e.value=="string"?e.value:"",o=e.activeOtherFields,i=n!==""&&!t.options.some(c=>c.id===n),s=i||n===""&&o?.has(t.id)===!0,a=d("div",{className:"fillo-options",attrs:{role:"radiogroup","aria-labelledby":e.ids.labelId}});R(a,t,e.error,e.ids);for(let c of r){let u=d("label",{className:`fillo-option${c.icon?" fillo-option--has-icon":""}${n===c.id?" fillo-option--selected":""}`,attrs:{"data-option":c.id}}),l=d("input",{className:"fillo-option-input",attrs:{type:"radio",name:e.ids.name}});l.checked=n===c.id,l.addEventListener("change",()=>{o?.delete(t.id),e.setValue(c.id)}),k(u,[l,on(c.icon),d("span",{className:"fillo-option-label",text:c.label})]),a.appendChild(u)}if(t.allowOther){let c=d("label",{className:`fillo-option fillo-option--other${s?" fillo-option--selected fillo-option--with-other":""}`}),u=d("input",{className:"fillo-option-input",attrs:{type:"radio",name:e.ids.name}});if(u.checked=s,u.addEventListener("change",()=>{o?.add(t.id),e.setValue("",{render:!0})}),k(c,[k(d("span",{className:"fillo-option-main"}),[u,d("span",{className:"fillo-option-label",text:"Other"})])]),s){let l=d("input",{className:"fillo-input fillo-other-input",attrs:{type:"text"}});l.value=i?n:"",l.placeholder="Your answer",l.addEventListener("input",()=>{o?.add(t.id),e.setValue(l.value,{render:!1})}),l.addEventListener("change",()=>{o?.add(t.id),e.setValue(l.value)}),c.appendChild(l),i||queueMicrotask(()=>l.focus())}a.appendChild(c)}return D(t,e.error,a,e.ids)}function Uo(e){let t=e.field,r=It(t),n=Array.isArray(e.value)?e.value:[],o=new Set(t.options.map(l=>l.id)),i=n.find(l=>!o.has(l)),s=e.activeOtherFields,a=()=>{let l=e.getValue?.()??e.value;return Array.isArray(l)?l:[]},c=d("div",{className:"fillo-options",attrs:{role:"group","aria-labelledby":e.ids.labelId}});R(c,t,e.error,e.ids);let u=l=>e.setValue(l);for(let l of r){let p=d("label",{className:`fillo-option${l.icon?" fillo-option--has-icon":""}${n.includes(l.id)?" fillo-option--selected":""}`,attrs:{"data-option":l.id}}),f=d("input",{className:"fillo-option-input",attrs:{type:"checkbox"}});f.checked=n.includes(l.id),f.addEventListener("change",()=>{let h=a();u(f.checked?[...h,l.id]:h.filter(g=>g!==l.id))}),k(p,[f,on(l.icon),d("span",{className:"fillo-option-label",text:l.label})]),c.appendChild(p)}if(t.allowOther){let l=i!==void 0||s?.has(t.id)===!0,p=d("label",{className:`fillo-option fillo-option--other${l?" fillo-option--selected fillo-option--with-other":""}`}),f=d("input",{className:"fillo-option-input",attrs:{type:"checkbox"}});if(f.checked=l,f.addEventListener("change",()=>{let h=a().filter(g=>o.has(g));f.checked?(s?.add(t.id),u(h)):(s?.delete(t.id),u(h))}),k(p,[k(d("span",{className:"fillo-option-main"}),[f,d("span",{className:"fillo-option-label",text:"Other"})])]),l){let h=d("input",{className:"fillo-input fillo-other-input",attrs:{type:"text"}});h.value=i??"",h.placeholder="Your answer",h.addEventListener("input",()=>{s?.add(t.id);let g=a().filter(b=>o.has(b));e.setValue(h.value?[...g,h.value]:g,{render:!1})}),h.addEventListener("change",()=>{s?.add(t.id);let g=a().filter(b=>o.has(b));e.setValue(h.value?[...g,h.value]:g)}),p.appendChild(h),i===void 0&&queueMicrotask(()=>h.focus())}c.appendChild(p)}return D(t,e.error,c,e.ids)}var Zt="__fillo_other__";function jo(e){let t=e.field,r=typeof e.value=="string"?e.value:"",n=e.activeOtherFields,o=r!==""&&!t.options.some(u=>u.id===r),i=o||r===""&&n?.has(t.id)===!0,s=d("div"),a=d("div",{className:"fillo-select-wrap"}),c=d("select",{className:"fillo-input fillo-select",attrs:{id:e.ids.inputId}});c.appendChild(d("option",{text:t.placeholder??"Choose...",attrs:{value:""}}));for(let u of It(t))c.appendChild(d("option",{text:u.label,attrs:{value:u.id}}));if(t.allowOther&&c.appendChild(d("option",{text:"Other...",attrs:{value:Zt}})),c.value=i?Zt:r,c.addEventListener("change",()=>{c.value===Zt?(n?.add(t.id),e.setValue("",{render:!0})):(n?.delete(t.id),e.setValue(c.value||null))}),R(c,t,e.error,e.ids),k(a,[c,d("span",{className:"fillo-select-icon",attrs:{"aria-hidden":"true"}})]),s.appendChild(a),i){let u=d("input",{className:"fillo-input fillo-other-input fillo-other-input--block",attrs:{type:"text"}});u.value=o?r:"",u.placeholder="Your answer",u.addEventListener("input",()=>{n?.add(t.id),e.setValue(u.value,{render:!1})}),u.addEventListener("change",()=>{n?.add(t.id),e.setValue(u.value)}),s.appendChild(u),o||queueMicrotask(()=>u.focus())}return D(t,e.error,s,e.ids)}function Bo(e){if(e.field.kind==="checkbox"&&e.field.appearance==="toggle"){let i=d("div",{className:`fillo-field fillo-field--checkbox fillo-field--toggle${e.error?" fillo-field--error":""}`,attrs:{"data-field":e.field.id}}),s=d("label",{className:"fillo-toggle"}),a=d("span",{className:"fillo-option-label",text:e.field.label});e.field.required||a.appendChild(d("span",{className:"fillo-optional",text:" (optional)"}));let c=d("span",{className:"fillo-toggle-copy"});c.appendChild(a);let u=d("input",{className:"fillo-toggle-input",attrs:{id:e.ids.inputId,type:"checkbox",role:"switch","aria-checked":String(e.value===!0)}});return u.checked=e.value===!0,u.addEventListener("change",()=>{u.setAttribute("aria-checked",String(u.checked)),e.setValue(u.checked)}),R(u,e.field,e.error,e.ids),k(s,[c,u,k(d("span",{className:"fillo-toggle-track",attrs:{"aria-hidden":"true"}}),[d("span",{className:"fillo-toggle-thumb"})])]),i.appendChild(s),e.field.description&&i.appendChild(d("p",{className:"fillo-description",text:e.field.description,attrs:{id:e.ids.descriptionId}})),e.error&&i.appendChild(d("p",{className:"fillo-error",text:e.error,attrs:{role:"alert",id:e.ids.errorId}})),i}let t=d("div",{className:`fillo-field fillo-field--checkbox${e.error?" fillo-field--error":""}`,attrs:{"data-field":e.field.id}}),r=d("label",{className:"fillo-option"}),n=d("input",{className:"fillo-option-input",attrs:{id:e.ids.inputId,type:"checkbox"}});n.checked=e.value===!0,n.addEventListener("change",()=>e.setValue(n.checked)),R(n,e.field,e.error,e.ids);let o=d("span",{className:"fillo-option-label",text:e.field.label});return e.field.required||o.appendChild(d("span",{className:"fillo-optional",text:" (optional)"})),k(r,[n,o]),t.appendChild(r),e.field.description&&t.appendChild(d("p",{className:"fillo-description",text:e.field.description,attrs:{id:e.ids.descriptionId}})),e.error&&t.appendChild(d("p",{className:"fillo-error",text:e.error,attrs:{role:"alert",id:e.ids.errorId}})),t}function Vo(e){if(e.field.kind!=="rating")return d("div");let t=typeof e.field.max=="number"?e.field.max:5,r=typeof e.value=="number"?e.value:0,n=d("div",{className:"fillo-rating",attrs:{role:"group","aria-label":e.field.label}});R(n,e.field,e.error,e.ids);for(let o=1;o<=t;o++){let i=d("button",{className:`fillo-star${o<=r?" fillo-star--active":""}`,text:"*",attrs:{type:"button","aria-label":`${o} of ${t}`,"aria-pressed":String(o===r)}});i.addEventListener("click",()=>e.setValue(o===r?null:o)),n.appendChild(i)}return D(e.field,e.error,n,e.ids)}function Ho(e){if(e.field.kind!=="linear_scale")return d("div");let t=typeof e.field.min=="number"?e.field.min:1,r=typeof e.field.max=="number"?e.field.max:10,n=d("div"),o=d("div",{className:"fillo-scale",attrs:{role:"group","aria-label":e.field.label}});R(o,e.field,e.error,e.ids);for(let i=t;i<=r;i++){let s=d("button",{className:`fillo-scale-step${e.value===i?" fillo-scale-step--active":""}`,text:String(i),attrs:{type:"button","aria-pressed":String(e.value===i)}});s.addEventListener("click",()=>e.setValue(e.value===i?null:i)),o.appendChild(s)}return n.appendChild(o),("minLabel"in e.field||"maxLabel"in e.field)&&k(n,[k(d("div",{className:"fillo-scale-labels"}),[d("span",{text:String(e.field.minLabel??"")}),d("span",{text:String(e.field.maxLabel??"")})])]),D(e.field,e.error,n,e.ids)}function Ko(e){let t=e.field;if(t.kind!=="ranking")return null;let r=Array.isArray(e.value)?e.value:[],n=[...r.filter(i=>t.options.some(s=>s.id===i)),...t.options.map(i=>i.id).filter(i=>!r.includes(i))],o=d("ol",{className:"fillo-ranking"});for(let[i,s]of n.entries()){let a=t.options.find(h=>h.id===s);if(!a)continue;let c=d("li",{className:"fillo-ranking-item"}),u=d("span",{className:"fillo-ranking-controls"}),l=h=>{let g=i+h;if(g<0||g>=n.length)return;let b=[...n];[b[i],b[g]]=[b[g],b[i]],e.setValue(b)},p=d("button",{className:"fillo-ranking-move",text:"Up",attrs:{type:"button","data-fillo-rank-opt":s,"data-fillo-rank-dir":"up"}});p.toggleAttribute("disabled",i===0),p.addEventListener("click",()=>l(-1));let f=d("button",{className:"fillo-ranking-move",text:"Down",attrs:{type:"button","data-fillo-rank-opt":s,"data-fillo-rank-dir":"down"}});f.toggleAttribute("disabled",i===n.length-1),f.addEventListener("click",()=>l(1)),k(u,[p,f]),k(c,[d("span",{className:"fillo-ranking-index",text:String(i+1)}),d("span",{className:"fillo-ranking-label",text:a.label}),u]),o.appendChild(c)}return D(e.field,e.error,o,e.ids)}function qo(e){let t=e.field;if(t.kind!=="matrix")return null;let r=e.value&&typeof e.value=="object"&&!Array.isArray(e.value)?e.value:{},n=d("table",{className:"fillo-matrix"}),o=document.createElement("thead"),i=document.createElement("tr");i.appendChild(document.createElement("th"));for(let a of t.columns)i.appendChild(d("th",{text:a.label,attrs:{scope:"col"}}));o.appendChild(i),n.appendChild(o);let s=document.createElement("tbody");for(let a of t.rows){let c=document.createElement("tr");c.appendChild(d("th",{text:a.label,attrs:{scope:"row"}}));for(let u of t.columns){let l=document.createElement("td"),p=d("input",{className:"fillo-option-input",attrs:{type:"radio",name:`${e.ids.name}-${a.id}`,"aria-label":`${a.label}: ${u.label}`}});p.checked=r[a.id]===u.id,p.addEventListener("change",()=>e.setValue({...r,[a.id]:u.id})),l.appendChild(p),c.appendChild(l)}s.appendChild(c)}return n.appendChild(s),D(e.field,e.error,k(d("div",{className:"fillo-matrix-wrap"}),[n]),e.ids)}function Wo(e){let t=d("div",{className:"fillo-signature-field"}),r=d("div",{className:"fillo-signature"}),n=d("canvas",{className:"fillo-signature-canvas",attrs:{"aria-hidden":"true"}}),o=d("button",{className:"fillo-signature-clear",text:"Clear",attrs:{type:"button"}}),i=d("div",{className:"fillo-signature-hint",text:"Sign here",attrs:{"aria-hidden":"true"}});n.width=720,n.height=220;let s=n.getContext("2d"),a=!1,c=typeof e.value=="string"&&e.value.startsWith("data:image/");if(c&&s){let g=new Image;g.onload=()=>s.drawImage(g,0,0,n.width,n.height),g.src=String(e.value),i.style.display="none"}let u=d("input",{className:"fillo-input fillo-signature-type-input",attrs:{id:e.ids.inputId,type:"text",autocomplete:"name",placeholder:"Type your full name to sign"}});R(u,e.field,e.error,e.ids);let l=g=>{s&&(s.clearRect(0,0,n.width,n.height),g.trim()?(s.fillStyle=getComputedStyle(n).color||"#18181b",s.font=`italic ${Math.min(96,n.height*.45)}px "Segoe Script", "Brush Script MT", cursive`,s.textBaseline="middle",s.fillText(g,24,n.height/2),c=!0,i.style.display="none",e.setValue(n.toDataURL("image/png"),{render:!1})):(c=!1,i.style.display="",e.setValue(null,{render:!1})))};u.addEventListener("input",()=>l(u.value));let p=g=>{let b=n.getBoundingClientRect();return{x:(g.clientX-b.left)/b.width*n.width,y:(g.clientY-b.top)/b.height*n.height}};n.addEventListener("pointerdown",g=>{if(!s)return;a=!0,c=!0,i.style.display="none",u.value&&(u.value=""),n.setPointerCapture(g.pointerId);let b=p(g);s.beginPath(),s.moveTo(b.x,b.y)}),n.addEventListener("pointermove",g=>{if(!a||!s)return;let b=p(g);s.lineWidth=2.4,s.lineCap="round",s.strokeStyle=getComputedStyle(n).color||"#18181b",s.lineTo(b.x,b.y),s.stroke()});let f=()=>{a&&(a=!1,c&&e.setValue(n.toDataURL("image/png"),{render:!1}))};n.addEventListener("pointerup",f),n.addEventListener("pointercancel",f),o.addEventListener("click",()=>{s?.clearRect(0,0,n.width,n.height),c=!1,i.style.display="",u.value="",e.setValue(null,{render:!1})}),k(r,[n,i,o]);let h=d("div",{className:"fillo-signature-type"});return h.appendChild(u),k(t,[r,h]),D(e.field,e.error,t,e.ids)}function Go(e){let t=e.field;if(t.kind!=="file_upload")return null;let r=d("input",{className:"fillo-input",attrs:{id:e.ids.inputId,type:"file"}});(t.maxFiles??1)>1&&(r.multiple=!0),t.accept?.length&&(r.accept=t.accept.join(",")),R(r,t,e.error,e.ids),r.addEventListener("change",()=>{let a=Array.from(r.files??[]);e.uploadFiles?.(t,a)});let n=d("div");n.appendChild(r);let o=e.uploadProgress?.get(t.id);if(o!==void 0){let a=d("div",{className:"fillo-upload-progress"});a.appendChild(d("div",{className:"fillo-upload-progress-fill"})),a.firstElementChild?.style.setProperty("width",`${Math.round(o*100)}%`),n.appendChild(a)}let i=Array.isArray(e.value)?e.value:[];for(let a of i)n.appendChild(d("p",{className:"fillo-description",text:`${a.name} (${Math.round(a.size/1024)} KB)`}));let s=e.uploadNotice;return s&&n.appendChild(d("p",{className:"fillo-upload-notice",text:s,attrs:{role:"status"}})),D(t,e.error,n,e.ids)}var tn=new Map;function It(e){if(!e.shuffleOptions)return e.options;let t=`${e.id}|${e.options.map(i=>i.id).join(",")}`,r=tn.get(t);if(!r){r=e.options.map(i=>i.id);for(let i=r.length-1;i>0;i--){let s=Math.floor(Math.random()*(i+1));[r[i],r[s]]=[r[s],r[i]]}tn.set(t,r)}let n=new Map(e.options.map(i=>[i.id,i])),o=r.flatMap(i=>n.get(i)??[]);return o.length===e.options.length?o:e.options}var Jo={short_text:e=>we("text",e),email:e=>we("email",e),url:e=>we("url",e),phone:Oo,number:e=>we("number",e),date:e=>we("date",e),long_text:Ro,select:Do,multi_select:Uo,dropdown:jo,checkbox:Bo,rating:Vo,linear_scale:Ho,ranking:Ko,matrix:qo,signature:Wo,file_upload:Go};function Xo(e){if(e.field.kind==="hidden"||e.field.kind==="custom")return null;let t=Jo[e.field.kind];return t?t(e):null}var $e=class{constructor(t,r){this.target=t;this.options=r;this.element.className="fillo-dom-root",t.replaceChildren(this.element),this.resolve()}target;options;element=d("div");instanceId=`d${++So}`;schema=null;theme;formId;closed=!1;fetchedPoweredBy=null;fetchedBrandLabel;fetchedBrandHref;phase="loading";engine=null;destroyed=!1;renderQueued=!1;hpValue="";activeOtherFields=new Set;uploadProgress=new Map;uploadNotices=new Map;focusIntent=null;overlays=new Set;get status(){return this.phase==="ready"?this.engine?.getState().status??"idle":this.phase}get data(){return this.engine?.getState().data??this.options.initialData??{}}get form(){return this.schema}get mutableData(){return this.engine?.getState().data??this.options.initialData??{}}api(){let t=this.schema??{version:1,title:"",pages:[],settings:{}},r=this.engine?.getState(),n=r?.pageCount??t.pages.length;return{form:t,formId:this.formId,client:this.options.client,data:r?.data??this.mutableData,errors:r?.errors??{},status:this.status,pageIndex:r?.pageIndex??0,pageCount:n,page:r?.page??t.pages[0]??{id:"empty",blocks:[]},blocks:r?.blocks??[],isFirstPage:r?.isFirstPage??!0,isLastPage:r?.isLastPage??n<=1,setValue:(o,i,s)=>this.setValueInternal(o,i,s),next:()=>this.next(),back:()=>this.back(),submit:()=>this.submit()}}resolveFormIdFn;notLive=!1;async resolve(){try{let t=St(this.options.form)?this.options.form:null;if(t){let o=this.options.client;o?.key&&(this.resolveFormIdFn=()=>Ct(o,t,{bypassCache:!0}).then(i=>i.formId)),this.setSchema(t.schema,this.options.theme??t.theme,this.options.formId),o?.key&&Ct(o,t).then(({formId:i,branding:s,staged:a,status:c,warning:u})=>{this.formId=i,this.engine?.setContext({formId:i}),u&&console.warn(`[fillo] ${u}`),a?console.info(`[fillo] "${t.id}" changes staged as a draft \u2014 publish them in your Fillo dashboard`):c==="draft"&&(console.info(`[fillo] "${t.id}" is a draft \u2014 it renders here but won't accept responses until published`),nn()||(this.notLive=!0,this.render())),s&&(this.fetchedPoweredBy=s.poweredBy,this.fetchedBrandLabel=s.label,this.fetchedBrandHref=s.href,this.render())}).catch(i=>{let s=He(i);console.warn("[fillo] form sync failed:",s.message),this.options.onError?.(s)});return}let r=this.options.form&&!St(this.options.form)?this.options.form:null;if(r){this.setSchema(r,this.options.theme,this.options.formId);return}if(!this.options.formId)throw new w("Provide either `form`, or a `formId`.",0);this.options.client??=_e(),this.render();let n=await this.options.client.getForm(this.options.formId);this.closed=!!n.closed,this.fetchedPoweredBy=n.branding?.poweredBy??null,this.fetchedBrandLabel=n.branding?.label,this.fetchedBrandHref=n.branding?.href,this.setSchema(n.schema,this.options.theme??n.theme??void 0,n.id)}catch(t){this.handleError(He(t))}}setSchema(t,r,n){let o=ye(t);if(!o.ok)throw new w(`This form could not be rendered: ${o.error}`,422);let i=o.schema;this.schema=i,this.theme=r,this.formId=n,this.engine=Wr({form:i,formId:n,client:this.options.client,initialData:this.options.initialData,onChange:this.options.onChange,onSubmitted:this.options.onSubmitted,getHoneypot:()=>this.hpValue,surface:"default",resolveFormId:this.resolveFormIdFn});let s=this.engine.getState().status;this.engine.subscribe(()=>{let a=this.engine?.getState().status;a!==void 0&&a!==s&&(s=a,this.queueRender())}),this.phase=this.closed?"closed":"ready",this.render()}setValue(t,r){this.setValueInternal(t,r)}setValueInternal(t,r,n={}){this.engine?.setValue(t,r),n.render!==!1&&this.queueRender()}next(){if(!this.engine)return;let t=this.engine.getState().pageIndex;this.engine.next(),this.focusIntent=this.engine.getState().pageIndex!==t?"page":"error",this.render()}back(){this.engine&&(this.engine.back(),this.focusIntent="page",this.render())}async submit(){if(!this.engine||this.phase!=="ready")return;let t=this.engine.submit();this.hasErrors()&&(this.focusIntent="error"),this.render();try{await t}catch(r){this.options.onError?.(He(r)),this.focusIntent="error",this.render();return}this.hasErrors()&&(this.focusIntent="error"),this.render()}hasErrors(){return Object.keys(this.engine?.getState().errors??{}).length>0}setTheme(t){this.options.theme=t,this.theme=t,this.render()}setClient(t){this.options.client=t,this.engine?.setContext({client:t}),this.render()}async uploadFiles(t,r){if(!this.schema)return;let n=t.maxFiles??1,o=n>1&&Array.isArray(this.mutableData[t.id])?[...this.mutableData[t.id]]:[],i=Math.max(0,n-o.length),s=r.slice(0,i),a=r.length-s.length;if(a>0?this.uploadNotices.set(t.id,`You can attach up to ${n} file${n===1?"":"s"}. ${a} ${a===1?"file was":"files were"} not added.`):this.uploadNotices.delete(t.id),s.length===0){this.queueRender();return}this.uploadProgress.set(t.id,0),this.queueRender();try{let c=[];for(let[u,l]of s.entries())this.options.client&&this.formId?c.push(await this.options.client.uploadFile(this.formId,l,{fieldId:t.id,onProgress:p=>{this.uploadProgress.set(t.id,(u+p.fraction)/s.length),this.queueRender()}})):c.push({fileId:`local:${l.name}:${l.size}`,name:l.name,size:l.size,mime:l.type||"application/octet-stream"});this.uploadProgress.delete(t.id),this.setValueInternal(t.id,[...o,...c])}catch(c){this.uploadProgress.delete(t.id),this.handleError(He(c))}}destroy(){this.destroyed=!0,this.closeOverlays(),this.target.replaceChildren()}registerOverlay=t=>(this.overlays.add(t),()=>this.overlays.delete(t));closeOverlays(){if(this.overlays.size!==0){for(let t of Array.from(this.overlays))try{t()}catch{}this.overlays.clear()}}captureFocus(){if(typeof document>"u")return null;let t=document.activeElement;if(!t||!this.element.contains(t))return null;let r={};t.id&&(r.id=t.id);let n=t.getAttribute("data-fillo-rank-opt");n&&(r.rankOpt=n,r.rankDir=t.getAttribute("data-fillo-rank-dir")??void 0);let o=t.closest("[data-field]");if(o&&(r.fieldId=o.getAttribute("data-field")??void 0,r.controlIndex=Array.from(o.querySelectorAll(Qr)).indexOf(t)),t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)try{r.selStart=t.selectionStart,r.selEnd=t.selectionEnd}catch{}return r.id||r.rankOpt||r.fieldId?r:null}restoreFocus(t){if(typeof document>"u")return;let r=null;if(t.rankOpt){let n=Array.from(this.element.querySelectorAll("[data-fillo-rank-opt]")).filter(o=>o.getAttribute("data-fillo-rank-opt")===t.rankOpt);r=n.find(o=>o.getAttribute("data-fillo-rank-dir")===t.rankDir&&!o.disabled)??n.find(o=>!o.disabled)??null}if(!r&&t.id&&(r=document.getElementById(t.id)),!r&&t.fieldId!=null&&t.controlIndex!=null&&t.controlIndex>=0){let n=Array.from(this.element.querySelectorAll("[data-field]")).find(o=>o.getAttribute("data-field")===t.fieldId);n&&(r=Array.from(n.querySelectorAll(Qr))[t.controlIndex]??null)}if(!(!r||typeof r.focus!="function")&&(r.focus(),(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement)&&t.selStart!=null))try{r.setSelectionRange(t.selStart,t.selEnd??t.selStart)}catch{}}applyFocus(t,r){if(!(typeof document>"u")){if(t==="error"){this.element.querySelector('[aria-invalid="true"]')?.focus?.();return}if(t==="page"){let o=this.element.querySelector(".fillo-page-title, .fillo-title")??this.element.querySelector(".fillo-blocks");o&&(o.hasAttribute("tabindex")||o.setAttribute("tabindex","-1"),o.focus?.());return}r&&this.restoreFocus(r)}}handleError(t){this.phase="error",this.options.onError?.(t),this.render(t)}queueRender(){this.renderQueued||this.destroyed||(this.renderQueued=!0,queueMicrotask(()=>{this.renderQueued=!1,this.render()}))}render(t){if(this.destroyed)return;let r=this.focusIntent;this.focusIntent=null;let n=r?null:this.captureFocus();if(this.closeOverlays(),this.element.replaceChildren(),this.phase==="loading"){let o=d("div",{className:`fillo-form fillo-form--loading ${this.options.className??""}`,attrs:{"aria-busy":"true"}});xe(o,this.theme),k(o,[d("div",{className:"fillo-skeleton"}),d("div",{className:"fillo-skeleton"}),d("div",{className:"fillo-skeleton fillo-skeleton--short"})]),this.element.appendChild(o);return}if(this.phase==="error"&&t){this.element.appendChild(this.options.renderError?.(t)??d("div",{className:"fillo-form fillo-form--error",text:t.message}));return}if(this.phase==="closed"){let o=d("div",{className:`fillo-form fillo-form--closed ${this.options.className??""}`});xe(o,this.theme),o.appendChild(d("p",{className:"fillo-closed",text:"This form is no longer accepting responses."})),this.element.appendChild(o);return}if(this.notLive){let o=d("div",{className:`fillo-form fillo-form--closed ${this.options.className??""}`});xe(o,this.theme),o.appendChild(d("p",{className:"fillo-closed",text:"This form isn't live yet."})),this.element.appendChild(o);return}if(this.schema){if(this.engine?.getState().status==="submitted"){let o=this.api(),i=this.options.renderSuccess?.(o)??Qo(this.schema);xe(i,this.theme),this.element.appendChild(i),this.brandingVisible()&&this.element.appendChild(rn(this.fetchedBrandLabel,this.fetchedBrandHref));return}!this.options.client&&nn()&&this.element.appendChild(ei()),this.element.appendChild(this.renderForm()),this.brandingVisible()&&this.element.appendChild(rn(this.fetchedBrandLabel,this.fetchedBrandHref)),this.applyFocus(r,n)}}brandingVisible(){return this.fetchedPoweredBy??!0}renderForm(){let t=this.api(),r=d("form",{className:`fillo-form ${this.options.className??""}`});xe(r,this.theme),r.noValidate=!0;let n=()=>{t.isLastPage?this.submit():this.next()};if(r.addEventListener("submit",l=>{l.preventDefault(),n()}),t.pageCount>1&&this.schema?.settings.showProgress!==!1){let l=d("div",{className:"fillo-progress-track",attrs:{role:"progressbar","aria-valuemin":"0","aria-valuemax":String(t.pageCount),"aria-valuenow":String(t.pageIndex+1)}});l.appendChild(d("div",{className:"fillo-progress-fill"})),l.firstElementChild?.style.setProperty("--fillo-progress-value",`${(t.pageIndex+1)/t.pageCount*100}%`),r.appendChild(l)}if(t.pageIndex===0){let l=d("header",{className:"fillo-header"});l.appendChild(d("h1",{className:"fillo-title",text:t.form.title})),t.form.description&&l.appendChild(d("p",{className:"fillo-form-description",text:t.form.description})),r.appendChild(l)}else t.page.title&&r.appendChild(d("h2",{className:"fillo-page-title",text:t.page.title}));let o=d("div",{className:"fillo-blocks"});for(let l of t.blocks){let p=this.renderBlock(Yr(l,this.mutableData,t.form),t);p&&o.appendChild(p)}r.appendChild(o);let i=d("input",{className:"fillo-hp",attrs:{type:"text",name:"fillo_hp_field",tabindex:"-1",autocomplete:"off","aria-hidden":"true"}});i.style.position="absolute",i.style.left="-9999px",i.style.top="auto",i.style.width="1px",i.style.height="1px",i.style.opacity="0",i.style.overflow="hidden",i.style.pointerEvents="none",i.addEventListener("input",()=>{this.hpValue=i.value}),r.appendChild(i);let s=t.status==="error"?"This form can't submit right now. Please try again in a moment.":this.engine?.getState().submitError;s&&r.appendChild(d("p",{className:"fillo-submit-error",attrs:{role:"alert"},text:s}));let c=!(t.form.settings.submitMode==="auto")||!t.isLastPage||Gr(De(t.form,t.data));if(c||t.pageCount>1&&!t.isFirstPage){let l=d("footer",{className:"fillo-footer"});if(t.pageCount>1&&!t.isFirstPage){let p=d("button",{className:"fillo-button fillo-button--ghost",text:"Back",attrs:{type:"button"}});p.addEventListener("click",()=>this.back()),l.appendChild(p)}if(c){let p=d("button",{className:"fillo-button fillo-button--primary",text:t.status==="submitting"?"Submitting...":t.isLastPage?t.form.settings.submitLabel??"Submit":"Next",attrs:{type:"submit"}});p.toggleAttribute("disabled",t.status==="submitting"||this.uploadProgress.size>0),p.addEventListener("click",f=>{f.preventDefault(),n()}),l.appendChild(p)}r.appendChild(l)}return r}renderBlock(t,r){if(!oe(t))return Yo(t);let n=(s,a)=>{if(this.setValueInternal(t.id,s,a),a?.render===!1)return;let c={form:r.form,data:r.data,status:r.status,isLastPage:r.isLastPage,uploading:this.uploadProgress.size>0};Jr(t,s,c)&&this.submit()},o={field:t,value:r.data[t.id],error:r.errors[t.id],ids:Co(this.instanceId,t.id),api:r,setValue:n,uploadFiles:(s,a)=>this.uploadFiles(s,a),uploadProgress:this.uploadProgress,activeOtherFields:this.activeOtherFields,getValue:()=>this.engine?.getState().data[t.id],registerOverlay:this.registerOverlay,uploadNotice:this.uploadNotices.get(t.id)};return(t.kind==="custom"?this.options.customComponents?.[t.component]??this.options.components?.custom:this.options.components?.[t.kind]??Xo)?.(o)??null}};function Yo(e){switch(e.kind){case"heading":return d("h3",{className:"fillo-heading",text:e.text});case"paragraph":return d("p",{className:"fillo-paragraph",text:e.text});case"divider":return d("hr",{className:"fillo-divider"})}return d("div")}function Qo(e){let t=d("div",{className:"fillo-form fillo-form--success"}),r=d("div",{className:"fillo-success"});return k(r,[d("div",{className:"fillo-success-mark",text:"\u2713",attrs:{"aria-hidden":"true"}}),d("h2",{className:"fillo-success-title",text:e.settings.successTitle??"Thanks!"}),d("p",{className:"fillo-success-message",text:e.settings.successMessage??"Your response has been recorded."})]),t.appendChild(r),t}function rn(e,t){return d("a",{className:"fillo-powered",text:e??"Powered by Fillo",attrs:{href:Po(t),target:"_blank",rel:"noopener noreferrer"}})}function nn(){return typeof process<"u"&&process.env?.NODE_ENV!=="production"}function ei(){return d("div",{className:"fillo-devwarning",text:"No Fillo client connected \u2014 this form is render-only and won't save responses. Pass a client to collect them in Fillo, or forward with webhooks. (Shown only in development.)",attrs:{role:"alert"}})}function He(e){return e instanceof w?e:new w(e instanceof Error?e.message:String(e),0)}function Ke(e,t){let r=typeof e=="string"?document.querySelector(e):e;if(!r)throw new w(`Fillo mount target not found: ${String(e)}`,0);return new $e(r,{...t,initialData:t.initialData??{}})}function sn(e){let t=d("div");return Ke(t,e),t}var ti=typeof HTMLElement<"u"?HTMLElement:class{},Ft=class extends ti{instance=null;assignedForm;assignedClient;assignedTheme;assignedInitialData;mounted=!1;mountScheduled=!1;static get observedAttributes(){return["publishable-key","form-id"]}connectedCallback(){this.scheduleMount()}disconnectedCallback(){this.instance?.destroy(),this.instance=null,this.mounted=!1}attributeChangedCallback(){this.mounted&&this.isConnected&&this.scheduleMount()}set form(t){this.assignedForm=t,this.mounted&&this.scheduleMount()}get form(){return this.assignedForm}set client(t){this.assignedClient=t,this.mounted&&this.instance instanceof $e&&this.instance.setClient(t)}set theme(t){this.assignedTheme=t,this.mounted&&this.instance instanceof $e&&this.instance.setTheme(t)}set initialData(t){this.assignedInitialData=t,this.mounted&&this.scheduleMount()}scheduleMount(){this.mountScheduled||(this.mountScheduled=!0,queueMicrotask(()=>{this.mountScheduled=!1,this.isConnected&&this.mount()}))}mount(){this.instance?.destroy();let t=this.getAttribute("publishable-key")??void 0,r=this.getAttribute("form-id")??void 0,n=this.assignedClient??(r||t?_e({key:t}):void 0);this.instance=Ke(this,{form:this.assignedForm,client:n,formId:r,theme:this.assignedTheme,initialData:this.assignedInitialData,onChange:o=>this.dispatchEvent(new CustomEvent("fillo-change",{detail:{data:o}})),onSubmitted:(o,i)=>this.dispatchEvent(new CustomEvent("fillo-submit",{detail:{responseId:o,data:i}})),onError:o=>this.dispatchEvent(new CustomEvent("fillo-error",{detail:{error:o}}))}),this.mounted=!0}};function Nt(e="fillo-form"){typeof customElements>"u"||customElements.get(e)||customElements.define(e,Ft)}typeof customElements<"u"&&Nt();return pn(ri);})();