{"version":3,"sources":["../src/plugin.ts","../src/props.ts","../src/features/options.ts","../src/createSection.ts","../src/sections/actions.ts","../src/sections/box.ts","../src/sections/boxHelp.ts","../src/sections/boxInner.ts","../src/sections/boxLabel.ts","../src/sections/boxOption.ts","../src/sections/boxOptions.ts","../src/sections/boxWrapper.ts","../src/sections/buttonInput.ts","../src/sections/buttonLabel.ts","../src/sections/decorator.ts","../src/sections/fieldset.ts","../src/sections/fileInput.ts","../src/sections/fileItem.ts","../src/sections/fileList.ts","../src/sections/fileName.ts","../src/sections/fileRemove.ts","../src/sections/formInput.ts","../src/sections/fragment.ts","../src/sections/help.ts","../src/sections/icon.ts","../src/sections/inner.ts","../src/sections/label.ts","../src/sections/legend.ts","../src/sections/message.ts","../src/sections/messages.ts","../src/sections/noFiles.ts","../src/sections/optGroup.ts","../src/sections/option.ts","../src/sections/optionSlot.ts","../src/sections/outer.ts","../src/sections/prefix.ts","../src/sections/selectInput.ts","../src/sections/submitInput.ts","../src/sections/suffix.ts","../src/sections/textInput.ts","../src/sections/textareaInput.ts","../src/sections/wrapper.ts","../src/features/renamesRadios.ts","../src/features/normalizeBoxes.ts","../src/features/checkboxes.ts","../src/features/icon.ts","../src/features/disables.ts","../src/features/localize.ts","../src/features/files.ts","../src/features/forms.ts","../src/features/ignores.ts","../src/features/initialValue.ts","../src/features/casts.ts","../src/features/radios.ts","../src/features/selects.ts","../src/compose.ts","../src/inputs/button.ts","../src/inputs/checkbox.ts","../src/inputs/file.ts","../src/inputs/form.ts","../src/inputs/group.ts","../src/inputs/hidden.ts","../src/inputs/list.ts","../src/inputs/meta.ts","../src/inputs/radio.ts","../src/inputs/select.ts","../src/inputs/textarea.ts","../src/inputs/text.ts","../src/index.ts"],"names":["extend","camel","has","option","options","isPojo","eq","fragment","isDOM","isComponent","slugify","defaultIcon","undefine","createMessage","files","file","clone","toggleChecked","isChecked","warn","optionValue","selectInput","isConditional","isObject","token","form","select"],"mappings":";;;;;;AAYO,SAAS,uBACX,SAAA,EACY;AAIf,EAAA,MAAM,UAAU,SAAA,CAAU,MAAA;AAAA,IACxB,CAAC,MAAA,EAAQ,GAAA,KAAQA,YAAA,CAAO,QAAQ,GAAG,CAAA;AAAA,IACnC;AAAC,GACH;AAEA,EAAA,MAAM,SAAS,MAAM;AAAA,EAAC,CAAA;AAKtB,EAAA,MAAA,CAAO,OAAA,GAAU,SAAU,IAAA,EAAmB;AAC5C,IAAA,MAAM,IAAA,GAAOC,WAAA,CAAM,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAClC,IAAA,IAAIC,SAAA,CAAI,OAAA,EAAS,IAAI,CAAA,EAAG;AACtB,MAAA,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA;AACA,EAAA,OAAO,MAAA;AACT;;;ACksBO,IAAM,YAAA,GAAe;AAAA,EAC1B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,qBAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA;AAAA,EAEA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,qBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF;AAQO,SAAS,cACdC,OAAAA,EAImC;AACnC,EAAA,OACEA,OAAAA,IACA,OAAOA,OAAAA,KAAW,QAAA,IAClB,WAAWA,OAAAA,IACX,KAAA,CAAM,OAAA,CAAQA,OAAAA,CAAO,OAAO,CAAA;AAEhC;AChwBO,SAAS,iBACdC,QAAAA,EACA,CAAA,GAAI,EAAE,KAAA,EAAO,GAAE,EAGgB;AAC/B,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQA,QAAO,CAAA,EAAG;AAC1B,IAAA,OAAOA,QAAAA,CAAQ,GAAA;AAAA,MACb,CAACD,OAAAA,KAAyD;AACxD,QAAA,IAAI,OAAOA,OAAAA,KAAW,QAAA,IAAY,OAAOA,YAAW,QAAA,EAAU;AAC5D,UAAA,OAAO;AAAA,YACL,KAAA,EAAO,OAAOA,OAAM,CAAA;AAAA,YACpB,KAAA,EAAO,OAAOA,OAAM;AAAA,WACtB;AAAA,QACF;AACA,QAAA,IAAI,OAAOA,WAAU,QAAA,EAAU;AAC7B,UAAA,IAAI,WAAWA,OAAAA,EAAQ;AACrB,YAAAA,QAAO,OAAA,GAAU,gBAAA,CAAiBA,QAAO,OAAA,IAAW,IAAI,CAAC,CAAA;AACzD,YAAA,OAAOA,OAAAA;AAAA,UACT,WAAW,OAAA,IAAWA,OAAAA,IAAU,OAAOA,OAAAA,CAAO,UAAU,QAAA,EAAU;AAChE,YAAA,MAAA,CAAO,OAAOA,OAAAA,EAAQ;AAAA,cACpB,KAAA,EAAO,CAAA,OAAA,EAAU,CAAA,CAAE,KAAA,EAAO,CAAA,CAAA;AAAA,cAC1B,YAAYA,OAAAA,CAAO;AAAA,aACpB,CAAA;AAAA,UACH;AAAA,QACF;AACA,QAAA,OAAOA,OAAAA;AAAA,MACT;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAO,IAAA,CAAKC,QAAO,CAAA,CAAE,GAAA,CAAI,CAAC,KAAA,KAAkB;AACjD,IAAA,OAAO;AAAA,MACL,KAAA,EAAOA,SAAQ,KAAK,CAAA;AAAA,MACpB;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AACH;AAYO,SAAS,WAAA,CACdA,QAAAA,EACA,KAAA,EACA,mBAAA,GAAsB,KAAA,EACb;AACT,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQA,QAAO,CAAA,EAAG;AAC1B,IAAA,KAAA,MAAWD,WAAUC,QAAAA,EAAS;AAC5B,MAAA,IAAI,OAAOD,OAAAA,KAAW,QAAA,IAAYA,OAAAA,EAAQ;AAC1C,MAAA,IAAI,aAAA,CAAcA,OAAM,CAAA,EAAG;AACzB,QAAA,MAAM,KAAA,GAAQ,WAAA,CAAYA,OAAAA,CAAO,OAAA,EAAS,OAAO,IAAI,CAAA;AACrD,QAAA,IAAI,UAAU,MAAA,EAAW;AACvB,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF,CAAA,MAAA,IAAW,KAAA,IAASA,OAAAA,CAAO,KAAA,EAAO;AAChC,QAAA,OAAO,YAAA,IAAgBA,OAAAA,GAASA,OAAAA,CAAO,UAAA,GAAaA,OAAAA,CAAO,KAAA;AAAA,MAC7D;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,sBAAsB,MAAA,GAAY,KAAA;AAC3C;AAYO,SAAS,YAAA,CAAa,QAAiB,MAAA,EAA0B;AACtE,EAAA,IACG,WAAW,IAAA,IAAQ,MAAA,KAAW,MAAA,IAC9B,MAAA,KAAW,UAAa,MAAA,KAAW,IAAA;AAEpC,IAAA,OAAO,KAAA;AACT,EAAA,IAAI,MAAA,IAAU,QAAQ,OAAO,IAAA;AAC7B,EAAA,IAAIE,YAAA,CAAO,MAAM,CAAA,IAAKA,YAAA,CAAO,MAAM,CAAA,EAAG,OAAOC,QAAA,CAAG,MAAA,EAAQ,MAAM,CAAA;AAC9D,EAAA,OAAO,KAAA;AACT;AAUe,SAAR,QAAyB,IAAA,EAAyB;AACvD,EAAA,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,CAAC,IAAA,EAAW,IAAA,KAAc;AAzH3C,IAAA,IAAA,EAAA;AA0HI,IAAA,IAAI,IAAA,CAAK,SAAS,SAAA,EAAW;AAC3B,MAAA,IAAI,OAAO,IAAA,CAAK,KAAA,KAAU,UAAA,EAAY;AACpC,QAAA,IAAA,CAAK,KAAA,CAAM,gBAAgB,IAAA,CAAK,KAAA;AAChC,QAAA,IAAA,CAAK,QAAQ,EAAC;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,CAAA,EAAA,GAAA,IAAA,CAAK,OAAM,iBAAA,KAAX,EAAA,CAAW,iBAAA,GAAsB,EAAE,OAAO,CAAA,EAAE,CAAA;AAC5C,QAAA,IAAA,CAAK,QAAQ,gBAAA,CAAiB,IAAA,CAAK,KAAA,EAAO,IAAA,CAAK,MAAM,iBAAiB,CAAA;AAAA,MACxE;AAAA,IACF;AACA,IAAA,OAAO,KAAK,IAAI,CAAA;AAAA,EAClB,CAAC,CAAA;AACH;AC1HO;AAwEA,SAAS,aAAA,CACd,OAAA,EACA,EAAA,EACAC,SAAAA,GAAW,KAAA,EAGX;AACA,EAAA,OAAO,IACF,QAAA,KAGA;AACH,IAAA,MAAM,UAAA,GAAa,CAAC,UAAA,KAAsC;AACxD,MAAA,MAAM,IAAA,GAAO,CAAC,EAAA,IAAM,OAAO,EAAA,KAAO,WAAW,EAAE,GAAA,EAAK,EAAA,EAAG,GAAI,EAAA,EAAG;AAC9D,MAAA,IAAIC,UAAA,CAAM,IAAI,CAAA,IAAKC,gBAAA,CAAY,IAAI,CAAA,EAAG;AACpC,QAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AACd,UAAA,IAAA,CAAK,IAAA,GAAO,EAAE,OAAA,EAAQ;AAAA,QACxB,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,KAAK,OAAA,GAAU,OAAA;AAAA,QACtB;AACA,QAAA,IAAI,QAAA,CAAS,MAAA,IAAU,CAAC,IAAA,CAAK,QAAA,EAAU;AACrC,UAAA,IAAA,CAAK,QAAA,GAAW;AAAA,YACd,GAAG,QAAA,CAAS,GAAA;AAAA,cAAI,CAAC,KAAA,KACf,OAAO,UAAU,UAAA,GAAa,KAAA,CAAM,UAAU,CAAA,GAAI;AAAA;AACpD,WACF;AAAA,QACF;AACA,QAAA,IAAID,UAAA,CAAM,IAAI,CAAA,EAAG;AACf,UAAA,IAAA,CAAK,KAAA,GAAQ;AAAA,YACX,KAAA,EAAO,YAAY,OAAO,CAAA,CAAA;AAAA,YAC1B,GAAI,IAAA,CAAK,KAAA,IAAS;AAAC,WACrB;AAAA,QACF;AAAA,MACF;AACA,MAAA,OAAO;AAAA,QACL,EAAA,EAAI,UAAU,OAAO,CAAA,CAAA;AAAA,QACrB,IAAA,EAAM,UAAU,OAAO,CAAA,CAAA;AAAA,QACvB,IAAA,EACE,WAAW,UAAA,mBACP,YAAA,CAAa,MAAM,UAAA,CAAW,OAAO,CAAC,CAAA,GACtC;AAAA,OACR;AAAA,IACF,CAAA;AACA,IAAA,UAAA,CAAW,EAAA,GAAK,OAAA;AAChB,IAAA,OAAOD,SAAAA,mBAAW,UAAA,CAAW,UAAU,CAAA,GAAI,UAAA;AAAA,EAC7C,CAAA;AACF;AAAA;AAYO,SAAS,WACd,WAAA,EAC6B;AAC7B,EAAA,OAAO,CAAC,UAAA,KAAsC;AAC5C,IAAA,OAAO,CAAC,WAAA,CAAY,UAAU,CAAC,CAAA;AAAA,EACjC,CAAA;AACF;AAYO,SAAS,eACd,MAAA,EAIuB;AACvB,EAAA,OAAO,CAAC,EACN,MAAA,IACA,OAAO,MAAA,KAAW,aACjB,KAAA,IAAS,MAAA,IAAU,MAAA,IAAU,MAAA,IAAU,UAAA,IAAc,MAAA,CAAA,CAAA;AAE1D;AAAA;AAcO,SAAS,YAAA,CACd,MAAA,EACA,SAAA,GAA+C,EAAC,EAC7B;AACnB,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAO,eAAe,SAAS,CAAA,IAAK,OAAO,SAAA,KAAc,WACrD,SAAA,GACA,MAAA;AAAA,EACN,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAChC,IAAA,OAAO,cAAA,CAAe,SAAS,CAAA,GAAI,SAAA,GAAY,MAAA;AAAA,EACjD;AACA,EAAA,OAAOP,YAAAA,CAAO,QAAQ,SAAS,CAAA;AACjC;;;AC7LO,IAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,OAAO;AAAA,EACrD,GAAA,EAAK,KAAA;AAAA,EACL,EAAA,EAAI;AACN,CAAA,CAAE;;;ACHK,IAAM,GAAA,GAAM,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EAC/C,GAAA,EAAK,OAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,mCAAA;AAAA,IACN,QAAA,EAAU,qCAAA;AAAA,IACV,OAAA,EAAS,yBAAA;AAAA,IACT,OAAA,EAAS,4BAAA;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,EAAA,EAAI,KAAA;AAAA,IACJ,kBAAA,EAAoB;AAAA,MAClB,EAAA,EAAI,iBAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,cAAA;AAAA,QACJ,IAAA,EAAM,+BAAA;AAAA,QACN,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,IAAA,EAAM,kBAAA;AAAA,QACN,IAAA,EAAM;AAAA;AACR;AACF;AAEJ,CAAA,CAAE;;;AC1BK,IAAM,OAAA,GAAU,aAAA,CAAc,YAAA,EAAc,OAAO;AAAA,EACxD,GAAA,EAAK,KAAA;AAAA,EACL,EAAA,EAAI,cAAA;AAAA,EACJ,KAAA,EAAO;AAAA,IACL,EAAA,EAAI;AAAA;AAER,CAAA,CAAE;;;ACNK,IAAM,QAAA,GAAW,aAAA,CAAc,OAAA,EAAS,MAAM;;;ACA9C,IAAM,QAAA,GAAW,aAAA,CAAc,OAAA,EAAS,MAAM;;;ACA9C,IAAM,SAAA,GAAY,aAAA,CAAc,QAAA,EAAU,OAAO;AAAA,EACtD,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,CAAC,QAAA,EAAU,UAAU,CAAA;AAAA,EAC1B,KAAA,EAAO;AAAA,IACL,eAAA,EAAiB;AAAA;AAErB,CAAA,CAAE;;;ACNK,IAAM,UAAA,GAAa,aAAA,CAAc,SAAA,EAAW,IAAI;;;ACAhD,IAAM,UAAA,GAAa,aAAA,CAAc,SAAA,EAAW,OAAO;AAAA,EACxD,GAAA,EAAK,OAAA;AAAA,EACL,KAAA,EAAO;AAAA,IACL,eAAA,EAAiB;AAAA,MACf,EAAA,EAAI,iBAAA;AAAA,MACJ,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,EAAA,EAAI,uBAAA;AAAA,MACJ,IAAA,EAAM,yCAAA;AAAA,MACN,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA,CAAE;;;ACdK,IAAM,WAAA,GAAc,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACvD,GAAA,EAAK,QAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,EAAA,EAAI;AAAA;AAER,CAAA,CAAE;;;ACTK,IAAM,WAAA,GAAc,aAAA,CAAc,SAAA,EAAW,IAAI;;;ACAjD,IAAM,SAAA,GAAY,aAAA,CAAc,WAAA,EAAa,OAAO;AAAA,EACzD,GAAA,EAAK,MAAA;AAAA,EACL,KAAA,EAAO;AAAA,IACL,aAAA,EAAe;AAAA;AAEnB,CAAA,CAAE;;;ACLK,IAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,OAAO;AAAA,EACvD,GAAA,EAAK,UAAA;AAAA,EACL,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,KAAA;AAAA,IACJ,kBAAA,EAAoB;AAAA,MAClB,EAAA,EAAI,OAAA;AAAA,MACJ,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA,CAAE;;;ACVK,IAAM,SAAA,GAAY,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACrD,GAAA,EAAK,OAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,iBAAA;AAAA,IACV,MAAA,EAAQ,gBAAA;AAAA,IACR,EAAA,EAAI,KAAA;AAAA,IACJ,kBAAA,EAAoB,cAAA;AAAA,IACpB,eAAA,EAAiB;AAAA;AAErB,CAAA,CAAE;;;ACbK,IAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,OAAO;AAAA,EACvD,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,CAAC,MAAA,EAAQ,QAAQ;AACxB,CAAA,CAAE;;;ACHK,IAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,OAAO;AAAA,EACvD,GAAA,EAAK,IAAA;AAAA,EACL,EAAA,EAAI,eAAA;AAAA,EACJ,KAAA,EAAO;AAAA,IACL,mBAAA,EAAqB;AAAA;AAEzB,CAAA,CAAE;;;ACNK,IAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,OAAO;AAAA,EACvD,GAAA,EAAK,MAAA;AAAA,EACL,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA;AAEX,CAAA,CAAE;;;ACLK,IAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,OAAO;AAAA,EAC3D,GAAA,EAAK,QAAA;AAAA,EACL,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAA,CAAE;;;ACNK,IAAM,SAAA,GAAY,aAAA,CAAc,MAAA,EAAQ,OAAO;AAAA,EACpD,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM;AAAA,IACJ,WAAA,EAAa;AAAA,GACf;AAAA,EACA,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,KAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,kBAAA;AAAA,IACV,cAAA,EAAgB;AAAA;AAEpB,CAAA,CAAE;;;ACZK,IAAM,QAAA,GAAW,aAAA,CAAc,SAAA,EAAW,IAAA,EAAM,IAAI;;;ACApD,IAAM,IAAA,GAAO,aAAA,CAAc,MAAA,EAAQ,OAAO;AAAA,EAC/C,GAAA,EAAK,KAAA;AAAA,EACL,EAAA,EAAI,OAAA;AAAA,EACJ,KAAA,EAAO;AAAA,IACL,EAAA,EAAI;AAAA;AAER,CAAA,CAAE;;;ACNK,IAAM,IAAA,GAAO,CAClB,UAAA,EACA,EAAA,KACmC;AACnC,EAAA,OAAO,aAAA,CAAc,CAAA,EAAG,UAAU,CAAA,IAAA,CAAA,EAAQ,MAAM;AAC9C,IAAA,MAAM,WAAA,GAAc,CAAA,IAAA,EAAO,UAAA,CACxB,MAAA,CAAO,CAAC,CAAA,CACR,WAAA,EAAa,CAAA,EAAG,UAAA,CAAW,KAAA,CAAM,CAAC,CAAC,CAAA,IAAA,CAAA;AACtC,IAAA,OAAO;AAAA,MACL,EAAA,EAAI,CAAA,CAAA,EAAI,UAAU,CAAA,SAAA,EAAY,WAAW,CAAA,CAAA;AAAA,MACzC,GAAA,EAAK,CAAA,EAAG,EAAA,GAAK,EAAA,GAAK,MAAM,CAAA,CAAA;AAAA,MACxB,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,YAAY,UAAU,CAAA,0BAAA,CAAA;AAAA,QAC7B,SAAA,EAAW,IAAI,WAAW,CAAA,CAAA;AAAA,QAC1B,OAAA,EAAS,uBAAuB,UAAU,CAAA,CAAA,CAAA;AAAA,QAC1C,IAAA,EAAM,iBAAiB,UAAU,CAAA,CAAA,CAAA;AAAA,QACjC,QAAA,EAAU,iBAAiB,UAAU,CAAA,kCAAA,CAAA;AAAA,QACrC,GAAA,EAAK;AAAA,UACH,EAAA,EAAI,CAAA,EAAG,EAAA,KAAO,OAAO,CAAA,CAAA;AAAA,UACrB,IAAA,EAAM;AAAA;AACR;AACF,KACF;AAAA,EACF,CAAC,CAAA,EAAE;AACL;;;ACxBO,IAAM,KAAA,GAAQ,aAAA,CAAc,OAAA,EAAS,KAAK;;;ACA1C,IAAM,KAAA,GAAQ,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACjD,GAAA,EAAK,OAAA;AAAA,EACL,EAAA,EAAI,QAAA;AAAA,EACJ,KAAA,EAAO;AAAA,IACL,GAAA,EAAK;AAAA;AAET,CAAA,CAAE;;;ACNK,IAAM,MAAA,GAAS,aAAA,CAAc,QAAA,EAAU,OAAO;AAAA,EACnD,GAAA,EAAK,QAAA;AAAA,EACL,EAAA,EAAI;AACN,CAAA,CAAE;;;ACHK,IAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,OAAO;AAAA,EACrD,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,CAAC,SAAA,EAAW,WAAW,CAAA;AAAA,EAC5B,KAAA,EAAO;AAAA,IACL,GAAA,EAAK,cAAA;AAAA,IACL,EAAA,EAAI,CAAA,wBAAA,CAAA;AAAA,IACJ,mBAAA,EAAqB;AAAA;AAEzB,CAAA,CAAE;;;ACRK,IAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,OAAO;AAAA,EACvD,GAAA,EAAK,IAAA;AAAA,EACL,EAAA,EAAI;AACN,CAAA,CAAE;;;ACHK,IAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,OAAO;AAAA,EACrD,GAAA,EAAK,MAAA;AAAA,EACL,EAAA,EAAI;AACN,CAAA,CAAE;;;ACHK,IAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,OAAO;AAAA,EACvD,GAAA,EAAK,UAAA;AAAA,EACL,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA;AAEX,CAAA,CAAE;;;ACNK,IAAM,MAAA,GAAS,aAAA,CAAc,QAAA,EAAU,OAAO;AAAA,EACnD,GAAA,EAAK,QAAA;AAAA,EACL,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,eAAA;AAAA,IACP,QAAA,EAAU;AAAA;AAEd,CAAA,CAAE;;;ACRK,IAAM,UAAA,GAAa,aAAA,CAAc,SAAA,EAAW,OAAO;AAAA,EACxD,GAAA,EAAK,IAAA;AAAA,EACL,EAAA,EAAI,iBAAA;AAAA,EACJ,GAAA,EAAK,CAAC,QAAA,EAAU,6BAA6B;AAC/C,CAAA,CAAE;;;ACJK,IAAM,KAAA,GAAQ,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACjD,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM;AAAA,IACJ,WAAA,EAAa;AAAA,GACf;AAAA,EACA,KAAA,EAAO;AAAA,IACL,GAAA,EAAK,KAAA;AAAA,IACL,aAAA,EAAe,sBAAA;AAAA,IACf,WAAA,EAAa,OAAA;AAAA,IACb,eAAA,EACE,8EAAA;AAAA,IACF,mBAAA,EAAqB,oBAAA;AAAA,IACrB,eAAA,EAAiB,sDAAA;AAAA,IACjB,YAAA,EAAc,2BAAA;AAAA,IACd,eAAA,EAAiB,8BAAA;AAAA,IACjB,cAAA,EAAgB,6BAAA;AAAA,IAChB,aAAA,EAAe,4BAAA;AAAA,IACf,gBAAA,EAAkB,+BAAA;AAAA,IAClB,kBAAA,EAAoB,4CAAA;AAAA,IACpB,kBAAA,EAAoB,4CAAA;AAAA,IACpB,wBAAA,EAA0B,+CAAA;AAAA,IAC1B,wBAAA,EAA0B;AAAA;AAE9B,CAAA,CAAE;;;ACvBK,IAAM,MAAA,GAAS,aAAA,CAAc,QAAA,EAAU,IAAI;;;ACA3C,IAAM,WAAA,GAAc,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACvD,GAAA,EAAK,QAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,KAAA;AAAA,IACJ,kBAAA,EAAoB,6CAAA;AAAA,IACpB,QAAA,EAAU,WAAA;AAAA,IACV,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,oBAAA;AAAA,IACV,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,kBAAA,EAAoB,cAAA;AAAA,IACpB,eAAA,EAAiB;AAAA;AAErB,CAAA,CAAE;;;ACfK,IAAM,WAAA,GAAc,aAAA,CAAc,QAAA,EAAU,OAAO;AAAA,EACxD,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAA,CAAE;;;ACPK,IAAM,MAAA,GAAS,aAAA,CAAc,QAAA,EAAU,IAAI;;;ACA3C,IAAM,SAAA,GAAY,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACrD,GAAA,EAAK,OAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,OAAA,EAAS,oBAAA;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,EAAA,EAAI,KAAA;AAAA,IACJ,kBAAA,EAAoB,cAAA;AAAA,IACpB,eAAA,EAAiB;AAAA;AAErB,CAAA,CAAE;;;ACdK,IAAM,aAAA,GAAgB,aAAA,CAAc,OAAA,EAAS,OAAO;AAAA,EACzD,GAAA,EAAK,UAAA;AAAA,EACL,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,QAAA,EAAU,WAAA;AAAA,IACV,IAAA,EAAM,YAAA;AAAA,IACN,OAAA,EAAS,oBAAA;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,EAAA,EAAI,KAAA;AAAA,IACJ,kBAAA,EAAoB,cAAA;AAAA,IACpB,eAAA,EAAiB;AAAA,GACnB;AAAA,EACA,QAAA,EAAU;AACZ,CAAA,CAAE;;;ACdK,IAAM,OAAA,GAAU,aAAA,CAAc,SAAA,EAAW,KAAK;;;ACFrD,IAAI,aAAA,GAAgB,CAAA;AAEb,SAAS,UAAA,GAAa;AAC3B,EAAA,aAAA,GAAgB,CAAA;AAClB;AASe,SAAR,cAA+B,IAAA,EAAmB;AACvD,EAAA,IAAI,IAAA,CAAK,IAAA,KAAS,OAAA,IAAW,IAAA,CAAK,SAAS,MAAA,EAAQ;AACjD,IAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,mBAAmB,CAAA;AAAA,EACtC;AACF;AAEA,SAAS,oBAAoB,IAAA,EAAmB;AAC9C,EAAA,IAAI,IAAA,CAAK,KAAA,CAAM,IAAA,KAAS,OAAA,EAAS;AAC/B,IAAA,IAAA,CAAK,QAAA,CAAS,CAAC,SAAS,CAAC,CAAA;AACzB,IAAA,IAAA,CAAK,MAAM,OAAA,GAAU,CAAA,EAAG,IAAA,CAAK,IAAI,IAAI,aAAA,EAAe,CAAA,CAAA;AAAA,EACtD;AACF;ACjBe,SAAR,eACL,IAAA,EAC0D;AAC1D,EAAA,OAAO,SAAU,MAAM,IAAA,EAAM;AAC3B,IAAA,IAAI,KAAK,IAAA,KAAS,SAAA,IAAa,MAAM,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,EAAG;AACxD,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAACG,OAAAA,KAAW;AACtC,QAAA,IAAI,CAACA,OAAAA,CAAO,KAAA,EAAO,EAAA,EAAI;AACrB,UAAA,OAAOH,aAAOG,OAAAA,EAAQ;AAAA,YACpB,KAAA,EAAO;AAAA,cACL,EAAA,EAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,EAAE,CAAA,QAAA,EAAWO,aAAA,CAAQ,MAAA,CAAOP,OAAAA,CAAO,KAAK,CAAC,CAAC,CAAA;AAAA;AAC9D,WACD,CAAA;AAAA,QACH;AACA,QAAA,OAAOA,OAAAA;AAAA,MACT,CAAC,CAAA;AACD,MAAA,IAAI,IAAA,CAAK,MAAM,IAAA,KAAS,UAAA,IAAc,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,EAAG;AAChE,QAAA,IAAI,KAAK,SAAA,EAAW;AAClB,UAAA,IAAA,CAAK,KAAA,CAAM,EAAC,EAAG,KAAK,CAAA;AAAA,QACtB,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,YAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,EAAG;AAC9B,cAAA,IAAA,CAAK,KAAA,CAAM,EAAC,EAAG,KAAK,CAAA;AAAA,YACtB;AAAA,UACF,CAAC,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,KAAK,IAAI,CAAA;AAAA,EAClB,CAAA;AACF;;;AC5BA,SAAS,aAAA,CAAc,MAAmB,CAAA,EAAU;AAClD,EAAA,MAAM,KAAK,CAAA,CAAE,MAAA;AACb,EAAA,IAAI,cAAc,gBAAA,EAAkB;AAClC,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,OAAO,CAAA,GAC1C,WAAA,CAAY,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS,EAAA,CAAG,KAAK,IACxC,EAAA,CAAG,KAAA;AACP,IAAA,IAAI,KAAA,CAAM,QAAQ,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ;AAClE,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA,EAAG;AAE/B,QAAA,IAAA,CAAK,KAAA,CAAM,CAAC,KAAK,CAAC,CAAA;AAAA,MACpB,CAAA,MAAA,IACE,CAAC,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,CAAC,aAAA,KAAkB,YAAA,CAAa,KAAA,EAAO,aAAa,CAAC,CAAA,EACvE;AAEA,QAAA,IAAA,CAAK,MAAM,CAAC,GAAG,IAAA,CAAK,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,MACpC,CAAA,MAAO;AAEL,QAAA,IAAA,CAAK,KAAA;AAAA,UACH,KAAK,MAAA,CAAO,MAAA;AAAA,YACV,CAAC,aAAA,KAAkB,CAAC,YAAA,CAAa,OAAO,aAAa;AAAA;AACvD,SACF;AAAA,MACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAI,GAAG,OAAA,EAAS;AACd,QAAA,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA;AAAA,MAC/B,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;AAYA,SAAS,SAAA,CAAU,MAAmB,KAAA,EAAY;AAEhD,EAAA,IAAA,CAAK,OAAA,EAAS,KAAA;AACd,EAAA,IAAA,CAAK,OAAA,EAAS,MAAA;AACd,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA,EAAG;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MAAK,CAAC,kBACvB,YAAA,CAAa,WAAA,CAAY,KAAK,KAAA,CAAM,OAAA,EAAS,KAAK,CAAA,EAAG,aAAa;AAAA,KACpE;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AASe,SAAR,WAA4B,IAAA,EAAyB;AAC1D,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,IAAA,IAAI,IAAA,CAAK,SAAS,QAAA,EAAU;AAC1B,MAAA,IAAA,CAAK,QAAQ,QAAA,CAAS,aAAA,GAAgB,aAAA,CAAc,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IACrE;AACA,IAAA,IAAI,IAAA,CAAK,SAAS,GAAA,EAAK;AACrB,MAAA,IAAA,CAAK,QAAQ,GAAA,CAAI,SAAA,GAAY,SAAA,CAAU,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IACxD;AAEA,IAAA,IAAI,CAACD,UAAI,IAAA,CAAK,KAAA,EAAO,SAAS,CAAA,EAAG,IAAA,CAAK,MAAM,OAAA,GAAU,IAAA;AACtD,IAAA,IAAI,CAACA,UAAI,IAAA,CAAK,KAAA,EAAO,UAAU,CAAA,EAAG,IAAA,CAAK,MAAM,QAAA,GAAW,KAAA;AAAA,EAC1D,CAAC,CAAA;AAED,EAAA,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,IAAI,CAAC,CAAA;AACrC;;;AC7Ee,SAAR,WAAA,CAA6B,YAAoBS,YAAAA,EAAqB;AAC3E,EAAA,OAAO,CAAC,IAAA,KAA4B;AAClC,IAAA,IAAI,KAAK,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA,IAAA,CAAM,MAAM,MAAA,EAAW;AACjD,MAAA,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA,IAAA,CAAM,CAAA,GAAIA,YAAAA,CAAY,UAAA,CAAW,MAAM,CAAA,GAC3DA,YAAAA,GACA,CAAA,QAAA,EAAWA,YAAW,CAAA,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA;AACF;ACVe,SAAR,SAA0B,IAAA,EAAyB;AACxD,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AAGvB,IAAA,IAAI,UAAA,IAAc,KAAK,KAAA,EAAO;AAC5B,MAAA,IAAA,CAAK,KAAA,CAAM,QAAA,GAAWC,cAAA,CAAS,IAAA,CAAK,MAAM,QAAQ,CAAA;AAClD,MAAA,IAAA,CAAK,MAAA,CAAO,QAAA,GAAWA,cAAA,CAAS,IAAA,CAAK,MAAM,QAAQ,CAAA;AAAA,IACrD;AAAA,EACF,CAAC,CAAA;AACD,EAAA,IAAA,CAAK,KAAK,IAAA,CAAK,CAAC,EAAE,IAAA,EAAM,KAAA,IAAS,IAAA,KAAS;AACxC,IAAA,KAAA,GAAQ,IAAA,KAAS,UAAA,GAAaA,cAAA,CAAS,KAAK,CAAA,GAAI,KAAA;AAChD,IAAA,OAAO,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,EAC7B,CAAC,CAAA;AACD,EAAA,IAAA,CAAK,GAAG,eAAA,EAAiB,CAAC,EAAE,OAAA,EAAS,OAAM,KAAM;AAC/C,IAAA,IAAA,CAAK,MAAA,CAAO,QAAA,GAAWA,cAAA,CAAS,KAAK,CAAA;AAAA,EACvC,CAAC,CAAA;AACH;ACbe,SAAR,QAAA,CACL,KACA,KAAA,EAC6B;AAC7B,EAAA,OAAO,CAAC,IAAA,KAA4B;AAClC,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,sBACOC,kBAAA,CAAc;AAAA,QAC5B,GAAA;AAAA,QACA,IAAA,EAAM,IAAA;AAAA,QACN,OAAO,KAAA,IAAS,GAAA;AAAA,QAChB,IAAA,EAAM;AAAA,UACJ,QAAA,EAAU,IAAA;AAAA,UACV,QAAA,EAAU,CAAC,IAAI;AAAA;AACjB,OACD;AAAA,KACH;AAAA,EACF,CAAA;AACF;;;ACpBA,IAAM,SAAA,GAAY,OAAO,MAAA,KAAW,WAAA;AASpC,SAAS,YAAY,CAAA,EAAU;AAC7B,EAAA,IACE,EAAE,MAAA,YAAkB,WAAA,IACpB,EAAE,MAAA,CAAO,YAAA,CAAa,iBAAiB,CAAA,EACvC;AACA,IAAA,CAAA,CAAE,MAAA,CAAO,gBAAgB,iBAAiB,CAAA;AAAA,EAC5C;AACF;AASA,SAAS,gBAAA,CAAiB,MAAc,CAAA,EAAU;AAChD,EAAA,IAAI,EAAE,CAAA,CAAE,MAAA,YAAkB,gBAAA,CAAA,EAAmB;AAC3C,IAAA,CAAA,CAAE,cAAA,EAAe;AAAA,EACnB,CAAA,MAAA,IAAW,SAAS,UAAA,EAAY;AAC9B,IAAA,CAAA,CAAE,MAAA,CAAO,YAAA,CAAa,iBAAA,EAAmB,MAAM,CAAA;AAAA,EACjD;AACA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,WAAA,CAAY,CAAC,CAAA;AAAA,EACf;AACF;AASe,SAAR,MAAuB,IAAA,EAAyB;AAErD,EAAA,QAAA,CAAS,SAAA,EAAW,aAAa,CAAA,CAAE,IAAI,CAAA;AACvC,EAAA,QAAA,CAAS,WAAA,EAAa,YAAY,CAAA,CAAE,IAAI,CAAA;AACxC,EAAA,QAAA,CAAS,QAAQ,EAAE,IAAI,CAAA;AACvB,EAAA,IAAA,CAAK,QAAA,CAAS,CAAC,mBAAmB,CAAC,CAAA;AAEnC,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,IAAI,CAAC,OAAO,kBAAA,EAAoB;AAC9B,MAAA,MAAA,CAAO,gBAAA;AAAA,QACL,UAAA;AAAA,QACA,gBAAA,CAAiB,IAAA,CAAK,IAAA,EAAM,UAAU;AAAA,OACxC;AACA,MAAA,MAAA,CAAO,iBAAiB,MAAA,EAAQ,gBAAA,CAAiB,IAAA,CAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AACnE,MAAA,MAAA,CAAO,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAChD,MAAA,MAAA,CAAO,kBAAA,GAAqB,IAAA;AAAA,IAC9B;AAAA,EACF;AACA,EAAA,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,CAAC,KAAA,EAAO,IAAA,KAAS,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,EAAE,CAAC,CAAA;AACxE,EAAA,IAAA,CAAK,GAAG,OAAA,EAAS,CAAC,EAAE,OAAA,EAAS,OAAM,KAAM;AACvC,IAAA,IAAA,CAAK,KAAA,CAAM,oBACT,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,MAAA;AAAA,EACtD,CAAC,CAAA;AAED,EAAA,IAAA,CAAK,EAAA,CAAG,SAAS,MAAM;AACrB,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,EAAA,IAAM,SAAA,EAAW;AAC9B,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,IAAA,CAAK,MAAM,EAAE,CAAA;AAChD,MAAA,IAAI,EAAA,EAAK,EAAA,CAAwB,KAAA,GAAQ,EAAA;AAAA,IAC3C;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,KAAK,GAAG,IAAA,CAAK,KAAA,CAAM,EAAC,EAAG,KAAK,CAAA;AAEpD,IAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AAEnB,IAAA,IAAA,CAAK,OAAA,CAAQ,QAAA,CAAS,UAAA,GAAa,CAAC,CAAA,KAAa;AAC/C,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAA,CAAK,KAAA,CAAM,EAAE,CAAA;AACb,MAAA,IAAI,IAAA,CAAK,KAAA,CAAM,EAAA,IAAM,SAAA,EAAW;AAC9B,QAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,IAAA,CAAK,MAAM,EAAE,CAAA;AAChD,QAAA,IAAI,EAAA,EAAK,EAAA,CAAwB,KAAA,GAAQ,EAAA;AACzC,QAAA,EAAA,EAAI,KAAA,EAAM;AAAA,MACZ;AAAA,IACF,CAAA;AAEA,IAAA,IAAA,CAAK,OAAA,CAAQ,QAAA,CAAS,KAAA,GAAQ,CAAC,CAAA,KAAa;AAC1C,MAAA,MAAMC,SAA0B,EAAC;AACjC,MAAA,IAAI,CAAA,CAAE,MAAA,YAAkB,gBAAA,IAAoB,CAAA,CAAE,OAAO,KAAA,EAAO;AAC1D,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,EAAE,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AAC9C,UAAA,IAAIC,KAAAA;AACJ,UAAA,IAAKA,QAAO,CAAA,CAAE,MAAA,CAAO,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,EAAI;AACnC,YAAAD,MAAAA,CAAM,KAAK,EAAE,IAAA,EAAMC,MAAK,IAAA,EAAM,IAAA,EAAAA,OAAM,CAAA;AAAA,UACtC;AAAA,QACF;AACA,QAAA,IAAA,CAAK,MAAMD,MAAK,CAAA;AAAA,MAClB;AACA,MAAA,IAAI,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,OAAA,CAAQ,KAAA,GAAQA,MAAAA;AAGvC,MAAA,IAAI,OAAO,IAAA,CAAK,KAAA,CAAM,KAAA,EAAO,aAAa,UAAA,EAAY;AACpD,QAAA,IAAA,CAAK,KAAA,CAAM,KAAA,EAAO,QAAA,CAAS,CAAC,CAAA;AAAA,MAC9B;AAAA,IACF,CAAA;AAAA,EACF,CAAC,CAAA;AACH;ACnHA,IAAM,OAAA,mBAA0BD,kBAAAA,CAAc;AAAA,EAC5C,GAAA,EAAK,SAAA;AAAA,EACL,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS;AACX,CAAC,CAAA;AASD,eAAe,YAAA,CAAa,MAAmB,WAAA,EAAoB;AACjE,EAAA,MAAM,WAAA,GAAc,KAAK,MAAA,EAAO;AAChC,EAAA,IAAA,CAAK,MAAM,YAAA,GAAe,WAAA;AAC1B,EAAA,WAAA,CAAY,cAAA,EAAe;AAC3B,EAAA,MAAM,IAAA,CAAK,OAAA;AAEX,EAAA,IAAI,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,YAAY,CAAA,EAAG;AAEnC,IAAA,IAAA,CAAK,KAAA,CAAM,IAAI,OAAO,CAAA;AACtB,IAAA,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA;AACtC,IAAA,IAAA,CAAK,KAAA,CAAM,OAAO,SAAS,CAAA;AAE3B,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,YAAA,KAAiB,WAAA,EAAa;AAAA,EAC/C;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KACpB,CAAA,CAAE,KAAA,CAAM,GAAA;AAAA,oBACUA,kBAAAA,CAAc;AAAA,MAC5B,GAAA,EAAK,WAAA;AAAA,MACL,KAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAS;AAAA,KACV;AAAA,GACH;AACF,EAAA,IAAA,CAAK,KAAK,YAAY,CAAA;AACtB,EAAA,YAAA,CAAa,IAAI,CAAA;AAEjB,EAAA,IAAA,CAAK,KAAK,YAAY,CAAA;AACtB,EAAA,IAAI,OAAO,IAAA,CAAK,KAAA,CAAM,WAAA,KAAgB,UAAA,EAAY;AAChD,IAAA,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,WAAA,EAAa,IAAI,CAAA;AAAA,EAC1C;AAEA,EAAA,IAAI,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,UAAU,CAAA,EAAG;AACjC,IAAA,IAAI,OAAO,IAAA,CAAK,KAAA,CAAM,eAAA,KAAoB,UAAA,EAAY;AACpD,MAAA,IAAA,CAAK,KAAA,CAAM,gBAAgB,IAAI,CAAA;AAAA,IACjC;AAEA,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,iBAAA,KAAsB,KAAA,EAAO;AAC1C,MAAA,oBAAA,CAAqB,IAAI,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA,MAAO;AAEL,IAAA,IAAI,OAAO,IAAA,CAAK,KAAA,CAAM,QAAA,KAAa,UAAA,EAAY;AAE7C,MAAA,MAAM,MAAA,GAAS,KAAK,KAAA,CAAM,QAAA;AAAA,QACxB,KAAK,IAAA,CAAK,MAAA,CAAO,SAASG,WAAA,CAAM,IAAA,CAAK,KAA4B,CAAC,CAAA;AAAA,QAClE;AAAA,OACF;AACA,MAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,QAAA,MAAM,cACJ,IAAA,CAAK,KAAA,CAAM,aAAa,MAAA,IACxB,IAAA,CAAK,MAAM,cAAA,KAAmB,MAAA;AAChC,QAAA,IAAI,WAAA,EAAa,IAAA,CAAK,KAAA,CAAM,QAAA,GAAW,IAAA;AACvC,QAAA,IAAA,CAAK,KAAA,CAAM,IAAI,OAAO,CAAA;AACtB,QAAA,MAAM,MAAA;AACN,QAAA,IAAI,WAAA,EAAa,IAAA,CAAK,KAAA,CAAM,QAAA,GAAW,KAAA;AACvC,QAAA,IAAA,CAAK,KAAA,CAAM,OAAO,SAAS,CAAA;AAAA,MAC7B;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAI,WAAA,CAAY,kBAAkB,eAAA,EAAiB;AACjD,QAAA,WAAA,CAAY,OAAO,MAAA,EAAO;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACF;AAMA,SAAS,qBAAqB,IAAA,EAAmB;AAC/C,EAAA,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,oBACOH,kBAAAA,CAAc;AAAA,MAC5B,QAAA,EAAU,KAAA;AAAA,MACV,GAAA,EAAK,CAAA,UAAA,CAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,QAAA,EAAU,IAAA,CAAK,KAAA,CAAM,iBAAA,KAAsB,MAAA;AAAA,QAC3C,QAAA,EAAU,CAAC,EAAE,IAAA,EAAM,CAAA;AAAA,QACnB,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,IAAA,EAAM,IAAA;AAAA,MACN,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,iBAAA,IAAqB;AAAA,KACxC;AAAA,GACH;AACF;AASe,SAAR,KAAsB,IAAA,EAAyB;AA5GtD,EAAA,IAAA,EAAA;AA6GE,EAAA,IAAA,CAAK,MAAM,MAAA,GAAS,IAAA;AACpB,EAAA,IAAA,CAAK,OAAO,KAAA,CAAM,YAAA,EAAc,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,YAAY,CAAA;AAE7D,EAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAA,EAAM,WAAA,KAAX,EAAA,CAAW,WAAA,GAAgB;AAAA,IACzB,QAAA,EAAU,KAAK,KAAA,CAAM;AAAA,GACvB,CAAA;AAEA,EAAA,IAAA,CAAK,GAAG,eAAA,EAAiB,CAAC,EAAE,OAAA,EAAS,UAAS,KAAM;AAClD,IAAA,IAAA,CAAK,MAAM,WAAA,GAAc,EAAE,GAAG,IAAA,CAAK,KAAA,CAAM,aAAa,QAAA,EAAS;AAAA,EACjE,CAAC,CAAA;AAED,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,IAAA,IAAI,IAAA,CAAK,SAAS,QAAA,EAAU;AAC1B,MAAA,IAAA,CAAK,QAAQ,QAAA,CAAS,MAAA,GAAS,YAAA,CAAa,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IAC7D;AACA,IAAA,IAAI,CAACX,SAAAA,CAAI,IAAA,CAAK,KAAA,EAAO,SAAS,CAAA,EAAG;AAC/B,MAAA,IAAA,CAAK,MAAM,OAAA,GAAU,IAAA;AAAA,IACvB;AAAA,EACF,CAAC,CAAA;AACD,EAAA,IAAA,CAAK,EAAA,CAAG,0BAA0B,MAAM;AACtC,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,UAAA,EAAY,oBAAA,CAAqB,IAAI,CAAA;AAAA,EACtD,CAAC,CAAA;AACD,EAAA,IAAA,CAAK,GAAG,kBAAA,EAAoB,MAAM,KAAK,KAAA,CAAM,MAAA,CAAO,YAAY,CAAC,CAAA;AACnE;;;AC3He,SAAR,OAAwB,IAAA,EAAyB;AACtD,EAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,KAAW,MAAA,EAAW;AACnC,IAAA,IAAA,CAAK,MAAM,MAAA,GAAS,IAAA;AACpB,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAAA,EAChB;AACF;;;ACLe,SAAR,aAA8B,IAAA,EAAyB;AAC5D,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,IAAA,CAAK,OAAA,CAAQ,YAAA,GAAe,IAAA,CAAK,KAAA,IAAS,EAAA;AAAA,IAC5C;AAAA,EACF,CAAC,CAAA;AACH;;;ACNe,SAAR,MAAuB,IAAA,EAAyB;AACrD,EAAA,IAAI,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,KAAW,WAAA,EAAa;AAC9C,EAAA,MAAM,MAAA,GAAS,CAAC,QAAA,EAAU,OAAA,EAAS,QAAQ,CAAA,CAAE,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AACrE,EAAA,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,CAAC,KAAA,EAAO,IAAA,KAAS;AAC/B,IAAA,IAAI,KAAA,KAAU,EAAA,EAAI,OAAO,IAAA,CAAK,MAAS,CAAA;AACvC,IAAA,MAAM,YAAA,GACJ,KAAK,KAAA,CAAM,MAAA,KAAW,YAAY,QAAA,CAAS,KAAK,CAAA,GAAI,UAAA,CAAW,KAAK,CAAA;AACtE,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA;AAC/B,MAAA,OAAO,MAAA,GAAS,IAAA,CAAK,MAAS,CAAA,GAAI,KAAK,KAAK,CAAA;AAC9C,IAAA,OAAO,KAAK,YAAY,CAAA;AAAA,EAC1B,CAAC,CAAA;AACH;ACRA,SAASe,cAAAA,CAAc,MAAmB,KAAA,EAAc;AACtD,EAAA,IAAI,KAAA,CAAM,kBAAkB,gBAAA,EAAkB;AAC5C,IAAA,IAAA,CAAK,KAAA,CAAM,YAAY,IAAA,CAAK,KAAA,CAAM,SAAS,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAChE;AACF;AAYA,SAASC,UAAAA,CAAU,MAAmB,KAAA,EAAe;AAEnD,EAAA,IAAA,CAAK,OAAA,EAAS,KAAA;AACd,EAAA,IAAA,CAAK,OAAA,EAAS,MAAA;AACd,EAAA,OAAO,YAAA,CAAa,YAAY,IAAA,CAAK,KAAA,CAAM,SAAS,KAAK,CAAA,EAAG,KAAK,MAAM,CAAA;AACzE;AASe,SAAR,OAAwB,IAAA,EAAyB;AACtD,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,EAAG;AACtC,MAAAC,SAAA,CAAK,GAAA,EAAK;AAAA,QACR,IAAA;AAAA,QACA,SAAA,EAAW;AAAA,OACZ,CAAA;AAAA,IACH;AACA,IAAA,IAAI,IAAA,CAAK,SAAS,QAAA,EAAU;AAC1B,MAAA,IAAA,CAAK,QAAQ,QAAA,CAAS,aAAA,GAAgBF,cAAAA,CAAc,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IACrE;AACA,IAAA,IAAI,IAAA,CAAK,SAAS,GAAA,EAAK;AACrB,MAAA,IAAA,CAAK,QAAQ,GAAA,CAAI,SAAA,GAAYC,UAAAA,CAAU,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IACxD;AAAA,EACF,CAAC,CAAA;AACD,EAAA,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,IAAI,CAAC,CAAA;AACrC;ACzCA,SAAS,UAAA,CACP,MACAf,OAAAA,EACA;AACA,EAAA,IAAI,aAAA,CAAcA,OAAM,CAAA,EAAG,OAAO,KAAA;AAElC,EAAA,IAAA,CAAK,OAAA,IAAW,KAAK,OAAA,CAAQ,KAAA;AAC7B,EAAA,MAAMiB,YAAAA,GAAc,YAAA,IAAgBjB,OAAAA,GAASA,OAAAA,CAAO,aAAaA,OAAAA,CAAO,KAAA;AACxE,EAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA,GAC5B,KAAK,MAAA,CAAO,IAAA,CAAK,CAAC,OAAA,KAAY,aAAa,OAAA,EAASiB,YAAW,CAAC,CAAA,GAAA,CAC/D,IAAA,CAAK,WAAW,MAAA,IACd,IAAA,CAAK,MAAA,KAAW,IAAA,IAAQ,CAAC,aAAA,CAAc,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS,IAAI,CAAA,KAClEjB,OAAAA,CAAO,KAAA,IACPA,OAAAA,CAAO,MAAM,qBAAqB,CAAA,GAClC,OACA,YAAA,CAAaiB,YAAAA,EAAa,KAAK,MAAM,CAAA;AAC3C;AAKA,SAAS,aAAA,CACPhB,UACA,KAAA,EACS;AACT,EAAA,OAAOA,QAAAA,CAAQ,IAAA,CAAK,CAACD,OAAAA,KAAW;AAC9B,IAAA,IAAI,aAAA,CAAcA,OAAM,CAAA,EAAG;AACzB,MAAA,OAAO,aAAA,CAAcA,OAAAA,CAAO,OAAA,EAAS,KAAK,CAAA;AAAA,IAC5C,CAAA,MAAO;AACL,MAAA,OAAA,CACG,YAAA,IAAgBA,OAAAA,GAASA,OAAAA,CAAO,UAAA,GAAaA,QAAO,KAAA,MAAW,KAAA;AAAA,IAEpE;AAAA,EACF,CAAC,CAAA;AACH;AAOA,eAAe,WAAA,CAAY,MAAmB,CAAA,EAAU;AACtD,EAAA,IAAI,OAAO,IAAA,CAAK,KAAA,CAAM,KAAA,EAAO,aAAa,UAAA,EAAY;AACpD,IAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,MAAM,UAAA,CAAW,CAAA,EAAG,CAAC,CAAC,CAAA;AACzC,IAAA,MAAM,IAAA,CAAK,OAAA;AACX,IAAA,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,QAAA,CAAS,CAAC,CAAA;AAAA,EAC7B;AACF;AAMA,SAAyBkB,YAAAA,CAAY,MAAmB,CAAA,EAAU;AAChE,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,KAAA,GAAQ,OAAO,YAAA,CAAa,UAAU,IACxC,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,eAAe,CAAA,CAAE,GAAA;AAAA,IAAI,CAAC,CAAA,KACtC,WAAA,CAAY,KAAK,KAAA,CAAM,OAAA,EAAS,EAAE,KAAK;AAAA,MAEzC,WAAA,CAAY,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS,OAAO,KAAK,CAAA;AAChD,EAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAClB;AAQA,SAAS,gBAAA,CAAiBjB,UAA6B,WAAA,EAAqB;AAC1E,EAAA,IACE,CAACA,QAAAA,CAAQ,IAAA;AAAA,IACP,CAACD,OAAAA,KAAWA,OAAAA,CAAO,KAAA,IAASA,OAAAA,CAAO,MAAM,qBAAqB;AAAA,GAChE,EACA;AACA,IAAA,OAAO;AAAA,MACL;AAAA,QACE,KAAA,EAAO,WAAA;AAAA,QACP,KAAA,EAAO,EAAA;AAAA,QACP,KAAA,EAAO;AAAA,UACL,MAAA,EAAQ,IAAA;AAAA,UACR,QAAA,EAAU,IAAA;AAAA,UACV,qBAAA,EAAuB;AAAA;AACzB,OACF;AAAA,MACA,GAAGC;AAAA,KACL;AAAA,EACF;AACA,EAAA,OAAOA,QAAAA;AACT;AAMA,SAAS,WAAWA,QAAAA,EAAgD;AAClE,EAAA,MAAMD,UAASC,QAAAA,CAAQ,MAAA,GAAS,CAAA,GAAIA,QAAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AACjD,EAAA,IAAI,CAACD,SAAQ,OAAO,MAAA;AACpB,EAAA,IAAI,cAAcA,OAAM,CAAA,EAAG,OAAO,UAAA,CAAWA,QAAO,OAAO,CAAA;AAC3D,EAAA,OAAO,YAAA,IAAgBA,OAAAA,GAASA,OAAAA,CAAO,UAAA,GAAaA,OAAAA,CAAO,KAAA;AAC7D;AAOe,SAAR,OAAwB,IAAA,EAAyB;AAEtD,EAAA,IAAA,CAAK,EAAA,CAAG,WAAW,MAAM;AACvB,IAAA,MAAM,UAAA,GAAaS,cAAAA,CAAS,IAAA,CAAK,KAAA,CAAM,OAAO,QAAQ,CAAA;AAEtD,IAAA,IACE,CAAC,UAAA,IACD,IAAA,CAAK,KAAA,CAAM,WAAA,IACX,MAAM,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,EAChC;AACA,MAAA,IAAA,CAAK,KAAK,IAAA,CAAK,CAAC,EAAE,IAAA,EAAM,KAAA,IAAS,IAAA,KAAS;AACxC,QAAA,IAAI,SAAS,SAAA,EAAW;AACtB,UAAA,KAAA,GAAQ,gBAAA,CAAiB,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,WAAW,CAAA;AAAA,QACxD;AACA,QAAA,OAAO,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,MAC7B,CAAC,CAAA;AACD,MAAA,IAAA,CAAK,MAAM,OAAA,GAAU,gBAAA;AAAA,QACnB,KAAK,KAAA,CAAM,OAAA;AAAA,QACX,KAAK,KAAA,CAAM;AAAA,OACb;AAAA,IACF;AACA,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,IAAI,IAAA,CAAK,UAAU,MAAA,EAAW;AAC5B,QAAA,IAAA,CAAK,KAAA,CAAM,EAAC,EAAG,KAAK,CAAA;AAAA,MACtB;AAAA,IACF,WAAW,IAAA,CAAK,OAAA,IAAW,CAAC,IAAA,CAAK,QAAQ,OAAA,EAAS;AAGhD,MAAA,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,IAAA,CAAK,MAAM,KAAA,EAAO;AAAA,QACrD,OAAO,IAAA,CAAK;AAAA,OACb,CAAA;AACD,MAAA,IAAA,CAAK,EAAA,CAAG,OAAA,EAAS,CAAC,EAAE,SAAQ,KAAM;AAChC,QAAA,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,IAAA,CAAK,MAAM,KAAA,EAAO;AAAA,UACrD,KAAA,EAAO;AAAA,SACR,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH;AACA,IAAA,IAAI,IAAA,CAAK,SAAS,QAAA,EAAU;AAC1B,MAAA,IAAA,CAAK,QAAQ,QAAA,CAAS,WAAA,GAAcS,YAAAA,CAAY,IAAA,CAAK,MAAM,IAAI,CAAA;AAC/D,MAAA,IAAA,CAAK,QAAQ,QAAA,CAAS,QAAA,GAAW,WAAA,CAAY,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IAC9D;AACA,IAAA,IAAI,IAAA,CAAK,SAAS,GAAA,EAAK;AACrB,MAAA,IAAA,CAAK,QAAQ,GAAA,CAAI,UAAA,GAAa,UAAA,CAAW,IAAA,CAAK,MAAM,IAAI,CAAA;AACxD,MAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,eAAA,GAAkB,CAAC,OAAgB,WAAA,KAAgB;AAClE,QAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,KAAA,CAAM,OAAO,GAAG,OAAO,KAAA;AAC/C,QAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAA;AAAA,UAC1C,CAAClB,OAAAA,KAA+B;AAC9B,YAAA,IAAIA,OAAAA,CAAO,KAAA,IAAS,qBAAA,IAAyBA,OAAAA,CAAO,KAAA;AAClD,cAAA,OAAO,KAAA;AACT,YAAA,MAAMiB,YAAAA,GACJ,YAAA,IAAgBjB,OAAAA,GAASA,OAAAA,CAAO,aAAaA,OAAAA,CAAO,KAAA;AACtD,YAAA,OAAOG,QAAAA,CAAG,OAAOc,YAAW,CAAA;AAAA,UAC9B;AAAA,SACF;AACA,QAAA,OAAO,WAAA,IAAe,CAAC,gBAAA,GAAmB,IAAA,GAAO,MAAA;AAAA,MACnD,CAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,CAAC,KAAA,EAAO,IAAA,KAAS;AAC/B,IAAA,IACE,CAAC,KAAK,KAAA,CAAM,WAAA,IACZ,UAAU,MAAA,IACV,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,KAAA,EAAO,OAAO,KACjC,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,IACnB,CAACR,eAAS,IAAA,CAAK,KAAA,EAAO,KAAA,EAAO,QAAQ,CAAA,EACrC;AACA,MAAA,KAAA,GAAQ,UAAA,CAAW,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA;AAAA,IACvC;AACA,IAAA,OAAO,KAAK,KAAK,CAAA;AAAA,EACnB,CAAC,CAAA;AACH;;;;AC1GO,SAAS,gBAAgB,IAAA,EAI9B;AACA,EAAA,IACEU,kBAAA,CAAc,IAAI,CAAA,IAClB,IAAA,CAAK,MACL,IAAA,CAAK,EAAA,CAAG,WAAW,SAAS,CAAA,IAC5B,OAAO,IAAA,CAAK,IAAA,KAAS,YACrB,IAAA,CAAK,IAAA,CAAK,WAAW,SAAS,CAAA,IAC9B,UAAU,IAAA,EACV;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA;AACT;AAAA;AAaO,SAAS,WAAA,CACd,QACA,MAAA,EAMI;AACJ,EAAA,OACE,WAAA;AAAA,IACE,MAAA;AAAA,IACA,CAAC,OAAA,EAAS,gBAAA,EAAkB,MAAA,KAAW;AACrC,MAAA,IAAI,OAAA,CAAQ,IAAA,EAAM,OAAA,KAAY,MAAA,EAAQ;AACpC,QAAA,OAAO,CAAC,QAAQ,gBAAgB,CAAA;AAAA,MAClC;AACA,MAAA;AAAA,IACF,CAAA;AAAA,IACA;AAAA,GACF,IAAK,CAAC,KAAA,EAAO,KAAK,CAAA;AAEtB;AAeO,SAAS,WAAA,CACd,MAAA,EACA,QAAA,EAKA,oBAAA,GAAuB,OACvB,YAAA,EACU;AACV,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AACzB,IAAA,KAAA,MAAW,QAAQ,MAAA,EAAQ;AACzB,MAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,QACrB,IAAA;AAAA,QACA,QAAA;AAAA,QACA,oBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,kBAAkB,oBAAA,EAAsB;AAC1C,QAAA,OAAO,cAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA;AAAA,EACF;AACA,EAAA,IAAI,SAAA,CAAU,MAAM,CAAA,EAAG;AACrB,IAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,QAAQ,YAAY,CAAA;AACjE,IAAA,IAAI,kBAAkB,oBAAA,EAAsB;AAC1C,MAAA,OAAO,cAAA;AAAA,IACT;AACA,IAAA,OAAO,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,QAAA,EAAU,sBAAsB,MAAM,CAAA;AAAA,EACxE,CAAA,MAAA,IAAA,CAAYb,iBAAY,MAAM,CAAA,IAAKD,WAAM,MAAM,CAAA,KAAM,OAAO,QAAA,EAAU;AACpE,IAAA,OAAO,WAAA;AAAA,MACL,MAAA,CAAO,QAAA;AAAA,MACP,QAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA,MAAA,IAAWc,kBAAA,CAAc,MAAM,CAAA,EAAG;AAChC,IAAA,IAAI,cAAA,GAA2B,MAAA;AAE/B,IAAA,IAAI,MAAA,CAAO,IAAA,IAAQ,OAAO,MAAA,CAAO,SAAS,QAAA,EAAU;AAClD,MAAA,cAAA,GAAiB,WAAA;AAAA,QACf,MAAA,CAAO,IAAA;AAAA,QACP,QAAA;AAAA,QACA,oBAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,cAAA,IAAkB,MAAA,CAAO,QAAQ,OAAO,MAAA,CAAO,SAAS,QAAA,EAAU;AACrE,MAAA,cAAA,GAAiB,WAAA;AAAA,QACf,MAAA,CAAO,IAAA;AAAA,QACP,QAAA;AAAA,QACA,oBAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,kBAAkB,oBAAA,EAAsB;AAC1C,MAAA,OAAO,cAAA;AAAA,IACT;AAAA,EACF;AACF;AAQA,SAAS,UACP,OAAA,EACiC;AACjC,EAAA,IACEA,kBAAA,CAAc,OAAO,CAAA,IACrB,OAAO,OAAA,CAAQ,IAAA,KAAS,QAAA,IACxB,OAAA,CAAQ,IAAA,IACR,OAAO,OAAA,CAAQ,IAAA,KAAS,QAAA,IACxB,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA,IAC3B,CAACA,kBAAA,CAAc,OAAA,CAAQ,IAAI,CAAA,IAC3B,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM,OAAA,EACnB;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA;AACT;AAAA;AAWO,SAAS,SAAA,CACd,YAAA,EACA,cAAA,GAAwC,EAAC,EACT;AAChC,EAAA,MAAM,MAAA,mBAAyB,KAAA;AAAA,oBACb,OAAA;AAAA,4BACQ,QAAQ,CAAA;AAAA,sBACd,KAAA,iBAAsB,IAAA,CAAK,QAAQ,CAAA,kBAAmB,MAAA,EAAO,EAAG,YAAA,EAAa,kBAAmB,MAAA,EAAO,kBAAmB,IAAA,CAAK,QAAQ,CAAC;AAAA,KAC1J;AAAA,yBACqB,OAAO,CAAA;AAAA,oBACZ,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AACA,EAAA,OAAO,CAAC,qBAA4C,EAAC,KACnD,OAAOtB,YAAAA,CAAO,cAAA,EAAgB,kBAAkB,CAA0B,CAAA;AAC9E;AAAA;AAiBO,SAAS,MAAA,CACd,OACA,OAAA,EACgC;AAChC,EAAA,MAAM,UAAA,GAAa,CAAC,UAAA,KAAsC;AACxD,IAAA,MAAM,IAAA,GAAO,QAAQ,UAAU,CAAA;AAC/B,IAAA,MAAM,UAAA,GAAa,OAAO,KAAA,KAAU,UAAA,GAAa,OAAM,GAAI,KAAA;AAC3D,IAAA,IAAI,CAACuB,cAAA,CAAS,UAAU,CAAA,EAAG,OAAO,IAAA;AAClC,IAAA,oCAAoB,IAAI,CAAA,IAAKf,UAAAA,CAAM,IAAA,CAAK,IAAI,CAAA,EAAG;AAC7C,MAAA,IAAA,CAAK,IAAA,CAAK,QAAQ,EAAE,GAAG,KAAK,IAAA,CAAK,KAAA,EAAO,GAAG,UAAA,EAAW;AAAA,IACxD,CAAA,MAAA,IAAWA,UAAAA,CAAM,IAAI,CAAA,EAAG;AACtB,MAAA,IAAA,CAAK,QAAQ,EAAE,GAAG,IAAA,CAAK,KAAA,EAAO,GAAG,UAAA,EAAW;AAAA,IAC9C;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AACA,EAAA,UAAA,CAAW,KAAK,OAAA,CAAQ,EAAA;AACxB,EAAA,OAAO,UAAA;AACT;AAAA;AAcO,SAAS,GAAA,CACd,SAAA,EACA,IAAA,EACA,SAAA,EACgC;AAChC,EAAA,MAAM,UAAA,GAAa,CAAC,UAAA,KAAsC;AACxD,IAAA,MAAM,IAAA,GAAO,KAAK,UAAU,CAAA;AAC5B,IAAA,IACE,SAAA,IACC,eAAe,IAAI,CAAA,IAAK,QAAQ,IAAA,oBACjC,eAAA,CAAgB,IAAI,CAAA,EACpB;AACA,MAAA,MAAM,eAAA,GAA0C;AAAA,QAC9C,EAAA,EAAI,SAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACR;AACA,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,eAAA,CAAgB,IAAA,GAAO,UAAU,UAAU,CAAA;AAAA,MAC7C;AACA,MAAA,OAAO,eAAA;AAAA,IACT,CAAA,MAAA,oBAAW,eAAA,CAAgB,IAAI,CAAA,EAAG;AAChC,MAAA,MAAA,CAAO,OAAO,IAAA,CAAK,IAAA,EAAM,EAAE,EAAA,EAAI,WAAW,CAAA;AAAA,IAC5C,CAAA,MAAA,IAAW,cAAA,CAAe,IAAI,CAAA,EAAG;AAC/B,MAAA,MAAA,CAAO,MAAA,CAAO,IAAA,EAAM,EAAE,EAAA,EAAI,WAAW,CAAA;AAAA,IACvC;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AACA,EAAA,UAAA,CAAW,KAAKgB,WAAA,EAAM;AACtB,EAAA,OAAO,UAAA;AACT;AAAA;AAcO,SAAS,IAAA,CACd,OAAA,EACA,MAAA,EACA,OAAA,EACA;AACA,EAAA,OAAO,CAAC,UAAA,KAAyD;AAC/D,IAAA,MAAM,IAAA,GAAO,QAAQ,UAAU,CAAA;AAC/B,IAAA,oBAAI,eAAA,CAAgB,IAAI,CAAA,EAAG;AACzB,MAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAA,EAAM,EAAE,KAAK,CAAC,OAAA,EAAS,MAAM,CAAA,EAAG,CAAA;AAAA,IACrD,CAAA,MAAA,IAAW,cAAA,CAAe,IAAI,CAAA,EAAG;AAC/B,MAAA,MAAA,CAAO,MAAA,CAAO,MAAM,EAAE,GAAA,EAAK,CAAC,OAAA,EAAS,MAAM,GAAG,CAAA;AAAA,IAChD;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AACF;AAAA;AAaO,SAAS,OAAA,CACd,SACA,UAAA,EACgC;AAChC,EAAA,MAAM,UAAA,GAAa,CAAC,UAAA,KAAsC;AACxD,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,EAAE,CAAA;AACvB,IAAA,oBAAI,eAAA,CAAgB,IAAI,CAAA,EAAG;AACzB,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,IAAI,GAAG,OAAO,IAAA;AACrC,MAAA,IAAA,CAAK,IAAA,GAAO,YAAA;AAAA,QACV,YAAA,CAAa,IAAA,CAAK,IAAA,EAAM,UAAU,CAAA;AAAA,QAClC,QAAQ,EAAA,GAAK,UAAA,CAAW,OAAA,CAAQ,EAAE,IAAI;AAAC,OACzC;AACA,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,OAAO,YAAA;AAAA,MACL,YAAA,CAAa,MAAM,UAAU,CAAA;AAAA,MAC7B,QAAQ,EAAA,GAAK,UAAA,CAAW,OAAA,CAAQ,EAAE,IAAI;AAAC,KACzC;AAAA,EACF,CAAA;AACA,EAAA,UAAA,CAAW,KAAK,OAAA,CAAQ,EAAA;AACxB,EAAA,OAAO,UAAA;AACT;AAAA;AAYO,SAAS,MACd,OAAA,EAC6B;AAC7B,EAAAL,SAAAA,CAAK,KAAK,OAAO,CAAA;AACjB,EAAA,OAAO,WAAW,OAAO,CAAA;AAC3B;AAEO,SAAS,WAAA,GAAc;AAC5B,EAAA,UAAA,EAAW;AACb;;;ACnZO,IAAM,MAAA,GAAgC;AAAA;AAAA;AAAA;AAAA,EAI3C,MAAA,kBAAwB,KAAA;AAAA,oBACN,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC,CAAA;AAAA,oBAClD,OAAA;AAAA,sBACE,WAAA;AAAA,6BACO,QAAQ,CAAA;AAAA,wBACb,MAAA,EAAO;AAAA,oCACK,4BAA4B,CAAA;AAAA,wBACxC,MAAA,EAAO;AAAA,6BACF,QAAQ;AAAA;AAC/B,KACF;AAAA,yBACqB,OAAO;AAAA,GAC9B;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKN,MAAA,EAAQ,QAAA;AAAA;AAAA;AAAA;AAAA,EAIR,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,QAAA,EAAU,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtC,aAAA,EAAe;AACjB;;;AC7BO,IAAM,QAAA,GAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C,MAAA,kBAAwB,KAAA;AAAA,IACtB,GAAA;AAAA,MACE,uBAAA;AAAA;AAAA;AAAA;AAAA,sBAIgB,UAAA;AAAA,wBACE,QAAA,iBAAyB,MAAA,EAAO,kBAAmB,GAAA,EAAI,kBAAmB,SAAA,iBAA0B,IAAA,CAAK,WAAW,CAAC,CAAA,kBAAmB,MAAA,EAAQ,CAAA;AAAA,QAChK,OAAA,iBAAwB,QAAA,CAAS,QAAQ,CAAA,EAAG;AAAA,UAC1C,EAAA,EAAI;AAAA,SACL;AAAA,OACH;AAAA;AAAA;AAAA;AAAA,sBAIgB,QAAA;AAAA,+BACS,QAAQ,CAAA;AAAA,6BACV,OAAO,CAAA;AAAA,wBACZ,UAAA;AAAA,0BACE,SAAA;AAAA,4BACE,UAAA;AAAA,8BACE,QAAA;AAAA,gCACE,MAAA,EAAO;AAAA,gBACvB,OAAA,sBAA4B,EAAG;AAAA,kBAC7B,IAAA,EAAM,eAAA;AAAA,kBACN,KAAA,EAAO;AAAA,oBACL,EAAA,EAAI,kBAAA;AAAA,oBACJ,KAAA,EAAO,eAAA;AAAA,oBACP,OAAA,EAAS;AAAA;AACX,iBACD,CAAA;AAAA,gCACe,SAAA,iBAA0B,IAAA,CAAK,WAAW,CAAC,CAAA;AAAA,gCAC3C,MAAA;AAAO,eACzB;AAAA,cACA,OAAA,iBAAwB,QAAA,CAAS,eAAe,CAAA,EAAG;AAAA,gBACjD,EAAA,EAAI;AAAA,eACL;AAAA,aACH;AAAA,oCACwB,cAAc;AAAA;AACxC;AACF;AACF,KACF;AAAA;AAAA,IAEA,GAAA,CAAI,gCAAA,kBAAkD,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,oBACnD,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKN,MAAA,EAAQ,KAAA;AAAA;AAAA;AAAA;AAAA,EAIR,KAAA,EAAO,CAAC,SAAA,EAAW,SAAA,EAAW,YAAY,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAIzD,QAAA,EAAU;AAAA,IACR,OAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA,CAAY,aAAa,mBAAmB;AAAA,GAC9C;AAAA;AAAA;AAAA;AAAA,EAIA,aAAA,EAAe;AACjB;;;AC/EO,IAAM,IAAA,GAA8B;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAA,kBAAwB,KAAA;AAAA,oBACN,OAAA;AAAA,4BACQ,QAAQ,CAAA;AAAA,sBACd,KAAA;AAAA,wBACE,IAAA,CAAK,UAAU,OAAO,CAAA;AAAA,wBACtB,MAAA,EAAO;AAAA,wBACP,SAAA,EAAU;AAAA,wBACV,QAAA;AAAA,0BACE,QAAA;AAAA,iCACO,UAAU,CAAA;AAAA,qCACN,YAAY,CAAA;AAAA,YACrC,GAAA;AAAA,cACE,qBAAA;AAAA,8BACgB,UAAA;AAAA,qCACO,YAAY,CAAA;AAAA,gBACjC;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA,GAAA,CAAI,mBAAA,kBAAqC,UAAA,CAAW,qBAAqB,CAAC,CAAA;AAAA,wBAC1D,OAAA,iBAAwB,IAAA,CAAK,SAAS,CAAA,EAAG,mBAAmB,CAAA;AAAA,wBAC5D,MAAA,EAAO;AAAA,6BACF,QAAQ;AAAA;AAC/B,KACF;AAAA,yBACqB,OAAO,CAAA;AAAA,oBACZ,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKN,MAAA,EAAQ,MAAA;AAAA;AAAA;AAAA;AAAA,EAIR,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,QAAA,EAAU;AAAA,IACR,KAAA;AAAA,IACA,WAAA,CAAY,YAAY,UAAU,CAAA;AAAA,IAClC,WAAA,CAAY,cAAc,YAAY,CAAA;AAAA,IACtC,WAAA,CAAY,WAAW,SAAS;AAAA,GAClC;AAAA;AAAA;AAAA;AAAA,EAIA,aAAA,EAAe;AACjB;;;ACvEO,IAAMM,KAAAA,GAA8B;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAA,kBAAwB,SAAA;AAAA,IACtB,gBAAA;AAAA,oBACgB,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC,CAAA;AAAA,oBAClD,OAAA,8BAAqC;AAAA,GACvD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,KAAA,EAAO;AAAA,IACL,SAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU,CAAC,IAAA,EAAO,QAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAIlC,aAAA,EAAe;AACjB;;;ACxCO,IAAM,KAAA,GAA+B;AAAA;AAAA;AAAA;AAAA,EAI1C,MAAA,2BAAiC,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAIjD,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,QAAA,EAAU,CAAC,QAAA,EAAkB,aAAa;AAC5C;;;ACjBO,IAAM,MAAA,GAAgC;AAAA;AAAA;AAAA;AAAA,EAI3C,wBAAwB,SAAA,EAAU;AAAA;AAAA;AAAA;AAAA,EAIlC,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,QAAA,EAAU,CAAC,KAAK;AAClB;;;ACjBO,IAAM,IAAA,GAA8B;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAA,2BAAiC,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAIjD,IAAA,EAAM,MAAA;AAAA;AAAA;AAAA;AAAA,EAIN,KAAA,EAAO,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA,EAIzB,QAAA,EAAU,CAAC,QAAA,EAAkB,aAAa;AAC5C;;;ACjBO,IAAM,IAAA,GAA8B;AAAA;AAAA;AAAA;AAAA,EAIzC,wBAAwB,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA,EAIjC,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,UAAU;AACZ;;;ACMO,IAAM,KAAA,GAA+B;AAAA;AAAA;AAAA;AAAA,EAI1C,MAAA,kBAAwB,KAAA;AAAA,IACtB,GAAA;AAAA,MACE,uBAAA;AAAA;AAAA;AAAA;AAAA,sBAIgB,UAAA;AAAA,wBACE,QAAA,iBAAyB,MAAA,EAAO,kBAAmB,GAAA,EAAI,kBAAmB,SAAA,iBAA0B,IAAA,CAAK,WAAW,CAAC,CAAA,kBAAmB,MAAA,EAAQ,CAAA;AAAA,QAChK,OAAA,iBAAwB,QAAA,CAAS,QAAQ,CAAA,EAAG;AAAA,UAC1C,EAAA,EAAI;AAAA,SACL;AAAA,OACH;AAAA;AAAA;AAAA;AAAA,sBAIgB,QAAA;AAAA,+BACS,QAAQ,CAAA;AAAA,6BACV,OAAO,CAAA;AAAA,wBACZ,UAAA;AAAA,0BACE,SAAA;AAAA,4BACE,UAAA;AAAA,8BACE,QAAA;AAAA,gCACE,MAAA,EAAO;AAAA,gBACvB,OAAA,sBAA4B,EAAG;AAAA,kBAC7B,IAAA,EAAM,eAAA;AAAA,kBACN,KAAA,EAAO;AAAA,oBACL,EAAA,EAAI,kBAAA;AAAA,oBACJ,KAAA,EAAO,eAAA;AAAA,oBACP,OAAA,EAAS;AAAA;AACX,iBACD,CAAA;AAAA,gCACe,SAAA,iBAA0B,IAAA,CAAK,WAAW,CAAC,CAAA;AAAA,gCAC3C,MAAA;AAAO,eACzB;AAAA,cACA,OAAA,iBAAwB,QAAA,CAAS,eAAe,CAAA,EAAG;AAAA,gBACjD,EAAA,EAAI;AAAA,eACL;AAAA,aACH;AAAA,oCACwB,cAAc;AAAA;AACxC;AACF;AACF,KACF;AAAA;AAAA,IAEA,GAAA,CAAI,gCAAA,kBAAkD,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,oBACnD,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKN,MAAA,EAAQ,KAAA;AAAA;AAAA;AAAA;AAAA,EAIR,KAAA,EAAO,CAAC,SAAA,EAAW,SAAA,EAAW,YAAY,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAIzD,UAAU,CAAC,OAAA,EAAS,QAAQ,WAAA,CAAY,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA,EAItE,aAAA,EAAe;AACjB;;;AC5EO,IAAMC,OAAAA,GAAgC;AAAA;AAAA;AAAA;AAAA,EAI3C,MAAA,kBAAwB,KAAA;AAAA,oBACN,OAAA;AAAA,4BACQ,QAAQ,CAAA;AAAA,sBACd,KAAA;AAAA,6BACO,QAAQ,CAAA;AAAA,wBACb,MAAA,EAAO;AAAA,wBACP,WAAA;AAAA,UACd,GAAA;AAAA,YACE,gBAAA;AAAA,YACA,MAAM,gBAAA;AAAA,4BACU,UAAA;AAAA,cACd,GAAA;AAAA,gBACE,eAAA;AAAA,gCACgB,QAAA,iBAAyB,UAAA,iBAA2B,MAAA,CAAO,eAAe,CAAC,CAAC,CAAA;AAAA,uCACrE,eAAe;AAAA;AACxC;AACF;AACF,SACF;AAAA,QACA,IAAI,+BAAA,EAAiC,MAAM,EAAA,kBAAoB,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,wBAC7D,MAAA,EAAO;AAAA,6BACF,QAAQ;AAAA;AAC/B,KACF;AAAA,yBACqB,OAAO,CAAA;AAAA,oBACZ,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,KAAA,EAAO,CAAC,SAAA,EAAW,aAAA,EAAe,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAIjD,UAAU,CAAC,OAAA,EAAS,QAAS,WAAA,CAAY,QAAA,EAAU,QAAQ,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA,EAI5D,aAAA,EAAe;AACjB;;;ACrDO,IAAM,QAAA,GAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C,MAAA,kBAAwB,KAAA;AAAA,oBACN,OAAA;AAAA,4BACQ,QAAQ,CAAA;AAAA,sBACd,KAAA;AAAA,wBACE,IAAA,CAAK,UAAU,OAAO,CAAA;AAAA,wBACtB,MAAA,EAAO;AAAA,wBACP,aAAA,EAAc;AAAA,wBACd,MAAA,EAAO;AAAA,6BACF,QAAQ;AAAA;AAC/B,KACF;AAAA,yBACqB,OAAO,CAAA;AAAA,oBACZ,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,QAAA,EAAU,CAAC,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,EAIvB,aAAA,EAAe;AACjB;;;AClCO,IAAM,IAAA,GAA8B;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAA,kBAAwB,KAAA;AAAA,oBACN,OAAA;AAAA,4BACQ,QAAQ,CAAA;AAAA,sBACd,KAAA;AAAA,wBACE,IAAA,CAAK,UAAU,OAAO,CAAA;AAAA,wBACtB,MAAA,EAAO;AAAA,wBACP,SAAA,EAAU;AAAA,wBACV,MAAA,EAAO;AAAA,6BACF,QAAQ;AAAA;AAC/B,KACF;AAAA,yBACqB,OAAO,CAAA;AAAA,oBACZ,QAAA,iBAAyB,OAAA,CAAQ,gBAAgB,CAAC;AAAA,GACpE;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKN,MAAA,EAAQ,MAAA;AAAA;AAAA;AAAA;AAAA,EAIR,OAAO,EAAC;AAAA;AAAA;AAAA;AAAA,EAIR,QAAA,EAAU,CAAC,KAAK,CAAA;AAAA;AAAA;AAAA;AAAA,EAIhB,aAAA,EAAe;AACjB;;;AC0DO,IAAM,MAAA,GAAyB;AAAA,EACpC,MAAA;AAAA,EACA,MAAA,EAAA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA,EAAAD,KAAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA,EAAAC,OAAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAA,IAAA;AAAA,EACA,IAAA,EAAA,IAAA;AAAA,EACA,aAAA,EAAA,IAAA;AAAA,EACA,KAAA,EAAA,IAAA;AAAA,EACA,KAAA,EAAA,IAAA;AAAA,EACA,MAAA,EAAA,IAAA;AAAA,EACA,QAAA,EAAA,IAAA;AAAA,EACA,MAAA,EAAA,IAAA;AAAA,EACA,GAAA,EAAA,IAAA;AAAA,EACA,IAAA,EAAA,IAAA;AAAA,EACA,GAAA,EAAA,IAAA;AAAA,EACA,IAAA,EAAA,IAAA;AAAA,EACA,KAAA,EAAA;AACF","file":"index.cjs","sourcesContent":["import { camel, extend, has } from '@formkit/utils'\nimport { FormKitLibrary, FormKitPlugin, FormKitNode } from '@formkit/core'\n\n/**\n * Creates a plugin based on a list of {@link @formkit/core#FormKitLibrary | FormKitLibrary}.\n *\n * @param libraries - One or many {@link @formkit/core#FormKitLibrary | FormKitLibrary}.\n *\n * @returns {@link @formkit/core#FormKitPlugin | FormKitPlugin}\n *\n * @public\n */\nexport function createLibraryPlugin(\n  ...libraries: FormKitLibrary[]\n): FormKitPlugin {\n  /**\n   * Merge all provided library items.\n   */\n  const library = libraries.reduce(\n    (merged, lib) => extend(merged, lib) as FormKitLibrary,\n    {} as FormKitLibrary\n  )\n  /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n  const plugin = () => {}\n  /**\n   * Enables the hook that exposes all library inputs.\n   * @param node - The primary plugin\n   */\n  plugin.library = function (node: FormKitNode) {\n    const type = camel(node.props.type)\n    if (has(library, type)) {\n      node.define(library[type])\n    }\n  }\n  return plugin\n}\n","import {\n  FormKitPlugin,\n  FormKitGroupValue,\n  FormKitTypeDefinition,\n  FormKitSectionsSchema,\n  FormKitNode,\n  FormKitClasses,\n  FormKitFrameworkContext,\n  FormKitMessage,\n} from '@formkit/core'\nimport { FormKitFile } from './index'\n\n/**\n * These are props that are used as conditionals in one or more inputs, and as\n * such they need to be defined on all input types. These should all be defined\n * explicitly as \"undefined\" here, and then defined as their specific type\n * in the FormKitInputProps interface only on the inputs that use them.\n * @public\n */\nexport interface FormKitConditionalProps {\n  onValue: undefined\n  offValue: undefined\n  options: undefined\n  number: undefined\n}\n\n/**\n * An attempt to capture all non-undefined values. This is used to define\n * various conditionals where undefined is not a concrete type, but all other\n * values need to take one logical branch.\n *\n * @public\n */\nexport type AllReals =\n  | number\n  | string\n  | boolean\n  | CallableFunction\n  | Array<any>\n  | null\n  | Record<any, any>\n/**\n * This is the base interface for providing prop definitions to the FormKit\n * component. It is used to define the props that are available to the each\n * component in the FormKit library by using a discriminated union type. The\n * structure of this interface is:\n *\n * ```ts\n * interface FormKitInputProps {\n *  typeString: { type: 'string'; value?: string } // <-- All unique props\n * }\n * ```\n *\n * All inputs will also inherit all props from FormKitBaseInputProps.\n *\n * Note: It is important that all inputs provide a type and a value prop.\n * @public\n */\nexport interface FormKitInputProps<Props extends FormKitInputs<Props>> {\n  button: { type: 'button'; value?: undefined }\n  checkbox: {\n    type: 'checkbox'\n    options?: FormKitOptionsProp\n    onValue?: any\n    offValue?: any\n    value?: Props['options'] extends Record<infer T, string>\n      ? T[]\n      : Props['options'] extends FormKitOptionsItem[]\n      ? Array<Props['options'][number]['value']>\n      : Props['options'] extends Array<infer T>\n      ? T[]\n      :\n          | (Props['onValue'] extends AllReals ? Props['onValue'] : true)\n          | (Props['offValue'] extends AllReals ? Props['offValue'] : false)\n  }\n  color: { type: 'color'; value?: string }\n  date: { type: 'date'; value?: string }\n  'datetime-local': { type: 'datetime-local'; value?: string }\n  email: {\n    type: 'email'\n    value?: string\n  }\n  file: { type: 'file'; value?: FormKitFile[] }\n  form: {\n    type: 'form'\n    value?: FormKitGroupValue\n    actions?: boolean | string\n    submitAttrs?: Record<string, any>\n    submitBehavior?: 'disabled' | 'live'\n    incompleteMessage?: false | string\n  }\n  group: { type: 'group'; value?: FormKitGroupValue }\n  hidden: {\n    type: 'hidden'\n    value?: Props['number'] extends AllReals ? number : string\n    number?: 'integer' | 'float' | 'true' | true\n  }\n  list: {\n    type: 'list'\n    value?: unknown[]\n    dynamic?: boolean | 'true' | 'false'\n    sync?: boolean | 'true' | 'false'\n  }\n  meta: { type: 'meta'; value?: any }\n  month: { type: 'month'; value?: string }\n  number: {\n    type: 'number'\n    value?: Props['number'] extends AllReals ? number : string\n    number?: 'integer' | 'float' | 'true' | true\n  }\n  password: { type: 'password'; value?: string }\n  radio: {\n    type: 'radio'\n    options: FormKitOptionsProp\n    value?: FormKitOptionsValue<Props['options']>\n  }\n  range: {\n    type: 'range'\n    value?: Props['number'] extends AllReals ? number : string\n    number?: 'integer' | 'float' | 'true' | true\n  }\n  search: {\n    type: 'search'\n    value?: Props['number'] extends AllReals ? number | string : string\n    number?: 'integer' | 'float' | 'true' | true\n  }\n  select: {\n    type: 'select'\n    options?: FormKitOptionsPropWithGroups\n    value?: FormKitOptionsValue<Props['options']>\n  }\n  submit: { type: 'submit'; value?: string }\n  tel: {\n    type: 'tel'\n    value?: Props['number'] extends AllReals ? number | string : string\n    number?: 'integer' | 'float' | 'true' | true\n  }\n  text: {\n    type: 'text'\n    value?: Props['number'] extends AllReals ? number | string : string\n    number?: 'integer' | 'float' | 'true' | true\n  }\n  textarea: { type: 'textarea'; value?: string }\n  time: { type: 'time'; value?: string }\n  url: { type: 'url'; value?: string }\n  week: { type: 'week'; value?: string }\n  // This fallthrough is for inputs that do not have their type set. These\n  // are effectively \"text\" inputs.\n  _: {\n    type?:\n      | (Props['type'] extends FormKitTypeDefinition<any>\n          ? Props['type']\n          : never & {})\n      | (Props['type'] extends keyof FormKitInputProps<Props>\n          ? Props['type']\n          : never)\n    value?: Props['type'] extends FormKitTypeDefinition<infer T>\n      ? T\n      : Props['type'] extends AllReals\n      ? never\n      : string\n  }\n}\n\n/**\n * A merger of input props, base props, and conditional props. This is then\n * used as the structure for the FormKitInputs type.\n * @public\n */\nexport type MergedProps<Props extends FormKitInputs<Props>> = {\n  [K in keyof FormKitInputProps<Props>]: Omit<\n    Partial<FormKitBaseProps>,\n    keyof FormKitInputProps<Props>[K]\n  > &\n    Omit<\n      Partial<FormKitRuntimeProps<Props>>,\n      keyof FormKitInputProps<Props>[K]\n    > &\n    Omit<Partial<FormKitConditionalProps>, keyof FormKitInputProps<Props>[K]> &\n    Partial<\n      K extends keyof FormKitInputEventsAsProps<Props>\n        ? Omit<\n            FormKitEventsAsProps,\n            keyof FormKitInputEventsAsProps<Props>[K]\n          > &\n            FormKitInputEventsAsProps<Props>[K]\n        : FormKitEventsAsProps\n    > &\n    FormKitInputProps<Props>[K]\n}\n\n/**\n * Merge all events into a single type. This is then used as the structure for\n *\n * @public\n */\nexport type MergedEvents<Props extends FormKitInputs<Props>> =\n  InputType<Props> extends keyof FormKitInputEvents<Props>\n    ? FormKitBaseEvents<Props> & FormKitInputEvents<Props>[InputType<Props>]\n    : FormKitBaseEvents<Props>\n\n/**\n * Selects the \"type\" from the props if it exists, otherwise it defaults to\n * \"text\".\n *\n * @public\n */\nexport type InputType<Props extends FormKitInputs<Props>> =\n  Props['type'] extends FormKitTypeDefinition<any>\n    ? Props['type']\n    : Props['type'] extends string\n    ? Props['type']\n    : 'text'\n\n/**\n * All FormKit events should be included for a given set of props.\n *\n * @public\n */\nexport type FormKitEvents<Props extends FormKitInputs<Props>> =\n  MergedEvents<Props>\n\n/**\n * All FormKit inputs should be included for this type.\n * @public\n */\nexport type FormKitInputs<Props extends FormKitInputs<Props>> =\n  MergedProps<Props>[keyof MergedProps<Props>]\n\n/**\n * Unique events emitted by each FormKit input. The shape of this interface is:\n *\n * ```ts\n * interface FormKitInputEvents<Props extends Inputs> {\n *   typeString: { customEvent: (value: PropType<Props, 'value'>) => any } // <-- All unique events\n * }\n * ```\n *\n * All inputs will also inherit all events from FormKitBaseInputEvents.\n * @public\n */\nexport interface FormKitInputEvents<Props extends FormKitInputs<Props>> {\n  form: {\n    (event: 'submit-raw', e: Event, node: FormKitNode): any\n    (event: 'submit-invalid', node: FormKitNode): any\n    (event: 'submit', data: any, node: FormKitNode): any\n  }\n}\n\n/**\n * Extracts the type from a given prop.\n * @public\n */\nexport type PropType<\n  Props extends FormKitInputs<Props>,\n  T extends keyof FormKitInputs<Props>\n> = Props['type'] extends FormKitTypeDefinition<infer T>\n  ? T extends 'value'\n    ? Props['type']\n    : T\n  : Extract<\n      FormKitInputs<Props>,\n      {\n        type: Props['type'] extends keyof FormKitInputProps<Props>\n          ? Props['type']\n          : 'text'\n      }\n    >[T]\n\n/**\n * The proper shape of data to be passed to options prop.\n * @public\n */\nexport type FormKitOptionsValue<Options> = Options extends FormKitOptionsProp\n  ? Options extends Record<infer T, string>\n    ? T\n    : Options extends FormKitOptionsItem[]\n    ? Options[number]['value']\n    : Options extends Array<infer T>\n    ? T\n    : unknown\n  : unknown\n\n/**\n * General input events available to all FormKit inputs.\n * @public\n */\nexport interface FormKitBaseEvents<Props extends FormKitInputs<Props>> {\n  (event: 'input', value: PropType<Props, 'value'>, node: FormKitNode): any\n  (event: 'inputRaw', value: PropType<Props, 'value'>, node: FormKitNode): any\n  (event: 'input-raw', value: PropType<Props, 'value'>, node: FormKitNode): any\n  (event: 'update:modelValue', value: PropType<Props, 'value'>): any\n  (event: 'update:model-value', value: PropType<Props, 'value'>): any\n  (event: 'node', node: FormKitNode): any\n}\n\n/**\n * In a perfect world this interface would not be required at all. However, Vue\n * expects the interfaces to be defined as method overloads. Unfortunately since\n * our events interface uses generics UnionToIntersection is not able to be used\n * meaning that we lose event data if we store the events as a standard\n * interface with property keys. The only way we have found to reliably get\n * Volar (as of June 2023) to properly recognize all defined events is to use\n * a the \"standard\" method overload approach (see FormKitBaseEvents).\n *\n * (Basically we cannot use the events in this interface to automatically\n * produce the FormKitBaseEvents without Volar loosing event data)\n *\n * This means we have no way to get the event names out of the interface so we\n * cannot properly use them in our props. This matters for things like TSX\n * support where the event names need to be available as `onEventName` props.\n *\n * This interface is used to manually patch that gap in the type system. These\n * types should match up 1-1 with the events defined in FormKitBaseEvents as\n * well as FormKitInputEvents.\n *\n * @public\n */\nexport interface FormKitEventsAsProps {\n  onInput: (value: unknown, node: FormKitNode) => any\n  onInputRaw: (value: unknown, node: FormKitNode) => any\n  'onUpdate:modelValue': (value: unknown, node: FormKitNode) => any\n  onNode: (node: FormKitNode) => any\n}\n\n/**\n * See the comment tome on {@link FormKitEventsAsProps} for why this type is\n * necessary.\n *\n * @public\n */\nexport interface FormKitInputEventsAsProps<Props extends FormKitInputs<Props>> {\n  form: {\n    onSubmitRaw: (e: Event, node: FormKitNode) => any\n    onSubmitInvalid: (node: FormKitNode) => any\n    onSubmit: (data: any, node: FormKitNode) => any\n  }\n}\n\n/**\n * The shape of the context object that is passed to each slot.\n * @public\n */\nexport interface FormKitSlotData<\n  Props extends FormKitInputs<Props>,\n  E extends Record<string, any> = {}\n> {\n  (context: FormKitFrameworkContext<PropType<Props, 'value'>> & E): any\n}\n\n/**\n * Nearly all inputs in FormKit have a \"base\" set of slots. This is the\n * \"sandwich\" around the input itself, like the wrappers, help text, error\n * messages etc. Several other input’s slots extend this base interface.\n * @public\n */\nexport interface FormKitBaseSlots<Props extends FormKitInputs<Props>> {\n  help: FormKitSlotData<Props>\n  inner: FormKitSlotData<Props>\n  input: FormKitSlotData<Props>\n  label: FormKitSlotData<Props>\n  message: FormKitSlotData<Props, { message: FormKitMessage }>\n  messages: FormKitSlotData<Props>\n  outer: FormKitSlotData<Props>\n  prefix: FormKitSlotData<Props>\n  prefixIcon: FormKitSlotData<Props>\n  suffix: FormKitSlotData<Props>\n  suffixIcon: FormKitSlotData<Props>\n  wrapper: FormKitSlotData<Props>\n}\n\n/**\n * The slots available to the FormKitText input, these extend the base slots.\n * @public\n */\nexport interface FormKitTextSlots<Props extends FormKitInputs<Props>>\n  extends FormKitBaseSlots<Props> {}\n\n/**\n * The data available to slots that have an option in scope.\n * @public\n */\nexport interface OptionSlotData<Props extends FormKitInputs<Props>> {\n  option: FormKitOptionsItem<PropType<Props, 'value'>>\n}\n\n/**\n * The slots available to the select input, these extend the base slots.\n * @public\n */\nexport interface FormKitSelectSlots<Props extends FormKitInputs<Props>>\n  extends FormKitBaseSlots<Props> {\n  default: FormKitSlotData<Props>\n  option: FormKitSlotData<Props, OptionSlotData<Props>>\n  selectIcon: FormKitSlotData<Props>\n}\n\n/**\n * The slots available to the checkbox inputs even when options are not provided, these extend the base slots.\n * @public\n */\nexport interface FormKitCheckboxSlots<Props extends FormKitInputs<Props>>\n  extends FormKitBaseSlots<Props> {\n  decorator: FormKitSlotData<Props, OptionSlotData<Props>>\n  decoratorIcon: FormKitSlotData<Props, OptionSlotData<Props>>\n}\n\n/**\n * The slots available to the radio and checkbox inputs when options are\n * provided.\n * @public\n */\nexport interface FormKitBoxSlots<Props extends FormKitInputs<Props>> {\n  fieldset: FormKitSlotData<Props>\n  legend: FormKitSlotData<Props>\n  help: FormKitSlotData<Props>\n  options: FormKitSlotData<Props>\n  option: FormKitSlotData<Props, OptionSlotData<Props>>\n  wrapper: FormKitSlotData<Props, OptionSlotData<Props>>\n  inner: FormKitSlotData<Props, OptionSlotData<Props>>\n  input: FormKitSlotData<Props, OptionSlotData<Props>>\n  label: FormKitSlotData<Props, OptionSlotData<Props>>\n  prefix: FormKitSlotData<Props, OptionSlotData<Props>>\n  suffix: FormKitSlotData<Props, OptionSlotData<Props>>\n  decorator: FormKitSlotData<Props, OptionSlotData<Props>>\n  decoratorIcon: FormKitSlotData<Props, OptionSlotData<Props>>\n  optionHelp: FormKitSlotData<Props, OptionSlotData<Props>>\n  box: FormKitSlotData<Props, OptionSlotData<Props>>\n  icon: FormKitSlotData<Props, OptionSlotData<Props>>\n  message: FormKitSlotData<Props, { message: FormKitMessage }>\n  messages: FormKitSlotData<Props>\n}\n\n/**\n * The slots available to the file input, these extend the base slots.\n * @public\n */\nexport interface FormKitFileSlots<Props extends FormKitInputs<Props>>\n  extends FormKitBaseSlots<Props> {\n  fileList: FormKitSlotData<Props>\n  fileItem: FormKitSlotData<Props>\n  fileItemIcon: FormKitSlotData<Props, { file: FormKitFile }>\n  fileName: FormKitSlotData<Props, { file: FormKitFile }>\n  fileRemove: FormKitSlotData<Props, { file: FormKitFile }>\n  fileRemoveIcon: FormKitSlotData<Props, { file: FormKitFile }>\n  noFiles: FormKitSlotData<Props>\n}\n\n/**\n * The slots available to the button input, these extend the base slots.\n *\n * @public\n */\nexport type FormKitButtonSlots<Props extends FormKitInputs<Props>> = Omit<\n  FormKitBaseSlots<Props>,\n  'inner'\n> & {\n  default: FormKitSlotData<Props>\n}\n\n/**\n * Slots provided by each FormKit input. The shape of this interface is:\n *\n * ```ts\n * interface FormKitInputSlots<Props extends Inputs> {\n *   typeString: { default: (value: PropType<Props, 'value'>) => any } // <-- All unique slots\n * }\n * ```\n *\n * There is no automatic inheritance of slots — each slot must be explicitly\n * defined for each input.\n * @public\n */\nexport interface FormKitInputSlots<Props extends FormKitInputs<Props>> {\n  text: FormKitTextSlots<Props>\n  color: FormKitTextSlots<Props>\n  date: FormKitTextSlots<Props>\n  'datetime-local': FormKitTextSlots<Props>\n  email: FormKitTextSlots<Props>\n  month: FormKitTextSlots<Props>\n  number: FormKitTextSlots<Props>\n  password: FormKitTextSlots<Props>\n  search: FormKitTextSlots<Props>\n  tel: FormKitTextSlots<Props>\n  time: FormKitTextSlots<Props>\n  url: FormKitTextSlots<Props>\n  week: FormKitTextSlots<Props>\n  range: FormKitTextSlots<Props>\n  // Technically textarea has a unique schema, but the slots are the same:\n  textarea: FormKitTextSlots<Props>\n  select: FormKitSelectSlots<Props>\n  radio: Props['options'] extends AllReals\n    ? FormKitBoxSlots<Props>\n    : FormKitBaseSlots<Props>\n  list: { default: FormKitSlotData<Props> }\n  hidden: { input: FormKitSlotData<Props> }\n  meta: { wrapper: FormKitSlotData<Props> }\n  group: { default: FormKitSlotData<Props> }\n  form: {\n    form: FormKitSlotData<Props>\n    default: FormKitSlotData<Props>\n    message: FormKitSlotData<Props, { message: FormKitMessage }>\n    messages: FormKitSlotData<Props>\n    actions: FormKitSlotData<Props>\n    submit: FormKitSlotData<Props>\n  }\n  file: FormKitFileSlots<Props>\n  checkbox: Props['options'] extends AllReals\n    ? FormKitBoxSlots<Props>\n    : FormKitCheckboxSlots<Props>\n  submit: FormKitButtonSlots<Props>\n  button: FormKitButtonSlots<Props>\n}\n\n/**\n * Options should always be formatted as an array of objects with label and value\n * properties.\n *\n * @public\n */\nexport interface FormKitOptionsItem<V = unknown> {\n  label: string\n  value: V\n  attrs?: {\n    disabled?: boolean\n  } & Record<string, any>\n  __original?: any\n  [index: string]: any\n}\n\n/**\n * Option groups should always be formatted as an array of objects with group and nested options\n *\n * @public\n */\nexport interface FormKitOptionsGroupItemProp {\n  group: string\n  options: FormKitOptionsProp\n  attrs?: Record<string, any>\n}\n\n/**\n * Option groups should always be formatted as an array of objects with group and nested options\n *\n * @public\n */\nexport interface FormKitOptionsGroupItem {\n  group: string\n  options: FormKitOptionsList\n  attrs?: Record<string, any>\n}\n\n/**\n * An array of option items.\n *\n * @public\n */\nexport type FormKitOptionsList = FormKitOptionsItem[]\n\n/**\n * An array of option items with a group.\n *\n * @public\n */\nexport type FormKitOptionsListWithGroups = Array<\n  FormKitOptionsItem | FormKitOptionsGroupItem\n>\n\n/**\n * An array of option items with a group support — where the `option` of the\n * groups can be any valid FormKitOptionsProp type.\n *\n * @public\n */\nexport type FormKitOptionsListWithGroupsProp = Array<\n  FormKitOptionsItem | FormKitOptionsGroupItemProp\n>\n\n/**\n * Allows for prop extensions to be defined by using an interface whose keys\n * are ignored, but values are applied to a union type. This allows for any\n * third party code to extend the options prop by using module augmentation\n * to add new values to the union type.\n *\n * @public\n */\nexport interface FormKitOptionsPropExtensions {\n  arrayOfStrings: string[]\n  arrayOfNumbers: number[]\n  optionsList: FormKitOptionsList\n  valueLabelPojo: Record<string | number, string>\n}\n\n/**\n * The types of options that can be passed to the options prop.\n *\n * @public\n */\nexport type FormKitOptionsProp =\n  FormKitOptionsPropExtensions[keyof FormKitOptionsPropExtensions]\n\n/**\n * The types of options that can be passed to the options prop.\n *\n * @public\n */\nexport type FormKitOptionsPropWithGroups =\n  | FormKitOptionsProp\n  | FormKitOptionsListWithGroupsProp\n\n/**\n * Typings for all the built in runtime props.\n *\n * Warning: As of writing these are only specific to Vue’s runtime prop\n * requirements and should not be used as any kind of external API as they are\n * subject to change.\n *\n * @public\n */\nexport interface FormKitRuntimeProps<\n  Props extends FormKitInputs<Props>,\n  V = unknown\n> {\n  /**\n   * An object of configuration data for the input and its children.\n   */\n  config: Record<string, any>\n  /**\n   * An object of classes to be applied to the input.\n   */\n  classes: Record<string, string | Record<string, boolean> | FormKitClasses>\n  /**\n   * Amount of time to debounce input before committing.\n   */\n  delay: number\n  /**\n   * An array of errors for the input.\n   */\n  errors: string[]\n  /**\n   * A object of values\n   */\n  inputErrors: Record<string, string[]>\n  /**\n   * An explicit index to mount a child of a list at.\n   */\n  index: number\n  /**\n   * A globally unique identifier for the input — this passes through to the\n   * id attribute.\n   */\n  id: string\n  /**\n   * The dynamic value of the input.\n   */\n  modelValue: PropType<Props, 'value'>\n  /**\n   * The name of the input.\n   */\n  name: string\n  /**\n   * An explicit parent node for the input.\n   */\n  parent: FormKitNode\n  /**\n   * An array of plugins to apply to the input.\n   */\n  plugins: FormKitPlugin[]\n  /**\n   * An object of sections to merge with the input’s internal schema.\n   */\n  sectionsSchema: FormKitSectionsSchema\n  /**\n   * A boolean indicating whether the input should be synced with the model.\n   */\n  sync: boolean | undefined\n  /**\n   * The type of the input.\n   */\n  type: string | FormKitTypeDefinition<V>\n  /**\n   * A validation string or array of validation rules.\n   */\n  validation: string | Array<[rule: string, ...args: any]>\n  /**\n   * An object of validation messages to use for the input.\n   */\n  validationMessages: Record<\n    string,\n    string | ((ctx: { node: FormKitNode; name: string; args: any[] }) => string)\n  >\n  /**\n   * An object of additional validation rules to use for the input.\n   */\n  validationRules: Record<\n    string,\n    (node: FormKitNode, ...args: any[]) => boolean | Promise<boolean>\n  >\n  /**\n   * Use this to override the default validation label in validation messages.\n   */\n  validationLabel: string | ((node: FormKitNode) => string)\n}\n\n/**\n * Base props that should be applied to all FormKit inputs. These are not actual\n * runtime props and are pulled from the context.attrs object. Many of these are\n * just html attributes that are passed through to the input element.\n *\n * @public\n */\nexport interface FormKitBaseProps {\n  /**\n   * HTML Attribute, read more here: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#accept\n   */\n  accept: string\n  action: string\n  actions: 'true' | 'false' | boolean\n  dirtyBehavior: 'touched' | 'compare'\n  disabled: 'true' | 'false' | boolean\n  enctype: string\n  help: string\n  ignore: 'true' | 'false' | boolean\n  label: string\n  library: Record<string, any>\n  max: string | number\n  method: string\n  min: string | number\n  multiple: 'true' | 'false' | boolean\n  preserve: 'true' | 'false' | boolean\n  preserveErrors: 'true' | 'false' | boolean\n  placeholder: string\n  step: string | number\n  validationVisibility: 'live' | 'blur' | 'dirty' | 'submit'\n}\n\n/**\n * All the explicit FormKit props that need to be passed to FormKit’s Vue\n * component instance.\n * @public\n */\nexport const runtimeProps = [\n  'classes',\n  'config',\n  'delay',\n  'errors',\n  'id',\n  'index',\n  'inputErrors',\n  'library',\n  'modelValue',\n  'onUpdate:modelValue',\n  'name',\n  'number',\n  'parent',\n  'plugins',\n  'sectionsSchema',\n  'type',\n  'validation',\n  'validationLabel',\n  'validationMessages',\n  'validationRules',\n  // Runtime event props:\n  'onInput',\n  'onInputRaw',\n  'onUpdate:modelValue',\n  'onNode',\n  'onSubmit',\n  'onSubmitInvalid',\n  'onSubmitRaw',\n]\n\n/**\n * A helper to determine if an option is a group or an option.\n * @param option - An option\n *\n * @public\n */\nexport function isGroupOption(\n  option:\n    | FormKitOptionsItem\n    | FormKitOptionsGroupItem\n    | FormKitOptionsGroupItemProp\n): option is FormKitOptionsGroupItem {\n  return (\n    option &&\n    typeof option === 'object' &&\n    'group' in option &&\n    Array.isArray(option.options)\n  )\n}\n","import { FormKitNode } from '@formkit/core'\nimport {\n  FormKitOptionsPropWithGroups,\n  FormKitOptionsListWithGroups,\n  FormKitOptionsItem,\n  FormKitOptionsGroupItem,\n  FormKitOptionsList,\n  FormKitOptionsProp,\n  isGroupOption,\n} from '../props'\nimport { eq, isPojo } from '@formkit/utils'\n\n/**\n * A function to normalize an array of objects, array of strings, or object of\n * key-values to use an array of objects with value and label properties.\n *\n * @param options - An un-normalized {@link FormKitOptionsProp | FormKitOptionsProp}.\n *\n * @returns A list of {@link FormKitOptionsList | FormKitOptionsList}.\n *\n * @public\n */\nexport function normalizeOptions<T extends FormKitOptionsPropWithGroups>(\n  options: T,\n  i = { count: 1 }\n): T extends FormKitOptionsProp\n  ? FormKitOptionsList\n  : FormKitOptionsListWithGroups {\n  if (Array.isArray(options)) {\n    return options.map(\n      (option): FormKitOptionsItem | FormKitOptionsGroupItem => {\n        if (typeof option === 'string' || typeof option === 'number') {\n          return {\n            label: String(option),\n            value: String(option),\n          }\n        }\n        if (typeof option == 'object') {\n          if ('group' in option) {\n            option.options = normalizeOptions(option.options || [], i)\n            return option as FormKitOptionsGroupItem\n          } else if ('value' in option && typeof option.value !== 'string') {\n            Object.assign(option, {\n              value: `__mask_${i.count++}`,\n              __original: option.value,\n            })\n          }\n        }\n        return option as FormKitOptionsItem\n      }\n    ) as any\n  }\n  return Object.keys(options).map((value: string) => {\n    return {\n      label: options[value],\n      value,\n    }\n  })\n}\n\n/**\n * Given an {@link FormKitOptionsList | FormKitOptionsListWithGroups}, find the real value in the options.\n *\n * @param options - The {@link FormKitOptionsList | FormKitOptionsListWithGroups} to check for a given value\n * @param value - The value to return\n *\n * @returns `unknown`\n *\n * @public\n */\nexport function optionValue(\n  options: FormKitOptionsListWithGroups,\n  value: string,\n  undefinedIfNotFound = false\n): unknown {\n  if (Array.isArray(options)) {\n    for (const option of options) {\n      if (typeof option !== 'object' && option) continue\n      if (isGroupOption(option)) {\n        const found = optionValue(option.options, value, true)\n        if (found !== undefined) {\n          return found\n        }\n      } else if (value == option.value) {\n        return '__original' in option ? option.__original : option.value\n      }\n    }\n  }\n  return undefinedIfNotFound ? undefined : value\n}\n\n/**\n * Determines if the value should be selected.\n *\n * @param valueA - Any type of value\n * @param valueB - Any type of value\n *\n * @returns `boolean`\n *\n * @public\n */\nexport function shouldSelect(valueA: unknown, valueB: unknown): boolean {\n  if (\n    (valueA === null && valueB === undefined) ||\n    (valueA === undefined && valueB === null)\n  )\n    return false\n  if (valueA == valueB) return true\n  if (isPojo(valueA) && isPojo(valueB)) return eq(valueA, valueB)\n  return false\n}\n\n/**\n * A feature that converts the options prop to usable values, to be used by a\n * feature or a plugin.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function options(node: FormKitNode): void {\n  node.hook.prop((prop: any, next: any) => {\n    if (prop.prop === 'options') {\n      if (typeof prop.value === 'function') {\n        node.props.optionsLoader = prop.value\n        prop.value = []\n      } else {\n        node.props._normalizeCounter ??= { count: 1 }\n        prop.value = normalizeOptions(prop.value, node.props._normalizeCounter)\n      }\n    }\n    return next(prop)\n  })\n}\n","import { extend } from '@formkit/utils'\nimport {\n  FormKitSchemaNode,\n  FormKitExtendableSchemaRoot,\n  isDOM,\n  isComponent,\n  FormKitSchemaDOMNode,\n  FormKitSchemaComponent,\n  FormKitSchemaFormKit,\n  FormKitSectionsSchema,\n  FormKitSchemaCondition,\n} from '@formkit/core'\n\n/**\n * A function that is called with an extensions argument and returns a valid\n * schema node.\n *\n * @public\n */\nexport interface FormKitSchemaExtendableSection {\n  (extensions: FormKitSectionsSchema): FormKitSchemaNode\n  _s?: string\n}\n\n/**\n * A function that when called, returns a function that can in turn be called\n * with an extension parameter.\n *\n * @public\n */\nexport interface FormKitSection<T = FormKitSchemaExtendableSection> {\n  (\n    ...children: Array<\n      FormKitSchemaExtendableSection | string | FormKitSchemaCondition\n    >\n  ): T\n}\n\n/**\n * Creates a new reusable section.\n *\n * @param section - A single section of schema\n * @param el - The element or a function that returns a schema node.\n * @param root - When true, returns a FormKitExtendableSchemaRoot. When false,\n * returns a FormKitSchemaExtendableSection.\n *\n * @returns Returns a {@link @formkit/core#FormKitExtendableSchemaRoot\n * | FormKitExtendableSchemaRoot} or a {@link\n * @formkit/core#FormKitSchemaExtendableSection | FormKitSchemaExtendableSection}.\n *\n * @public\n */\nexport function createSection(\n  section: string,\n  el: string | null | (() => FormKitSchemaNode),\n  fragment: true\n): FormKitSection<FormKitExtendableSchemaRoot>\n\n/**\n * @param section - A single section of schema\n * @param el - The element or a function that returns a schema node.\n *\n * @public\n */\nexport function createSection(\n  section: string,\n  el: string | null | (() => FormKitSchemaNode)\n): FormKitSection<FormKitSchemaExtendableSection>\n\n/**\n * @param section - A single section of schema\n * @param el - The element or a function that returns a schema node.\n * @param root - When false, returns a FormKitSchemaExtendableSection.\n *\n * @public\n */\nexport function createSection(\n  section: string,\n  el: string | (() => FormKitSchemaNode),\n  fragment: false\n): FormKitSection<FormKitSchemaExtendableSection>\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function createSection(\n  section: string,\n  el: string | null | (() => FormKitSchemaNode),\n  fragment = false\n): FormKitSection<\n  FormKitExtendableSchemaRoot | FormKitSchemaExtendableSection\n> {\n  return (\n    ...children: Array<\n      FormKitSchemaExtendableSection | string | FormKitSchemaCondition\n    >\n  ) => {\n    const extendable = (extensions: FormKitSectionsSchema) => {\n      const node = !el || typeof el === 'string' ? { $el: el } : el()\n      if (isDOM(node) || isComponent(node)) {\n        if (!node.meta) {\n          node.meta = { section }\n        } else {\n          node.meta.section = section\n        }\n        if (children.length && !node.children) {\n          node.children = [\n            ...children.map((child) =>\n              typeof child === 'function' ? child(extensions) : child\n            ),\n          ]\n        }\n        if (isDOM(node)) {\n          node.attrs = {\n            class: `$classes.${section}`,\n            ...(node.attrs || {}),\n          }\n        }\n      }\n      return {\n        if: `$slots.${section}`,\n        then: `$slots.${section}`,\n        else:\n          section in extensions\n            ? extendSchema(node, extensions[section])\n            : node,\n      }\n    }\n    extendable._s = section\n    return fragment ? createRoot(extendable) : extendable\n  }\n}\n\n/**\n * Returns an extendable schema root node.\n *\n * @param rootSection - Creates the root node.\n *\n * @returns {@link @formkit/core#FormKitExtendableSchemaRoot | FormKitExtendableSchemaRoot}\n *\n * @internal\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function createRoot(\n  rootSection: FormKitSchemaExtendableSection\n): FormKitExtendableSchemaRoot {\n  return (extensions: FormKitSectionsSchema) => {\n    return [rootSection(extensions)]\n  }\n}\n\n/**\n * Type guard for schema objects.\n *\n * @param schema - returns `true` if the node is a schema node but not a string\n * or conditional.\n *\n * @returns `boolean`\n *\n * @public\n */\nexport function isSchemaObject(\n  schema: Partial<FormKitSchemaNode> | null\n): schema is\n  | FormKitSchemaDOMNode\n  | FormKitSchemaComponent\n  | FormKitSchemaFormKit {\n  return !!(\n    schema &&\n    typeof schema === 'object' &&\n    ('$el' in schema || '$cmp' in schema || '$formkit' in schema)\n  )\n}\n\n/**\n * Extends a single schema node with an extension. The extension can be any\n * partial node including strings.\n *\n * @param schema - The base schema node.\n * @param extension - The values to extend on the base schema node.\n *\n * @returns {@link @formkit/core#FormKitSchemaNode | FormKitSchemaNode}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function extendSchema(\n  schema: FormKitSchemaNode,\n  extension: Partial<FormKitSchemaNode> | null = {}\n): FormKitSchemaNode {\n  if (typeof schema === 'string') {\n    return isSchemaObject(extension) || typeof extension === 'string'\n      ? extension\n      : schema\n  } else if (Array.isArray(schema)) {\n    return isSchemaObject(extension) ? extension : schema\n  }\n  return extend(schema, extension) as FormKitSchemaNode\n}\n","import { createSection } from '../createSection'\n\n/**\n * Actions section that shows the action buttons\n *\n * @public\n */\nexport const actions = createSection('actions', () => ({\n  $el: 'div',\n  if: '$actions',\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Box section used for grouping options\n *\n * @public\n */\nexport const box = createSection('input', () => ({\n  $el: 'input',\n  bind: '$attrs',\n  attrs: {\n    type: '$type',\n    name: '$node.props.altName || $node.name',\n    disabled: '$option.attrs.disabled || $disabled',\n    onInput: '$handlers.toggleChecked',\n    checked: '$fns.eq($_value, $onValue)',\n    onBlur: '$handlers.blur',\n    value: '$: true',\n    id: '$id',\n    'aria-describedby': {\n      if: '$options.length',\n      then: {\n        if: '$option.help',\n        then: '$: \"help-\" + $option.attrs.id',\n        else: undefined,\n      },\n      else: {\n        if: '$help',\n        then: '$: \"help-\" + $id',\n        else: undefined,\n      },\n    },\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Option help section\n *\n * @public\n */\nexport const boxHelp = createSection('optionHelp', () => ({\n  $el: 'div',\n  if: '$option.help',\n  attrs: {\n    id: '$: \"help-\" + $option.attrs.id',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Box Inner section\n *\n * @public\n */\nexport const boxInner = createSection('inner', 'span')\n","import { createSection } from '../createSection'\n\n/**\n * Label section for options\n *\n * @public\n */\nexport const boxLabel = createSection('label', 'span')\n","import { createSection } from '../createSection'\n\n/**\n * Option section used to show an option\n *\n * @public\n */\nexport const boxOption = createSection('option', () => ({\n  $el: 'li',\n  for: ['option', '$options'],\n  attrs: {\n    'data-disabled': '$option.attrs.disabled || $disabled || undefined',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Options section used to wrap all option sections in a list\n *\n * @public\n */\nexport const boxOptions = createSection('options', 'ul')\n","import { createSection } from '../createSection'\n\n/**\n * Wrapper section for options\n *\n * @public\n */\nexport const boxWrapper = createSection('wrapper', () => ({\n  $el: 'label',\n  attrs: {\n    'data-disabled': {\n      if: '$options.length',\n      then: undefined,\n      else: '$disabled || undefined',\n    },\n    'data-checked': {\n      if: '$options == undefined',\n      then: '$fns.eq($_value, $onValue) || undefined',\n      else: '$fns.isChecked($option.value) || undefined',\n    },\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Input section for a button\n *\n * @public\n */\nexport const buttonInput = createSection('input', () => ({\n  $el: 'button',\n  bind: '$attrs',\n  attrs: {\n    type: '$type',\n    disabled: '$disabled',\n    name: '$node.name',\n    id: '$id',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Default section for a button\n *\n * @public\n */\nexport const buttonLabel = createSection('default', null)\n","import { createSection } from '../createSection'\n\n/**\n * Decorator section\n *\n * @public\n */\nexport const decorator = createSection('decorator', () => ({\n  $el: 'span',\n  attrs: {\n    'aria-hidden': 'true',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Fieldset section, used to describe help\n *\n * @public\n */\nexport const fieldset = createSection('fieldset', () => ({\n  $el: 'fieldset',\n  attrs: {\n    id: '$id',\n    'aria-describedby': {\n      if: '$help',\n      then: '$: \"help-\" + $id',\n      else: undefined,\n    },\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Input section for a file input\n *\n * @public\n */\nexport const fileInput = createSection('input', () => ({\n  $el: 'input',\n  bind: '$attrs',\n  attrs: {\n    type: 'file',\n    disabled: '$disabled',\n    name: '$node.name',\n    onChange: '$handlers.files',\n    onBlur: '$handlers.blur',\n    id: '$id',\n    'aria-describedby': '$describedBy',\n    'aria-required': '$state.required || undefined',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * File item section for showing a file name\n *\n * @public\n */\nexport const fileItem = createSection('fileItem', () => ({\n  $el: 'li',\n  for: ['file', '$value'],\n}))\n","import { createSection } from '../createSection'\n\n/**\n * File list section to show all file names\n *\n * @public\n */\nexport const fileList = createSection('fileList', () => ({\n  $el: 'ul',\n  if: '$value.length',\n  attrs: {\n    'data-has-multiple': '$_hasMultipleFiles',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * File name section to show the file name\n *\n * @public\n */\nexport const fileName = createSection('fileName', () => ({\n  $el: 'span',\n  attrs: {\n    class: '$classes.fileName',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * File remove section to show a remove button for files\n *\n * @public\n */\nexport const fileRemove = createSection('fileRemove', () => ({\n  $el: 'button',\n  attrs: {\n    type: 'button',\n    onClick: '$handlers.resetFiles',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Form section\n *\n * @public\n */\nexport const formInput = createSection('form', () => ({\n  $el: 'form',\n  bind: '$attrs',\n  meta: {\n    autoAnimate: true,\n  },\n  attrs: {\n    id: '$id',\n    name: '$node.name',\n    onSubmit: '$handlers.submit',\n    'data-loading': '$state.loading || undefined',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * A simple fragment section\n *\n * @public\n */\nexport const fragment = createSection('wrapper', null, true)\n","import { createSection } from '../createSection'\n\n/**\n * Help section that shows help text\n *\n * @public\n */\nexport const help = createSection('help', () => ({\n  $el: 'div',\n  if: '$help',\n  attrs: {\n    id: '$: \"help-\" + $id',\n  },\n}))\n","import { createSection, FormKitSchemaExtendableSection } from '../createSection'\n\n/**\n * Icon section used by all icons\n *\n * @public\n */\nexport const icon = (\n  sectionKey: string,\n  el?: string\n): FormKitSchemaExtendableSection => {\n  return createSection(`${sectionKey}Icon`, () => {\n    const rawIconProp = `_raw${sectionKey\n      .charAt(0)\n      .toUpperCase()}${sectionKey.slice(1)}Icon`\n    return {\n      if: `$${sectionKey}Icon && $${rawIconProp}`,\n      $el: `${el ? el : 'span'}`,\n      attrs: {\n        class: `$classes.${sectionKey}Icon + \" \" + $classes.icon`,\n        innerHTML: `$${rawIconProp}`,\n        onClick: `$handlers.iconClick(${sectionKey})`,\n        role: `$fns.iconRole(${sectionKey})`,\n        tabindex: `$fns.iconRole(${sectionKey}) === \"button\" && \"0\" || undefined`,\n        for: {\n          if: `${el === 'label'}`,\n          then: '$id',\n        },\n      },\n    }\n  })()\n}\n","import { createSection } from '../createSection'\n\n/**\n * Inner section\n *\n * @public\n */\nexport const inner = createSection('inner', 'div')\n","import { createSection } from '../createSection'\n\n/**\n * Label section with label element\n *\n * @public\n */\nexport const label = createSection('label', () => ({\n  $el: 'label',\n  if: '$label',\n  attrs: {\n    for: '$id',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Legend section, used instead of label when its grouping fields.\n *\n * @public\n */\nexport const legend = createSection('legend', () => ({\n  $el: 'legend',\n  if: '$label',\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Message section, shows a group of messages.\n *\n * @public\n */\nexport const message = createSection('message', () => ({\n  $el: 'li',\n  for: ['message', '$messages'],\n  attrs: {\n    key: '$message.key',\n    id: `$id + '-' + $message.key`,\n    'data-message-type': '$message.type',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Messages section where all messages will be displayed.\n *\n * @public\n */\nexport const messages = createSection('messages', () => ({\n  $el: 'ul',\n  if: '$defaultMessagePlacement && $fns.length($messages)',\n}))\n","import { createSection } from '../createSection'\n\n/**\n * No file section that shows when there is no files\n *\n * @public\n */\nexport const noFiles = createSection('noFiles', () => ({\n  $el: 'span',\n  if: '$value == null || $value.length == 0',\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Option section used to show options\n *\n * @public\n */\nexport const optGroup = createSection('optGroup', () => ({\n  $el: 'optgroup',\n  bind: '$option.attrs',\n  attrs: {\n    label: '$option.group',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Option section used to show options\n *\n * @public\n */\nexport const option = createSection('option', () => ({\n  $el: 'option',\n  bind: '$option.attrs',\n  attrs: {\n    class: '$classes.option',\n    value: '$option.value',\n    selected: '$fns.isSelected($option)',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Options slot section that displays options when used with slots\n *\n * @public\n */\nexport const optionSlot = createSection('options', () => ({\n  $el: null,\n  if: '$options.length',\n  for: ['option', '$option.options || $options'],\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Outer section where most data attributes are assigned.\n *\n * @public\n */\nexport const outer = createSection('outer', () => ({\n  $el: 'div',\n  meta: {\n    autoAnimate: true,\n  },\n  attrs: {\n    key: '$id',\n    'data-family': '$family || undefined',\n    'data-type': '$type',\n    'data-multiple':\n      '$attrs.multiple || ($type != \"select\" && $options != undefined) || undefined',\n    'data-has-multiple': '$_hasMultipleFiles',\n    'data-disabled': '$: ($disabled !== \"false\" && $disabled) || undefined',\n    'data-empty': '$state.empty || undefined',\n    'data-complete': '$state.complete || undefined',\n    'data-invalid': '$state.invalid || undefined',\n    'data-errors': '$state.errors || undefined',\n    'data-submitted': '$state.submitted || undefined',\n    'data-prefix-icon': '$_rawPrefixIcon !== undefined || undefined',\n    'data-suffix-icon': '$_rawSuffixIcon !== undefined || undefined',\n    'data-prefix-icon-click': '$onPrefixIconClick !== undefined || undefined',\n    'data-suffix-icon-click': '$onSuffixIconClick !== undefined || undefined',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Prefix section\n *\n * @public\n */\nexport const prefix = createSection('prefix', null)\n","import { createSection } from '../createSection'\n\n/**\n * Input section used by selects\n *\n * @public\n */\nexport const selectInput = createSection('input', () => ({\n  $el: 'select',\n  bind: '$attrs',\n  attrs: {\n    id: '$id',\n    'data-placeholder': '$fns.showPlaceholder($_value, $placeholder)',\n    disabled: '$disabled',\n    class: '$classes.input',\n    name: '$node.name',\n    onChange: '$handlers.onChange',\n    onInput: '$handlers.selectInput',\n    onBlur: '$handlers.blur',\n    'aria-describedby': '$describedBy',\n    'aria-required': '$state.required || undefined',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Submit section that displays a submit button from a form\n *\n * @public\n */\nexport const submitInput = createSection('submit', () => ({\n  $cmp: 'FormKit',\n  bind: '$submitAttrs',\n  props: {\n    type: 'submit',\n    label: '$submitLabel',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Suffix section\n *\n * @public\n */\nexport const suffix = createSection('suffix', null)\n","import { createSection } from '../createSection'\n\n/**\n * Input section\n *\n * @public\n */\nexport const textInput = createSection('input', () => ({\n  $el: 'input',\n  bind: '$attrs',\n  attrs: {\n    type: '$type',\n    disabled: '$disabled',\n    name: '$node.name',\n    onInput: '$handlers.DOMInput',\n    onBlur: '$handlers.blur',\n    value: '$_value',\n    id: '$id',\n    'aria-describedby': '$describedBy',\n    'aria-required': '$state.required || undefined',\n  },\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Input section used by textarea inputs\n *\n * @public\n */\nexport const textareaInput = createSection('input', () => ({\n  $el: 'textarea',\n  bind: '$attrs',\n  attrs: {\n    disabled: '$disabled',\n    name: '$node.name',\n    onInput: '$handlers.DOMInput',\n    onBlur: '$handlers.blur',\n    value: '$_value',\n    id: '$id',\n    'aria-describedby': '$describedBy',\n    'aria-required': '$state.required || undefined',\n  },\n  children: '$initialValue',\n}))\n","import { createSection } from '../createSection'\n\n/**\n * Wrapper input section\n *\n * @public\n */\nexport const wrapper = createSection('wrapper', 'div')\n","import type { FormKitNode } from '@formkit/core'\n\n/**\n * A simple counter to keep track of how many radios have been placed.\n */\nlet radioInstance = 0\n\nexport function resetRadio() {\n  radioInstance = 0\n}\n\n/**\n * Automatically rename any radio inputs.\n * @param node - A formkit node.\n * @returns\n *\n * @public\n */\nexport default function renamesRadios(node: FormKitNode) {\n  if (node.type === 'group' || node.type === 'list') {\n    node.plugins.add(renamesRadiosPlugin)\n  }\n}\n\nfunction renamesRadiosPlugin(node: FormKitNode) {\n  if (node.props.type === 'radio') {\n    node.addProps(['altName'])\n    node.props.altName = `${node.name}_${radioInstance++}`\n  }\n}\n","import { FormKitMiddleware, FormKitNode } from '@formkit/core'\nimport { extend, slugify } from '@formkit/utils'\n\n/**\n * A feature that normalizes box types (checkboxes, radios).\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @returns A {@link @formkit/node#FormKitMiddleware | FormKitMiddleware}.\n *\n * @public\n */\nexport default function normalizeBoxes(\n  node: FormKitNode\n): FormKitMiddleware<{ prop: string | symbol; value: any }> {\n  return function (prop, next) {\n    if (prop.prop === 'options' && Array.isArray(prop.value)) {\n      prop.value = prop.value.map((option) => {\n        if (!option.attrs?.id) {\n          return extend(option, {\n            attrs: {\n              id: `${node.props.id}-option-${slugify(String(option.value))}`,\n            },\n          })\n        }\n        return option\n      })\n      if (node.props.type === 'checkbox' && !Array.isArray(node.value)) {\n        if (node.isCreated) {\n          node.input([], false)\n        } else {\n          node.on('created', () => {\n            if (!Array.isArray(node.value)) {\n              node.input([], false)\n            }\n          })\n        }\n      }\n    }\n    return next(prop)\n  }\n}\n","import { FormKitNode } from '@formkit/core'\nimport { has } from '@formkit/utils'\nimport normalizeBoxes from './normalizeBoxes'\nimport { shouldSelect, optionValue } from './options'\n\n/**\n * Event handler when an input is toggled.\n *\n * @param node - The {@link @formkit/node#FormKitNode | FormKitNode} being toggled.\n * @param e - The input event related to the toggling.\n *\n * @public\n */\nfunction toggleChecked(node: FormKitNode, e: Event) {\n  const el = e.target\n  if (el instanceof HTMLInputElement) {\n    const value = Array.isArray(node.props.options)\n      ? optionValue(node.props.options, el.value)\n      : el.value\n    if (Array.isArray(node.props.options) && node.props.options.length) {\n      if (!Array.isArray(node._value)) {\n        // There is no array value set\n        node.input([value])\n      } else if (\n        !node._value.some((existingValue) => shouldSelect(value, existingValue))\n      ) {\n        // The value is not in the current set\n        node.input([...node._value, value])\n      } else {\n        // Filter out equivalent values\n        node.input(\n          node._value.filter(\n            (existingValue) => !shouldSelect(value, existingValue)\n          )\n        )\n      }\n    } else {\n      if (el.checked) {\n        node.input(node.props.onValue)\n      } else {\n        node.input(node.props.offValue)\n      }\n    }\n  }\n}\n\n/**\n * Checks if a given option is present in the node value.\n *\n * @param node - The The {@link @formkit/node#FormKitNode | FormKitNode} being checked.\n * @param value - The value of any option.\n *\n * @returns `boolean`\n *\n * @public\n */\nfunction isChecked(node: FormKitNode, value: any) {\n  // We need to force vue’s reactivity to respond when the value is run:\n  node.context?.value\n  node.context?._value\n  if (Array.isArray(node._value)) {\n    return node._value.some((existingValue) =>\n      shouldSelect(optionValue(node.props.options, value), existingValue)\n    )\n  }\n  return false\n}\n\n/**\n * A feature that adds checkbox selection support.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function checkboxes(node: FormKitNode): void {\n  node.on('created', () => {\n    if (node.context?.handlers) {\n      node.context.handlers.toggleChecked = toggleChecked.bind(null, node)\n    }\n    if (node.context?.fns) {\n      node.context.fns.isChecked = isChecked.bind(null, node)\n    }\n    // Configure our default onValue and offValue\n    if (!has(node.props, 'onValue')) node.props.onValue = true\n    if (!has(node.props, 'offValue')) node.props.offValue = false\n  })\n\n  node.hook.prop(normalizeBoxes(node))\n}\n","import { FormKitNode } from '@formkit/core'\n\n/**\n * Adds icon props definition.\n *\n * @param sectionKey - the location the icon should be loaded.\n * @param defaultIcon - the icon that should be loaded if a match is found in the user's CSS.\n *\n * @returns A {@link @formkit/core#FormKitPlugin | FormKitPlugin}.\n *\n * @public\n */\nexport default function defaultIcon(sectionKey: string, defaultIcon: string) {\n  return (node: FormKitNode): void => {\n    if (node.props[`${sectionKey}Icon`] === undefined) {\n      node.props[`${sectionKey}Icon`] = defaultIcon.startsWith('<svg')\n        ? defaultIcon\n        : `default:${defaultIcon}`\n    }\n  }\n}\n","import { FormKitNode } from '@formkit/core'\nimport { undefine } from '@formkit/utils'\n\n/**\n * A feature that allows disabling children of this node.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function disables(node: FormKitNode): void {\n  node.on('created', () => {\n    // If the disabled prop belongs to this *actual* node (not inherited), then\n    // perform an `undefine` on it, if not then we'll let the prop be inherited.\n    if ('disabled' in node.props) {\n      node.props.disabled = undefine(node.props.disabled)\n      node.config.disabled = undefine(node.props.disabled)\n    }\n  })\n  node.hook.prop(({ prop, value }, next) => {\n    value = prop === 'disabled' ? undefine(value) : value\n    return next({ prop, value })\n  })\n  node.on('prop:disabled', ({ payload: value }) => {\n    node.config.disabled = undefine(value)\n  })\n}\n","import { FormKitNode, createMessage } from '@formkit/core'\n\n/**\n * Creates a new feature that generates a localization message of type ui\n * for use on a given component.\n *\n * @param key - The key of the message.\n * @param value - The value of the message.\n *\n * @returns A {@link @formkit/core#FormKitPlugin | FormKitPlugin}.\n *\n * @public\n */\nexport default function localize(\n  key: string,\n  value?: string\n): (node: FormKitNode) => void {\n  return (node: FormKitNode): void => {\n    node.store.set(\n      /* #__PURE__ */ createMessage({\n        key,\n        type: 'ui',\n        value: value || key,\n        meta: {\n          localize: true,\n          i18nArgs: [node],\n        },\n      })\n    )\n  }\n}\n","import { FormKitNode } from '@formkit/core'\nimport localize from './localize'\nimport { FormKitFileValue } from '../index'\n\ndeclare global {\n  interface Window {\n    _FormKit_File_Drop: boolean\n  }\n}\n\nconst isBrowser = typeof window !== 'undefined'\n\n/**\n * Remove the data-file-hover attribute from the target.\n *\n * @param e - Event\n *\n * @internal\n */\nfunction removeHover(e: Event) {\n  if (\n    e.target instanceof HTMLElement &&\n    e.target.hasAttribute('data-file-hover')\n  ) {\n    e.target.removeAttribute('data-file-hover')\n  }\n}\n\n/**\n * Prevent stray drag/drop events from navigating the window.\n *\n * @param e - Event\n *\n * @internal\n */\nfunction preventStrayDrop(type: string, e: Event) {\n  if (!(e.target instanceof HTMLInputElement)) {\n    e.preventDefault()\n  } else if (type === 'dragover') {\n    e.target.setAttribute('data-file-hover', 'true')\n  }\n  if (type === 'drop') {\n    removeHover(e)\n  }\n}\n\n/**\n * A feature to add file handling support to an input.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function files(node: FormKitNode): void {\n  // Localize our content:\n  localize('noFiles', 'Select file')(node)\n  localize('removeAll', 'Remove all')(node)\n  localize('remove')(node)\n  node.addProps(['_hasMultipleFiles'])\n\n  if (isBrowser) {\n    if (!window._FormKit_File_Drop) {\n      window.addEventListener(\n        'dragover',\n        preventStrayDrop.bind(null, 'dragover')\n      )\n      window.addEventListener('drop', preventStrayDrop.bind(null, 'drop'))\n      window.addEventListener('dragleave', removeHover)\n      window._FormKit_File_Drop = true\n    }\n  }\n  node.hook.input((value, next) => next(Array.isArray(value) ? value : []))\n  node.on('input', ({ payload: value }) => {\n    node.props._hasMultipleFiles =\n      Array.isArray(value) && value.length > 1 ? true : undefined\n  })\n\n  node.on('reset', () => {\n    if (node.props.id && isBrowser) {\n      const el = document.getElementById(node.props.id)\n      if (el) (el as HTMLInputElement).value = ''\n    }\n  })\n\n  node.on('created', () => {\n    if (!Array.isArray(node.value)) node.input([], false)\n\n    if (!node.context) return\n\n    node.context.handlers.resetFiles = (e: Event) => {\n      e.preventDefault()\n      node.input([])\n      if (node.props.id && isBrowser) {\n        const el = document.getElementById(node.props.id)\n        if (el) (el as HTMLInputElement).value = ''\n        el?.focus()\n      }\n    }\n\n    node.context.handlers.files = (e: Event) => {\n      const files: FormKitFileValue = []\n      if (e.target instanceof HTMLInputElement && e.target.files) {\n        for (let i = 0; i < e.target.files.length; i++) {\n          let file\n          if ((file = e.target.files.item(i))) {\n            files.push({ name: file.name, file })\n          }\n        }\n        node.input(files)\n      }\n      if (node.context) node.context.files = files\n      // Call the original listener if there is one.\n\n      if (typeof node.props.attrs?.onChange === 'function') {\n        node.props.attrs?.onChange(e)\n      }\n    }\n  })\n}\n","import { createMessage, FormKitNode } from '@formkit/core'\nimport { has, clone } from '@formkit/utils'\n\nconst loading = /* #__PURE__ */ createMessage({\n  key: 'loading',\n  value: true,\n  visible: false,\n})\n\n/**\n * Handle the submit event.\n *\n * @param e - The event\n *\n * @internal\n */\nasync function handleSubmit(node: FormKitNode, submitEvent: Event) {\n  const submitNonce = Math.random()\n  node.props._submitNonce = submitNonce\n  submitEvent.preventDefault()\n  await node.settled\n\n  if (node.ledger.value('validating')) {\n    // There are validation rules still pending.\n    node.store.set(loading)\n    await node.ledger.settled('validating')\n    node.store.remove('loading')\n    // If this was not the same submit event, bail out.\n    if (node.props._submitNonce !== submitNonce) return\n  }\n  // Set the submitted state on all children\n  const setSubmitted = (n: FormKitNode) =>\n    n.store.set(\n      /* #__PURE__ */ createMessage({\n        key: 'submitted',\n        value: true,\n        visible: false,\n      })\n    )\n  node.walk(setSubmitted)\n  setSubmitted(node)\n\n  node.emit('submit-raw')\n  if (typeof node.props.onSubmitRaw === 'function') {\n    node.props.onSubmitRaw(submitEvent, node)\n  }\n\n  if (node.ledger.value('blocking')) {\n    if (typeof node.props.onSubmitInvalid === 'function') {\n      node.props.onSubmitInvalid(node)\n    }\n    // There is still a blocking message in the store.\n    if (node.props.incompleteMessage !== false) {\n      setIncompleteMessage(node)\n    }\n  } else {\n    // No blocking messages\n    if (typeof node.props.onSubmit === 'function') {\n      // call onSubmit\n      const retVal = node.props.onSubmit(\n        node.hook.submit.dispatch(clone(node.value as Record<string, any>)),\n        node\n      )\n      if (retVal instanceof Promise) {\n        const autoDisable =\n          node.props.disabled === undefined &&\n          node.props.submitBehavior !== 'live'\n        if (autoDisable) node.props.disabled = true\n        node.store.set(loading)\n        await retVal\n        if (autoDisable) node.props.disabled = false\n        node.store.remove('loading')\n      }\n    } else {\n      if (submitEvent.target instanceof HTMLFormElement) {\n        submitEvent.target.submit()\n      }\n    }\n  }\n}\n\n/**\n * Set the incomplete message on a specific node.\n * @param node - The node to set the incomplete message on.\n */\nfunction setIncompleteMessage(node: FormKitNode) {\n  node.store.set(\n    /* #__PURE__ */ createMessage({\n      blocking: false,\n      key: `incomplete`,\n      meta: {\n        localize: node.props.incompleteMessage === undefined,\n        i18nArgs: [{ node }],\n        showAsMessage: true,\n      },\n      type: 'ui',\n      value: node.props.incompleteMessage || 'Form incomplete.',\n    })\n  )\n}\n\n/**\n * A feature to add a submit handler and actions section.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function form(node: FormKitNode): void {\n  node.props.isForm = true\n  node.ledger.count('validating', (m) => m.key === 'validating')\n\n  node.props.submitAttrs ??= {\n    disabled: node.props.disabled,\n  }\n\n  node.on('prop:disabled', ({ payload: disabled }) => {\n    node.props.submitAttrs = { ...node.props.submitAttrs, disabled }\n  })\n\n  node.on('created', () => {\n    if (node.context?.handlers) {\n      node.context.handlers.submit = handleSubmit.bind(null, node)\n    }\n    if (!has(node.props, 'actions')) {\n      node.props.actions = true\n    }\n  })\n  node.on('prop:incompleteMessage', () => {\n    if (node.store.incomplete) setIncompleteMessage(node)\n  })\n  node.on('settled:blocking', () => node.store.remove('incomplete'))\n}\n","import { FormKitNode } from '@formkit/core'\n\n/**\n * A feature that applies `ignore=\"true\"` by default.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function ignore(node: FormKitNode): void {\n  if (node.props.ignore === undefined) {\n    node.props.ignore = true\n    node.parent = null\n  }\n}\n","import { FormKitNode } from '@formkit/core'\n\n/**\n * A feature that ensures the input has an `initialValue` prop.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function initialValue(node: FormKitNode): void {\n  node.on('created', () => {\n    if (node.context) {\n      node.context.initialValue = node.value || ''\n    }\n  })\n}\n","import { FormKitNode } from '@formkit/core'\n\n/**\n * A feature that allows casting to numbers.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function casts(node: FormKitNode): void {\n  if (typeof node.props.number === 'undefined') return\n  const strict = ['number', 'range', 'hidden'].includes(node.props.type)\n  node.hook.input((value, next) => {\n    if (value === '') return next(undefined)\n    const numericValue =\n      node.props.number === 'integer' ? parseInt(value) : parseFloat(value)\n    if (!Number.isFinite(numericValue))\n      return strict ? next(undefined) : next(value)\n    return next(numericValue)\n  })\n}\n","import { FormKitNode, warn } from '@formkit/core'\nimport normalizeBoxes from './normalizeBoxes'\nimport { optionValue, shouldSelect } from './options'\n\n/**\n * Sets the value of a radio button when checked.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n * @param event - Event\n *\n * @public\n */\nfunction toggleChecked(node: FormKitNode, event: Event) {\n  if (event.target instanceof HTMLInputElement) {\n    node.input(optionValue(node.props.options, event.target.value))\n  }\n}\n\n/**\n * Checks if the value being checked is the current value.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n * @param value - The value to check\n *\n * @returns `boolean`\n *\n * @public\n */\nfunction isChecked(node: FormKitNode, value: string) {\n  // We need to force vue’s reactivity to respond when the value is run:\n  node.context?.value\n  node.context?._value\n  return shouldSelect(optionValue(node.props.options, value), node._value)\n}\n\n/**\n * A feature to check if the value being checked is the current value.\n *\n * @param node - A {@link @formkit/core#FormKitNode | FormKitNode}.\n *\n * @public\n */\nexport default function radios(node: FormKitNode): void {\n  node.on('created', () => {\n    if (!Array.isArray(node.props.options)) {\n      warn(350, {\n        node,\n        inputType: 'radio',\n      })\n    }\n    if (node.context?.handlers) {\n      node.context.handlers.toggleChecked = toggleChecked.bind(null, node)\n    }\n    if (node.context?.fns) {\n      node.context.fns.isChecked = isChecked.bind(null, node)\n    }\n  })\n  node.hook.prop(normalizeBoxes(node))\n}\n","import {\n  FormKitOptionsItem,\n  FormKitOptionsGroupItem,\n  FormKitOptionsListWithGroups,\n} from './../props'\nimport { FormKitNode } from '@formkit/core'\nimport { undefine, eq } from '@formkit/utils'\nimport { shouldSelect, optionValue } from './options'\nimport { FormKitOptionsList, isGroupOption } from '../props'\n\n/**\n * Checks if a the given option should have the selected attribute.\n * @param node - The node being evaluated.\n * @param option - The option value to check\n * @returns\n * @public\n */\nfunction isSelected(\n  node: FormKitNode,\n  option: FormKitOptionsItem | FormKitOptionsGroupItem\n) {\n  if (isGroupOption(option)) return false\n  // Here we trick reactivity (if at play) to watch this function.\n  node.context && node.context.value\n  const optionValue = '__original' in option ? option.__original : option.value\n  return Array.isArray(node._value)\n    ? node._value.some((optionA) => shouldSelect(optionA, optionValue))\n    : (node._value === undefined ||\n        (node._value === null && !containsValue(node.props.options, null))) &&\n      option.attrs &&\n      option.attrs['data-is-placeholder']\n    ? true\n    : shouldSelect(optionValue, node._value)\n}\n\n/**\n * Checks to see if a given value is anywhere in the options list.\n */\nfunction containsValue(\n  options: FormKitOptionsListWithGroups,\n  value: unknown\n): boolean {\n  return options.some((option) => {\n    if (isGroupOption(option)) {\n      return containsValue(option.options, value)\n    } else {\n      return (\n        ('__original' in option ? option.__original : option.value) === value\n      )\n    }\n  })\n}\n\n/**\n * Defers the change event till after the next cycle.\n * @param node - The node being evaluated.\n * @param e - The change event.\n */\nasync function deferChange(node: FormKitNode, e: Event) {\n  if (typeof node.props.attrs?.onChange === 'function') {\n    await new Promise((r) => setTimeout(r, 0))\n    await node.settled\n    node.props.attrs.onChange(e)\n  }\n}\n\n/**\n * Select the correct values.\n * @param e - The input event emitted by the select.\n */\nfunction /* #__PURE__ */ selectInput(node: FormKitNode, e: Event) {\n  const target = e.target as HTMLSelectElement\n  const value = target.hasAttribute('multiple')\n    ? Array.from(target.selectedOptions).map((o) =>\n        optionValue(node.props.options, o.value)\n      )\n    : optionValue(node.props.options, target.value)\n  node.input(value)\n}\n\n/**\n * Appends a placeholder to the options list.\n * @param options - An options list\n * @param placeholder - A placeholder string to append\n * @returns\n */\nfunction applyPlaceholder(options: FormKitOptionsList, placeholder: string) {\n  if (\n    !options.some(\n      (option) => option.attrs && option.attrs['data-is-placeholder']\n    )\n  ) {\n    return [\n      {\n        label: placeholder,\n        value: '',\n        attrs: {\n          hidden: true,\n          disabled: true,\n          'data-is-placeholder': 'true',\n        },\n      },\n      ...options,\n    ]\n  }\n  return options\n}\n\n/**\n * Given an options list, find the first true value.\n * @param options - An options list (with groups)\n */\nfunction firstValue(options: FormKitOptionsListWithGroups): unknown {\n  const option = options.length > 0 ? options[0] : undefined\n  if (!option) return undefined\n  if (isGroupOption(option)) return firstValue(option.options)\n  return '__original' in option ? option.__original : option.value\n}\n\n/**\n * Converts the options prop to usable values.\n * @param node - A formkit node.\n * @public\n */\nexport default function select(node: FormKitNode): void {\n  // Set the initial value of a multi-input\n  node.on('created', () => {\n    const isMultiple = undefine(node.props.attrs?.multiple)\n\n    if (\n      !isMultiple &&\n      node.props.placeholder &&\n      Array.isArray(node.props.options)\n    ) {\n      node.hook.prop(({ prop, value }, next) => {\n        if (prop === 'options') {\n          value = applyPlaceholder(value, node.props.placeholder)\n        }\n        return next({ prop, value })\n      })\n      node.props.options = applyPlaceholder(\n        node.props.options,\n        node.props.placeholder\n      )\n    }\n    if (isMultiple) {\n      if (node.value === undefined) {\n        node.input([], false)\n      }\n    } else if (node.context && !node.context.options) {\n      // If this input is (probably) using the default slot, we need to add a\n      // \"value\" attribute to get bound\n      node.props.attrs = Object.assign({}, node.props.attrs, {\n        value: node._value,\n      })\n      node.on('input', ({ payload }) => {\n        node.props.attrs = Object.assign({}, node.props.attrs, {\n          value: payload,\n        })\n      })\n    }\n    if (node.context?.handlers) {\n      node.context.handlers.selectInput = selectInput.bind(null, node)\n      node.context.handlers.onChange = deferChange.bind(null, node)\n    }\n    if (node.context?.fns) {\n      node.context.fns.isSelected = isSelected.bind(null, node)\n      node.context.fns.showPlaceholder = (value: unknown, placeholder) => {\n        if (!Array.isArray(node.props.options)) return false\n        const hasMatchingValue = node.props.options.some(\n          (option: FormKitOptionsItem) => {\n            if (option.attrs && 'data-is-placeholder' in option.attrs)\n              return false\n            const optionValue =\n              '__original' in option ? option.__original : option.value\n            return eq(value, optionValue)\n          }\n        )\n        return placeholder && !hasMatchingValue ? true : undefined\n      }\n    }\n  })\n\n  node.hook.input((value, next) => {\n    if (\n      !node.props.placeholder &&\n      value === undefined &&\n      Array.isArray(node.props?.options) &&\n      node.props.options.length &&\n      !undefine(node.props?.attrs?.multiple)\n    ) {\n      value = firstValue(node.props.options)\n    }\n    return next(value)\n  })\n}\n","import { extend, isObject, token } from '@formkit/utils'\nimport {\n  FormKitExtendableSchemaRoot,\n  FormKitSchemaAttributes,\n  FormKitSchemaNode,\n  FormKitSchemaCondition,\n  FormKitSchemaDefinition,\n  FormKitSchemaComponent,\n  isComponent,\n  isDOM,\n  isConditional,\n  warn,\n  FormKitSchemaDOMNode,\n  FormKitSectionsSchema,\n} from '@formkit/core'\nimport {\n  isSchemaObject,\n  extendSchema,\n  FormKitSection,\n  FormKitSchemaExtendableSection,\n  createRoot,\n} from './createSection'\nimport {\n  outer,\n  wrapper,\n  prefix,\n  suffix,\n  label,\n  inner,\n  messages,\n  message,\n  help,\n  icon,\n} from './sections'\nimport { resetRadio } from './features/renamesRadios'\n\n/**\n * Either a schema node, or a function that returns a schema node.\n *\n * @public\n */\nexport type FormKitInputSchema =\n  | ((children?: FormKitSchemaDefinition) => FormKitSchemaNode)\n  | FormKitSchemaNode\n\n/**\n * A type narrowed type that represents a formkit schema \"section\". These are\n * always in the shape:\n * ```js\n * {\n *   if: string,\n *   then: '$slots.sectionName',\n *   else: {\n *    meta: {\n *      section: 'sectionName'\n *    },\n *    $el: 'div' // or $cmp...\n *   }\n * }\n * ```\n *\n * @public\n */\nexport type FormKitSchemaSection = FormKitSchemaCondition & {\n  else:\n    | FormKitSchemaDOMNode\n    | (FormKitSchemaComponent & { meta: { section: string } })\n}\n\n/**\n * Checks if the current schema node is a slot condition.\n *\n * @example\n *\n * ```js\n * {\n *  if: '$slot.name',\n *  then: '$slot.name',\n *  else: []\n * } // this schema node would return true.\n * ```\n *\n * @param node - A {@link @formkit/core#FormKitSchemaNode | FormKitSchemaNode}.\n *\n * @returns `boolean`\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function isSlotCondition(node: FormKitSchemaNode): node is {\n  if: string\n  then: string\n  else: FormKitSchemaNode | FormKitSchemaNode[]\n} {\n  if (\n    isConditional(node) &&\n    node.if &&\n    node.if.startsWith('$slots.') &&\n    typeof node.then === 'string' &&\n    node.then.startsWith('$slots.') &&\n    'else' in node\n  ) {\n    return true\n  }\n  return false\n}\n\n/**\n * Finds a section by name in a schema.\n *\n * @param schema - A {@link @formkit/core#FormKitSchemaDefinition | FormKitSchemaDefinition} array.\n * @param target - The name of the section to find.\n *\n * @returns a tuple of the schema and the section or a tuple of `false` and `false` if not found.\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function findSection(\n  schema: FormKitSchemaDefinition,\n  target: string\n):\n  | [false, false]\n  | [\n      FormKitSchemaNode[] | FormKitSchemaCondition | false | undefined,\n      FormKitSchemaCondition\n    ] {\n  return (\n    eachSection(\n      schema,\n      (section, sectionCondition, parent) => {\n        if (section.meta?.section === target) {\n          return [parent, sectionCondition]\n        }\n        return\n      },\n      true\n    ) ?? [false, false]\n  )\n}\n\n/**\n * Runs a callback over every section in a schema. if stopOnCallbackReturn is true\n * and the callback returns a value, the iteration will stop and return that value.\n *\n * @param schema - A {@link @formkit/core#FormKitSchemaNode | FormKitSchemaNode} array.\n * @param callback - A callback to run on every section.\n * @param stopOnCallbackReturn - If true, the loop will stop if the callback returns a value.\n * @param schemaParent - The parent of the current schema node.\n *\n * @returns\n *\n * @public\n */\nexport function eachSection<T>(\n  schema: FormKitSchemaDefinition,\n  callback: (\n    section: FormKitSchemaComponent | FormKitSchemaDOMNode,\n    sectionConditional: FormKitSchemaCondition,\n    sectionParent: FormKitSchemaNode[] | FormKitSchemaCondition | undefined\n  ) => T,\n  stopOnCallbackReturn = false,\n  schemaParent?: FormKitSchemaNode[] | FormKitSchemaCondition\n): T | void {\n  if (Array.isArray(schema)) {\n    for (const node of schema) {\n      const callbackReturn = eachSection(\n        node,\n        callback,\n        stopOnCallbackReturn,\n        schema\n      )\n      if (callbackReturn && stopOnCallbackReturn) {\n        return callbackReturn\n      }\n    }\n    return\n  }\n  if (isSection(schema)) {\n    const callbackReturn = callback(schema.else, schema, schemaParent)\n    if (callbackReturn && stopOnCallbackReturn) {\n      return callbackReturn\n    }\n    return eachSection(schema.else, callback, stopOnCallbackReturn, schema)\n  } else if ((isComponent(schema) || isDOM(schema)) && schema.children) {\n    return eachSection(\n      schema.children as FormKitSchemaNode,\n      callback,\n      stopOnCallbackReturn\n    )\n  } else if (isConditional(schema)) {\n    let callbackReturn: T | void = undefined\n\n    if (schema.then && typeof schema.then !== 'string') {\n      callbackReturn = eachSection(\n        schema.then,\n        callback,\n        stopOnCallbackReturn,\n        schema\n      )\n    }\n\n    if (!callbackReturn && schema.else && typeof schema.else !== 'string') {\n      callbackReturn = eachSection(\n        schema.else,\n        callback,\n        stopOnCallbackReturn,\n        schema\n      )\n    }\n\n    if (callbackReturn && stopOnCallbackReturn) {\n      return callbackReturn\n    }\n  }\n}\n\n/**\n * Check if a schema node is conditional, has an else clause, and that else\n * clause contains a section in the meta.\n * @param section - A schema node to check.\n * @public\n */\nfunction isSection(\n  section: FormKitSchemaNode\n): section is FormKitSchemaSection {\n  if (\n    isConditional(section) &&\n    typeof section.then === 'string' &&\n    section.else &&\n    typeof section.else !== 'string' &&\n    !Array.isArray(section.else) &&\n    !isConditional(section.else) &&\n    section.else.meta?.section\n  ) {\n    return true\n  }\n  return false\n}\n/**\n * Creates an input schema with all of the wrapping base schema.\n *\n * @param inputSection - Content to store in the input section key location.\n *\n * @returns {@link @formkit/core#FormKitExtendableSchemaRoot | FormKitExtendableSchemaRoot}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function useSchema(\n  inputSection: FormKitSection,\n  sectionsSchema: FormKitSectionsSchema = {}\n): FormKitSchemaExtendableSection {\n  const schema = /* #__PURE__ */ outer(\n    /* #__PURE__ */ wrapper(\n      /* #__PURE__ */ label('$label'),\n      /* #__PURE__ */ inner(/* #__PURE__ */ icon('prefix'), /* #__PURE__ */ prefix(), inputSection(), /* #__PURE__ */ suffix(), /* #__PURE__ */ icon('suffix'))\n    ),\n    /* #__PURE__ */ help('$help'),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  )\n  return (propSectionsSchema: FormKitSectionsSchema = {}) =>\n    schema(extend(sectionsSchema, propSectionsSchema) as FormKitSectionsSchema)\n}\n\n// ========================================================\n\n/**\n * Applies attributes to a given schema section by applying a higher order\n * function that merges a given set of attributes into the node.\n *\n * @param attrs - Attributes to apply to a {@link FormKitSchemaExtendableSection\n * | FormKitSchemaExtendableSection}.\n * @param section - A section to apply attributes to.\n *\n * @returns {@link FormKitSchemaExtendableSection | FormKitSchemaExtendableSection}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function $attrs(\n  attrs: FormKitSchemaAttributes | (() => FormKitSchemaAttributes),\n  section: FormKitSchemaExtendableSection\n): FormKitSchemaExtendableSection {\n  const extendable = (extensions: FormKitSectionsSchema) => {\n    const node = section(extensions)\n    const attributes = typeof attrs === 'function' ? attrs() : attrs\n    if (!isObject(attributes)) return node\n    if (isSlotCondition(node) && isDOM(node.else)) {\n      node.else.attrs = { ...node.else.attrs, ...attributes }\n    } else if (isDOM(node)) {\n      node.attrs = { ...node.attrs, ...attributes }\n    }\n    return node\n  }\n  extendable._s = section._s\n  return extendable\n}\n\n/**\n * Applies a condition to a given schema section.\n *\n * @param condition - A schema condition to apply to a section.\n * @param then - The section that applies if the condition is true.\n * @param otherwise - (else) The section that applies if the condition is false.\n *\n * @returns {@link FormKitSchemaExtendableSection | FormKitSchemaExtendableSection}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function $if(\n  condition: string,\n  then: FormKitSchemaExtendableSection,\n  otherwise?: FormKitSchemaExtendableSection\n): FormKitSchemaExtendableSection {\n  const extendable = (extensions: FormKitSectionsSchema) => {\n    const node = then(extensions)\n    if (\n      otherwise ||\n      (isSchemaObject(node) && 'if' in node) ||\n      isSlotCondition(node)\n    ) {\n      const conditionalNode: FormKitSchemaCondition = {\n        if: condition,\n        then: node,\n      }\n      if (otherwise) {\n        conditionalNode.else = otherwise(extensions)\n      }\n      return conditionalNode\n    } else if (isSlotCondition(node)) {\n      Object.assign(node.else, { if: condition })\n    } else if (isSchemaObject(node)) {\n      Object.assign(node, { if: condition })\n    }\n    return node\n  }\n  extendable._s = token()\n  return extendable\n}\n\n/**\n * Applies a condition to a given schema section.\n *\n * @param varName - The name of the variable that holds the current instance.\n * @param inName - The variable we are iterating over.\n * @param section - A section to repeat.\n *\n * @returns {@link FormKitSchemaExtendableSection | FormKitSchemaExtendableSection}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function $for(\n  varName: string,\n  inName: string,\n  section: FormKitSchemaExtendableSection\n) {\n  return (extensions: FormKitSectionsSchema): FormKitSchemaNode => {\n    const node = section(extensions)\n    if (isSlotCondition(node)) {\n      Object.assign(node.else, { for: [varName, inName] })\n    } else if (isSchemaObject(node)) {\n      Object.assign(node, { for: [varName, inName] })\n    }\n    return node\n  }\n}\n\n/**\n * Extends a schema node with a given set of extensions.\n *\n * @param section - A section to apply an extension to.\n * @param extendWith - A partial schema snippet to apply to the section.\n *\n * @returns {@link FormKitSchemaExtendableSection | FormKitSchemaExtendableSection}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function $extend(\n  section: FormKitSchemaExtendableSection,\n  extendWith: Partial<FormKitSchemaNode>\n): FormKitSchemaExtendableSection {\n  const extendable = (extensions: FormKitSectionsSchema) => {\n    const node = section({})\n    if (isSlotCondition(node)) {\n      if (Array.isArray(node.else)) return node\n      node.else = extendSchema(\n        extendSchema(node.else, extendWith),\n        section._s ? extensions[section._s] : {}\n      )\n      return node\n    }\n    return extendSchema(\n      extendSchema(node, extendWith),\n      section._s ? extensions[section._s] : {}\n    )\n  }\n  extendable._s = section._s\n  return extendable\n}\n\n/**\n * Creates a root schema section.\n *\n * @param section - A section to make a root from.\n *\n * @returns {@link FormKitSchemaExtendableSection | FormKitSchemaExtendableSection}\n *\n * @public\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function $root(\n  section: FormKitSchemaExtendableSection\n): FormKitExtendableSchemaRoot {\n  warn(800, '$root')\n  return createRoot(section)\n}\n\nexport function resetCounts() {\n  resetRadio()\n}\n\nexport * from './features'\nexport * from './sections'\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  wrapper,\n  help,\n  messages,\n  message,\n  icon,\n  prefix,\n  suffix,\n  buttonInput,\n  buttonLabel,\n  localize,\n  ignores,\n} from '../compose'\n\n/**\n * Input definition for a button.\n * @public\n */\nexport const button: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value')),\n    /* #__PURE__ */ wrapper(\n      /* #__PURE__ */ buttonInput(\n        /* #__PURE__ */ icon('prefix'),\n        /* #__PURE__ */ prefix(),\n        /* #__PURE__ */ buttonLabel('$label || $ui.submit.value'),\n        /* #__PURE__ */ suffix(),\n        /* #__PURE__ */ icon('suffix')\n      )\n    ),\n    /* #__PURE__ */ help('$help')\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * The family of inputs this one belongs too. For example \"text\" and \"email\"\n   * are both part of the \"text\" family. This is primary used for styling.\n   */\n  family: 'button',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [localize('submit'), ignores],\n  /**\n   * A key to use for memoizing the schema. This is used to prevent the schema\n   * from needing to be stringified when performing a memo lookup.\n   */\n  schemaMemoKey: 'h6st4epl3j8',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  boxInner,\n  help,\n  boxHelp,\n  messages,\n  message,\n  prefix,\n  suffix,\n  fieldset,\n  decorator,\n  box,\n  icon,\n  legend,\n  boxOption,\n  boxOptions,\n  boxWrapper,\n  boxLabel,\n  options,\n  checkboxes,\n  $if,\n  $extend,\n  defaultIcon,\n} from '../compose'\n\n/**\n * Input definition for a checkbox(ess).\n * @public\n */\nexport const checkbox: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    $if(\n      '$options == undefined',\n      /**\n       * Single checkbox structure.\n       */\n      /* #__PURE__ */ boxWrapper(\n        /* #__PURE__ */ boxInner(/* #__PURE__ */ prefix(), /* #__PURE__ */ box(), /* #__PURE__ */ decorator(/* #__PURE__ */ icon('decorator')), /* #__PURE__ */ suffix()),\n        $extend(/* #__PURE__ */ boxLabel('$label'), {\n          if: '$label',\n        })\n      ),\n      /**\n       * Multi checkbox structure.\n       */\n      /* #__PURE__ */ fieldset(\n        /* #__PURE__ */ legend('$label'),\n        /* #__PURE__ */ help('$help'),\n        /* #__PURE__ */ boxOptions(\n          /* #__PURE__ */ boxOption(\n            /* #__PURE__ */ boxWrapper(\n              /* #__PURE__ */ boxInner(\n                /* #__PURE__ */ prefix(),\n                $extend(/* #__PURE__ */ box(), {\n                  bind: '$option.attrs',\n                  attrs: {\n                    id: '$option.attrs.id',\n                    value: '$option.value',\n                    checked: '$fns.isChecked($option.value)',\n                  },\n                }),\n                /* #__PURE__ */ decorator(/* #__PURE__ */ icon('decorator')),\n                /* #__PURE__ */ suffix()\n              ),\n              $extend(/* #__PURE__ */ boxLabel('$option.label'), {\n                if: '$option.label',\n              })\n            ),\n            /* #__PURE__ */ boxHelp('$option.help')\n          )\n        )\n      )\n    ),\n    // Help text only goes under the input when it is a single.\n    $if('$options == undefined && $help', /* #__PURE__ */ help('$help')),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * The family of inputs this one belongs too. For example \"text\" and \"email\"\n   * are both part of the \"text\" family. This is primary used for styling.\n   */\n  family: 'box',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: ['options', 'onValue', 'offValue', 'optionsLoader'],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [\n    options,\n    checkboxes,\n    defaultIcon('decorator', 'checkboxDecorator'),\n  ],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: 'qje02tb3gu8',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  inner,\n  wrapper,\n  label,\n  help,\n  messages,\n  message,\n  prefix,\n  suffix,\n  icon,\n  fileInput,\n  fileItem,\n  fileList,\n  fileName,\n  fileRemove,\n  noFiles,\n  files,\n  $if,\n  defaultIcon,\n} from '../compose'\n\n/**\n * Input definition for a file input.\n * @public\n */\nexport const file: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    /* #__PURE__ */ wrapper(\n      /* #__PURE__ */ label('$label'),\n      /* #__PURE__ */ inner(\n        /* #__PURE__ */ icon('prefix', 'label'),\n        /* #__PURE__ */ prefix(),\n        /* #__PURE__ */ fileInput(),\n        /* #__PURE__ */ fileList(\n          /* #__PURE__ */ fileItem(\n            /* #__PURE__ */ icon('fileItem'),\n            /* #__PURE__ */ fileName('$file.name'),\n            $if(\n              '$value.length === 1',\n              /* #__PURE__ */ fileRemove(\n                /* #__PURE__ */ icon('fileRemove'),\n                '$ui.remove.value + \" \" + $file.name'\n              )\n            )\n          )\n        ),\n        $if('$value.length > 1', /* #__PURE__ */ fileRemove('$ui.removeAll.value')),\n        /* #__PURE__ */ noFiles(/* #__PURE__ */ icon('noFiles'), '$ui.noFiles.value'),\n        /* #__PURE__ */ suffix(),\n        /* #__PURE__ */ icon('suffix')\n      )\n    ),\n    /* #__PURE__ */ help('$help'),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * The family of inputs this one belongs too. For example \"text\" and \"email\"\n   * are both part of the \"text\" family. This is primary used for styling.\n   */\n  family: 'text',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [\n    files,\n    defaultIcon('fileItem', 'fileItem'),\n    defaultIcon('fileRemove', 'fileRemove'),\n    defaultIcon('noFiles', 'noFiles'),\n  ],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: '9kqc4852fv8',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  formInput,\n  messages,\n  message,\n  actions,\n  submitInput,\n  forms,\n  disablesChildren,\n} from '../compose'\n\n/**\n * Input definition for a form.\n * @public\n */\nexport const form: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ formInput(\n    '$slots.default',\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value')),\n    /* #__PURE__ */ actions(/* #__PURE__ */ submitInput())\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'group',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [\n    'actions',\n    'submit',\n    'submitLabel',\n    'submitAttrs',\n    'submitBehavior',\n    'incompleteMessage',\n  ],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [forms, disablesChildren],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: '5bg016redjo',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport { fragment, disablesChildren, renamesRadios } from '../compose'\n\n/**\n * Input definition for a group.\n * @public\n */\nexport const group: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ fragment('$slots.default'),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'group',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [disablesChildren, renamesRadios],\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport { textInput, casts } from '../compose'\n\n/**\n * Input definition for a hidden input.\n * @public\n */\nexport const hidden: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ textInput(),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [casts],\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport { fragment, disablesChildren, renamesRadios } from '../compose'\n\n/**\n * Input definition for a list.\n * @public\n */\nexport const list: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ fragment('$slots.default'),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'list',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: ['sync', 'dynamic'],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [disablesChildren, renamesRadios],\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport { fragment } from '../compose'\n\n/**\n * Input definition for a meta input.\n * @public\n */\nexport const meta: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ fragment(),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [],\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  boxInner,\n  help,\n  boxHelp,\n  messages,\n  message,\n  prefix,\n  suffix,\n  fieldset,\n  decorator,\n  box,\n  icon,\n  legend,\n  boxOption,\n  boxOptions,\n  boxWrapper,\n  boxLabel,\n  options,\n  radios,\n  $if,\n  $extend,\n  defaultIcon,\n} from '../compose'\n\n/**\n * Input definition for a radio.\n * @public\n */\nexport const radio: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    $if(\n      '$options == undefined',\n      /**\n       * Single radio structure.\n       */\n      /* #__PURE__ */ boxWrapper(\n        /* #__PURE__ */ boxInner(/* #__PURE__ */ prefix(), /* #__PURE__ */ box(), /* #__PURE__ */ decorator(/* #__PURE__ */ icon('decorator')), /* #__PURE__ */ suffix()),\n        $extend(/* #__PURE__ */ boxLabel('$label'), {\n          if: '$label',\n        })\n      ),\n      /**\n       * Multi radio structure.\n       */\n      /* #__PURE__ */ fieldset(\n        /* #__PURE__ */ legend('$label'),\n        /* #__PURE__ */ help('$help'),\n        /* #__PURE__ */ boxOptions(\n          /* #__PURE__ */ boxOption(\n            /* #__PURE__ */ boxWrapper(\n              /* #__PURE__ */ boxInner(\n                /* #__PURE__ */ prefix(),\n                $extend(/* #__PURE__ */ box(), {\n                  bind: '$option.attrs',\n                  attrs: {\n                    id: '$option.attrs.id',\n                    value: '$option.value',\n                    checked: '$fns.isChecked($option.value)',\n                  },\n                }),\n                /* #__PURE__ */ decorator(/* #__PURE__ */ icon('decorator')),\n                /* #__PURE__ */ suffix()\n              ),\n              $extend(/* #__PURE__ */ boxLabel('$option.label'), {\n                if: '$option.label',\n              })\n            ),\n            /* #__PURE__ */ boxHelp('$option.help')\n          )\n        )\n      )\n    ),\n    // Help text only goes under the input when it is a single.\n    $if('$options == undefined && $help', /* #__PURE__ */ help('$help')),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * The family of inputs this one belongs too. For example \"text\" and \"email\"\n   * are both part of the \"text\" family. This is primary used for styling.\n   */\n  family: 'box',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: ['options', 'onValue', 'offValue', 'optionsLoader'],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [options, radios, defaultIcon('decorator', 'radioDecorator')],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: 'qje02tb3gu8',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  inner,\n  wrapper,\n  label,\n  help,\n  messages,\n  message,\n  prefix,\n  suffix,\n  icon,\n  selectInput,\n  option,\n  optionSlot,\n  optGroup,\n  $if,\n  options,\n  selects,\n  defaultIcon,\n} from '../compose'\n\n/**\n * Input definition for a select.\n * @public\n */\nexport const select: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    /* #__PURE__ */ wrapper(\n      /* #__PURE__ */ label('$label'),\n      /* #__PURE__ */ inner(\n        /* #__PURE__ */ icon('prefix'),\n        /* #__PURE__ */ prefix(),\n        /* #__PURE__ */ selectInput(\n          $if(\n            '$slots.default',\n            () => '$slots.default',\n            /* #__PURE__ */ optionSlot(\n              $if(\n                '$option.group',\n                /* #__PURE__ */ optGroup(/* #__PURE__ */ optionSlot(/* #__PURE__ */ option('$option.label'))),\n                /* #__PURE__ */ option('$option.label')\n              )\n            )\n          )\n        ),\n        $if('$attrs.multiple !== undefined', () => '', /* #__PURE__ */ icon('select')),\n        /* #__PURE__ */ suffix(),\n        /* #__PURE__ */ icon('suffix')\n      )\n    ),\n    /* #__PURE__ */ help('$help'),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: ['options', 'placeholder', 'optionsLoader'],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [options, selects, defaultIcon('select', 'select')],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: 'cb119h43krg',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  inner,\n  wrapper,\n  label,\n  help,\n  messages,\n  message,\n  prefix,\n  suffix,\n  icon,\n  textareaInput,\n  initialValue,\n} from '../compose'\n\n/**\n * Input definition for a textarea.\n * @public\n */\nexport const textarea: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    /* #__PURE__ */ wrapper(\n      /* #__PURE__ */ label('$label'),\n      /* #__PURE__ */ inner(\n        /* #__PURE__ */ icon('prefix', 'label'),\n        /* #__PURE__ */ prefix(),\n        /* #__PURE__ */ textareaInput(),\n        /* #__PURE__ */ suffix(),\n        /* #__PURE__ */ icon('suffix')\n      )\n    ),\n    /* #__PURE__ */ help('$help'),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [initialValue],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: 'b1n0td79m9g',\n}\n","import { FormKitTypeDefinition } from '@formkit/core'\nimport {\n  outer,\n  inner,\n  wrapper,\n  label,\n  help,\n  messages,\n  message,\n  icon,\n  prefix,\n  suffix,\n  textInput,\n  casts,\n} from '../compose'\n\n/**\n * Input definition for a text.\n * @public\n */\nexport const text: FormKitTypeDefinition = {\n  /**\n   * The actual schema of the input, or a function that returns the schema.\n   */\n  schema: /* #__PURE__ */ outer(\n    /* #__PURE__ */ wrapper(\n      /* #__PURE__ */ label('$label'),\n      /* #__PURE__ */ inner(\n        /* #__PURE__ */ icon('prefix', 'label'),\n        /* #__PURE__ */ prefix(),\n        /* #__PURE__ */ textInput(),\n        /* #__PURE__ */ suffix(),\n        /* #__PURE__ */ icon('suffix')\n      )\n    ),\n    /* #__PURE__ */ help('$help'),\n    /* #__PURE__ */ messages(/* #__PURE__ */ message('$message.value'))\n  ),\n  /**\n   * The type of node, can be a list, group, or input.\n   */\n  type: 'input',\n  /**\n   * The family of inputs this one belongs too. For example \"text\" and \"email\"\n   * are both part of the \"text\" family. This is primary used for styling.\n   */\n  family: 'text',\n  /**\n   * An array of extra props to accept for this input.\n   */\n  props: [],\n  /**\n   * Additional features that should be added to your input\n   */\n  features: [casts],\n  /**\n   * The key used to memoize the schema.\n   */\n  schemaMemoKey: 'c3cc4kflsg',\n}\n","/**\n * The official FormKit Inputs plugin. This package contains the source code for\n * all native HTML input types. Read the\n * {@link https://formkit.com/essentials/inputs | inputs documentation} for\n * usage instructions.\n *\n * @packageDocumentation\n */\nimport { FormKitLibrary } from '@formkit/core'\n\n/**\n * Export the plugin.\n */\nexport { createLibraryPlugin } from './plugin'\n\n/**\n * Helper function for normalizing options.\n */\nexport { normalizeOptions } from './features/options'\n\n/**\n * createSection() and related utilities.\n */\nexport {\n  FormKitSchemaExtendableSection,\n  FormKitSection,\n  createSection,\n  isSchemaObject,\n  extendSchema,\n} from './createSection'\n\n/**\n * Composable logic.\n */\nexport * from './compose'\n\n/**\n * Prop types.\n */\nexport * from './props'\n\n/**\n * A single file object in FormKit’s synthetic \"FileList\".\n *\n * @public\n */\nexport interface FormKitFile {\n  name: string\n  file?: File\n}\n\n/**\n * A synthetic array-based \"FileList\".\n *\n * @public\n */\nexport type FormKitFileValue = FormKitFile[]\n\n/**\n * Export again as group.\n */\nimport { button } from './inputs/button'\nimport { button as submit } from './inputs/button'\nimport { checkbox } from './inputs/checkbox'\nimport { file } from './inputs/file'\nimport { form } from './inputs/form'\nimport { group } from './inputs/group'\nimport { hidden } from './inputs/hidden'\nimport { list } from './inputs/list'\nimport { meta } from './inputs/meta'\nimport { radio } from './inputs/radio'\nimport { select } from './inputs/select'\nimport { textarea } from './inputs/textarea'\nimport { text } from './inputs/text'\nimport { text as color } from './inputs/text'\nimport { text as date } from './inputs/text'\nimport { text as datetimeLocal } from './inputs/text'\nimport { text as email } from './inputs/text'\nimport { text as month } from './inputs/text'\nimport { text as number } from './inputs/text'\nimport { text as password } from './inputs/text'\nimport { text as search } from './inputs/text'\nimport { text as tel } from './inputs/text'\nimport { text as time } from './inputs/text'\nimport { text as url } from './inputs/text'\nimport { text as week } from './inputs/text'\nimport { text as range } from './inputs/text'\n\nexport {\n  button,\n  submit,\n  checkbox,\n  file,\n  form,\n  group,\n  hidden,\n  list,\n  meta,\n  radio,\n  select,\n  textarea,\n  text,\n  color,\n  date,\n  datetimeLocal,\n  email,\n  month,\n  number,\n  password,\n  search,\n  tel,\n  time,\n  url,\n  week,\n  range,\n}\n\nexport const inputs: FormKitLibrary = {\n  button,\n  submit,\n  checkbox,\n  file,\n  form,\n  group,\n  hidden,\n  list,\n  meta,\n  radio,\n  select,\n  textarea,\n  text,\n  color,\n  date,\n  datetimeLocal,\n  email,\n  month,\n  number,\n  password,\n  search,\n  tel,\n  time,\n  url,\n  week,\n  range,\n}\n"]}