@usefillo/dom 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -63,3 +63,8 @@ Re-exports the core embedding surface from [`@usefillo/core`](https://www.npmjs.
63
63
  - **Website:** [fillo.so](https://fillo.so)
64
64
 
65
65
  MIT licensed.
66
+
67
+ On Tailwind v3 or reset-heavy sites, import `@usefillo/dom/styles.unlayered.css`
68
+ instead — the cascade-layered default loses to unlayered CSS by design.
69
+ State is exposed as `data-*` attributes (`data-selected`, `data-invalid`, …)
70
+ for utility CSS.
package/dist/index.d.ts CHANGED
@@ -100,8 +100,8 @@ declare function registerFilloElement(name?: string): void;
100
100
  /**
101
101
  * Headless form engine for non-React frameworks (Vue, Svelte, vanilla): runs
102
102
  * validation, conditional logic, paging, spam checks, and submission while you
103
- * render every element yourself. Headless embedding is a paid capability —
104
- * submissions default to the "headless" surface, which the server enforces.
103
+ * render every element yourself. Free like every embed method — submissions
104
+ * default to the "headless" surface, recorded per response for measurement.
105
105
  * Pass `surface: "default"` only from a framed renderer.
106
106
  */
107
107
  declare function createFormController(options: FormControllerOptions): FormController;
@@ -1 +1 @@
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);})();
1
+ "use strict";var Fillo=(()=>{var We=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var ln=Object.prototype.hasOwnProperty;var dn=(e,t)=>{for(var r in t)We(e,r,{get:t[r],enumerable:!0})},pn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of un(t))!ln.call(e,o)&&o!==r&&We(e,o,{get:()=>t[o],enumerable:!(n=cn(t,o))||n.enumerable});return e};var fn=e=>pn(We({},"__esModule",{value:!0}),e);var oi={};dn(oi,{FilloClient:()=>Ve,FilloError:()=>w,createClient:()=>_e,createFormElement:()=>an,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 Z(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 mn={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 gn=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=gn(de),bn=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},Pe=bn(de),vn=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=vn(de),yn=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=yn(de);var Kt=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var _n="(?:(?:\\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])))",xn=new RegExp(`^${_n}$`);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=[])}),wn={number:"number",bigint:"bigint",object:"date"};var Gt=_("$ZodCheckGreaterThan",(e,t)=>{re.init(e,t);let r=wn[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 Ze(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 zn(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 kn(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=>Ze(g,r,f,t,l,p))):Ze(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(()=>zn(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=>Ze(H,a,f,u,g,b))):Ze(E,a,f,u,g,b)}return i?kn(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",...Z(t)})}function hr(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Z(t)})}function gr(e,t){return new e({type:"number",checks:[],...Z(t)})}function br(e){return new e({type:"unknown"})}function st(e,t){return new Gt({check:"greater_than",...Z(t),value:e,inclusive:!0})}function at(e){return st(0,e)}function I(e,t){return new Jt({check:"max_length",...Z(t),maximum:e})}function ae(e,t){return new Xt({check:"min_length",...Z(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)=>Pe(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 An=_("ZodMiniStringFormat",(e,t)=>{it.init(e,t),yr.init(e,t)}),Sn=_("ZodMiniEmail",(e,t)=>{or.init(e,t),An.init(e,t)});function Fe(e){return hr(Sn,e)}var Cn=_("ZodMiniNumber",(e,t)=>{ir.init(e,t),B.init(e,t)});function _r(e){return gr(Cn,e)}var Pn=_("ZodMiniUnknown",(e,t)=>{sr.init(e,t),B.init(e,t)});function Ie(){return br(Pn)}var Zn=_("ZodMiniArray",(e,t)=>{ar.init(e,t),B.init(e,t)});function ee(e,t){return new Zn({type:"array",element:e,...Z(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??{},...Z(t)};return new xr(r)}function ct(e,t){return new xr({type:"object",shape:e,catchall:Ie(),...Z(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,...Z(t)}):new vr({type:"record",keyType:e,valueType:t,...Z(r)})}var Fn=_("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 Fn({type:"enum",entries:r,...Z(t)})}var In=_("ZodMiniLiteral",(e,t)=>{dr.init(e,t),B.init(e,t)});function zr(e,t){return new In({type:"literal",values:Array.isArray(e)?e:[e],...Z(t)})}var Nn=_("ZodMiniOptional",(e,t)=>{pr.init(e,t),B.init(e,t)});function O(e){return new Nn({type:"optional",innerType:e})}var Mn=_("ZodMiniDefault",(e,t)=>{fr.init(e,t),B.init(e,t)});function ut(e,t){return new Mn({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():et(t)}})}var On=["heading","paragraph","divider"];function oe(e){return!On.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 Rn(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 Mr(e,t){return!e.visibleIf||e.visibleIf.length===0?!0:e.visibleIf.every(r=>Rn(r,t))}function Tr(e,t,r){return n=>t.has(n)&&!r.has(n)?void 0:e[n]}function Lr(e,t){let r=new Set(e.map(o=>o.id)),n=r;for(let o=0;o<=e.length;o++){let i=Tr(t,r,n),s=new Set;for(let a of e)Mr(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=Tr(t,n,Lr(r,t));return e.blocks.filter(i=>Mr(i,o))}function _t(e){return e.pages.flatMap(t=>t.blocks.filter(oe))}function De(e,t){let r=_t(e),n=Lr(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")],Dn=new Map(q.map(e=>[e.iso2,e])),Un={"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?Dn.get(e.toUpperCase()):void 0}function Or(e){return Ue(e?Un[e]:void 0)}function jn(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 Rr(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=jn(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 Bn(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 Vn=me({fileId:N().check(ae(1)),name:N(),size:_r().check(at()),mime:N(),url:O(N())});function Dr(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 Ur(e,t){if(Dr(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"||!Bn(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(Vn).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 jr(e,t){let r=De(e,t),n={},o={};for(let i of r){let s=Hn(i,t[i.id]),a=Ur(i,s);a?n[i.id]=a:Dr(s)||(o[i.id]=s)}return{ok:Object.keys(n).length===0,errors:n,data:o}}function Hn(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 Kn=["short_text","long_text","email","url","phone","number","select","multi_select","dropdown","checkbox","rating","linear_scale","ranking","matrix","signature","date","file_upload","hidden","custom"],qn=["heading","paragraph","divider"],Wn=[...Kn,...qn],wt=N().check(ae(1),I(128)),pt=ct({id:wt,label:N().check(I(1e3)),icon:O(Ie())}),Gn=ct({id:wt,kind:$r(Wn),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)))}),Jn=me({id:wt,title:O(N().check(I(500))),blocks:ee(Gn).check(I(500))}),Xn=me({version:zr(1),title:ut(O(N().check(I(2e3))),""),description:O(N().check(I(5e3))),pages:ee(Jn).check(ae(1),I(50)),settings:ut(O(wr(N(),Ie())),{})}),Yn=1,vt=1,yt="0.6.2";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 Qn(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 Br(e){return{id:V(e.id,128),visibleIf:Qn(e.visibleIf)}}function M(e,t){return{...Br(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 eo(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 to(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:eo(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 ro(e){if(!e||typeof e!="object")return null;let t=e,r=t.kind,n=Br(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=Xn.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>Yn)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=ro(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:to(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 no="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",Kc=256-256%no.length;var Vr=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 oo=e=>zt(new Vr().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 io(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 so(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&&io(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 ao(e){let t=globalThis.crypto?.subtle;if(t){let r=await t.digest("SHA-1",e);return zt(new Uint8Array(r))}return oo(e)}var co="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?"":co,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 so(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 Vr,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 ao(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 uo(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 lo={id:"empty",blocks:[]},Pr=!1,Zr=!1;function po(){Zr||(Zr=!0,console.warn("[fillo] This form has a client but no submission target \u2014 a bare schema can't sync. Wrap it in defineForm({ id, pages }) (or author it with <Fillo.Form id=\u2026>) so it gets a workspace handle, or pass formId for a dashboard-built form: https://fillo.so/docs"))}function fo(){Pr||(Pr=!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 Hr=new Map;function Kr(){try{return globalThis.localStorage??null}catch{return null}}function qr(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=Kr();if(!t)return Hr.get(e)??null;try{let r=JSON.parse(t.getItem(qr(e))??"null");if(r&&typeof r.key=="string")return r}catch{}return null}function Wr(e,t){Hr.set(e,t);let r=Kr();if(r)try{r.setItem(qr(e),JSON.stringify(t))}catch{}}function mo(e){let t=Et(e);if(t?.key)return t.key;let r={key:kt()};return Wr(e,r),r.key}function ho(e,t){let r=Et(e);Wr(e,{key:r?.key??kt(),submittedAt:new Date().toISOString(),responseId:t})}function Fr(e,t){return e.settings.submissionLimit!=="once_per_visitor"||!t?!1:!!Et(t)?.submittedAt}function Ir(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 Gr(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"&&Fr(o,i)&&(l="submitted",A()),typeof location<"u"&&location.search){let v=Object.fromEntries(new URLSearchParams(location.search)),y=null;for(let[$,P]of Object.entries(uo(o,v)))a[$]===void 0&&(y=y??{...a},y[$]=P);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]??lo;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 P of dt(y,a)){if(!oe(P))continue;let z=Ur(P,a[P.id]);z&&($[P.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=jr(o,a);if(!v.ok){c=v.errors;let y=o.pages.findIndex($=>dt($,a).some(P=>P.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=Ir(y),A(),y}}if(s&&i){let y=o.settings.submissionLimit==="once_per_visitor"?mo(i):void 0,$=y??b;l="submitting",p=void 0,A();let P;try{P=await s.submit(i,v.data,{hp:e.getHoneypot?.()??"",elapsedMs:Date.now()-g,surface:e.surface??"headless",submissionKey:$})}catch(z){throw l="idle",p=Ir(z),A(),z}if(!P.ok){c=P.errors??{},l="idle",A();return}E&&s.reportProgress(E,{completed:!0}),y&&ho(i,P.responseId),l="submitted",A(),ze(P.responseId,v.data);return}if(e.skipValidation){l="submitted",A(),ze(void 0,v.data);return}s&&!i?po():fo(),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"&&Fr(o,i)&&(l="submitted"),A()},destroy(){h.clear()}}}function go(e){return oe(e)&&(e.kind==="select"||e.kind==="dropdown"||e.kind==="checkbox"||e.kind==="rating"||e.kind==="linear_scale")}function Jr(e){let t=e.filter(r=>!(oe(r)&&r.kind==="hidden"));return t.length===0?!1:t.length>1?!0:!go(t[0])}function Xr(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:jr(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,bo=e=>new Promise(t=>setTimeout(t,e));async function vo(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 bo(Math.min(a?a*1e3:r*(1+Math.random()*.5),15e3)),r*=2}}function yo(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 Yr(e,t){return`fillo:sync:${e.baseUrl}|${e.key}|${t}`}function _o(e,t,r){try{let n=globalThis.localStorage?.getItem(Yr(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 xo(e,t,r,n){try{globalThis.localStorage?.setItem(Yr(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=yo(n),i=`${e.baseUrl}:${e.key}:${t.id}:${o}`,s=Oe.get(i);if(s&&!r?.bypassCache)return s;if(!r?.bypassCache){let a=_o(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=vo(e,t).then(a=>(xo(e,t.id,o,a),a)),Oe.set(i,s),s.catch(()=>Oe.delete(i)),s}var wo=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},$o=Symbol.for("fillo.block");var zo=["label","description","required","placeholder"],C=(e,t,r,n={})=>({name:e,kind:t,props:[...zo,...r],...n}),Nr=(e,t,r)=>({name:e,kind:t,props:r?["text"]:[],textChildren:r,content:!0}),ht=["options","allowOther","shuffleOptions"],ko=[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"]),Nr("Heading","heading",!0),Nr("Paragraph","paragraph",!0),{name:"Divider",kind:"divider",props:[],content:!0}],Eo={name:"Page",kind:"__page",props:["title"]},Ao={name:"Option",kind:"__option",props:["label","icon"]};function gt(e){let t=()=>{throw new wo("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[$o]=e,t}var qc=Object.fromEntries([...ko.map(e=>[e.name,gt(e)]),["Page",gt(Eo)],["Option",gt(Ao)]]);var So=/\{\{\s*([\w-]+)\s*\}\}/g;function bt(e,t,r){if(!e.includes("{{"))return e;let n=_t(r);return e.replace(So,(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 Qr(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 Co="fillo-",Po=0,en='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';function Zo(e,t){let r=`${Co}${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 Fo(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 Io(e){let t=new URL(Fo(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 k(e,t){for(let r of t)r&&e.appendChild(r);return e}var tn="http://www.w3.org/2000/svg",No={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 sn(e){if(!e)return null;let t=document.createElementNS(tn,"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(tn,"path");return r.setAttribute("d",No[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=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)),R(r,t.field,t.error,t.ids),D(t.field,t.error,r,t.ids)}function Mo(){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 To(){if(!(typeof Intl>"u"))try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return typeof e=="string"&&e?e:void 0}catch{return}}function Lo(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 Oo=8;function Ro(e,t){if(typeof window>"u")return"below";let r=Oo,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 Do(e){let t=e.field,r=Be(Zt(e.value)).country??Ue(t.defaultCountry)??Or(To())??Ue(Mo())??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(Zt(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?Rr(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()),Lo(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=Ro(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"})},P=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",()=>P(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 Uo(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 jo(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,sn(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 Bo(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,sn(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 Pt="__fillo_other__";function Vo(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:Pt}})),c.value=i?Pt:r,c.addEventListener("change",()=>{c.value===Pt?(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 Ho(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 Ko(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 qo(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 Wo(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 Go(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 Jo(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 Xo(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 rn=new Map;function It(e){if(!e.shuffleOptions)return e.options;let t=`${e.id}|${e.options.map(i=>i.id).join(",")}`,r=rn.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]]}rn.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 Yo={short_text:e=>we("text",e),email:e=>we("email",e),url:e=>we("url",e),phone:Do,number:e=>we("number",e),date:e=>we("date",e),long_text:Uo,select:jo,multi_select:Bo,dropdown:Vo,checkbox:Ho,rating:Ko,linear_scale:qo,ranking:Wo,matrix:Go,signature:Jo,file_upload:Xo};function Qo(e){if(e.field.kind==="hidden"||e.field.kind==="custom")return null;let t=Yo[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${++Po}`;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`),on()||(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=Gr({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(en)).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(en))[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)??ti(this.schema);xe(i,this.theme),this.element.appendChild(i),this.brandingVisible()&&this.element.appendChild(nn(this.fetchedBrandLabel,this.fetchedBrandHref));return}!this.options.client&&on()&&this.element.appendChild(ri()),this.element.appendChild(this.renderForm()),this.brandingVisible()&&this.element.appendChild(nn(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(Qr(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||Jr(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 ei(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};Xr(t,s,c)&&this.submit()},o={field:t,value:r.data[t.id],error:r.errors[t.id],ids:Zo(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]??Qo)?.(o)??null}};function ei(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 ti(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 nn(e,t){return d("a",{className:"fillo-powered",text:e??"Powered by Fillo",attrs:{href:Io(t),target:"_blank",rel:"noopener noreferrer"}})}function on(){return typeof process<"u"&&process.env?.NODE_ENV!=="production"}function ri(){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 an(e){let t=d("div");return Ke(t,e),t}var ni=typeof HTMLElement<"u"?HTMLElement:class{},Ft=class extends ni{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 fn(oi);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usefillo/dom",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Framework-agnostic DOM renderer and web component for embedding Fillo forms.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -35,7 +35,7 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@usefillo/core": "^0.6.0"
38
+ "@usefillo/core": "^0.6.2"
39
39
  },
40
40
  "devDependencies": {
41
41
  "jsdom": "^25.0.1",