{"version":3,"sources":["../src/exportInput.ts","../src/utils.ts","../src/themeNormalize.ts","../src/theme.ts","../src/createApp.ts","../src/createTheme.ts","../src/skill.ts","../src/index.ts"],"names":["prompts","abs","__dirname","error","resolve","readFile","writeFile","existsSync","theme","themeFromList","editMode","createHash","token","ora","parseUrl","variables","open","http","mkdir","slugify","dirname","cwd","execa","access","__filename","fileURLToPath","FORMKIT_VERSION","chalk"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,eAAsB,WAAA,CACpB,WAAA,EACA,OAAA,GAA8C,EAAC,EAChC;AACf,EAAA,MAAM,KAAA,GAAQ,MAAM,YAAA,CAAa,WAAW,CAAA;AAC5C,EAAA,MAAM,IAAA,GAAO,MAAM,WAAA,CAAY,OAAA,CAAQ,IAAI,CAAA;AAC3C,EAAA,MAAM,UAAA,GAAa,MAAM,gBAAA,CAAiB,KAAA,EAAO,IAAI,CAAA;AACrD,EAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,UAAA,EAAY,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,WAAA,EAAa,WAAW,IAAI,MAAM,gBAAA,CAAiB,QAAQ,GAAG,CAAA;AACrE,EAAA,MAAM,QAAA,GAAW,MAAM,SAAA,CAAU,WAAW,CAAA;AAE5C,EAAA,IAAI,QAAA,KAAa,KAAA;AACf,IAAA,OAAO,KAAA,CAAM,CAAA,EAAG,WAAW,CAAA,6BAAA,CAA+B,CAAA;AAC5D,EAAA,IAAI,CAAC,QAAA,EAAU;AACf,EAAA,MAAM,UAAU,OAAA,CAAQ,WAAA,EAAa,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AACvD,EAAA,IAAI,CAAC,UAAA,CAAW,OAAO,CAAA,EAAG;AACxB,IAAA,MAAM,SAAA,CAAU,SAAS,UAAU,CAAA;AAAA,EACrC,CAAA,MAAO;AACL,IAAA,OAAO,MAAM,wDAAwD,CAAA;AAAA,EACvE;AACA,EAAA,KAAA,CAAM,qBAAqB,WAAW,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AACzD,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA;AAAA;AAAA,WAAA,EAED,KAAK,CAAA,SAAA,EAAY,WAAW,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAI1C,KAAK;AAAA;AAAA;AAAA,EAAA,CAGV,CAAA;AACH;AAOA,eAAe,UAAU,GAAA,EAAsC;AAC7D,EAAA,IAAI,CAAC,UAAA,CAAW,GAAG,CAAA,EAAG;AACpB,IAAA,MAAM,QAAQ,GAAA,GAAM,GAAA,CAAI,QAAQ,OAAA,CAAQ,GAAA,IAAO,EAAE,CAAA;AACjD,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAMA,QAAA,CAAQ;AAAA,MAChC,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS,IAAA;AAAA,MACT,OAAA,EAAS,oCAAoC,KAAK,CAAA,4BAAA;AAAA,KACnD,CAAA;AACD,IAAA,IAAI,CAAC,OAAA,EAAS,OAAO,IAAA,CAAK,gDAAgD,CAAA;AAC1E,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,CAAM,GAAA,EAAK,EAAE,SAAA,EAAW,MAAM,CAAA;AAAA,IACtC,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAG,CAAA,CAAA,CAAG,CAAA;AAAA,IACnD;AAAA,EACF;AACA,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,CAAO,GAAA,EAAK,SAAA,CAAU,IAAI,CAAA;AAChC,IAAA,OAAO,IAAA;AAAA,EACT,SAAS,GAAA,EAAK;AACZ,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAOA,eAAe,iBACb,GAAA,EACmC;AACnC,EAAA,IAAI,GAAA,IAAO,UAAA,CAAW,GAAG,CAAA,EAAG;AAC1B,IAAA,OAAO,CAAC,GAAA,EAAK,QAAA,CAAS,QAAQ,GAAA,EAAI,EAAG,GAAG,CAAC,CAAA;AAAA,EAC3C,WAAW,GAAA,EAAK;AACd,IAAA,MAAMC,IAAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,GAAG,CAAA;AACtC,IAAA,OAAO,CAACA,IAAAA,EAAK,QAAA,CAAS,QAAQ,GAAA,EAAI,EAAGA,IAAG,CAAC,CAAA;AAAA,EAC3C;AACA,EAAA,MAAM,GAAA,GAAM,MAAMD,QAAA,CAAQ;AAAA,IACxB,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,KAAA;AAAA,IACN,OAAA,EACE,4EAAA;AAAA,IACF,SAAS,QAAA;AAAS,GACnB,CAAA,CAAE,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,GAAG,CAAA;AACxB,EAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,GAAG,CAAA;AACtC,EAAA,OAAO,CAAC,KAAK,GAAG,CAAA;AAClB;AAEA,SAAS,QAAA,GAAW;AAClB,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,KAAK,CAAA;AAC3C,EAAA,IAAI,UAAA,CAAW,MAAM,CAAA,EAAG;AACtB,IAAA,OAAO,cAAA;AAAA,EACT;AACA,EAAA,OAAO,UAAA;AACT;AAOA,SAAS,eAAA,CAAgB,YAAoB,IAAA,EAA8B;AACzE,EAAA,IAAI,UAAA,EAAY;AAEd,IAAA,UAAA,GAAa,UAAA,CAAW,OAAA;AAAA,MACtB,mDAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,UAAU,KAAA,EAAM;AACtB,IAAA,UAAA,GAAa,UAAA,CAAW,OAAA;AAAA,MACtB,4CAAA;AAAA,MACA,KAAK,OAAO,CAAA,EAAA;AAAA,KACd;AAEA,IAAA,UAAA,GAAa,UAAA,CAAW,OAAA;AAAA,MACtB,uBAAA;AAAA,MACA,CAAA;AAAA;AAAA;AAAA;AAAA,kBAAA,EAIc,IAAI,CAAA,EAAA;AAAA,KACpB;AAAA,EACF,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,+DAA+D,CAAA;AAAA,EACvE;AACA,EAAA,OAAO,UAAA;AACT;AAOA,eAAe,YAAY,IAAA,EAAgC;AACzD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,cAAc,SAAA,EAAU;AAC9B,IAAA,IAAA,GAAO,MAAMA,QAAA,CAAQ;AAAA,MACnB,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,+BAAA;AAAA,MACT,OAAA,EAAS;AAAA,QACP,WAAA,KAAgB,IAAA,GACZ,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA,EAAK,GACnC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA,EAAK;AAAA,QACvC,WAAA,KAAgB,IAAA,GACZ,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA,EAAK,GACnC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA;AAAK;AACzC,KACD,CAAA,CAAE,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,IAAI,CAAA;AACzB,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,KAAA,CAAM,gCAAgC,CAAA;AAAA,IACxC;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAOA,eAAe,aAAa,SAAA,EAA6C;AACvE,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,GAAA,GAAM,MAAMA,QAAA,CAAQ;AAAA,MACxB,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,OAAA,EAAS,mCAAA;AAAA,MACT,SAAS,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,QACvC,KAAA,EAAO,CAAA;AAAA,QACP,KAAA,EAAO;AAAA,OACT,CAAE;AAAA,KACH,CAAA;AACD,IAAA,SAAA,GAAY,GAAA,CAAI,SAAA;AAAA,EAClB;AACA,EAAA,IAAI,CAAC,SAAA,IAAa,EAAE,SAAA,IAAa,MAAA,CAAA,EAAS;AACxC,IAAA,KAAA;AAAA,MACE,kBAAkB,SAAS,CAAA,wDAAA;AAAA,KAC7B;AAAA,EACF;AACA,EAAA,OAAO,SAAA;AACT;AAQA,eAAe,gBAAA,CACb,MACA,IAAA,EACyB;AACzB,EAAA,IAAA,GAAO,CAAC,IAAA,GAAO,SAAA,EAAU,GAAI,IAAA;AAC7B,EAAA,MAAM,SAAA,GAAY,OAAA;AAAA,IAChBE,WAAA;AAAA,IACA,CAAA,0BAAA,EAA6B,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA;AAAA,GAC3C;AACA,EAAA,IAAI,QAAA,GAAW,IAAA;AACf,EAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,IAAA,QAAA,GAAW,MAAM,QAAA,CAAS,SAAA,EAAW,EAAE,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC3D,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,CAAA,iBAAA,EAAoB,SAAS,CAAA,CAAE,CAAA;AACvC,IAAA,MAAM,SAAS,CAAA,6CAAA,EAAgD,eAAe,CAAA,cAAA,EAAiB,IAAI,IAAI,IAAI,CAAA,CAAA;AAC3G,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA;AAClC,MAAA,QAAA,GAAW,GAAA,CAAI,IAAA;AAAA,IACjB,SAAS,CAAA,EAAQ;AACf,MAAA,IAAI,CAAA,IAAK,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ;AAC5B,QAAA,KAAA,CAAM,GAAG,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA,kBAAA,EAAqB,SAAS,CAAA,CAAE,CAAA;AAAA,MAC5D,CAAA,MAAO;AACL,QAAA,KAAA;AAAA,UACE;AAAA,SACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,IAAA,CAAK,uCAAuC,CAAA;AAAA,EAC9C;AAEA,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,KAAA,CAAM,CAAA,sBAAA,EAAyB,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAAA,EAC/C,CAAA,MAAO;AACL,IAAA,OAAO,QAAA;AAAA,EACT;AACF;AAKA,SAAS,SAAA,GAAY;AACnB,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,eAAe,CAAA;AACvD,EAAA,OAAO,UAAA,CAAW,QAAQ,CAAA,GAAI,IAAA,GAAO,IAAA;AACvC;AC7OA,eAAsB,WAAW,IAAA,EAAc;AAC7C,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAU,MAAM,OAAA,CAAQ,IAAI,CAAA;AAClC,IAAA,OAAO,QAAQ,MAAA,KAAW,CAAA;AAAA,EAC5B,SAASC,MAAAA,EAAO;AACd,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,eAAsB,gBAAgB,GAAA,EAAa;AACjD,EAAA,MAAM,eAAA,GAAkBC,SAAAA,CAAQ,GAAA,EAAK,CAAA,cAAA,CAAgB,CAAA;AACrD,EAAA,MAAM,GAAA,GAAM,MAAMC,QAAAA,CAAS,eAAA,EAAiB,OAAO,CAAA;AACnD,EAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AACvB;AAEA,eAAsB,gBAAA,CAAiB,KAAa,IAAA,EAAW;AAC7D,EAAA,MAAM,eAAA,GAAkBD,SAAAA,CAAQ,GAAA,EAAK,CAAA,cAAA,CAAgB,CAAA;AACrD,EAAA,MAAME,UAAU,eAAA,EAAiB,IAAA,CAAK,UAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAC,CAAA;AAChE;AAEA,IAAM,SAAA,GAAY,UAAU,IAAI,CAAA;AAGzB,IAAM,aAAa,YAAY;AACpC,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI,MAAM,UAAU,4BAA4B,CAAA;AACrE,EAAA,OAAO,KAAK,IAAA,EAAK;AACnB,CAAA;ACjCO,SAAS,uBAAA,CAAwB,WAAmB,IAAA,EAAsB;AAC/E,EAAA,IAAI,SAAA,KAAc,WAAA,IAAe,SAAA,KAAc,eAAA,EAAiB;AAC9D,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,aAAa,IAAA,CAAK,OAAA;AAAA,IACtB,2CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO,UAAA,KAAe,IAAA,GAClB,IAAA,GACA,4BAAA,CAA6B,UAAU,CAAA;AAC7C;AAEA,SAAS,6BAA6B,IAAA,EAAsB;AAC1D,EAAA,MAAM,QAAA,GAAW,gBAAgB,IAAI,CAAA;AACrC,EAAA,MAAM,sBAAsB,IAAA,CAAK,OAAA;AAAA,IAC/B,iBAAiB,QAAQ,CAAA,CAAA;AAAA,IACzB;AAAA,GACF;AACA,EAAA,MAAM,WAAA,GAAc,WAAW,QAAQ,CAAA,CACpC,OAAO,mBAAmB,CAAA,CAC1B,OAAO,KAAK,CAAA;AACf,EAAA,OAAO,IAAA,CAAK,OAAA;AAAA,IACV,iBAAiB,QAAQ,CAAA,CAAA;AAAA,IACzB,iBAAiB,WAAW,CAAA;AAAA,GAC9B;AACF;AAEA,SAAS,gBAAgB,KAAA,EAAuB;AAC9C,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA;AACjD,EAAA,IAAI,kBAAkB,EAAA,EAAI;AACxB,IAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,EAC1D;AACA,EAAA,OAAO,KAAA,CAAM,UAAU,aAAA,GAAgB,EAAA,EAAI,MAAM,OAAA,CAAQ,IAAA,EAAM,aAAa,CAAC,CAAA;AAC/E;;;ACNA,IAAM,iBAAA,GAAoB,gCAAA;AAC1B,IAAM,oBAAA,GAAuB,4BAAA;AAC7B,IAAM,gBAAA,GAAmB,sBAAA;AAEzB,IAAI,iBAAA,GAAqC,IAAA;AACzC,IAAI,SAAqC,EAAC;AAM1C,eAAe,qBAAA,GAA+C;AAC5D,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAUF,SAAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,cAAc,CAAA;AACrD,IAAA,IAAI,CAACG,UAAAA,CAAW,OAAO,CAAA,EAAG,OAAO,IAAA;AACjC,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,MAAMF,QAAAA,CAAS,OAAA,EAAS,OAAO,CAAC,CAAA;AACvD,IAAA,MAAM,OAAO,EAAE,GAAG,IAAI,YAAA,EAAc,GAAG,IAAI,eAAA,EAAgB;AAC3D,IAAA,MAAM,SAAA,GAAY,KAAK,aAAa,CAAA;AACpC,IAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AAEvB,IAAA,IAAI,YAAA,CAAa,IAAA,CAAK,SAAS,CAAA,EAAG;AAChC,MAAA,OAAO,CAAA;AAAA,IACT;AAEA,IAAA,OAAO,CAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAMA,SAAS,8BAAA,CACP,WACA,SAAA,EACQ;AAER,EAAA,IAAI,cAAc,CAAA,EAAG;AACnB,IAAA,OAAO,GAAG,SAAS,CAAA,IAAA,CAAA;AAAA,EACrB;AAEA,EAAA,OAAO,SAAA;AACT;AAKA,SAAS,WAAW,SAAA,EAA4B;AAC9C,EAAA,OAAO,SAAA,CAAU,SAAS,MAAM,CAAA;AAClC;AAEA,eAAe,WAAA,GAAc;AAC3B,EAAA,iBAAA,GAAoB,MAAM,KAAA,CAAM,CAAA,EAAG,iBAAiB,CAAA,OAAA,CAAS,CAAA;AAC7D,EAAA,IAAI,CAAC,kBAAkB,EAAA,EAAI;AACzB,IAAA,KAAA;AAAA,MACE,CAAA,4BAAA,EAA+B,iBAAiB,CAAA,SAAA,EAAY,iBAAA,CAAkB,MAAM,CAAA,mDAAA;AAAA,KACtF;AAAA,EACF;AACA,EAAA,MAAM,IAAA,GAAO,MAAM,iBAAA,CAAkB,IAAA,EAAK;AAC1C,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,IAAA,KAAA;AAAA,MACE,CAAA,8EAAA,EAAiF,KAAK,SAAA,CAAU,IAAI,EAAE,KAAA,CAAM,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,KACrH;AAAA,EACF;AACA,EAAA,MAAA,GAAS,IAAA;AACX;AAEA,eAAsB,UAAA,CAAW,OAAA,GAAsC,EAAC,EAAG;AACzE,EAAA,IAAI,CAAC,MAAA,CAAO,MAAA,EAAQ,MAAM,WAAA,EAAY;AAGtC,EAAA,MAAM,iBAAA,GAAoB,MAAM,qBAAA,EAAsB;AACtD,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,IAAA,CAAK,CAAA,uBAAA,EAA0B,iBAAiB,CAAA,gBAAA,CAAkB,CAAA;AAAA,EACpE,CAAA,MAAO;AACL,IAAA,IAAA,CAAK,2DAA2D,CAAA;AAAA,EAClE;AAEA,EAAA,IAAI,SAAA,GAAY,QAAQ,KAAA,IAAS,EAAA;AAGjC,EAAA,IAAI,QAAQ,KAAA,IAAS,CAAC,UAAA,CAAW,OAAA,CAAQ,KAAK,CAAA,EAAG;AAE/C,IAAA,SAAA,GAAY,8BAAA,CAA+B,OAAA,CAAQ,KAAA,EAAO,iBAAiB,CAAA;AAC3E,IAAA,IAAI,SAAA,KAAc,QAAQ,KAAA,EAAO;AAC/B,MAAA,IAAA,CAAK,CAAA,MAAA,EAAS,SAAS,CAAA,eAAA,EAAkB,iBAAiB,CAAA,cAAA,CAAgB,CAAA;AAAA,IAC5E;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,QAAQ,KAAA,EAAO;AAClB,IAAA,MAAM,cAAA,GAAiB,MAAM,mBAAA,EAAoB;AAEjD,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,MAAM,CAAC,IAAA,EAAM,IAAI,CAAA,GAAI,cAAA;AACrB,MAAA,IAAI;AACF,QAAA,MAAM,CAAC,QAAA,EAAU,SAAA,EAAWG,MAAK,CAAA,GAAI,iBAAiB,IAAI,CAAA;AAG1D,QAAA,MAAMC,iBAAgB,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,SAASD,MAAK,CAAA;AAE9D,QAAA,IAAIC,cAAAA,EAAe;AACjB,UAAA,MAAM,EAAE,QAAA,EAAAC,SAAAA,EAAS,GAAI,MAAMV,QAAAA,CAAQ;AAAA,YACjC,IAAA,EAAM,SAAA;AAAA,YACN,OAAA,EAAS,8BAA8BQ,MAAK,CAAA,kBAAA,CAAA;AAAA,YAC5C,IAAA,EAAM,UAAA;AAAA,YACN,OAAA,EAAS;AAAA,WACV,CAAA;AACD,UAAA,IAAIE,SAAAA,EAAU;AACZ,YAAA,OAAO,MAAM,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,WAAWF,MAAK,CAAA;AAAA,UAC/D;AAAA,QACF,WAAW,cAAA,EAAgB;AACzB,UAAA,GAAA;AAAA,YACE;AAAA,WACF;AACA,UAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAMR,QAAAA,CAAQ;AAAA,YAChC,IAAA,EAAM,SAAA;AAAA,YACN,OAAA,EAAS,oCAAA;AAAA,YACT,IAAA,EAAM,SAAA;AAAA,YACN,OAAA,EAAS;AAAA,WACV,CAAA;AAED,UAAA,IAAI,CAAC,OAAA,EAAS;AACZ,YAAA,OAAO,MAAM,WAAW,CAAA;AAAA,UAC1B;AAAA,QACF;AAAA,MACF,SAAS,GAAA,EAAK;AACZ,QAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AACjB,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,CAAA,oGAAA;AAAA,SACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,UAAA,GAAa,OAAO,MAAA,CAAO,CAAC,MAAW,CAAC,UAAA,CAAW,CAAA,CAAE,IAAI,CAAC,CAAA;AAChE,IAAA,MAAM,EAAE,KAAA,EAAAQ,MAAAA,EAAM,GAAI,MAAMR,QAAAA,CAAQ;AAAA,MAC9B,IAAA,EAAM,QAAA;AAAA,MACN,SAAS,CAAA,cAAA,EAAiB,iBAAA,GAAoB,CAAA,gBAAA,EAAmB,iBAAiB,MAAM,EAAE,CAAA,CAAA;AAAA,MAC1F,IAAA,EAAM,OAAA;AAAA,MACN,OAAA,EAAS,UAAA,CAAW,GAAA,CAAI,CAACQ,MAAAA,MAAgB;AAAA,QACvC,OAAOA,MAAAA,CAAM,IAAA;AAAA,QACb,OAAOA,MAAAA,CAAM,IAAA;AAAA,QACb,WAAA,EACEA,MAAAA,CAAM,WAAA,IACLA,MAAAA,CAAM,QAAA,GAAW,QAAQ,EAAA,CAAA,IACzBA,MAAAA,CAAM,SAAA,GAAY,IAAA,GAAO,EAAA,CAAA,GAC1B;AAAA,OACJ,CAAE;AAAA,KACH,CAAA;AAED,IAAA,SAAA,GAAY,8BAAA,CAA+BA,QAAO,iBAAiB,CAAA;AACnE,IAAA,IAAI,cAAcA,MAAAA,EAAO;AACvB,MAAA,IAAA,CAAK,CAAA,MAAA,EAAS,SAAS,CAAA,eAAA,EAAkB,iBAAiB,CAAA,cAAA,CAAgB,CAAA;AAAA,IAC5E;AAAA,EACF;AACA,EAAA,IAAI,CAAC,SAAA,EAAW,KAAA,CAAM,sDAAsD,CAAA;AAC5E,EAAA,KAAA,CAAM,CAAA,SAAA,EAAY,SAAS,CAAA,GAAA,CAAK,CAAA;AAEhC,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAU,WAAA,EAAY;AAE7C,EAAA,IAAI,KAAA,GAAQ,IAAA;AAEZ,EAAA,MAAM,gBAAgB,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,SAAS,SAAS,CAAA;AAGlE,EAAA,MAAM,aAAA,GAAgB,iBAAA,CAAkB,SAAS,CAAA,IAAK,SAAA;AACtD,EAAA,MAAM,cAAA,GAAiBD,UAAAA,CAAWH,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,aAAa,CAAC,CAAA,GACnE,MAAMC,QAAAA,CAAS,SAAA,EAAW,OAAO,CAAA,GACjC,IAAA;AAEJ,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,IAAA,CAAK,wCAAwC,CAAA;AAC7C,IAAA,KAAA,GAAQ,MAAM,QAAA;AAAA,MACZ,SAAA;AAAA,MACA,iBAAA;AAAA,MACA,QAAQ,SAAA,IAAa,EAAA;AAAA,MACrB,MAAA,KAAW,IAAA;AAAA,MACX,QAAQ,QAAA,IAAY;AAAA,KACtB;AAAA,EACF,WAAW,cAAA,EAAgB;AACzB,IAAA,IAAA,CAAK,wBAAwB,CAAA;AAC7B,IAAA,KAAA,GAAQ,MAAM,QAAA;AAAA,MACZ,MAAM,WAAW,SAAS,CAAA;AAAA,MAC1B,OAAA,CAAQ,SAAA;AAAA,MACR,MAAA,KAAW,IAAA;AAAA,MACX,OAAA,CAAQ,QAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF,CAAA,MAAO;AAGL,IAAA,IAAA,CAAK,wCAAwC,CAAA;AAC7C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,OAAA,EAAS,aAAA,EAAc,GAAI,MAAM,OAAO,SAAA,CAAA;AAChD,MAAA,KAAA,GAAQ,MAAM,QAAA;AAAA,QACZ,aAAA;AAAA,QACA,OAAA,CAAQ,SAAA;AAAA,QACR,MAAA,KAAW,IAAA;AAAA,QACX,OAAA,CAAQ,QAAA;AAAA,QACR;AAAA,OACF;AACA,MAAA,KAAA,CAAM,CAAA,uCAAA,EAA0C,SAAS,CAAA,CAAE,CAAA;AAAA,IAC7D,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AAAA,IACnB;AAAA,EACF;AAEA,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,MAAM,UACJ,OAAA,CAAQ,OAAA,IAAW,gBAAA,IAAoB,OAAA,CAAQ,WAAW,KAAA,GAAQ,MAAA,CAAA;AACpE,IAAA,MAAMC,UAAUF,SAAAA,CAAQ,OAAA,CAAQ,KAAI,EAAG,OAAO,GAAG,KAAK,CAAA;AACtD,IAAA,KAAA,CAAM,CAAA,sBAAA,EAAyB,OAAO,CAAA,CAAE,CAAA;AAAA,EAC1C,CAAA,MAAO;AACL,IAAA,GAAA,CAAI,CAAA,sBAAA,EAAyB,KAAK,CAAA,CAAE,CAAA;AAAA,EACtC;AACF;AAEA,eAAe,SAAA,CACb,IAAA,EACA,IAAA,EACA,QAAA,EACA,WACA,KAAA,EACA;AACA,EAAA,MAAM,sBAAsB,IAAA,CAAK,OAAA;AAAA,IAC/B,iBAAiB,QAAQ,CAAA,CAAA;AAAA,IACzB;AAAA,GACF;AACA,EAAA,MAAM,WAAA,GAAcO,WAAW,QAAQ,CAAA,CACpC,OAAO,mBAAmB,CAAA,CAC1B,OAAO,KAAK,CAAA;AACf,EAAA,IAAI,gBAAgB,QAAA,EAAU;AAC5B,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAMX,QAAAA,CAAQ;AAAA,MAChC,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EACE,8IAAA;AAAA,MACF,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACV,CAAA;AAED,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,MAAM,WAAW,CAAA;AAAA,IAC1B;AAAA,EACF;AACA,EAAA,MAAM,QAAA,CAAS,KAAA,EAAO,SAAA,EAAW,IAAI,CAAA;AACvC;AAMA,eAAe,QAAQ,GAAA,EAA8B;AACnD,EAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,sBAAA,EAAwB;AAAA,IAC9C,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA,EAAmB;AAAA,IAC9C,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,EAAE,KAAK;AAAA,GAC7B,CAAA;AACD,EAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,IAAA,EAAK;AAC5B,EAAA,OAAO,IAAA,CAAK,GAAA;AACd;AAEA,eAAe,QAAA,CACb,KAAA,EACA,SAAA,EACA,QAAA,EACe;AACf,EAAA,MAAM,QAAQY,KAAAA,EAAM;AACpB,EAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ;AAAA,IACzB,SAAA,EAAW,CAAC,IAAA,EAAM,IAAI,CAAA;AAAA,IACtB,IAAA,EAAM;AAAA,GACP,CAAA;AACD,EAAA,MAAM,GAAA,GAAM,CAAA,EAAG,oBAAoB,CAAA,eAAA,EAAkB,KAAK,cAAc,SAAS,CAAA,GAAA,EAAM,KAAK,CAAA,GAAA,EAAM,IAAI,CAAA,CAAA;AACtG,EAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAG,CAAA;AAClC,EAAA,IAAA,CAAK,CAAA,0BAAA,EAA6B,QAAQ,CAAA,CAAE,CAAA;AAC5C,EAAA,MAAM,OAAA,GAAUC,IAAA,CAAI,CAAA,qBAAA,CAAuB,CAAA,CAAE,KAAA,EAAM;AACnD,EAAA,MAAM,KAAK,GAAG,CAAA;AACd,EAAA,IAAI,gBAAA;AACJ,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI,qBAAA,GAAwB,KAAA;AAC5B,EAAA,IAAI,OAAA,GAAU,CAAA;AACd,EAAA,MAAM,IAAI,OAAA,CAAc,CAACT,QAAAA,KAAY;AACnC,IAAA,MAAA,GAAS,IAAA,CACN,YAAA,CAAa,OAAO,GAAA,EAAK,GAAA,KAAQ;AAChC,MAAA,MAAM,MAAA,GAASU,KAAA,CAAS,GAAA,CAAI,GAAA,EAAM,IAAI,CAAA;AACtC,MAAA,MAAM,OAAO,MAAA,CAAO,QAAA;AACpB,MAAA,MAAMN,MAAAA,GAAQ,OAAO,KAAA,CAAM,KAAA;AAC3B,MAAA,MAAMO,UAAAA,GAAY,OAAO,KAAA,CAAM,SAAA;AAC/B,MAAA,MAAM,OAAA,GAA0B;AAAA,QAC9B,MAAA,EAAQ,QAAA;AAAA,QACR,OAAA,EAAS;AAAA,OACX;AACA,MAAA,IAAI,IAAA,KAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI;AACxB,QAAA,YAAA,CAAa,gBAAgB,CAAA;AAC7B,QAAA,OAAA,CAAQ,MAAA,GAAS,SAAA;AACjB,QAAA,IAAIP,MAAAA,IAAS,OAAOO,UAAAA,KAAc,WAAA,EAAa;AAC7C,UAAA,OAAA,CAAQ,OAAA,GAAU,SAAA;AAClB,UAAA,MAAM,YAAY,MAAM,QAAA;AAAA,YACtBP,MAAAA;AAAA,YACA,iBAAA;AAAA,YACAO,UAAAA;AAAA,YACA,QAAA,CAAS,SAAS,KAAK,CAAA;AAAA,YACvB,KAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAMT,SAAAA,CAAU,UAAU,SAAS,CAAA;AACnC,UAAA,OAAA,CAAQ,IAAA,GAAO,CAAA,iBAAA,CAAA;AACf,UAAA,OAAA,GAAU,KAAK,GAAA,EAAI;AAAA,QACrB,CAAA,MAAO;AACL,UAAA,OAAA,CAAQ,OAAA,GAAU,WAAA;AAClB,UAAA,IAAI,IAAA,CAAK,GAAA,EAAI,GAAI,OAAA,GAAU,GAAA,EAAM;AAC/B,YAAA,OAAA,CAAQ,IAAA,GAAO,CAAA,WAAA,EAAc,OAAA,GAAU,OAAA,GAAU,EAAE,CAAA,WAAA,CAAA;AAAA,UACrD;AACA,UAAA,gBAAA,GAAmB,WAAW,MAAM;AAClC,YAAA,qBAAA,GAAwB,IAAA;AACxB,YAAAF,QAAAA,EAAQ;AAAA,UACV,GAAG,GAAI,CAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,GAAA,CAAI,SAAA,CAAU,OAAA,CAAQ,MAAA,KAAW,SAAA,GAAY,MAAM,GAAA,EAAK;AAAA,QACtD,cAAA,EAAgB,kBAAA;AAAA,QAChB,6BAAA,EAA+B,GAAA;AAAA,QAC/B,IAAA,EAAM;AAAA,OACP,CAAA;AACD,MAAA,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IACjC,CAAC,CAAA,CACA,MAAA,CAAO,IAAI,CAAA;AAAA,EAChB,CAAC,CAAA;AACD,EAAA,MAAA,EAAQ,KAAA,EAAM;AACd,EAAA,OAAA,CAAQ,IAAA,EAAK;AACb,EAAA,IAAI,qBAAA,EAAuB;AACzB,IAAA,IAAA,CAAK,oDAAoD,CAAA;AACzD,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AACF;AAEA,SAAS,WAAA,GAAc;AACrB,EAAA,OAAOG,UAAAA,CAAWH,UAAQ,OAAA,CAAQ,GAAA,IAAO,eAAe,CAAC,IAAI,IAAA,GAAO,KAAA;AACtE;AAEA,eAAsB,QAAA,CACpB,KAAA,EACA,SAAA,EACA,IAAA,EACA,UACA,SAAA,EACiB;AACjB,EAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,IAAA,MAAM,IAAA,GAAO,eAAe,SAAS,CAAA;AACrC,IAAA,SAAA,GAAY,MAAM,IAAA,CAAK,IAAA;AACvB,IAAA,KAAA,GAAQ,MAAM,IAAI,CAAA;AAAA,EACpB;AACA,EAAA,IAAI,CAAC,SAAA,EAAW,KAAA,CAAM,iCAAiC,CAAA;AACvD,EAAA,IAAA,CAAK,CAAA,cAAA,EAAiB,SAAS,CAAA,CAAE,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,MAAM,QAAA,EAAS;AAC/B,EAAA,IAAI,QAAA,EAAU,OAAO,MAAM,sBAAA,CAAuB,OAAO,CAAA;AACzD,EAAA,MAAM,YAAkD,EAAC;AACzD,EAAA,MAAM,UAAgD,EAAC;AAEvD,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,KAAA,MAAW,OAAA,IAAW,OAAA,CAAQ,KAAK,CAAA,EAAG;AACpC,MAAA,MAAM,GAAA,GAAM,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAChC,MAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,KAAK,CAAA,CAAE,OAAO,CAAA,CAC1C,KAAA,CAAM,GAAG,CAAA,CACT,MAAA,CAAO,CAAC,GAAA,EAAK,GAAA,KAAQ;AACpB,QAAA,GAAA,CAAI,GAAG,CAAA,GAAI,IAAA;AACX,QAAA,OAAO,GAAA;AAAA,MACT,CAAA,EAAG,EAA0B,CAAA;AAC/B,MAAA,IAAI,UAAU,WAAA,EAAa;AACzB,QAAA,OAAA,CAAQ,OAAO,CAAA,GAAI,cAAA;AAAA,MACrB,CAAA,MAAO;AACL,QAAA,SAAA,CAAU,GAAG,CAAA,GAAI,cAAA;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,SAAA,GAAY,CAAA,EAChB,IAAA,GAAO,sDAAA,GAAyD,EAClE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAA,EAMiB,SAAS;AAAA,aAAA,EACb,OAAA,CAAQ,SAAS,CAAC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAAA,EAkBU,IAAA,GAAO,UAAA,GAAa,EAAE,CAAA,MAAA,EAC7D,IAAA,GAAO,kBAAkB,EAC3B,CAAA,CAAA,EAAI,IAAA,GAAO,2BAAA,GAA8B,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,iCAAA,EAkBzC,IAAA,GAAO,eAAA,GAAkB,EAC3B,CAAA,gBAAA,EACE,IAAA,GAAO,8BAA8B,EACvC,CAAA,CAAA,EAAI,IAAA,GAAO,2BAAA,GAA8B,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,gCAAA,EAkBX,IAAA,GAAO,UAAA,GAAa,EAAE,CAAA,OAAA,EACpD,IAAA,GAAO,aAAa,EACtB,CAAA,CAAA,EAAI,IAAA,GAAO,WAAA,GAAc,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAYzB,IAAA,GAAO,8CAA8C,EACvD,CAAA,GAAA,EAAM,KAAK,SAAA,CAAU,SAAA,EAAW,IAAA,EAAM,CAAC,CAAC,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAOtC,IAAA,GAAO,8CAA8C,EACvD,CAAA,GAAA,EAAM,KAAK,SAAA,CAAU,OAAA,EAAS,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,CAAA;AAGtC,EAAA,OAAO,iBAAiB,SAAS,CAAA;AACnC;AAEA,SAAS,iBAAiB,SAAA,EAA2B;AACnD,EAAA,MAAM,eAAA,GAAkB,SAAA,CAAU,OAAA,CAAQ,mBAAA,EAAqB,aAAa,CAAA;AAC5E,EAAA,MAAM,QAAA,GAAWO,WAAW,QAAQ,CAAA,CAAE,OAAO,eAAe,CAAA,CAAE,OAAO,KAAK,CAAA;AAC1E,EAAA,OAAO,eAAA,CAAgB,OAAA,CAAQ,aAAA,EAAe,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAE,CAAA;AACzE;AAEA,SAAS,gCAAgC,SAAA,EAA2B;AAClE,EAAA,IACE,CAAC,SAAA,CAAU,QAAA,CAAS,oDAAoD,CAAA;AAAA;AAAA,EAGxE,CAAC,UAAU,QAAA,CAAS,kDAAkD,KACtE,SAAA,CAAU,QAAA,CAAS,6BAA6B,CAAA,EAChD;AACA,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,QAAA,CAAS,6BAA6B,CAAA;AAC7D,EAAA,MAAM,MAAA,GAAS,CAAA,iCAAA,EACb,IAAA,GAAO,eAAA,GAAkB,EAC3B,CAAA,gBAAA,EACE,IAAA,GAAO,2BAAA,GAA8B,EACvC,CAAA,CAAA,EAAI,IAAA,GAAO,2BAAA,GAA8B,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,gCAAA,EAkBX,IAAA,GAAO,UAAA,GAAa,EAAE,CAAA,OAAA,EACpD,IAAA,GAAO,aAAa,EACtB,CAAA,CAAA,EAAI,IAAA,GAAO,WAAA,GAAc,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAO3B,EAAA,MAAM,cAAc,SAAA,CACjB,OAAA;AAAA,IACC,oDAAA;AAAA,IACA;AAAA,GACF,CACC,OAAA;AAAA,IACC,kDAAA;AAAA,IACA;AAAA,EAAK,MAAM;AAAA;AAAA,yCAAA;AAAA,GACb;AACF,EAAA,OAAO,iBAAiB,WAAW,CAAA;AACrC;AAEA,SAAS,eAAe,SAAA,EAA4C;AAClE,EAAA,IAAI,CAAC,SAAA,EAAW,OAAO,EAAC;AACxB,EAAA,OAAO,UAAU,KAAA,CAAM,GAAG,EAAE,MAAA,CAAO,CAAC,MAAM,QAAA,KAAa;AACrD,IAAA,MAAM,CAAC,GAAA,EAAK,KAAK,CAAA,GAAI,QAAA,CAAS,MAAM,GAAG,CAAA;AACvC,IAAA,IAAA,CAAK,GAAG,CAAA,GAAI,KAAA;AACZ,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,EAAG,EAA4B,CAAA;AACjC;AAEA,SAAS,kBAAkB,QAAA,EAAsC;AAC/D,EAAA,MAAM,UAAA,GAAa,CAAC,KAAA,EAAO,KAAA,EAAO,QAAQ,MAAM,CAAA;AAChD,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,GAAA,CAAI,CAAC,GAAA,KAAQP,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,QAAA,GAAW,GAAG,CAAC,CAAA;AAC5E,EAAA,OAAO,QAAQ,KAAK,CAAA;AACtB;AAEA,SAAS,QAAQ,KAAA,EAAqC;AACpD,EAAA,MAAM,IAAA,GAAO,MAAM,KAAA,EAAM;AACzB,EAAA,IAAIG,UAAAA,CAAW,IAAK,CAAA,EAAG,OAAO,IAAA;AAC9B,EAAA,OAAO,KAAA,CAAM,MAAA,GAAS,OAAA,CAAQ,KAAK,CAAA,GAAI,MAAA;AACzC;AAEA,eAAe,mBAAA,GAA6D;AAC1E,EAAA,MAAM,IAAA,GAAO,kBAAkB,eAAe,CAAA;AAC9C,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,MAAM,IAAA,GAAO,MAAMF,QAAAA,CAAS,IAAA,EAAM,OAAO,CAAA;AACzC,IAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,EACpB;AACA,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,WACb,SAAA,EACsC;AACtC,EAAA,MAAM,UAAA,GAAa,CAAC,KAAA,EAAO,KAAA,EAAO,QAAQ,MAAM,CAAA;AAChD,EAAA,MAAM,KAAA,GAAQ,iBAAiB,IAAA,CAAK,SAAS,IACzC,CAACD,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,SAAS,CAAC,CAAA,GAClC,UAAA,CAAW,GAAA,CAAI,CAAC,GAAA,KAAQA,SAAAA,CAAQ,QAAQ,GAAA,EAAI,EAAG,SAAA,GAAY,GAAG,CAAC,CAAA;AACnE,EAAA,MAAM,IAAA,GAAO,QAAQ,KAAK,CAAA;AAC1B,EAAA,IAAI,CAAC,IAAA,EAAM,KAAA,CAAM,CAAA,eAAA,EAAkB,SAAS,CAAA,CAAA,CAAG,CAAA;AAE/C,EAAA,MAAM,OAAO,UAAA,CAAW,MAAA,CAAA,IAAA,CAAY,KAAK,EAAE,cAAA,EAAgB,MAAM,CAAA;AACjE,EAAA,MAAM,QAAS,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,EAAM,EAAE,CAAA;AAGzC,EAAA,MAAM,aAAA,GAAgB,OAAO,KAAA,KAAU,UAAA,GAAa,QAAQ,KAAA,CAAM,OAAA;AAClE,EAAA,IAAI,CAAC,aAAA,EAAe,KAAA,CAAM,qBAAqB,CAAA;AAC/C,EAAA,OAAO,aAAA;AACT;AAEO,SAAS,iBACd,KAAA,EACkC;AAClC,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA;AACjD,EAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA;AACnD,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA;AAC3C,EAAA,IAAI,aAAA,KAAkB,EAAA,IAAM,cAAA,KAAmB,EAAA,IAAM,eAAe,EAAA,EAAI;AACtE,IAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,EAC1D;AACA,EAAA,MAAM,WAAW,KAAA,CAAM,SAAA;AAAA,IACrB,aAAA,GAAgB,EAAA;AAAA,IAChB,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,aAAa;AAAA,GACnC;AACA,EAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AAAA,IACtB,cAAA,GAAiB,EAAA;AAAA,IACjB,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,cAAc;AAAA,GACpC;AACA,EAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AAAA,IACtB,UAAA,GAAa,CAAA;AAAA,IACb,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,UAAU;AAAA,GAChC;AACA,EAAA,OAAO,CAAC,QAAA,EAAU,SAAA,EAAW,SAAS,CAAA;AACxC;AAEA,eAAe,SACb,SAAA,EACA,QAAA,EACA,SAAA,EACA,IAAA,EACA,UACA,OAAA,EACiB;AACjB,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,IAAA,GAAO,eAAe,SAAS,CAAA,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA,IAAA,CAAK,CAAA,mBAAA,EAAsB,SAAS,CAAA,CAAE,CAAA;AAAA,EACxC;AACA,EAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAA,SAAA,CAAA,EAAa;AAAA,IAC9C,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA,EAAmB;AAAA,IAC9C,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,MACnB,KAAA,EAAO,SAAA;AAAA,MACP,SAAA;AAAA,MACA,EAAA,EAAI,OAAO,IAAI,CAAA;AAAA,MACf,QAAA,EAAU,OAAO,QAAQ;AAAA,KAC1B;AAAA,GACF,CAAA;AACD,EAAA,IAAI,IAAI,EAAA,EAAI;AACV,IAAA,MAAM,OAAO,uBAAA,CAAwB,SAAA,EAAW,MAAM,GAAA,CAAI,MAAM,CAAA;AAChE,IAAA,OAAO,QAAA,GAAW,IAAA,GAAO,+BAAA,CAAgC,IAAI,CAAA;AAAA,EAC/D,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAA,CAAI,UAAU,CAAA,CAAE,CAAA;AAAA,EACtD;AACF;;;AC/oBA,IAAM,OAAA,GAAU,yBAAA;AAOhB,eAAe,KAAA,GAAyB;AACtC,EAAA,MAAM,UAAUS,IAAAA,CAAI,CAAA,gBAAA,EAAmB,OAAO,CAAA,UAAA,CAAY,EAAE,KAAA,EAAM;AAClE,EAAA,MAAMG,IAAAA,CAAK,CAAA,EAAG,OAAO,CAAA,UAAA,CAAY,CAAA;AACjC,EAAA,IAAI,MAAA;AACJ,EAAA,MAAMJ,SAAQ,MAAM,IAAI,OAAA,CAAgB,CAACR,UAAS,MAAA,KAAW;AAC3D,IAAA,MAAA,GAASa,IAAAA,CACN,YAAA,CAAa,CAAC,GAAA,EAAK,GAAA,KAAQ;AAC1B,MAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAA,CAAI,KAAe,kBAAkB,CAAA;AAC5D,MAAA,MAAML,MAAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,OAAO,CAAA,IAAK,MAAA;AAElD,MAAA,IAAIA,MAAAA,EAAO;AACT,QAAAR,SAAQQ,MAAK,CAAA;AACb,QAAA,GAAA,CAAI,UAAU,GAAA,EAAK;AAAA,UACjB,QAAA,EAAU,GAAG,OAAO,CAAA,uBAAA;AAAA,SACrB,CAAA;AACD,QAAA,GAAA,CAAI,GAAA,EAAI;AAAA,MACV,CAAA,MAAO;AACL,QAAA,GAAA,CAAI,UAAU,GAAA,EAAK;AAAA,UACjB,QAAA,EAAU,GAAG,OAAO,CAAA,wBAAA;AAAA,SACrB,CAAA;AACD,QAAA,MAAA,CAAO,eAAe,CAAA;AAAA,MACxB;AAAA,IACF,CAAC,CAAA,CACA,MAAA,CAAO,IAAI,CAAA;AAAA,EAChB,CAAC,CAAA;AACD,EAAA,MAAA,EAAQ,KAAA,EAAM;AACd,EAAA,OAAA,CAAQ,IAAA,EAAK;AACb,EAAA,OAAOA,MAAAA;AACT;AAEA,eAAe,WAAWA,MAAAA,EAAe;AACvC,EAAA,MAAM,GAAA,GAAM,MAAMZ,QAAAA,CAAQ;AAAA,IACxB,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,+BAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AACD,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,UAAA,CAAA,EAAc;AAAA,IACnD,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS;AAAA,MACP,aAAA,EAAe,UAAUY,MAAK,CAAA,CAAA;AAAA,MAC9B,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,MACnB,MAAM,GAAA,CAAI;AAAA,KACX;AAAA,GACF,CAAA;AACD,EAAA,OAAO,MAAM,SAAS,IAAA,EAAK;AAC7B;AAEA,eAAe,aAAA,CAAcA,QAAe,IAAA,EAAc;AACxD,EAAA,MAAM,GAAA,GAAM,MAAMZ,QAAAA,CAAQ;AAAA,IACxB,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,kCAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AACD,EAAA,MAAM,WAAW,MAAM,KAAA,CAAM,GAAG,OAAO,CAAA,WAAA,EAAc,IAAI,CAAA,SAAA,CAAA,EAAa;AAAA,IACpE,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS;AAAA,MACP,aAAA,EAAe,UAAUY,MAAK,CAAA,CAAA;AAAA,MAC9B,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,MACnB,MAAM,GAAA,CAAI,IAAA;AAAA,MACV,OAAA,EAAS;AAAA,KACV;AAAA,GACF,CAAA;AACD,EAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,IAAA,KAAA,CAAM,2BAA2B,CAAA;AAAA,EACnC;AACA,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,EAAA,IAAI,KAAK,IAAA,EAAM;AACb,IAAA,IAAA;AAAA,MACE,+GAA+G,OAAO,CAAA;AAAA,KACxH;AAAA,EACF;AACA,EAAA,OAAO,IAAA,CAAK,IAAA;AACd;AAEA,eAAe,gBAAA,GAAmB;AAChC,EAAA,IAAI;AACF,IAAA,MAAMA,MAAAA,GAAS,MAAM,KAAA,EAAM;AAC3B,IAAA,MAAM,OAAA,GAAUC,IAAAA,CAAI,qBAAqB,CAAA,CAAE,KAAA,EAAM;AACjD,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,YAAA,CAAA,EAAgB;AAAA,MACrD,OAAA,EAAS;AAAA,QACP,aAAA,EAAe,UAAUD,MAAK,CAAA,CAAA;AAAA,QAC9B,cAAA,EAAgB,kBAAA;AAAA,QAChB,MAAA,EAAQ;AAAA;AACV,KACD,CAAA;AACD,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,IAAA,OAAA,CAAQ,IAAA,EAAK;AAEb,IAAA,MAAM,GAAA,GAAM,MAAMZ,QAAAA,CAAQ;AAAA,MACxB,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,gBAAA;AAAA,MACT,OAAA,EAAS,KAAK,KAAA,CACX,GAAA;AAAA,QACC,CAAC,IAAA,MAIM;AAAA,UACL,OAAO,IAAA,CAAK,IAAA;AAAA,UACZ,KAAA,EAAO;AAAA,SACT;AAAA,OACF,CACC,OAAO,CAAC,EAAE,OAAO,mBAAA,EAAqB,KAAA,EAAO,KAAA,EAAO,CAAC;AAAA,KACzD,CAAA;AAED,IAAA,IAAI,GAAA,CAAI,SAAS,KAAA,EAAO;AACtB,MAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAWY,MAAK,CAAA;AACnC,MAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAcA,MAAAA,EAAO,KAAK,EAAE,CAAA;AAClD,MAAA,OAAO,OAAA,CAAQ,OAAA;AAAA,IACjB,CAAA,MAAO;AACL,MAAA,IAAI,EAAE,OAAA,EAAQ,GAAI,MAAMZ,QAAAA,CAAQ;AAAA,QAC9B,IAAA,EAAM,QAAA;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,OAAA,EAAS,mBAAA;AAAA,QACT,SAAS,GAAA,CAAI,IAAA,CAAK,QAAA,CACf,GAAA,CAAI,CAAC,IAAA,MAAwC;AAAA,UAC5C,OAAO,IAAA,CAAK,IAAA;AAAA,UACZ,KAAA,EAAO;AAAA,SACT,CAAE,CAAA,CACD,MAAA,CAAO,CAAC,EAAE,OAAO,sBAAA,EAAwB,KAAA,EAAO,KAAA,EAAO,CAAC;AAAA,OAC5D,CAAA;AAED,MAAA,IAAI,YAAY,KAAA,EAAO;AACrB,QAAA,OAAA,GAAU,MAAM,aAAA,CAAcY,MAAAA,EAAO,GAAA,CAAI,KAAK,EAAE,CAAA;AAAA,MAClD;AACA,MAAA,OAAO,OAAA,CAAQ,OAAA;AAAA,IACjB;AAAA,EACF,SAAS,GAAA,EAAK;AACZ,IAAA,OAAA,CAAQ,IAAI,GAAG,CAAA;AACf,IAAA,KAAA,CAAM,eAAe,CAAA;AAAA,EACvB;AACA,EAAA,OAAO,MAAA;AACT;AAEA,eAAsB,SAAA,CACpB,OAAA,EACA,OAAA,GAAqC,EAAC,EACvB;AACf,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,GAAA,GAAM,MAAMZ,QAAAA,CAAQ;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,gDAAA;AAAA,MACT,OAAA,EAAS;AAAA,KACV,CAAA;AACD,IAAA,OAAA,GAAU,GAAA,CAAI,IAAA;AAAA,EAChB;AAEA,EAAA,MAAM,OAAA,GAAU,MAAM,UAAA,CAAWI,OAAAA,CAAQ,KAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAC,CAAA;AAC/D,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,KAAA,CAAM,yDAAyD,CAAA;AAAA,EACjE;AAEA,EAAA,IAAI,CAAC,QAAQ,SAAA,EAAW;AACtB,IAAA,MAAM,GAAA,GAAM,MAAMJ,QAAAA,CAAQ;AAAA,MACxB,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,OAAA,EAAS,uCAAA;AAAA,MACT,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,QAC/B,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA;AAAO,OACjC;AAAA,MACA,OAAA,EAAS;AAAA,KACV,CAAA;AACD,IAAA,OAAA,CAAQ,YAAY,GAAA,CAAI,SAAA;AAAA,EAC1B;AAEA,EAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,IAAQ,OAAA,CAAQ,cAAc,MAAA,EAAQ;AACjD,IAAA,MAAM,GAAA,GAAM,MAAMA,QAAAA,CAAQ;AAAA,MACxB,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,+BAAA;AAAA,MACT,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA,EAAK;AAAA,QACnC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA;AAAK,OACrC;AAAA,MACA,OAAA,EAAS;AAAA,KACV,CAAA;AACD,IAAA,OAAA,CAAQ,OAAO,GAAA,CAAI,IAAA;AAAA,EACrB;AAEA,EAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAChB,IAAA,MAAM,GAAA,GAAM,MAAMA,QAAAA,CAAQ;AAAA,MACxB;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,IAAA,EAAM,aAAA;AAAA,QACN,OAAA,EAAS,wCAAA;AAAA,QACT,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,IAAA;AAAA,QACT,QAAA,EAAU;AAAA;AACZ,KACD,CAAA;AACD,IAAA,IAAI,IAAI,WAAA,EAAa;AACnB,MAAA,OAAA,CAAQ,GAAA,GAAM,MAAM,gBAAA,EAAiB;AAAA,IACvC;AAAA,EACF;AAEA,EAAA,IAAI,OAAA,CAAQ,cAAc,MAAA,EAAQ;AAChC,IAAA,MAAM,MAAM,KAAA,EAAO;AAAA,MACjB,OAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,CAAA,GAAA,EAAM,OAAA,CAAQ,IAAA,KAAS,IAAA,GAAO,QAAQ,EAAE,CAAA;AAAA,KACzC,CAAA;AACD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,cAAA,EAAgB,QAAQ,CAAA;AACrD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,iBAAA,EAAmB,QAAQ,CAAA;AACxD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,eAAA,EAAiB,QAAQ,CAAA;AACtD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,gBAAA,EAAkB,QAAQ,CAAA;AACvD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,aAAA,EAAe,QAAQ,CAAA;AACpD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,mBAAA,EAAqB,QAAQ,CAAA;AAC1D,IAAA,IAAI,QAAQ,GAAA,EAAK;AACf,MAAA,MAAM,aAAA,CAAc,SAAS,cAAc,CAAA;AAAA,IAC7C;AACA,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,OAAA,CAAQ,IAAA,KAAS,IAAI,CAAA;AAClD,IAAA,MAAM,eAAA,CAAgB,OAAA,EAAS,OAAA,CAAQ,IAAA,KAAS,IAAI,CAAA;AACpD,IAAA,MAAM,aAAA;AAAA,MACJ,OAAA;AAAA,MACA,aAAA;AAAA,MACA,CAAC,CAAC,OAAA,CAAQ,GAAA;AAAA,MACV,QAAQ,IAAA,KAAS;AAAA,KACnB;AACA,IAAA,MAAMM,SAAAA;AAAA,MACJF,OAAAA;AAAA,QACE,GAAA,EAAI;AAAA,QACJ,KAAK,OAAO,CAAA,gBAAA,EAAmB,OAAA,CAAQ,IAAA,GAAO,OAAO,KAAK,CAAA;AAAA,OAC5D;AAAA,MACA,mBAAmB,OAA2B;AAAA,KAChD;AACA,IAAA,MAAME,SAAAA;AAAA,MACJF,OAAAA,CAAQ,KAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,UAAA,EAAa,OAAA,CAAQ,IAAI,CAAA,CAAE,CAAA;AAAA,MACtD,SAAA,CAAU,OAAA,CAAQ,IAAA,KAAS,IAAI;AAAA,KACjC;AAEA,IAAA,KAAA,CAAM,WAAW,OAAO,CAAA;;AAAA;AAAA,YAAA,EAGd,OAAO;AAAA;AAAA;AAAA,IAAA,CAGhB,CAAA;AAAA,EACH,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,IAAA,GAAO,IAAA;AACf,IAAA,IAAA,CAAK,sBAAsB,CAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,YAAA;AAAA,MACjB,4CAA4C,OAAO,CAAA,CAAA,CAAA;AAAA,MACnD;AAAA,QACE,GAAA,EAAK,QAAQ,GAAA,EAAI;AAAA,QACjB,KAAA,EAAO,IAAA;AAAA,QACP,KAAA,EAAO;AAAA;AACT,KACF;AACA,IAAA,UAAA,CAAW,MAAA,EAAQ,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA;AACtC,IAAA,UAAA,CAAW,MAAA,EAAQ,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA;AACtC,IAAA,MAAM,UAAA;AACN,IAAA,MAAME,SAAAA;AAAA,MACJF,OAAAA,CAAQ,GAAA,EAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,kBAAA,CAAoB,CAAA;AAAA,MAC/C,mBAAmB,OAA2B;AAAA,KAChD;AACA,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,eAAA,EAAiB,QAAQ,CAAA;AACtD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,gBAAA,EAAkB,QAAQ,CAAA;AACvD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,eAAA,EAAiB,QAAQ,CAAA;AACtD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,cAAA,EAAgB,QAAQ,CAAA;AACrD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,iBAAA,EAAmB,QAAQ,CAAA;AACxD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,aAAA,EAAe,QAAQ,CAAA;AACpD,IAAA,MAAM,aAAA,CAAc,OAAA,EAAS,mBAAA,EAAqB,QAAQ,CAAA;AAC1D,IAAA,IAAI,QAAQ,GAAA,EAAK;AACf,MAAA,MAAM,aAAA,CAAc,SAAS,cAAc,CAAA;AAAA,IAC7C;AACA,IAAA,MAAM,aAAA,CAAc,SAAS,IAAI,CAAA;AACjC,IAAA,MAAM,gBAAgB,OAAO,CAAA;AAC7B,IAAA,MAAM,aAAA;AAAA,MACJ,OAAA;AAAA,MACA,aAAA;AAAA,MACA,CAAC,CAAC,OAAA,CAAQ,GAAA;AAAA,MACV,QAAQ,IAAA,KAAS;AAAA,KACnB;AAAA,EACF;AAEA,EAAA,OAAA,CAAQ,IAAA,EAAK;AACf;AAEA,eAAe,aAAA,CACb,OAAA,EACA,SAAA,EACA,GAAA,EACA,EAAA,EACA;AACA,EAAA,MAAM,OAAA,GAAUA,QAAQ,GAAA,EAAI,EAAG,KAAK,OAAO,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAA;AAE1D,EAAA,MAAMc,MAAM,OAAA,CAAQ,OAAO,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACjD,EAAA,MAAMZ,SAAAA;AAAA,IACJ,OAAA;AAAA,IACA,CAAA,aAAA,EAAgB,EAAA,GAAK,YAAA,GAAe,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EA2CjC,GAAA,IACC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAA,CAAA,IAcF,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWJ;AACF;AAOA,eAAe,aAAA,CACb,OAAA,EACA,UAAA,EACA,OAAA,GAAU,QAAA,EACV;AACA,EAAA,MAAM,WAAA,GAAc,MAAM,eAAA,CAAgB,OAAO,CAAA;AACjD,EAAA,IAAI,EAAE,kBAAkB,WAAA,CAAA,EAAc;AACpC,IAAA,WAAA,CAAY,eAAe,EAAC;AAAA,EAC9B;AACA,EAAA,WAAA,CAAY,YAAA,CAAa,UAAU,CAAA,GAAI,OAAA;AACvC,EAAA,MAAM,gBAAA,CAAiB,SAAS,WAAW,CAAA;AAC7C;AAEA,eAAe,aAAA,CAAc,SAAiB,EAAA,EAAa;AACzD,EAAA,OAAA,CAAQ,MAAMF,OAAAA,CAAQ,GAAA,IAAO,CAAA,EAAA,EAAK,OAAO,EAAE,CAAC,CAAA;AAC5C,EAAA,MAAM,UAAA,CAAW;AAAA,IACf,KAAA,EAAO,WAAA;AAAA,IACP,MAAA,EAAQ,KAAK,IAAA,GAAO;AAAA,GACrB,CAAA;AACD,EAAA,OAAA,CAAQ,KAAA,CAAMA,OAAAA,CAAQ,GAAA,EAAI,EAAG,KAAK,CAAC,CAAA;AACrC;AAMA,eAAe,eAAA,CAAgB,SAAiB,EAAA,EAAa;AAC3D,EAAA,MAAM,cAAcA,OAAAA,CAAQ,GAAA,EAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAGjD,EAAA,MAAM,MAAA,GAASA,OAAAA,CAAQ,WAAA,EAAa,YAAY,CAAA;AAChD,EAAA,MAAMc,KAAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,EAAA,MAAMZ,SAAAA;AAAA,IACJF,OAAAA,CAAQ,QAAQ,UAAU,CAAA;AAAA,IAC1B,CAAA;AAAA,6BAAA,EAC2B,EAAA,GAAK,OAAO,KAAK,CAAA;AAAA,8BAAA,EAChB,EAAA,GAAK,OAAO,KAAK,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,GAM/C;AAGA,EAAA,MAAM,iBAAiBA,OAAAA,CAAQ,WAAA,EAAa,eAAe,EAAA,GAAK,IAAA,GAAO,IAAI,CAAA,CAAE,CAAA;AAC7E,EAAA,IAAI,MAAA,GAAS,MAAMC,QAAAA,CAAS,cAAA,EAAgB,OAAO,CAAA;AAGnD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACzC,IAAA,MAAA,GAAS,CAAA;AAAA,EAAgD,MAAM,CAAA,CAAA;AAAA,EACjE;AAGA,EAAA,MAAA,GAAS,MAAA,CAAO,OAAA;AAAA,IACd,yBAAA;AAAA,IACA,CAAC,QAAQ,OAAA,KAAY;AACnB,MAAA,MAAM,eAAA,GAAkB,QAAQ,IAAA,EAAK;AACrC,MAAA,IAAI,eAAA,EAAiB;AACnB,QAAA,OAAO,aAAa,eAAe,CAAA,gBAAA,CAAA;AAAA,MACrC;AACA,MAAA,OAAO,CAAA,wBAAA,CAAA;AAAA,IACT;AAAA,GACF;AAEA,EAAA,MAAMC,SAAAA,CAAU,gBAAgB,MAAM,CAAA;AACxC;AAEA,SAAS,UAAU,EAAA,EAAa;AAC9B,EAAA,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,2CAAA,EAOoC,EAAA,GAAK,4CAA4C,EAAE,CAAA;AAAA;AAAA,CAAA;AAGhG;AAMA,eAAe,gBAAgB,OAAA,EAAiB;AAC9C,EAAA,MAAM,cAAcF,OAAAA,CAAQ,GAAA,EAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAGjD,EAAA,MAAM,MAAA,GAASA,OAAAA,CAAQ,WAAA,EAAa,gBAAgB,CAAA;AACpD,EAAA,MAAMc,KAAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,EAAA,MAAMZ,SAAAA;AAAA,IACJF,OAAAA,CAAQ,QAAQ,UAAU,CAAA;AAAA,IAC1B,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,GAQF;AAGA,EAAA,MAAM,cAAA,GAAiBA,OAAAA,CAAQ,WAAA,EAAa,gBAAgB,CAAA;AAC5D,EAAA,IAAI,MAAA,GAAS,MAAMC,QAAAA,CAAS,cAAA,EAAgB,OAAO,CAAA;AAGnD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACzC,IAAA,MAAA,GAAS,CAAA;;AAAA,EAAmD,MAAM,CAAA,CAAA;AAAA,EACpE;AAIA,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,CAAM,0CAA0C,CAAA;AAE3E,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,IAAI,aAAA,GAAgB,YAAY,CAAC,CAAA;AAGjC,IAAA,IAAI,aAAA,CAAc,QAAA,CAAS,UAAU,CAAA,EAAG;AAEtC,MAAA,aAAA,GAAgB,aAAA,CAAc,OAAA;AAAA,QAC5B,yBAAA;AAAA,QACA,CAAC,QAAQ,OAAA,KAAY;AACnB,UAAA,MAAM,eAAA,GAAkB,QAAQ,IAAA,EAAK;AACrC,UAAA,IAAI,eAAA,EAAiB;AACnB,YAAA,OAAO,CAAA;AAAA;AAAA,IAAA,EAAyC,eAAe;AAAA,GAAA,CAAA;AAAA,UACjE;AACA,UAAA,OAAO,CAAA;AAAA;AAAA,GAAA,CAAA;AAAA,QACT;AAAA,OACF;AAAA,IACF,CAAA,MAAO;AAEL,MAAA,aAAA,GAAgB,kBAAkB,aAAA,EAAe,CAAA;AAAA;AAAA,GAAA,CAAuC,CAAA;AAAA,IAC1F;AAGA,IAAA,IAAI,CAAC,aAAA,CAAc,QAAA,CAAS,MAAM,CAAA,EAAG;AACnC,MAAA,aAAA,GAAgB,iBAAA,CAAkB,eAAe,CAAA,kCAAA,CAAoC,CAAA;AAAA,IACvF;AAGA,IAAA,IAAI,aAAA,CAAc,QAAA,CAAS,OAAO,CAAA,EAAG;AAEnC,MAAA,aAAA,GAAgB,aAAA,CAAc,OAAA;AAAA,QAC5B,qBAAA;AAAA,QACA,CAAC,OAAO,WAAA,KAAgB;AACtB,UAAA,IAAI,WAAA,CAAY,QAAA,CAAS,UAAU,CAAA,EAAG;AAEpC,YAAA,OAAO,KAAA,CAAM,OAAA;AAAA,cACX,yBAAA;AAAA,cACA,CAAC,eAAe,OAAA,KAAY;AAC1B,gBAAA,MAAM,eAAA,GAAkB,QAAQ,IAAA,EAAK;AACrC,gBAAA,IAAI,eAAA,EAAiB;AACnB,kBAAA,OAAO,CAAA;AAAA;AAAA,MAAA,EAA2C,eAAe;AAAA,KAAA,CAAA;AAAA,gBACnE;AACA,gBAAA,OAAO,CAAA;AAAA;AAAA,KAAA,CAAA;AAAA,cACT;AAAA,aACF;AAAA,UACF,CAAA,MAAO;AAEL,YAAA,OAAO,CAAA;AAAA;AAAA;AAAA,MAAA,EAAwD,WAAW,CAAA,CAAA,CAAA;AAAA,UAC5E;AAAA,QACF;AAAA,OACF;AAAA,IACF,CAAA,MAAO;AAEL,MAAA,aAAA,GAAgB,kBAAkB,aAAA,EAAe,CAAA;AAAA;AAAA;AAAA;AAAA,GAAA,CAA4D,CAAA;AAAA,IAC/G;AAGA,IAAA,MAAA,GAAS,MAAA,CAAO,OAAA;AAAA,MACd,wCAAA;AAAA,MACA,qBAAqB,aAAa,CAAA,EAAA;AAAA,KACpC;AAAA,EACF;AAEA,EAAA,MAAMC,SAAAA,CAAU,gBAAgB,MAAM,CAAA;AACxC;AAKA,SAAS,iBAAA,CAAkB,eAAuB,QAAA,EAA0B;AAE1E,EAAA,MAAM,OAAA,GAAU,cAAc,IAAA,EAAK;AACnC,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO;AAAA,EAAA,EAAO,QAAQ,CAAA;AAAA,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,aAAA,CAAc,UAAA,CAAW,IAAI,CAAA,EAAG;AAClC,IAAA,OAAO;AAAA,EAAA,EAAO,QAAQ,IAAI,aAAa,CAAA,CAAA;AAAA,EACzC;AACA,EAAA,OAAO;AAAA,EAAA,EAAO,QAAQ,CAAA;AAAA,EAAM,aAAa,CAAA,CAAA;AAC3C;AAOA,SAAS,mBAAmB,OAAA,EAAmC;AAC7D,EAAA,MAAM,OAAA,GAAU,CAAC,+CAA+C,CAAA;AAChE,EAAA,OAAA,CAAQ,KAAK,+CAA+C,CAAA;AAC5D,EAAA,IAAI,OAAA,CAAQ,IAAA,KAAS,IAAA,IAAQ,OAAA,CAAQ,cAAc,MAAA,EAAQ;AACzD,IAAA,OAAA,CAAQ,KAAK,qDAAqD,CAAA;AAAA,EACpE,WAAW,OAAA,CAAQ,IAAA,KAAS,IAAA,IAAQ,OAAA,CAAQ,cAAc,MAAA,EAAQ;AAChE,IAAA,OAAA,CAAQ,KAAK,oDAAoD,CAAA;AAAA,EACnE;AACA,EAAA,MAAM,QAAQ,EAAC;AACf,EAAA,IAAI,MAAA,GAAS,EAAA;AACb,EAAA,IAAI,QAAQ,GAAA,EAAK;AACf,IAAA,OAAA,CAAQ,KAAK,wDAAwD,CAAA;AACrE,IAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AACb,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,6BAAA,EAAgC,OAAA,CAAQ,GAAG,CAAA,UAAA,CAAY,CAAA;AAClE,IAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AACb,IAAA,MAAA,IAAU,CAAA,gBAAA,CAAA;AAAA,EACZ;AACA,EAAA,MAAA,IAAU,CAAA,EAAG,MAAA,GAAS,KAAA,GAAQ,EAAE,CAAA,4BAAA,CAAA;AAChC,EAAA,MAAA,IAAU,CAAA,EAAG,MAAA,GAAS,KAAA,GAAQ,EAAE,CAAA,yBAAA,CAAA;AAEhC,EAAA,MAAM,aAAa,CAAA,YAAA,EACjB,OAAA,CAAQ,IAAA,KAAS,IAAA,GAAO,2BAA2B,EACrD,CAAA;AAAA,EACA,MAAM;AAAA;;AAAA,qBAAA,CAAA;AAKN,EAAA,MAAM,UAAA,GAAa,CAAA;AAAA,EACnB,MAAM;AAAA,GAAA,CAAA;AAGN,EAAA,IAAI,aAAA,GAAgB,EAAA;AACpB,EAAA,IAAI,OAAA,CAAQ,cAAc,MAAA,EAAQ;AAChC,IAAA,aAAA,GAAgB,UAAA;AAAA,EAClB,CAAA,MAAA,IAAW,OAAA,CAAQ,SAAA,KAAc,MAAA,EAAQ;AACvC,IAAA,aAAA,GAAgB,UAAA;AAAA,EAClB;AAEA,EAAA,MAAM,SAAA,GAAY,CAAA,EAAG,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC;AAAA,EACvC,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC;AAAA,EAChB,aAAa;AAAA,CAAA;AAGb,EAAA,OAAO,SAAA;AACT;ACtnBA,eAAsB,WAAA,CACpB,MACA,cAAA,EACA;AAEA,EAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,IAAA,EAAM,cAAc,CAAA;AAC3D,EAAA,MAAM,OAAA,GAAUO,IAAAA,CAAI,CAAA,4BAAA,CAA8B,CAAA,CAAE,KAAA,EAAM;AAC1D,EAAA,MAAM,iBAAiB,8BAAA,EAAgC;AAAA,IACrD,KAAK,QAAA,CAAS;AAAA,GACf,CAAA;AACD,EAAA,OAAA,CAAQ,IAAA,GAAO,CAAA,2BAAA,CAAA;AACf,EAAA,MAAM,qBAAqB,QAAQ,CAAA;AACnC,EAAA,OAAA,CAAQ,IAAA,GAAO,CAAA,sBAAA,CAAA;AACf,EAAA,MAAM,aAAa,QAAQ,CAAA;AAC3B,EAAA,OAAA,CAAQ,IAAA,GAAO,CAAA,sBAAA,CAAA;AACf,EAAA,MAAM,WAAW,QAAQ,CAAA;AACzB,EAAA,OAAA,CAAQ,IAAA,EAAK;AACb,EAAA,KAAA,CAAM,gCAAgC,CAAA;AACtC,EAAA,IAAA;AAAA,IACE;AAAA,GACF;AACF;AAEA,eAAe,qBAAqB,OAAA,EAA6B;AAC/D,EAAA,MAAM,WAAA,GAAc,MAAM,eAAA,CAAgB,OAAA,CAAQ,GAAG,CAAA;AACrD,EAAA,WAAA,CAAY,OAAO,OAAA,CAAQ,WAAA;AAC3B,EAAA,WAAA,CAAY,WAAA,GAAc,CAAA,gBAAA,CAAA;AAC1B,EAAA,WAAA,CAAY,OAAA,GAAU,CAAA,KAAA,CAAA;AACtB,EAAA,WAAA,CAAY,YAAA,GAAe,CAAC,MAAM,UAAA,EAAY,CAAA;AAC9C,EAAA,MAAM,gBAAA,CAAiB,OAAA,CAAQ,GAAA,EAAK,WAAW,CAAA;AAC/C,EAAA,MAAA,CAAOT,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAK,kBAAkB,CAAC,CAAA;AACjD;AAEA,eAAe,aAAa,OAAA,EAA6B;AACvD,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,EAAW;AAC9B,EAAA,MAAM,GAAA,GAAM,CAAA;;AAAA,gBAAA,EAAA,qBAEQ,IAAA,EAAK,EAAE,WAAA,EAAa,YAAY,IAAI,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAA,CAAA;AAmBxD,EAAA,MAAME,UAAUF,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAK,eAAe,GAAG,GAAG,CAAA;AAC5D;AAEA,eAAe,WAAW,OAAA,EAA6B;AACrD,EAAA,MAAM,IAAA,GAAO,MAAMC,QAAAA,CAASD,SAAAA,CAAQ,QAAQ,GAAA,EAAK,gBAAgB,GAAG,OAAO,CAAA;AAC3E,EAAA,IAAI,UAAU,IAAA,CAAK,OAAA;AAAA,IACjB,+BAAA;AAAA,IACA,CAAA,OAAA,EAAU,QAAQ,IAAI,CAAA,CAAA;AAAA,GACxB;AACA,EAAA,OAAA,GAAU,OAAA,CAAQ,OAAA;AAAA,IAChB,uBAAA;AAAA,IACA,CAAA,aAAA,EAAgB,MAAM,UAAA,EAAY,CAAA,CAAA;AAAA,GACpC;AACA,EAAA,OAAA,GAAU,OAAA,CAAQ,OAAA;AAAA,IAChB,sCAAA;AAAA,IACA,CAAA,0CAAA;AAAA,GACF;AACA,EAAA,MAAME,UAAUF,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAK,gBAAgB,GAAG,OAAO,CAAA;AACjE;AAEA,eAAe,eAAA,CACb,MACA,OAAA,EAC6B;AAC7B,EAAA,OAAO,CAAC,IAAA,EAAM;AACZ,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAMJ,QAAAA,CAAQ;AAAA,MAClC,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACV,CAAA;AACD,IAAA,IAAA,GAAO,SAAA;AAAA,EACT;AAEA,EAAA,IAAI,cAAc,OAAA,CAAQ,WAAA;AAC1B,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,EAAE,gBAAA,EAAiB,GAAI,MAAMA,QAAAA,CAAQ;AAAA,MACzC,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,kBAAA;AAAA,MACN,OAAA,EACE,oEAAA;AAAA,MACF,OAAA,EAAS,CAAA,cAAA,EAAiBmB,OAAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,KACxC,CAAA;AACD,IAAA,WAAA,GAAc,gBAAA;AAAA,EAChB;AAEA,EAAA,IAAI,UAAU,OAAA,CAAQ,GAAA;AACtB,EAAA,IAAI,QAAA,GAAW,OAAA,GACX,MAAM,UAAA,CAAWf,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAC,CAAA,GACvD,KAAA;AAEJ,EAAA,OAAO,CAAC,OAAA,IAAW,CAAC,QAAA,EAAU;AAC5B,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAMJ,QAAAA,CAAQ;AAAA,MAClC,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,OAAA,EAAS,CAAA,qCAAA,CAAA;AAAA,MACT,OAAA,EAAS,QAAQ,GAAA,IAAO;AAAA,KACzB,CAAA;AACD,IAAA,OAAA,GAAU,SAAA;AACV,IAAA,QAAA,GAAW,MAAM,WAAWI,SAAAA,CAAQ,OAAA,CAAQ,KAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAC,CAAA;AAAA,EACpE;AACA,EAAA,MAAM,MAAMA,SAAAA,CAAQ,OAAA,CAAQ,KAAI,EAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;ACxHO,IAAM,gBAAA,GAA0C;AAAA,EACrD,EAAE,EAAA,EAAI,aAAA,EAAe,KAAA,EAAO,aAAA,EAAc;AAAA,EAC1C,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,EACpC,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,EAC9B,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,EAC9B,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,EAChC,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,EAC5B,EAAE,EAAA,EAAI,KAAA,EAAO,KAAA,EAAO,KAAA,EAAM;AAAA,EAC1B,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,IAAA,EAAK;AAAA,EACxB,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,EAChC,EAAE,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EAClC,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,OAAA;AACxB;AAEA,IAAM,wBAAA,GAA2B;AAAA,EAC/B,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF,CAAA,CAAE,KAAK,IAAI,CAAA;AAEX,IAAM,iBAAA,GAA4C;AAAA,EAChD,aAAA,EAAe,WAAA;AAAA,EACf,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,qBAAA,GAAwB,8BAAA;AAC9B,IAAM,mBAAA,GAAsB,4BAAA;AAE5B,eAAsB,UAAA,GAA4B;AAChD,EAAA,IAAI;AACF,IAAA,MAAM,WAAA,GAAc,MAAM,kBAAA,CAAmB,OAAA,CAAQ,KAAK,CAAA;AAC1D,IAAA,MAAM,eAAA,GACH,MAAM,oBAAA,CAAqB,OAAA,CAAQ,KAAK,CAAA,KACxC,WAAA,KAAgB,OAAA,CAAQ,GAAA,EAAI,GACzB,IAAA,GACA,MAAM,qBAAqB,WAAW,CAAA,CAAA;AAC5C,IAAA,MAAM,YAAuD,EAAC;AAE9D,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA,SAAA,CAAU,IAAA,CAAK;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,OAAA,EAAS,2DAAA;AAAA,QACT,OAAA,EAAS;AAAA,UACP,EAAE,KAAA,EAAO,uBAAA,EAAyB,KAAA,EAAO,OAAA,EAAQ;AAAA,UACjD,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,KAAA;AAAM,SACtC;AAAA,QACA,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH;AAEA,IAAA,SAAA,CAAU,IAAA,CAAK;AAAA,MACb,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,kEAAA;AAAA,MACT,OAAA,EAAS,gBAAA,CAAiB,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,QACxC,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,OAAO,KAAA,CAAM,EAAA;AAAA,QACb,QAAA,EAAU,MAAM,EAAA,KAAO;AAAA,OACzB,CAAE,CAAA;AAAA,MACF,YAAA,EAAc,KAAA;AAAA,MACd,GAAA,EAAK;AAAA,KACN,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,MAAMJ,QAAAA,CAAQ,SAAA,EAAW;AAAA,MACxC,UAAU,MAAM;AACd,QAAA,MAAM,IAAI,MAAM,WAAW,CAAA;AAAA,MAC7B;AAAA,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAW,mBAAmB,QAAA,CAAS,OAAA;AAC7C,IAAA,MAAM,cAAA,GAAkB,QAAA,CAAS,MAAA,IAAU,EAAC;AAC5C,IAAA,MAAM,SAAA,GAAY,MAAM,mBAAA,EAAoB;AAC5C,IAAA,MAAM,UAAA,GAAa,MAAM,sBAAA,CAAuB;AAAA,MAC9C,MAAA,EAAQ,cAAA;AAAA,MACR,WAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,YAAA,CAAa;AAAA,MACX,UAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,SAASG,MAAAA,EAAO;AACd,IAAA,IAAIA,MAAAA,YAAiB,KAAA,IAASA,MAAAA,CAAM,OAAA,KAAY,WAAA,EAAa;AAC3D,MAAA,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,MAAA,CAAO,uCAAuC,CAAC,CAAA;AACjE,MAAA;AAAA,IACF;AACA,IAAA,MAAMA,MAAAA;AAAA,EACR;AACF;AAEA,eAAsB,qBACpB,QAAA,EACgC;AAChC,EAAA,MAAM,eAAA,GAAkB,MAAM,sBAAA,CAAuB,QAAQ,CAAA;AAC7D,EAAA,IAAI,CAAC,iBAAiB,OAAO,IAAA;AAE7B,EAAA,MAAM,cAAc,IAAA,CAAK,KAAA,CAAM,MAAME,QAAAA,CAAS,eAAA,EAAiB,MAAM,CAAC,CAAA;AACtE,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,GAAG,WAAA,CAAY,YAAA;AAAA,IACf,GAAG,WAAA,CAAY,eAAA;AAAA,IACf,GAAG,WAAA,CAAY,oBAAA;AAAA,IACf,GAAG,WAAA,CAAY;AAAA,GACjB;AAEA,EAAA,MAAM,QAAA,GAAW,OAAA;AAAA,IACf,IAAA,CAAK,SAAS,IAAA,CAAK,WAAW,KAAK,IAAA,CAAK,gBAAgB,KAAK,IAAA,CAAK;AAAA,GACpE;AACA,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,IAAA,CAAK,OAAO,IAAA,CAAK,IAAA,IAAQ,KAAK,cAAc,CAAA,IAAK,KAAK,eAAe;AAAA,GACvE;AAEA,EAAA,IAAI,QAAA,KAAa,QAAQ,OAAO,IAAA;AAChC,EAAA,OAAO,WAAW,OAAA,GAAU,KAAA;AAC9B;AAEA,eAAsB,mBAAA,CAAoB,OAAA,GAGtC,EAAC,EAAoB;AACvB,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,SAAA,IAAc,MAAM,wBAAA,EAAyB;AACvE,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,SAAA,IAAa,YAAA,EAAa;AACpD,EAAA,MAAM,WAAA,GAAcD,SAAAA,CAAQ,SAAA,EAAW,QAAA,EAAU,SAAS,CAAA;AAE1D,EAAA,MAAMc,MAAME,SAAAA,CAAQ,WAAW,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACrD,EAAA,MAAM,GAAG,WAAA,EAAa,EAAE,WAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AACtD,EAAA,MAAM,GAAG,SAAA,EAAW,WAAA,EAAa,EAAE,SAAA,EAAW,MAAM,CAAA;AAEpD,EAAA,OAAO,WAAA;AACT;AAEA,eAAsB,uBAAuB,OAAA,EAKR;AACnC,EAAA,MAAM,MAAA,GAAkC;AAAA,IACtC,oBAAoB,EAAC;AAAA,IACrB,cAAc;AAAC,GACjB;AAEA,EAAA,KAAA,MAAW,OAAA,IAAW,QAAQ,MAAA,EAAQ;AACpC,IAAA,MAAM,cAAA,GAAiB,kBAAkB,OAAO,CAAA;AAChD,IAAA,MAAM,QAAQ,gBAAA,CAAiB,IAAA,CAAK,CAAC,SAAA,KAAc,SAAA,CAAU,OAAO,OAAO,CAAA;AAC3E,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,MAAA,CAAO,kBAAA,CAAmB,IAAA;AAAA,QACxB,kCAAA,CAAmC,KAAA,EAAO,OAAA,CAAQ,OAAA,EAAS,QAAQ,SAAS;AAAA,OAC9E;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,QAAA,GAAWhB,SAAAA,CAAQ,OAAA,CAAQ,WAAA,EAAa,cAAc,CAAA;AAC5D,IAAA,MAAM,2BAAA,CAA4B,QAAA,EAAU,OAAA,CAAQ,OAAA,EAAS,QAAQ,SAAS,CAAA;AAC9E,IAAA,MAAA,CAAO,YAAA,CAAa,KAAK,QAAQ,CAAA;AAAA,EACnC;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,+BAAA,CACd,SACA,SAAA,EACQ;AACR,EAAA,MAAM,UAAA,GACJ,OAAA,KAAY,OAAA,GACR,qCAAA,GACA,mCAAA;AAEN,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,CAAA,2DAAA,CAAA;AAAA,IACA,CAAA,gBAAA,EAAmB,IAAA,CAAK,SAAA,EAAW,UAAU,CAAC,CAAA,EAAA,CAAA;AAAA,IAC9C,CAAA,gBAAA,EAAmB,IAAA,CAAK,SAAA,EAAW,0BAA0B,CAAC,CAAA,EAAA,CAAA;AAAA,IAC9D,6BAA6B,UAAU,CAAA,EAAA,CAAA;AAAA,IACvC,oHAAA;AAAA,IACA,8EAAA;AAAA,IACA,iGAAA;AAAA,IACA,sHAAA;AAAA,IACA,kJAAA;AAAA,IACA,kEAAkE,wBAAwB,CAAA,CAAA,CAAA;AAAA,IAC1F,2FAAA;AAAA,IACA,sKAAA;AAAA,IACA,qIAAA;AAAA,IACA;AAAA,GACF,CAAE,KAAK,IAAI,CAAA;AACb;AAEO,SAAS,kCAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACQ;AACR,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,MAAM,KAAK,CAAA,4EAAA,CAAA;AAAA,IACd,OAAA;AAAA,IACA,+BAAA,CAAgC,SAAS,SAAS,CAAA;AAAA,IAClD;AAAA,GACF,CAAE,KAAK,IAAI,CAAA;AACb;AAEO,SAAS,oBAAA,CACd,QACA,OAAA,EACQ;AACR,EAAA,MAAM,cAAA,GAAiB;AAAA,IACrB,qBAAA;AAAA,IACA,QAAQ,IAAA,EAAK;AAAA,IACb;AAAA,GACF,CAAE,KAAK,IAAI,CAAA;AACX,EAAA,MAAM,UAAU,IAAI,MAAA;AAAA,IAClB,CAAA,EAAG,cAAA,CAAe,qBAAqB,CAAC,CAAA,UAAA,EAAa,cAAA;AAAA,MACnD;AAAA,KACD,CAAA,CAAA;AAAA,IACD;AAAA,GACF;AAEA,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA,EAAG;AACxB,IAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS,cAAc,CAAA;AAAA,EAC/C;AAEA,EAAA,IAAI,CAAC,MAAA,CAAO,IAAA,EAAK,EAAG;AAClB,IAAA,OAAO,GAAG,cAAc;AAAA,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,CAAA,EAAG,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS,EAAE,CAAC;;AAAA,EAAO,cAAc;AAAA,CAAA;AAC5D;AAEA,eAAe,2BAAA,CACb,QAAA,EACA,OAAA,EACA,SAAA,EACe;AACf,EAAA,MAAM,QAAA,GAAY,MAAM,OAAA,CAAQ,QAAQ,CAAA,IAAM,EAAA;AAC9C,EAAA,MAAM,IAAA,GAAO,oBAAA;AAAA,IACX,QAAA;AAAA,IACA,+BAAA,CAAgC,SAAS,SAAS;AAAA,GACpD;AACA,EAAA,MAAME,SAAAA,CAAU,QAAA,EAAU,IAAA,EAAM,MAAM,CAAA;AACxC;AAEA,eAAe,mBAAmBe,IAAAA,EAA8B;AAC9D,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,MAAMC,KAAAA,CAAM,KAAA,EAAO,CAAC,WAAA,EAAa,iBAAiB,CAAA,EAAG,EAAE,GAAA,EAAAD,IAAAA,EAAK,CAAA;AAC3E,IAAA,OAAO,MAAA,CAAO,MAAA,CAAO,IAAA,EAAK,IAAKA,IAAAA;AAAA,EACjC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAOA,IAAAA;AAAA,EACT;AACF;AAEA,eAAe,uBAAuB,QAAA,EAA0C;AAC9E,EAAA,IAAI,OAAA,GAAUjB,UAAQ,QAAQ,CAAA;AAE9B,EAAA,OAAO,IAAA,EAAM;AACX,IAAA,MAAM,SAAA,GAAYA,SAAAA,CAAQ,OAAA,EAAS,cAAc,CAAA;AACjD,IAAA,IAAI,MAAM,UAAA,CAAW,SAAS,CAAA,EAAG;AAC/B,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,MAAM,MAAA,GAASgB,UAAQ,OAAO,CAAA;AAC9B,IAAA,IAAI,WAAW,OAAA,EAAS;AACtB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,OAAA,GAAU,MAAA;AAAA,EACZ;AACF;AAEA,SAAS,YAAA,GAAuB;AAC9B,EAAA,OAAOhB,SAAAA,CAAQ,QAAQ,GAAA,CAAI,UAAA,IAAc,KAAK,OAAA,EAAQ,EAAG,QAAQ,CAAC,CAAA;AACpE;AAEA,eAAe,wBAAA,GAA4C;AACzD,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,0BAAA,EAA4B,YAAY,GAAG,CAAA;AAEnE,EAAA,IAAI,OAAA,CAAQ,aAAa,OAAA,EAAS;AAChC,IAAA,OAAO,cAAc,OAAO,CAAA;AAAA,EAC9B;AAEA,EAAA,MAAM,UAAA,GAAa;AAAA,IACjBA,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,oCAAoC,CAAA;AAAA,IAC3DA,SAAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,uBAAuB;AAAA,GAChD;AAEA,EAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AAClC,IAAA,IAAI,MAAM,UAAA,CAAW,SAAS,CAAA,EAAG;AAC/B,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,MAAM,IAAI,MAAM,oDAAoD,CAAA;AACtE;AAEA,eAAe,WAAW,IAAA,EAAgC;AACxD,EAAA,IAAI;AACF,IAAA,MAAMmB,OAAO,IAAI,CAAA;AACjB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,eAAe,QAAQ,IAAA,EAAsC;AAC3D,EAAA,IAAI;AACF,IAAA,OAAO,MAAMlB,QAAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAAA,EACpC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,SAAS,aAAa,OAAA,EAMb;AACP,EAAA,OAAA,CAAQ,IAAI,KAAA,CAAM,WAAA,CAAY,8BAA8B,OAAA,CAAQ,SAAS,EAAE,CAAC,CAAA;AAChF,EAAA,OAAA,CAAQ,GAAA;AAAA,IACN,KAAA,CAAM,IAAA;AAAA,MACJ,CAAA,MAAA,EAAS,QAAQ,OAAA,KAAY,OAAA,GAAU,UAAU,UAAU,CAAA,qBAAA,EAAwB,QAAQ,WAAW,CAAA;AAAA;AACxG,GACF;AAEA,EAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,YAAA,CAAa,MAAA,EAAQ;AAC1C,IAAA,OAAA,CAAQ,GAAA;AAAA,MACN,KAAA,CAAM,WAAA;AAAA,QACJ,iCAAiC,OAAA,CAAQ,UAAA,CAAW,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA;AAC7E,KACF;AAAA,EACF;AAEA,EAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,cAAA,CAC1B,MAAA,CAAO,CAAC,YAAY,EAAE,OAAA,IAAW,iBAAA,CAAkB,CAAA,CACnD,GAAA,CAAI,CAAC,YAAY,gBAAA,CAAiB,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,EAAA,KAAO,OAAO,CAAA,EAAG,KAAK,CAAA,CAC9E,MAAA,CAAO,OAAO,CAAA;AAEjB,EAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,IAAA,OAAA,CAAQ,GAAA;AAAA,MACN,KAAA,CAAM,MAAA;AAAA,QACJ,CAAA,yCAAA,EAA4C,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA;AACrE,KACF;AAAA,EACF;AAEA,EAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,kBAAA,CAAmB,MAAA,EAAQ;AAChD,IAAA,OAAA,CAAQ,IAAI,EAAE,CAAA;AACd,IAAA,KAAA,MAAW,YAAA,IAAgB,OAAA,CAAQ,UAAA,CAAW,kBAAA,EAAoB;AAChE,MAAA,OAAA,CAAQ,IAAI,YAAY,CAAA;AACxB,MAAA,OAAA,CAAQ,IAAI,EAAE,CAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,OAAA,CAAQ,GAAA;AAAA,IACN,KAAA,CAAM,IAAA;AAAA,MACJ,CAAA,oBAAA,EAAuB,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,0BAA0B,CAAC,CAAA;AAAA;AAC5E,GACF;AACA,EAAA,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,IAAA,CAAK,sCAAsC,CAAC,CAAA;AAChE;AAEA,SAAS,eAAe,KAAA,EAAuB;AAC7C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,sBAAA,EAAwB,MAAM,CAAA;AACrD;ACnYA,IAAMmB,YAAA,GAAaC,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AAChD,IAAM,UAAA,GACJC,eAAAA,KAAoB,SAAA,GAChB,IAAA,CAAK,KAAA;AAAA,EACH,aAAatB,OAAAA,CAAQgB,OAAAA,CAAQI,YAAU,CAAA,EAAG,iBAAiB,GAAG,MAAM;AACtE,CAAA,CAAE,OAAA,GACFE,eAAAA;AAKC,IAAMxB,WAAA,GAAYkB,QAAQI,YAAU;AAKpC,IAAM,MAAM,CAAC,CAAA,KAClB,OAAA,CAAQ,GAAA,CAAI,GAAGG,KAAAA,CAAM,GAAA,CAAI,IAAA,CAAK,mBAAmB,CAAC,CAAA,CAAA,EAAIA,KAAAA,CAAM,GAAA,CAAI,CAAC,CAAC,CAAA,CAAE;AAK/D,IAAM,IAAA,GAAO,CAAC,CAAA,KAAoB;AACvC,EAAA,OAAA,CAAQ,IAAI,CAAA,EAAGA,KAAAA,CAAM,IAAA,CAAK,CAAC,CAAC,CAAA,CAAE,CAAA;AAChC;AAKO,IAAM,OAAA,GAAU,CAAC,CAAA,KAAoB;AAC1C,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAGA,KAAAA,CAAM,MAAA,CAAO,IAAA,CAAK,kBAAkB,CAAC,CAAA,CAAA,EAAIA,KAAAA,CAAM,MAAA,CAAO,CAAC,CAAC,CAAA,CAAE,CAAA;AAC3E;AAKO,IAAM,KAAA,GAAQ,CAAC,CAAA,KAAoB;AACxC,EAAA,OAAA,CAAQ,GAAA,CAAIA,KAAAA,CAAM,WAAA,CAAY,CAAC,CAAC,CAAA;AAClC;AAEA,IAAM,OAAA,GAAU,IAAI,OAAA,EAAQ;AAE5B,OAAA,CACG,KAAK,aAAa,CAAA,CAClB,YAAY,4CAA4C,CAAA,CACxD,QAAQ,UAAU,CAAA;AAErB,OAAA,CACG,OAAA,CAAQ,QAAQ,CAAA,CAChB,QAAA;AAAA,EACC,SAAA;AAAA,EACA;AACF,CAAA,CACC,WAAA;AAAA,EACC;AACF,CAAA,CACC,MAAA,CAAO,mBAAmB,mCAAmC,CAAA,CAC7D,OAAO,oBAAA,EAAsB,8CAA8C,CAAA,CAC3E,MAAA,CAAO,WAAW,CAAA;AAErB,OAAA,CACG,QAAQ,YAAY,CAAA,CACpB,QAAA,CAAS,QAAA,EAAU,4CAA4C,CAAA,CAC/D,MAAA;AAAA,EACC,oBAAA;AAAA,EACA;AACF,CAAA,CACC,MAAA,CAAO,6BAAA,EAA+B,gCAAgC,CAAA,CACtE,MAAA;AAAA,EACC,aAAA;AAAA,EACA;AACF,CAAA,CACC,WAAA,CAAY,8DAA8D,CAAA,CAC1E,MAAA,CAAO,SAAS,CAAA;AAEnB,OAAA,CACG,OAAA,CAAQ,OAAO,CAAA,CACf,MAAA;AAAA,EACC,iBAAA;AAAA,EACA;AACF,CAAA,CACC,MAAA;AAAA,EACC,IAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,CACC,MAAA;AAAA,EACC,yBAAA;AAAA,EACA;AACF,CAAA,CACC,MAAA;AAAA,EACC,aAAA;AAAA,EACA;AACF,CAAA,CACC,WAAA;AAAA,EACC;AACF,CAAA,CACC,OAAO,UAAU,CAAA;AAEpB,OAAA,CACG,OAAA,CAAQ,OAAO,CAAA,CACf,WAAA;AAAA,EACC;AACF,CAAA,CACC,OAAO,UAAU,CAAA;AAEpB,OAAA,CACG,QAAQ,cAAc,CAAA,CACtB,QAAA,CAAS,QAAA,EAAU,sDAAsD,CAAA,CACzE,MAAA;AAAA,EACC,8BAAA;AAAA,EACA;AACF,CAAA,CACC,MAAA,CAAO,qBAAqB,gDAAgD,CAAA,CAC5E,YAAY,mDAAmD,CAAA,CAC/D,OAAO,WAAW,CAAA;AAKrB,eAAsB,GAAA,GAAqB;AACzC,EAAA,MAAM,MAAM,MAAML,KAAAA,CAAM,KAAA,EAAO,CAAC,WAAW,CAAC,CAAA;AAC5C,EAAA,MAAM,CAAC,KAAK,CAAA,GAAI,GAAA,CAAI,OAAO,IAAA,EAAK,CAAE,MAAM,GAAG,CAAA;AAC3C,EAAA,IAAI,MAAA,CAAO,KAAK,CAAA,GAAI,CAAA,EAAG;AACrB,IAAA,KAAA,CAAM,CAAA,4CAAA,EAA+C,GAAA,CAAI,MAAA,CAAO,IAAA,EAAM,CAAA,EAAA,CAAI,CAAA;AAAA,EAC5E;AACA,EAAA,OAAA,CAAQ,KAAA,EAAM;AAChB;AAQO,SAAS,MAAM,OAAA,EAAwB;AAC5C,EAAA,GAAA,CAAI,OAAO,CAAA;AACX,EAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAChB","file":"index.dev.mjs","sourcesContent":["import axios from 'axios'\nimport { FORMKIT_VERSION } from '@formkit/core'\nimport { inputs } from '@formkit/inputs'\nimport { token } from '@formkit/utils'\nimport { resolve, relative, isAbsolute } from 'path'\nimport { access, mkdir, writeFile, readFile } from 'fs/promises'\nimport { error, info, warning, green, __dirname } from './index'\nimport { constants, existsSync } from 'fs'\nimport prompts from 'prompts'\n\n/**\n * @internal\n */\nexport async function exportInput(\n  inputOption?: string,\n  options: Record<string, string | undefined> = {}\n): Promise<void> {\n  const input = await requireInput(inputOption)\n  const lang = await requireLang(options.lang)\n  const exportData = await requireInputCode(input, lang)\n  const sourceCode = transformSource(exportData, input)\n  const [absoluteDir, relativeDir] = await requireOutputDir(options.dir)\n  const validDir = await upsertDir(absoluteDir)\n\n  if (validDir === false)\n    return error(`${relativeDir} is not a writable directory.`)\n  if (!validDir) return\n  const outFile = resolve(absoluteDir, `${input}.${lang}`)\n  if (!existsSync(outFile)) {\n    await writeFile(outFile, sourceCode)\n  } else {\n    return error('Did not export input because that file already exists.')\n  }\n  green(`Success! Exported ${relativeDir}/${input}.${lang}`)\n  console.log(`To use it pass it to your FormKit configuration:\n  // ...\n  import { ${input} } from '${relativeDir}/${input}'\n  // ...\n  const config = defaultConfig({\n    inputs: {\n      ${input}\n    }\n  })\n  `)\n}\n\n/**\n * Checks if a given directory is writable, if it doesn't exist, create it.\n * @param dir - A directory to create if it doesn't exist.\n * @returns\n */\nasync function upsertDir(dir: string): Promise<boolean | void> {\n  if (!existsSync(dir)) {\n    const local = '.' + dir.replace(process.cwd(), '')\n    const { confirm } = await prompts({\n      type: 'confirm',\n      name: 'confirm',\n      initial: true,\n      message: `Export directory does not exist (${local}) does not exist. Create it?`,\n    })\n    if (!confirm) return info('Directory not created — no input was exported.')\n    try {\n      await mkdir(dir, { recursive: true })\n    } catch {\n      return error(`Unable to create directory ${dir}.`)\n    }\n  }\n  try {\n    await access(dir, constants.W_OK)\n    return true\n  } catch (err) {\n    return false\n  }\n}\n\n/**\n * Attempts to intelligently determine the directory to export to.\n * @param dir - The directory to export the input to.\n * @returns\n */\nasync function requireOutputDir(\n  dir?: string\n): Promise<[string, string]> | never {\n  if (dir && isAbsolute(dir)) {\n    return [dir, relative(process.cwd(), dir)]\n  } else if (dir) {\n    const abs = resolve(process.cwd(), dir)\n    return [abs, relative(process.cwd(), abs)]\n  }\n  const rel = await prompts({\n    type: 'text',\n    name: 'dir',\n    message:\n      'Where should the input be exported to (relative to the current directory)?',\n    initial: guessDir(),\n  }).then((res) => res.dir)\n  const abs = resolve(process.cwd(), rel)\n  return [abs, rel]\n}\n\nfunction guessDir() {\n  const srcDir = resolve(process.cwd(), 'src')\n  if (existsSync(srcDir)) {\n    return './src/inputs'\n  }\n  return './inputs'\n}\n\n/**\n * Transforms the source code of the inputs to be used locally.\n * @param exportData - The code to export.\n * @returns\n */\nfunction transformSource(exportData: string, type: string): string | never {\n  if (exportData) {\n    // Change the exports from relative to npm package based.\n    exportData = exportData.replace(\n      /(}\\sfrom\\s['\"])\\.\\.\\/(?:index(?:\\.mjs)?)?(['\"])?/g,\n      '$1@formkit/inputs$2'\n    )\n    const memoKey = token()\n    exportData = exportData.replace(\n      /(schemaMemoKey:\\s?['\"])[a-zA-Z0-9]+(['\"])/g,\n      `$1${memoKey}$2`\n    )\n    // Inject the forceTypeProp in the definition.\n    exportData = exportData.replace(\n      /^  props: \\[(.*)\\],/gm,\n      `  props: [$1],\n  /**\n   * Forces node.props.type to be this explicit value.\n   */\n  forceTypeProp: '${type}',`\n    )\n  } else {\n    error('Unable to export the input file because it cannot be located.')\n  }\n  return exportData\n}\n\n/**\n * Determine the language the user wants to export.\n * @param lang - The language to export the input to.\n * @returns\n */\nasync function requireLang(lang?: string): Promise<string> {\n  if (!lang) {\n    const guessedLang = guessLang()\n    lang = await prompts({\n      type: 'select',\n      name: 'lang',\n      message: 'What language should be used?',\n      choices: [\n        guessedLang === 'ts'\n          ? { title: 'TypeScript', value: 'ts' }\n          : { title: 'JavaScript', value: 'js' },\n        guessedLang === 'ts'\n          ? { title: 'JavaScript', value: 'js' }\n          : { title: 'TypeScript', value: 'ts' },\n      ],\n    }).then((val) => val.lang)\n    if (!lang) {\n      error('No language selected, exiting.')\n    }\n  }\n  return lang\n}\n\n/**\n * Fetch the input name that the user wants to export.\n * @param inputName - The name of the input to load.\n * @returns\n */\nasync function requireInput(inputName?: string): Promise<string> | never {\n  if (!inputName) {\n    const res = await prompts({\n      type: 'autocomplete',\n      name: 'inputName',\n      message: 'What input do you want to export?',\n      choices: Object.keys(inputs).map((i) => ({\n        title: i,\n        value: i,\n      })),\n    })\n    inputName = res.inputName\n  }\n  if (!inputName || !(inputName in inputs)) {\n    error(\n      `Cannot export “${inputName}” because it is not part of the @formkit/inputs package.`\n    )\n  }\n  return inputName\n}\n\n/**\n * Loads the string data of an input that should be exported.\n * @param name - The name of the input to load.\n * @param lang - The language to load the input in.\n * @returns\n */\nasync function requireInputCode(\n  name: string,\n  lang?: string\n): Promise<string> | never {\n  lang = !lang ? guessLang() : lang\n  const localFile = resolve(\n    __dirname,\n    `../../inputs/dist/exports/${name}.${lang}`\n  )\n  let fileData = null\n  if (existsSync(localFile)) {\n    fileData = await readFile(localFile, { encoding: 'utf8' })\n  } else {\n    warning(`Unable to locate ${localFile}`)\n    const cdnUrl = `https://cdn.jsdelivr.net/npm/@formkit/inputs@${FORMKIT_VERSION}/dist/exports/${name}.${lang}`\n    try {\n      const res = await axios.get(cdnUrl)\n      fileData = res.data\n    } catch (e: any) {\n      if (e && e?.response?.status) {\n        error(`${e.response.status} — unable to load ${localFile}`)\n      } else {\n        error(\n          'Unable to load input file — probably a network error. Are you online?'\n        )\n      }\n    }\n  }\n\n  if (!fileData) {\n    info('Checking CDN for an exportable input.')\n  }\n\n  if (!fileData) {\n    error(`Unable to load export ${name}.${lang}`)\n  } else {\n    return fileData\n  }\n}\n\n/**\n * Guess the language the user is leveraging on their project.\n */\nfunction guessLang() {\n  const tsconfig = resolve(process.cwd(), 'tsconfig.json')\n  return existsSync(tsconfig) ? 'ts' : 'js'\n}\n","import { readdir, readFile, writeFile } from 'fs/promises'\nimport { resolve } from 'pathe'\nimport { exec } from 'child_process'\nimport { promisify } from 'util'\n\n/**\n * Checks if a given directory is empty.\n * @param path - The absolute path to check if empty.\n */\nexport async function isDirEmpty(path: string) {\n  try {\n    const entries = await readdir(path)\n    return entries.length === 0\n  } catch (error) {\n    return true\n  }\n}\n\nexport async function readPackageJSON(dir: string) {\n  const packageJsonPath = resolve(dir, `./package.json`)\n  const raw = await readFile(packageJsonPath, 'utf-8')\n  return JSON.parse(raw)\n}\n\nexport async function writePackageJSON(dir: string, data: any) {\n  const packageJsonPath = resolve(dir, `./package.json`)\n  await writeFile(packageJsonPath, JSON.stringify(data, null, 2))\n}\n\nconst execAsync = promisify(exec)\n\n// Async function to get the Git user name and email\nexport const getGitUser = async () => {\n  const { stdout: name } = await execAsync('git config --get user.name')\n  return name.trim()\n}\n","import { createHash } from 'crypto'\n\nexport function normalizeGeneratedTheme(themeName: string, code: string): string {\n  if (themeName !== 'regenesis' && themeName !== 'regenesis-tw3') {\n    return code\n  }\n\n  const normalized = code.replace(\n    /\"dark:disabled:border-neutral-100\": true/g,\n    '\"dark:disabled:border-neutral-500\": true'\n  )\n\n  return normalized === code\n    ? code\n    : updateGeneratedThemeChecksum(normalized)\n}\n\nfunction updateGeneratedThemeChecksum(code: string): string {\n  const checksum = extractChecksum(code)\n  const codeWithoutChecksum = code.replace(\n    `* @checksum - ${checksum}`,\n    '* @checksum -'\n  )\n  const newChecksum = createHash('sha256')\n    .update(codeWithoutChecksum)\n    .digest('hex')\n  return code.replace(\n    `* @checksum - ${checksum}`,\n    `* @checksum - ${newChecksum}`\n  )\n}\n\nfunction extractChecksum(theme: string): string {\n  const checksumStart = theme.indexOf('@checksum -')\n  if (checksumStart === -1) {\n    throw new Error('Unable to find checksum in theme file.')\n  }\n  return theme.substring(checksumStart + 12, theme.indexOf('\\n', checksumStart))\n}\n","import { existsSync } from 'fs'\nimport http from 'http'\nimport { writeFile, readFile } from 'fs/promises'\nimport { resolve } from 'pathe'\nimport { error, red, green, __dirname, info } from './index'\nimport { Theme, ThemeOptions } from '@formkit/theme-creator'\nimport { stylesheetFromTailwind } from '@formkit/theme-creator/stylesheet'\nimport { slugify } from '@formkit/utils'\nimport prompts from 'prompts'\nimport { createHash } from 'crypto'\nimport ora, { Ora } from 'ora'\nimport open from 'open'\nimport createJiti from 'jiti'\nimport { parse as parseUrl } from 'url'\nimport { token } from '@formkit/utils'\nimport { getPort } from 'get-port-please'\nimport { normalizeGeneratedTheme } from './themeNormalize'\n\ninterface BuildThemeOptions {\n  semantic: boolean\n  theme?: string\n  variables?: string\n  api?: string\n  format?: 'ts' | 'mjs'\n  outFile?: string\n}\n\ninterface ServerResponse {\n  status: 'success' | 'failed'\n  message: string\n}\n\nconst DEFAULT_THEME_API = 'https://themes.formkit.com/api'\nconst DEFAULT_THEME_EDITOR = 'https://themes.formkit.com'\nconst HAS_EXTENSION_RE = /\\.(?:ts|js|mjs|cjs)$/\n\nlet themeListResponse: Response | null = null\nlet themes: Array<Record<string, any>> = []\n\n/**\n * Detect the Tailwind CSS version from the user's package.json.\n * Returns 3, 4, or null if unable to determine.\n */\nasync function detectTailwindVersion(): Promise<3 | 4 | null> {\n  try {\n    const pkgPath = resolve(process.cwd(), 'package.json')\n    if (!existsSync(pkgPath)) return null\n    const pkg = JSON.parse(await readFile(pkgPath, 'utf-8'))\n    const deps = { ...pkg.dependencies, ...pkg.devDependencies }\n    const twVersion = deps['tailwindcss']\n    if (!twVersion) return null\n    // Check if v3 (handles ^3, ~3, 3.x.x, etc.)\n    if (/^[\\^~>=]*3/.test(twVersion)) {\n      return 3\n    }\n    // Default to v4 for anything else (including 'latest', ^4, etc.)\n    return 4\n  } catch {\n    return null\n  }\n}\n\n/**\n * Get the appropriate theme name based on detected Tailwind version.\n * For TW3 projects, appends '-tw3' to use the legacy theme variant.\n */\nfunction getThemeNameForTailwindVersion(\n  baseTheme: string,\n  twVersion: 3 | 4 | null\n): string {\n  // If TW3 is detected, use the -tw3 variant\n  if (twVersion === 3) {\n    return `${baseTheme}-tw3`\n  }\n  // For TW4 or unknown, use the default (TW4) theme\n  return baseTheme\n}\n\n/**\n * Check if a theme is a TW3 variant (ends with -tw3)\n */\nfunction isTw3Theme(themeName: string): boolean {\n  return themeName.endsWith('-tw3')\n}\n\nasync function fetchThemes() {\n  themeListResponse = await fetch(`${DEFAULT_THEME_API}/themes`)\n  if (!themeListResponse.ok) {\n    error(\n      `Failed to fetch themes from ${DEFAULT_THEME_API}/themes (${themeListResponse.status}). The theme server may be temporarily unavailable.`\n    )\n  }\n  const data = await themeListResponse.json()\n  if (!Array.isArray(data)) {\n    error(\n      `Unexpected response from theme API. Expected an array of themes but received: ${JSON.stringify(data).slice(0, 100)}`\n    )\n  }\n  themes = data\n}\n\nexport async function buildTheme(options: Partial<BuildThemeOptions> = {}) {\n  if (!themes.length) await fetchThemes()\n\n  // Detect Tailwind version from user's project\n  const detectedTwVersion = await detectTailwindVersion()\n  if (detectedTwVersion) {\n    info(`Detected Tailwind CSS v${detectedTwVersion} in your project`)\n  } else {\n    info('Could not detect Tailwind version, defaulting to v4 theme')\n  }\n\n  let themeName = options.theme || ''\n\n  // If theme was explicitly provided, check if we need to adjust for TW version\n  if (options.theme && !isTw3Theme(options.theme)) {\n    // User provided a base theme name, adjust based on detected TW version\n    themeName = getThemeNameForTailwindVersion(options.theme, detectedTwVersion)\n    if (themeName !== options.theme) {\n      info(`Using ${themeName} for Tailwind v${detectedTwVersion} compatibility`)\n    }\n  }\n\n  if (!options.theme) {\n    const generatedTheme = await localGeneratedTheme()\n\n    if (generatedTheme) {\n      const [code, path] = generatedTheme\n      try {\n        const [checksum, variables, theme] = extractThemeData(code)\n\n        // determine if the theme is from themes.formkit.com\n        const themeFromList = themes.find((t: any) => t.slug === theme)\n\n        if (themeFromList) {\n          const { editMode } = await prompts({\n            type: 'confirm',\n            message: `Found local theme file for ${theme}, edit this theme?`,\n            name: 'editMode',\n            initial: true,\n          })\n          if (editMode) {\n            return await editTheme(path, code, checksum, variables, theme)\n          }\n        } else if (generatedTheme) {\n          red(\n            'It appears you have a local theme installed that is not part of the themes.formkit.com registry. By continuing your local theme file will be overwritten.'\n          )\n          const { confirm } = await prompts({\n            type: 'confirm',\n            message: 'Are you sure you want to continue?',\n            name: 'confirm',\n            initial: false,\n          })\n\n          if (!confirm) {\n            return error('Aborting.')\n          }\n        }\n      } catch (err) {\n        console.error(err)\n        console.info(\n          `Detected local theme file but could not parse it. Perhaps it was edited or not generated by FormKit?`\n        )\n      }\n    }\n    // Filter out -tw3 variants from the selection (we'll add suffix automatically)\n    const baseThemes = themes.filter((t: any) => !isTw3Theme(t.slug))\n    const { theme } = await prompts({\n      type: 'select',\n      message: `Select a theme${detectedTwVersion ? ` (for Tailwind v${detectedTwVersion})` : ''}`,\n      name: 'theme',\n      choices: baseThemes.map((theme: any) => ({\n        title: theme.name,\n        value: theme.slug,\n        description:\n          theme.description +\n          (theme.darkMode ? ' 🌜' : '') +\n          (theme.lightMode ? '☀️' : '') +\n          ')',\n      })),\n    })\n    // Apply the appropriate theme variant based on detected TW version\n    themeName = getThemeNameForTailwindVersion(theme, detectedTwVersion)\n    if (themeName !== theme) {\n      info(`Using ${themeName} for Tailwind v${detectedTwVersion} compatibility`)\n    }\n  }\n  if (!themeName) error('Please provide a theme name or path to a theme file.')\n  green(`Locating ${themeName}...`)\n\n  const format = options.format || guessFormat()\n\n  let theme = null\n  // if the theme is in the themesList then grab it from the api\n  const themeFromList = themes.find((t: any) => t.slug === themeName)\n\n  // check if there is a local file matching the provided theme name\n  const themeFilePath = determineFilePath(themeName) || themeName\n  const localThemeFile = existsSync(resolve(process.cwd(), themeFilePath))\n    ? await readFile(themeName, 'utf-8')\n    : null\n\n  if (themeFromList) {\n    info('Fetching theme from themes.formkit.com')\n    theme = await apiTheme(\n      themeName,\n      DEFAULT_THEME_API,\n      options.variables ?? '',\n      format === 'ts',\n      options.semantic ?? false\n    )\n  } else if (localThemeFile) {\n    info('Found local theme file')\n    theme = await generate(\n      await localTheme(themeName),\n      options.variables,\n      format === 'ts',\n      options.semantic,\n      themeName\n    )\n  } else {\n    // try to load theme from locally installed package\n    // using dynamic import\n    info('Fetching theme from local npm packages')\n    try {\n      const { default: themeFunction } = await import(themeName)\n      theme = await generate(\n        themeFunction,\n        options.variables,\n        format === 'ts',\n        options.semantic,\n        themeName\n      )\n      green(`Found locally installed theme package: ${themeName}`)\n    } catch (err) {\n      console.error(err)\n    }\n  }\n\n  if (theme) {\n    const outFile =\n      options.outFile || 'formkit.theme.' + (options.semantic ? 'css' : format)\n    await writeFile(resolve(process.cwd(), outFile), theme)\n    green(`Theme file written to ${outFile}`)\n  } else {\n    red(`Could not find theme: ${theme}`)\n  }\n}\n\nasync function editTheme(\n  path: string,\n  code: string,\n  checksum: string,\n  variables: string,\n  theme: string\n) {\n  const codeWithoutChecksum = code.replace(\n    `* @checksum - ${checksum}`,\n    '* @checksum -'\n  )\n  const newChecksum = createHash('sha256')\n    .update(codeWithoutChecksum)\n    .digest('hex')\n  if (newChecksum !== checksum) {\n    const { confirm } = await prompts({\n      type: 'confirm',\n      message:\n        'It appears you’ve edited your theme file. By continuing any changes made to your theme file will be lost. Are you sure you want to continue?',\n      name: 'confirm',\n      initial: false,\n    })\n\n    if (!confirm) {\n      return error('Aborting.')\n    }\n  }\n  await editMode(theme, variables, path)\n}\n\n/**\n * Use the public formkit url shortener.\n * @param url - A url to shorten\n */\nasync function shorten(url: string): Promise<string> {\n  const res = await fetch('https://www.formk.it', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ url }),\n  })\n  const data = await res.json()\n  return data.url\n}\n\nasync function editMode(\n  theme: string,\n  variables: string,\n  filePath: string\n): Promise<void> {\n  const nonce = token()\n  const port = await getPort({\n    portRange: [5480, 5550],\n    host: 'localhost',\n  })\n  const url = `${DEFAULT_THEME_EDITOR}/editor/?theme=${theme}&variables=${variables}&n=${nonce}&p=${port}`\n  const shortUrl = await shorten(url)\n  info(`Open the theme editor at: ${shortUrl}`)\n  const spinner = ora(`Edit in your browser.`).start()\n  await open(url)\n  let heartBeatTimeout: NodeJS.Timeout | undefined\n  let server: http.Server | undefined\n  let completedSuccessfully = false\n  let savedAt = 0\n  await new Promise<void>((resolve) => {\n    server = http\n      .createServer(async (req, res) => {\n        const urlObj = parseUrl(req.url!, true)\n        const path = urlObj.pathname as string\n        const theme = urlObj.query.theme as string | undefined\n        const variables = urlObj.query.variables as string | undefined\n        const resData: ServerResponse = {\n          status: 'failed',\n          message: 'Incorrect token.',\n        }\n        if (path === `/${nonce}`) {\n          clearTimeout(heartBeatTimeout)\n          resData.status = 'success'\n          if (theme && typeof variables !== 'undefined') {\n            resData.message = 'updated'\n            const themeCode = await apiTheme(\n              theme,\n              DEFAULT_THEME_API,\n              variables,\n              filePath.endsWith('.ts'),\n              false,\n              spinner\n            )\n            await writeFile(filePath, themeCode)\n            spinner.text = `⚡️ theme updated.`\n            savedAt = Date.now()\n          } else {\n            resData.message = 'listening'\n            if (Date.now() - savedAt > 5000) {\n              spinner.text = `waiting for${savedAt ? ' more' : ''} changes...`\n            }\n            heartBeatTimeout = setTimeout(() => {\n              completedSuccessfully = true\n              resolve()\n            }, 3000)\n          }\n        }\n        res.writeHead(resData.status === 'success' ? 200 : 400, {\n          'Content-Type': 'application/json',\n          'Access-Control-Allow-Origin': '*',\n          Vary: 'Origin',\n        })\n        res.end(JSON.stringify(resData))\n      })\n      .listen(port)\n  })\n  server?.close()\n  spinner.stop()\n  if (completedSuccessfully) {\n    info('Theme editor session complete, enjoy your theme 🎨')\n    process.exit(0)\n  }\n}\n\nfunction guessFormat() {\n  return existsSync(resolve(process.cwd(), 'tsconfig.json')) ? 'ts' : 'mjs'\n}\n\nexport async function generate(\n  theme: Theme<ThemeOptions> | ReturnType<Theme<ThemeOptions>>,\n  variables?: string,\n  isTS?: boolean,\n  semantic?: boolean,\n  themeName?: string\n): Promise<string> {\n  if (typeof theme === 'function') {\n    const vars = parseVariables(variables)\n    themeName = theme.meta.name\n    theme = theme(vars)\n  }\n  if (!themeName) error('Could not determine theme name.')\n  info(`Loaded theme: ${themeName}`)\n  const classes = theme.tailwind()\n  if (semantic) return await stylesheetFromTailwind(classes)\n  const classList: Record<string, Record<string, true>> = {}\n  const globals: Record<string, Record<string, true>> = {}\n\n  for (const input in classes) {\n    for (const section in classes[input]) {\n      const key = `${input}__${section}`\n      const sectionClasses = classes[input][section]\n        .split(' ')\n        .reduce((acc, cur) => {\n          acc[cur] = true\n          return acc\n        }, {} as Record<string, true>)\n      if (input === '__globals') {\n        globals[section] = sectionClasses\n      } else {\n        classList[key] = sectionClasses\n      }\n    }\n  }\n\n  const themeFile = `${\n    isTS ? \"import type { FormKitNode } from '@formkit/core'\\n\\n\" : ''\n  }/**\n  * @privateRemarks\n  * This file was generated by the FormKit CLI and should not be manually\n  * edited unless you’d like to \"eject\" from the CLI’s ability to update it.\n  *\n  * @checksum -\n  * @variables - ${variables}\n  * @theme - ${slugify(themeName)}\n  **/\n\n /**\n  * This is the theme function itself, it should be imported and used as the\n  * config.rootClasses function. For example:\n  *\n  * \\`\\`\\`js\n  * import { theme } from './formkit.theme'\n  * import { defineFormKitConfig } from '@formkit/vue'\n  *\n  * export default defineFormKitConfig({\n  *   config: {\n  *     rootClasses: theme\n  *   }\n  * })\n  * \\`\\`\\`\n  **/\n export function rootClasses (sectionName${isTS ? ': string' : ''}, node${\n    isTS ? ': FormKitNode' : ''\n  })${isTS ? ': Record<string, boolean>' : ''} {\n   const key = \\`\\${node.props.type}__\\${sectionName}\\`\n   const semanticKey = \\`formkit-\\${sectionName}\\`\n   const familyKey = node.props.family ? \\`family:\\${node.props.family}__\\${sectionName}\\` : ''\n   const memoKey = \\`\\${key}__\\${familyKey}\\`\n   if (!(memoKey in classes)) {\n     const sectionClasses = classes[key] ?? globals[sectionName] ?? {}\n     sectionClasses[semanticKey] = true\n     if (familyKey in classes) {\n       classes[memoKey] = { ...classes[familyKey],  ...sectionClasses }\n     } else {\n       classes[memoKey] = sectionClasses\n     }\n   }\n   return stateScopedClasses(node, classes[memoKey] ?? { [semanticKey]: true })\n }\n\nfunction stateScopedClasses (node${\n    isTS ? ': FormKitNode' : ''\n  }, sectionClasses${\n    isTS ? ': Record<string, boolean>' : ''\n  })${isTS ? ': Record<string, boolean>' : ''} {\n  const invalid = node.context?.state.invalid\n  const errors = node.context?.state.errors\n  const shouldFilterInvalid = invalid === false\n  const shouldFilterErrors = errors === false\n  if (!shouldFilterInvalid && !shouldFilterErrors) return sectionClasses\n  const filteredClasses = { ...sectionClasses }\n  for (const className of Object.keys(filteredClasses)) {\n    if (shouldFilterInvalid && isStateClass(className, 'invalid')) {\n      filteredClasses[className] = false\n    }\n    if (shouldFilterErrors && isStateClass(className, 'errors')) {\n      filteredClasses[className] = false\n    }\n  }\n  return filteredClasses\n}\n\nfunction isStateClass (className${isTS ? ': string' : ''}, state${\n    isTS ? ': string' : ''\n  })${isTS ? ': boolean' : ''} {\n  return (\n    className.includes('group-data-[' + state) ||\n    className.includes('formkit-' + state)\n  )\n}\n\n/**\n * These classes have already been merged with globals using tailwind-merge\n * and are ready to be used directly in the theme.\n **/\nconst classes${\n    isTS ? ': Record<string, Record<string, boolean>>' : ''\n  } = ${JSON.stringify(classList, null, 2)};\n\n/**\n * Globals are merged prior to generating this file — these are included for\n * any other non-matching inputs.\n **/\nconst globals${\n    isTS ? ': Record<string, Record<string, boolean>>' : ''\n  } = ${JSON.stringify(globals, null, 2)};\n`\n\n  return addThemeChecksum(themeFile)\n}\n\nfunction addThemeChecksum(themeFile: string): string {\n  const withoutChecksum = themeFile.replace(/@checksum -[^\\n]*/, '@checksum -')\n  const checksum = createHash('sha256').update(withoutChecksum).digest('hex')\n  return withoutChecksum.replace(/@checksum -/, `@checksum - ${checksum}`)\n}\n\nfunction scopeGeneratedThemeStateClasses(themeFile: string): string {\n  if (\n    !themeFile.includes('return classes[memoKey] ?? { [semanticKey]: true }') ||\n    // Both anchors must exist — rewriting the call site without injecting the\n    // helper would emit a theme that throws ReferenceError on every lookup.\n    !themeFile.includes('\\n/**\\n * These classes have already been merged') ||\n    themeFile.includes('function stateScopedClasses')\n  ) {\n    return themeFile\n  }\n  const isTS = themeFile.includes(\"import type { FormKitNode }\")\n  const helper = `function stateScopedClasses (node${\n    isTS ? ': FormKitNode' : ''\n  }, sectionClasses${\n    isTS ? ': Record<string, boolean>' : ''\n  })${isTS ? ': Record<string, boolean>' : ''} {\n  const invalid = node.context?.state.invalid\n  const errors = node.context?.state.errors\n  const shouldFilterInvalid = invalid === false\n  const shouldFilterErrors = errors === false\n  if (!shouldFilterInvalid && !shouldFilterErrors) return sectionClasses\n  const filteredClasses = { ...sectionClasses }\n  for (const className of Object.keys(filteredClasses)) {\n    if (shouldFilterInvalid && isStateClass(className, 'invalid')) {\n      filteredClasses[className] = false\n    }\n    if (shouldFilterErrors && isStateClass(className, 'errors')) {\n      filteredClasses[className] = false\n    }\n  }\n  return filteredClasses\n}\n\nfunction isStateClass (className${isTS ? ': string' : ''}, state${\n    isTS ? ': string' : ''\n  })${isTS ? ': boolean' : ''} {\n  return (\n    className.includes('group-data-[' + state) ||\n    className.includes('formkit-' + state)\n  )\n}\n`\n  const scopedTheme = themeFile\n    .replace(\n      'return classes[memoKey] ?? { [semanticKey]: true }',\n      'return stateScopedClasses(node, classes[memoKey] ?? { [semanticKey]: true })'\n    )\n    .replace(\n      '\\n/**\\n * These classes have already been merged',\n      `\\n${helper}\\n/**\\n * These classes have already been merged`\n    )\n  return addThemeChecksum(scopedTheme)\n}\n\nfunction parseVariables(variables?: string): Record<string, string> {\n  if (!variables) return {}\n  return variables.split(',').reduce((vars, unparsed) => {\n    const [key, value] = unparsed.split('=')\n    vars[key] = value\n    return vars\n  }, {} as Record<string, string>)\n}\n\nfunction determineFilePath(fileName: string): string | undefined {\n  const extensions = ['.ts', '.js', '.mjs', '.cjs']\n  const paths = extensions.map((ext) => resolve(process.cwd(), fileName + ext))\n  return getPath(paths)\n}\n\nfunction getPath(paths: string[]): string | undefined {\n  const path = paths.shift()\n  if (existsSync(path!)) return path\n  return paths.length ? getPath(paths) : undefined\n}\n\nasync function localGeneratedTheme(): Promise<[string, string] | undefined> {\n  const path = determineFilePath('formkit.theme')\n  if (path) {\n    const code = await readFile(path, 'utf-8')\n    return [code, path]\n  }\n  return undefined\n}\n\nasync function localTheme(\n  themeName: string\n): Promise<Theme<ThemeOptions>> | never {\n  const extensions = ['.ts', '.js', '.mjs', '.cjs']\n  const paths = HAS_EXTENSION_RE.test(themeName)\n    ? [resolve(process.cwd(), themeName)]\n    : extensions.map((ext) => resolve(process.cwd(), themeName + ext))\n  const path = getPath(paths)\n  if (!path) error(`Could not find ${themeName}.`)\n\n  const jiti = createJiti(import.meta.url, { interopDefault: true })\n  const theme = (await jiti.import(path, {})) as\n    | Theme<ThemeOptions>\n    | { default?: Theme<ThemeOptions> }\n  const themeFunction = typeof theme === 'function' ? theme : theme.default\n  if (!themeFunction) error('Invalid theme file.')\n  return themeFunction\n}\n\nexport function extractThemeData(\n  theme: string\n): [string, string, string] | never {\n  const checksumStart = theme.indexOf('@checksum -')\n  const variablesStart = theme.indexOf('@variables -')\n  const themeStart = theme.indexOf('@theme -')\n  if (checksumStart === -1 || variablesStart === -1 || themeStart === -1) {\n    throw new Error('Unable to find checksum in theme file.')\n  }\n  const checksum = theme.substring(\n    checksumStart + 12,\n    theme.indexOf('\\n', checksumStart)\n  ) as string\n  const variables = theme.substring(\n    variablesStart + 13,\n    theme.indexOf('\\n', variablesStart)\n  ) as string\n  const themeName = theme.substring(\n    themeStart + 9,\n    theme.indexOf('\\n', themeStart)\n  ) as string\n  return [checksum, variables, themeName]\n}\n\nasync function apiTheme(\n  themeName: string,\n  endpoint: string,\n  variables: string,\n  isTS: boolean,\n  semantic: boolean,\n  spinner?: Ora\n): Promise<string> {\n  if (spinner) {\n    spinner.text = `🔨 building ${themeName}`\n  } else {\n    info(`⚡️ building theme: ${themeName}`)\n  }\n  const res = await fetch(`${endpoint}/generate`, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      theme: themeName,\n      variables,\n      ts: String(isTS),\n      semantic: String(semantic),\n    }),\n  })\n  if (res.ok) {\n    const code = normalizeGeneratedTheme(themeName, await res.text())\n    return semantic ? code : scopeGeneratedThemeStateClasses(code)\n  } else {\n    error(`Could not generate theme — ${res.statusText}`)\n  }\n}\n","import { execa, execaCommand } from 'execa'\nimport { mkdir, readFile, writeFile } from 'fs/promises'\nimport { dirname, resolve } from 'path'\nimport { cwd } from 'node:process'\nimport prompts from 'prompts'\nimport { error, green, __dirname, info } from './index'\nimport ora from 'ora'\nimport http from 'http'\nimport open from 'open'\nimport { isDirEmpty, readPackageJSON, writePackageJSON } from './utils'\nimport { buildTheme } from './theme'\n\nconst APP_URL = 'https://pro.formkit.com'\ninterface CreateAppOptions {\n  lang: 'ts' | 'js'\n  framework: 'nuxt' | 'vite'\n  pro?: string\n}\n\nasync function login(): Promise<string> {\n  const spinner = ora(`To login visit: ${APP_URL}/cli-login`).start()\n  await open(`${APP_URL}/cli-login`)\n  let server: http.Server | undefined\n  const token = await new Promise<string>((resolve, reject) => {\n    server = http\n      .createServer((req, res) => {\n        const urlObj = new URL(req.url as string, 'http://localhost')\n        const token = urlObj.searchParams.get('token') ?? undefined\n\n        if (token) {\n          resolve(token)\n          res.writeHead(302, {\n            Location: `${APP_URL}/cli-login?success=true`,\n          })\n          res.end()\n        } else {\n          res.writeHead(302, {\n            Location: `${APP_URL}/cli-login?success=false`,\n          })\n          reject('Login failed.')\n        }\n      })\n      .listen(5479)\n  })\n  server?.close()\n  spinner.stop()\n  return token\n}\n\nasync function createTeam(token: string) {\n  const res = await prompts({\n    type: 'text',\n    name: 'name',\n    message: 'Please enter a new team name:',\n    initial: 'My team',\n  })\n  const response = await fetch(`${APP_URL}/api/teams`, {\n    method: 'POST',\n    headers: {\n      Authorization: `Bearer ${token}`,\n      'Content-Type': 'application/json',\n      Accept: 'application/json',\n    },\n    body: JSON.stringify({\n      name: res.name,\n    }),\n  })\n  return await response.json()\n}\n\nasync function createProject(token: string, team: number) {\n  const res = await prompts({\n    type: 'text',\n    name: 'name',\n    message: 'Please enter a new project name:',\n    initial: 'My new project',\n  })\n  const response = await fetch(`${APP_URL}/api/teams/${team}/projects`, {\n    method: 'POST',\n    headers: {\n      Authorization: `Bearer ${token}`,\n      'Content-Type': 'application/json',\n      Accept: 'application/json',\n    },\n    body: JSON.stringify({\n      name: res.name,\n      license: 'development',\n    }),\n  })\n  if (!response.ok) {\n    error('Failed to create project.')\n  }\n  const data = await response.json()\n  if (data.data) {\n    info(\n      `Your project was created successfully with a development license — to upgrade to a production license visit ${APP_URL}`\n    )\n  }\n  return data.data\n}\n\nasync function selectProProject() {\n  try {\n    const token = (await login()) as string\n    const spinner = ora('Fetching account...').start()\n    const response = await fetch(`${APP_URL}/api/account`, {\n      headers: {\n        Authorization: `Bearer ${token}`,\n        'Content-Type': 'application/json',\n        Accept: 'application/json',\n      },\n    })\n    const data = await response.json()\n    spinner.stop()\n\n    const res = await prompts({\n      type: 'select',\n      name: 'team',\n      message: 'Select a team:',\n      choices: data.teams\n        .map(\n          (team: {\n            id: number\n            name: string\n            projects: Array<{ name: string; api_key: string }>\n          }) => ({\n            title: team.name,\n            value: team,\n          })\n        )\n        .concat([{ title: 'Create a new team', value: 'new' }]),\n    })\n\n    if (res.team === 'new') {\n      const team = await createTeam(token)\n      const project = await createProject(token, team.id)\n      return project.api_key\n    } else {\n      let { project } = await prompts({\n        type: 'select',\n        name: 'project',\n        message: 'Select a project:',\n        choices: res.team.projects\n          .map((team: { id: number; name: string }) => ({\n            title: team.name,\n            value: team,\n          }))\n          .concat([{ title: 'Create a new project', value: 'new' }]),\n      })\n\n      if (project === 'new') {\n        project = await createProject(token, res.team.id)\n      }\n      return project.api_key\n    }\n  } catch (err) {\n    console.log(err)\n    error('Login failed.')\n  }\n  return 'test'\n}\n\nexport async function createApp(\n  appName?: string,\n  options: Partial<CreateAppOptions> = {}\n): Promise<void> {\n  if (!appName) {\n    const res = await prompts({\n      type: 'text',\n      name: 'name',\n      message: 'Please enter a directory name for the project:',\n      initial: 'formkit-app',\n    })\n    appName = res.name as string\n  }\n\n  const isEmpty = await isDirEmpty(resolve(cwd(), `./${appName}`))\n  if (!isEmpty) {\n    error('Directory is not empty. Please choose a different name.')\n  }\n\n  if (!options.framework) {\n    const res = await prompts({\n      type: 'select',\n      name: 'framework',\n      message: 'What framework would you like to use?',\n      choices: [\n        { title: 'Vite', value: 'vite' },\n        { title: 'Nuxt', value: 'nuxt' },\n      ],\n      initial: 1,\n    })\n    options.framework = res.framework as 'vite' | 'nuxt'\n  }\n\n  if (!options.lang && options.framework === 'vite') {\n    const res = await prompts({\n      type: 'select',\n      name: 'lang',\n      message: 'What language should be used?',\n      choices: [\n        { title: 'TypeScript', value: 'ts' },\n        { title: 'JavaScript', value: 'js' },\n      ],\n      initial: 1,\n    })\n    options.lang = res.lang as 'ts' | 'js'\n  }\n\n  if (!options.pro) {\n    const res = await prompts([\n      {\n        type: 'toggle',\n        name: 'install_pro',\n        message: 'Would you like to install FormKit Pro?',\n        active: 'yes',\n        initial: true,\n        inactive: 'no',\n      },\n    ])\n    if (res.install_pro) {\n      options.pro = await selectProProject()\n    }\n  }\n\n  if (options.framework === 'vite') {\n    await execa('npx', [\n      '--yes',\n      'create-vite@latest',\n      appName,\n      '--template',\n      `vue${options.lang === 'ts' ? '-ts' : ''}`,\n    ])\n    await addDependency(appName, '@formkit/vue', 'latest')\n    await addDependency(appName, '@formkit/themes', 'latest')\n    await addDependency(appName, '@formkit/core', 'latest')\n    await addDependency(appName, '@formkit/icons', 'latest')\n    await addDependency(appName, 'tailwindcss', 'latest')\n    await addDependency(appName, '@tailwindcss/vite', 'latest')\n    if (options.pro) {\n      await addDependency(appName, '@formkit/pro')\n    }\n    await downloadTheme(appName, options.lang === 'ts')\n    await setupViteConfig(appName, options.lang === 'ts')\n    await addInitialApp(\n      appName,\n      'src/App.vue',\n      !!options.pro,\n      options.lang === 'ts'\n    )\n    await writeFile(\n      resolve(\n        cwd(),\n        `./${appName}/formkit.config.${options.lang ? 'ts' : 'mjs'}`\n      ),\n      buildFormKitConfig(options as CreateAppOptions)\n    )\n    await writeFile(\n      resolve(cwd(), `./${appName}/src/main.${options.lang}`),\n      buildMain(options.lang === 'ts')\n    )\n\n    green(`Created ${appName}!\n\n      To run your new app:\n      📁 cd ${appName}\n      ✅ npm install\n      🚀 npm run dev\n    `)\n  } else {\n    options.lang = 'ts'\n    info('Fetching nuxi cli...')\n    const subprocess = execaCommand(\n      `npx --yes nuxi@latest init --no-install \"${appName}\"`,\n      {\n        cwd: process.cwd(),\n        shell: true,\n        stdio: 'inherit',\n      }\n    )\n    subprocess.stdout?.pipe(process.stdout)\n    subprocess.stderr?.pipe(process.stderr)\n    await subprocess\n    await writeFile(\n      resolve(cwd(), `./${appName}/formkit.config.ts`),\n      buildFormKitConfig(options as CreateAppOptions)\n    )\n    await addDependency(appName, '@formkit/nuxt', 'latest')\n    await addDependency(appName, '@formkit/icons', 'latest')\n    await addDependency(appName, '@formkit/core', 'latest')\n    await addDependency(appName, '@formkit/vue', 'latest')\n    await addDependency(appName, '@formkit/themes', 'latest')\n    await addDependency(appName, 'tailwindcss', 'latest')\n    await addDependency(appName, '@tailwindcss/vite', 'latest')\n    if (options.pro) {\n      await addDependency(appName, '@formkit/pro')\n    }\n    await downloadTheme(appName, true)\n    await setupNuxtConfig(appName)\n    await addInitialApp(\n      appName,\n      'app/app.vue',\n      !!options.pro,\n      options.lang === 'ts'\n    )\n  }\n\n  process.exit()\n}\n\nasync function addInitialApp(\n  dirName: string,\n  component: string,\n  pro: boolean,\n  ts: boolean\n) {\n  const appPath = resolve(cwd(), `./${dirName}/${component}`)\n  // Ensure directory exists (for nested paths like app/app.vue)\n  await mkdir(dirname(appPath), { recursive: true })\n  await writeFile(\n    appPath,\n    `<script setup${ts ? ' lang=\"ts\"' : ''}>\nasync function submit() {\n  await new Promise(r => setTimeout(r, 1000))\n  alert('Submitted! 🎉')\n}\n</script>\n\n<template>\n  <div class=\"bg-white rounded-xl shadow-xl p-8 mx-auto my-16 max-w-[450px]\">\n    <img\n      src=\"https://pro.formkit.com/logo.svg\"\n      alt=\"FormKit Logo\"\n      width=\"244\"\n      height=\"50\"\n      class=\"mx-auto mb-8 w-48\"\n    >\n    <FormKit\n      type=\"form\"\n      #default=\"{ value }\"\n      @submit=\"submit\"\n    >\n      <FormKit\n        type=\"text\"\n        name=\"name\"\n        label=\"Name\"\n        help=\"What do people call you?\"\n      />\n      <FormKit\n        type=\"checkbox\"\n        name=\"flavors\"\n        label=\"Favorite ice cream flavors\"\n        :options=\"{\n          'vanilla': 'Vanilla',\n          'chocolate': 'Chocolate',\n          'strawberry': 'Strawberry',\n          'mint-chocolate-chip': 'Mint Chocolate Chip',\n          'rocky-road': 'Rocky Road',\n          'cookie-dough': 'Cookie Dough',\n          'pistachio': 'Pistachio',\n        }\"\n        validation=\"required|min:2\"\n      />\n      ${\n        (pro &&\n          `\n      <FormKit\n        type=\"repeater\"\n        name=\"invitees\"\n        label=\"Invitees\"\n        help=\"Who else should we invite to FormKit?\"\n      >\n        <FormKit\n          type=\"text\"\n          name=\"email\"\n          label=\"Email\"\n          validation=\"required|email\"\n        />\n      </FormKit>`) ||\n        ''\n      }\n      <FormKit\n        type=\"checkbox\"\n        name=\"agree\"\n        label=\"I agree FormKit is the best form authoring framework.\"\n      />\n      <pre class=\"font-mono text-sm p-4 bg-slate-100 mb-4\">{{ value }}</pre>\n    </FormKit>\n  </div>\n</template>\n`\n  )\n}\n\n/**\n * Adds a dependency to a new project’s package.json file.\n * @param dirName - The directory to find a package.json\n * @param dependency - An npm dependency to add.\n */\nasync function addDependency(\n  dirName: string,\n  dependency: string,\n  version = 'latest'\n) {\n  const packageJson = await readPackageJSON(dirName)\n  if (!('dependencies' in packageJson)) {\n    packageJson.dependencies = {}\n  }\n  packageJson.dependencies[dependency] = version\n  await writePackageJSON(dirName, packageJson)\n}\n\nasync function downloadTheme(appName: string, ts: boolean) {\n  process.chdir(resolve(cwd(), `./${appName}`))\n  await buildTheme({\n    theme: 'regenesis',\n    format: ts ? 'ts' : 'mjs',\n  })\n  process.chdir(resolve(cwd(), `../`))\n}\n\n/**\n * Sets up the Vite config with Tailwind CSS 4.\n * Creates the main.css file and modifies vite.config.ts.\n */\nasync function setupViteConfig(dirName: string, ts: boolean) {\n  const projectPath = resolve(cwd(), `./${dirName}`)\n\n  // Create src/assets/main.css with Tailwind 4 imports\n  const cssDir = resolve(projectPath, 'src/assets')\n  await mkdir(cssDir, { recursive: true })\n  await writeFile(\n    resolve(cssDir, 'main.css'),\n    `@import \"tailwindcss\";\n@source \"../../formkit.theme.${ts ? 'ts' : 'mjs'}\";\n@source \"../../formkit.config.${ts ? 'ts' : 'mjs'}\";\n\nbody {\n  @apply bg-gray-100;\n}\n`\n  )\n\n  // Modify vite.config.ts to add tailwindcss plugin\n  const viteConfigPath = resolve(projectPath, `vite.config.${ts ? 'ts' : 'js'}`)\n  let config = await readFile(viteConfigPath, 'utf-8')\n\n  // Add tailwindcss import at the top if not present\n  if (!config.includes('@tailwindcss/vite')) {\n    config = `import tailwindcss from '@tailwindcss/vite'\\n${config}`\n  }\n\n  // Add tailwindcss() to plugins array\n  config = config.replace(\n    /plugins:\\s*\\[([^\\]]*)\\]/,\n    (_match, plugins) => {\n      const existingPlugins = plugins.trim()\n      if (existingPlugins) {\n        return `plugins: [${existingPlugins}, tailwindcss()]`\n      }\n      return `plugins: [tailwindcss()]`\n    }\n  )\n\n  await writeFile(viteConfigPath, config)\n}\n\nfunction buildMain(ts: boolean) {\n  return `import { createApp } from 'vue'\nimport { plugin, defaultConfig } from '@formkit/vue'\nimport App from './App.vue'\nimport formKitConfig from '../formkit.config'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(plugin, defaultConfig(formKitConfig${ts ? ' as Parameters<typeof defaultConfig>[0]' : ''}))\napp.mount('#app')\n`\n}\n\n/**\n * Sets up the Nuxt config with FormKit and Tailwind CSS 4.\n * Creates the main.css file and modifies nuxt.config.ts.\n */\nasync function setupNuxtConfig(dirName: string) {\n  const projectPath = resolve(cwd(), `./${dirName}`)\n\n  // Create app/assets/css/main.css\n  const cssDir = resolve(projectPath, 'app/assets/css')\n  await mkdir(cssDir, { recursive: true })\n  await writeFile(\n    resolve(cssDir, 'main.css'),\n    `@import \"tailwindcss\";\n@source \"../../../formkit.theme.ts\";\n@source \"../../../formkit.config.ts\";\n\nbody {\n  @apply bg-gray-100;\n}\n`\n  )\n\n  // Modify nuxt.config.ts\n  const nuxtConfigPath = resolve(projectPath, 'nuxt.config.ts')\n  let config = await readFile(nuxtConfigPath, 'utf-8')\n\n  // Add tailwindcss import at the top if not present\n  if (!config.includes('@tailwindcss/vite')) {\n    config = `import tailwindcss from \"@tailwindcss/vite\";\\n\\n${config}`\n  }\n\n  // Find the defineNuxtConfig call and modify it\n  // This regex captures the content inside defineNuxtConfig({ ... })\n  const configMatch = config.match(/defineNuxtConfig\\(\\s*\\{([\\s\\S]*?)\\}\\s*\\)/)\n\n  if (configMatch) {\n    let configContent = configMatch[1]\n\n    // Check if modules exists and add @formkit/nuxt\n    if (configContent.includes('modules:')) {\n      // Add to existing modules array\n      configContent = configContent.replace(\n        /modules:\\s*\\[([^\\]]*)\\]/,\n        (_match, modules) => {\n          const existingModules = modules.trim()\n          if (existingModules) {\n            return `modules: [\\n    '@formkit/nuxt',\\n    ${existingModules}\\n  ]`\n          }\n          return `modules: [\\n    '@formkit/nuxt',\\n  ]`\n        }\n      )\n    } else {\n      // Add modules array\n      configContent = addConfigProperty(configContent, `modules: [\\n    '@formkit/nuxt',\\n  ]`)\n    }\n\n    // Add css array if not present\n    if (!configContent.includes('css:')) {\n      configContent = addConfigProperty(configContent, `css: ['./app/assets/css/main.css']`)\n    }\n\n    // Add or merge vite config\n    if (configContent.includes('vite:')) {\n      // Merge with existing vite config\n      configContent = configContent.replace(\n        /vite:\\s*\\{([^}]*)\\}/,\n        (match, viteContent) => {\n          if (viteContent.includes('plugins:')) {\n            // Add to existing plugins array\n            return match.replace(\n              /plugins:\\s*\\[([^\\]]*)\\]/,\n              (_pluginsMatch, plugins) => {\n                const existingPlugins = plugins.trim()\n                if (existingPlugins) {\n                  return `plugins: [\\n      tailwindcss(),\\n      ${existingPlugins}\\n    ]`\n                }\n                return `plugins: [\\n      tailwindcss(),\\n    ]`\n              }\n            )\n          } else {\n            // Add plugins to vite config\n            return `vite: {\\n    plugins: [\\n      tailwindcss(),\\n    ],${viteContent}}`\n          }\n        }\n      )\n    } else {\n      // Add vite config\n      configContent = addConfigProperty(configContent, `vite: {\\n    plugins: [\\n      tailwindcss(),\\n    ],\\n  }`)\n    }\n\n    // Reconstruct the config\n    config = config.replace(\n      /defineNuxtConfig\\(\\s*\\{[\\s\\S]*?\\}\\s*\\)/,\n      `defineNuxtConfig({${configContent}})`\n    )\n  }\n\n  await writeFile(nuxtConfigPath, config)\n}\n\n/**\n * Helper to add a property to the nuxt config content.\n */\nfunction addConfigProperty(configContent: string, property: string): string {\n  // Find a good insertion point - after any existing property or at the start\n  const trimmed = configContent.trim()\n  if (trimmed.length === 0) {\n    return `\\n  ${property},\\n`\n  }\n  // Add after the first line break or at the start\n  if (configContent.startsWith('\\n')) {\n    return `\\n  ${property},${configContent}`\n  }\n  return `\\n  ${property},\\n${configContent}`\n}\n\n/**\n * Builds the formkit.config.ts file.\n * @param options - Build the formkit.config.ts file for a Nuxt project.\n * @returns\n */\nfunction buildFormKitConfig(options: CreateAppOptions): string {\n  const imports = ['import { genesisIcons } from \"@formkit/icons\"']\n  imports.push('import { rootClasses } from \"./formkit.theme\"')\n  if (options.lang === 'ts' && options.framework === 'vite') {\n    imports.push(\"import { DefaultConfigOptions } from '@formkit/vue'\")\n  } else if (options.lang === 'ts' && options.framework === 'nuxt') {\n    imports.push(\"import { defineFormKitConfig } from '@formkit/vue'\")\n  }\n  const setup = []\n  let config = ''\n  if (options.pro) {\n    imports.push(\"import { createProPlugin, inputs } from '@formkit/pro'\")\n    setup.push('')\n    setup.push(`const pro = createProPlugin('${options.pro}', inputs)`)\n    setup.push('')\n    config += `  plugins: [pro]`\n  }\n  config += `${config ? ',\\n' : ''}  icons: { ...genesisIcons }`\n  config += `${config ? ',\\n' : ''}  config: { rootClasses }`\n\n  const viteExport = `const config${\n    options.lang === 'ts' ? ': DefaultConfigOptions' : ''\n  } = {\n${config}\n}\n\nexport default config`\n\n  const nuxtExport = `export default defineFormKitConfig(() => ({\n${config}\n}))`\n\n  let defaultExport = ''\n  if (options.framework === 'nuxt') {\n    defaultExport = nuxtExport\n  } else if (options.framework === 'vite') {\n    defaultExport = viteExport\n  }\n\n  const rawConfig = `${imports.join('\\n')}\n${setup.join('\\n')}\n${defaultExport}\n`\n\n  return rawConfig\n}\n","import prompts from 'prompts'\nimport { downloadTemplate } from 'giget'\nimport { slugify } from '@formkit/utils'\nimport { isDirEmpty } from './utils'\nimport { resolve } from 'pathe'\nimport { unlink, writeFile, readFile } from 'fs/promises'\nimport ora from 'ora'\nimport { green, info } from './index'\nimport { readPackageJSON, writePackageJSON, getGitUser } from './utils'\n\ninterface CreateThemeOptions {\n  name: string\n  packageName: string\n  dir: string\n}\n\nexport async function createTheme(\n  name: string,\n  initialOptions: Partial<CreateThemeOptions>\n) {\n  // Do some stuff here\n  const settings = await completeOptions(name, initialOptions)\n  const spinner = ora(`Downloading starter theme...`).start()\n  await downloadTemplate('github:formkit/theme-starter', {\n    dir: settings.dir,\n  })\n  spinner.text = `Customizing package.json...`\n  await customizePackageJson(settings)\n  spinner.text = `Writing LICENSE.txt...`\n  await writeLicense(settings)\n  spinner.text = `Updating theme meta...`\n  await updateMeta(settings)\n  spinner.stop()\n  green('Theme scaffolded successfully!')\n  info(\n    'Next steps:\\n1. cd into your theme directory\\n2. Run `pnpm install`\\n3. Run `pnpm dev`'\n  )\n}\n\nasync function customizePackageJson(options: CreateThemeOptions) {\n  const packageJson = await readPackageJSON(options.dir)\n  packageJson.name = options.packageName\n  packageJson.description = `A FormKit theme.`\n  packageJson.version = `0.0.1`\n  packageJson.contributors = [await getGitUser()]\n  await writePackageJSON(options.dir, packageJson)\n  unlink(resolve(options.dir, './pnpm-lock.yaml'))\n}\n\nasync function writeLicense(options: CreateThemeOptions) {\n  const user = await getGitUser()\n  const MIT = `MIT License\n\n  Copyright (c) ${new Date().getFullYear()}-present ${user}.\n\n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files (the \"Software\"), to deal\n  in the Software without restriction, including without limitation the rights\n  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n  copies of the Software, and to permit persons to whom the Software is\n  furnished to do so, subject to the following conditions:\n\n  The above copyright notice and this permission notice shall be included in all\n  copies or substantial portions of the Software.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n  SOFTWARE.`\n  await writeFile(resolve(options.dir, './LICENSE.txt'), MIT)\n}\n\nasync function updateMeta(options: CreateThemeOptions) {\n  const file = await readFile(resolve(options.dir, './src/theme.ts'), 'utf-8')\n  let newFile = file.replace(\n    /name:(?:\\s+)?['\"](?:.+?)['\"]/g,\n    `name: \"${options.name}\"`\n  )\n  newFile = newFile.replace(\n    'authorName: \"FormKit\"',\n    `authorName: \"${await getGitUser()}\"`\n  )\n  newFile = newFile.replace(\n    /description:(?:\\s+)?['\"](?:.+?)['\"]/g,\n    `description: \"YOUR THEME DESCRIPTION HERE\"`\n  )\n  await writeFile(resolve(options.dir, './src/theme.ts'), newFile)\n}\n\nasync function completeOptions(\n  name: string,\n  options: Partial<CreateThemeOptions>\n): Promise<CreateThemeOptions> {\n  while (!name) {\n    const { themeName } = await prompts({\n      type: 'text',\n      name: 'themeName',\n      message: 'The name of your theme, for example \"Monokai\"',\n    })\n    name = themeName\n  }\n\n  let packageName = options.packageName\n  if (!packageName) {\n    const { themePackageName } = await prompts({\n      type: 'text',\n      name: 'themePackageName',\n      message:\n        'The name of the package on npm, for example formkit-theme-monokai.',\n      initial: `formkit-theme-${slugify(name)}`,\n    })\n    packageName = themePackageName as string\n  }\n\n  let dirName = options.dir\n  let emptyDir = dirName\n    ? await isDirEmpty(resolve(process.cwd(), `./${dirName}`))\n    : false\n\n  while (!dirName || !emptyDir) {\n    const { directory } = await prompts({\n      type: 'text',\n      name: 'directory',\n      message: `The directory to create the theme in.`,\n      initial: options.dir || packageName,\n    })\n    dirName = directory\n    emptyDir = await isDirEmpty(resolve(process.cwd(), `./${dirName}`))\n  }\n  const dir = resolve(process.cwd(), `./${dirName}`)\n\n  return {\n    name,\n    packageName,\n    dir,\n  }\n}\n","import { access, cp, mkdir, readFile, rm, writeFile } from 'fs/promises'\nimport { homedir } from 'os'\nimport prompts, { PromptObject } from 'prompts'\nimport { dirname, join, resolve } from 'pathe'\nimport { fileURLToPath } from 'url'\nimport { execa } from 'execa'\nimport chalk from 'chalk'\nimport type { FormKitRuntime } from './skillDocs'\n\nexport interface SupportedAgent {\n  id: string\n  label: string\n}\n\nexport interface ProjectEnablementResult {\n  manualInstructions: Array<string>\n  updatedFiles: Array<string>\n}\n\nexport const SUPPORTED_AGENTS: Array<SupportedAgent> = [\n  { id: 'claude-code', label: 'Claude Code' },\n  { id: 'opencode', label: 'OpenCode' },\n  { id: 'codex', label: 'Codex' },\n  { id: 'cline', label: 'Cline' },\n  { id: 'gemini', label: 'Gemini' },\n  { id: 'qwen', label: 'Qwen' },\n  { id: 'amp', label: 'Amp' },\n  { id: 'pi', label: 'pi' },\n  { id: 'cursor', label: 'Cursor' },\n  { id: 'copilot', label: 'Copilot' },\n  { id: 'crush', label: 'Crush' },\n]\n\nconst FORMKIT_PRO_INPUT_ROUTES = [\n  '/inputs/autocomplete',\n  '/inputs/colorpicker',\n  '/inputs/currency',\n  '/inputs/datepicker',\n  '/inputs/dropdown',\n  '/inputs/mask',\n  '/inputs/rating',\n  '/inputs/repeater',\n  '/inputs/slider',\n  '/inputs/taglist',\n  '/inputs/toggle',\n  '/inputs/togglebuttons',\n  '/inputs/transfer-list',\n  '/inputs/unit',\n].join(', ')\n\nconst AUTO_ENABLE_FILES: Record<string, string> = {\n  'claude-code': 'CLAUDE.md',\n  codex: 'AGENTS.md',\n}\n\nconst FORMKIT_SECTION_START = '<!-- formkit-skill:start -->'\nconst FORMKIT_SECTION_END = '<!-- formkit-skill:end -->'\n\nexport async function setupSkill(): Promise<void> {\n  try {\n    const projectRoot = await resolveProjectRoot(process.cwd())\n    const detectedRuntime =\n      (await detectProjectRuntime(process.cwd())) ??\n      (projectRoot === process.cwd()\n        ? null\n        : await detectProjectRuntime(projectRoot))\n    const questions: Array<PromptObject<'runtime' | 'agents'>> = []\n\n    if (!detectedRuntime) {\n      questions.push({\n        type: 'select',\n        name: 'runtime',\n        message: 'Which FormKit runtime should this project use by default?',\n        choices: [\n          { title: 'React / Astro (React)', value: 'react' },\n          { title: 'Vue / Nuxt', value: 'vue' },\n        ],\n        initial: 0,\n      })\n    }\n\n    questions.push({\n      type: 'multiselect',\n      name: 'agents',\n      message: 'Enable FormKit guidance on this project for which coding agents?',\n      choices: SUPPORTED_AGENTS.map((agent) => ({\n        title: agent.label,\n        value: agent.id,\n        selected: agent.id === 'codex',\n      })),\n      instructions: false,\n      min: 0,\n    })\n\n    const response = await prompts(questions, {\n      onCancel: () => {\n        throw new Error('cancelled')\n      },\n    })\n\n    const runtime = (detectedRuntime ?? response.runtime) as FormKitRuntime\n    const selectedAgents = (response.agents ?? []) as Array<string>\n    const skillPath = await installFormKitSkill()\n    const enablement = await enableAgentsForProject({\n      agents: selectedAgents,\n      projectRoot,\n      runtime,\n      skillPath,\n    })\n\n    printSummary({\n      enablement,\n      projectRoot,\n      runtime,\n      selectedAgents,\n      skillPath,\n    })\n  } catch (error) {\n    if (error instanceof Error && error.message === 'cancelled') {\n      console.log(chalk.yellow('FormKit skill installation cancelled.'))\n      return\n    }\n    throw error\n  }\n}\n\nexport async function detectProjectRuntime(\n  startDir: string\n): Promise<FormKitRuntime | null> {\n  const packageJsonPath = await findNearestPackageJson(startDir)\n  if (!packageJsonPath) return null\n\n  const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8'))\n  const deps = {\n    ...packageJson.dependencies,\n    ...packageJson.devDependencies,\n    ...packageJson.optionalDependencies,\n    ...packageJson.peerDependencies,\n  }\n\n  const hasReact = Boolean(\n    deps.react || deps['react-dom'] || deps['@formkit/react'] || deps.astro\n  )\n  const hasVue = Boolean(\n    deps.vue || deps.nuxt || deps['@formkit/vue'] || deps['@formkit/nuxt']\n  )\n\n  if (hasReact === hasVue) return null\n  return hasReact ? 'react' : 'vue'\n}\n\nexport async function installFormKitSkill(options: {\n  codexHome?: string\n  sourceDir?: string\n} = {}): Promise<string> {\n  const sourceDir = options.sourceDir ?? (await getFormKitSkillSourceDir())\n  const codexHome = options.codexHome ?? getCodexHome()\n  const destination = resolve(codexHome, 'skills', 'formkit')\n\n  await mkdir(dirname(destination), { recursive: true })\n  await rm(destination, { recursive: true, force: true })\n  await cp(sourceDir, destination, { recursive: true })\n\n  return destination\n}\n\nexport async function enableAgentsForProject(options: {\n  agents: Array<string>\n  projectRoot: string\n  runtime: FormKitRuntime\n  skillPath: string\n}): Promise<ProjectEnablementResult> {\n  const result: ProjectEnablementResult = {\n    manualInstructions: [],\n    updatedFiles: [],\n  }\n\n  for (const agentId of options.agents) {\n    const autoEnableFile = AUTO_ENABLE_FILES[agentId]\n    const agent = SUPPORTED_AGENTS.find((candidate) => candidate.id === agentId)\n    if (!agent) continue\n\n    if (!autoEnableFile) {\n      result.manualInstructions.push(\n        renderManualEnablementInstructions(agent, options.runtime, options.skillPath)\n      )\n      continue\n    }\n\n    const filePath = resolve(options.projectRoot, autoEnableFile)\n    await upsertProjectEnablementFile(filePath, options.runtime, options.skillPath)\n    result.updatedFiles.push(filePath)\n  }\n\n  return result\n}\n\nexport function renderProjectInstructionSection(\n  runtime: FormKitRuntime,\n  skillPath: string\n): string {\n  const runtimeUrl =\n    runtime === 'react'\n      ? 'https://formkit.com/<page>.react.md'\n      : 'https://formkit.com/<page>.vue.md'\n\n  return [\n    '## FormKit',\n    `Use the \\`formkit\\` skill for FormKit work in this project.`,\n    `- Skill file: \\`${join(skillPath, 'SKILL.md')}\\``,\n    `- Docs index: \\`${join(skillPath, 'references/docs-index.md')}\\``,\n    `- Default runtime docs: \\`${runtimeUrl}\\``,\n    '- Prefer declarative FormKit patterns. Avoid event listeners unless there is no node- or state-driven alternative.',\n    '- Prefer Tailwind CSS 4 for FormKit styling when the project can support it.',\n    '- Avoid Genesis by default. Prefer generating Regenesis with `formkit theme --theme=regenesis`.',\n    '- `formkit theme --theme=regenesis` is the non-interactive way to generate the Regenesis-based `formkit.theme` file.',\n    '- For theme setup, wire `rootClasses` from `./formkit.theme` and add the `formkit.theme` file to Tailwind 4 via `@source` in the main CSS entry.',\n    `- Distinguish core inputs from Pro inputs. Current Pro routes: ${FORMKIT_PRO_INPUT_ROUTES}.`,\n    '- Pro inputs require `@formkit/pro` and a FormKit Pro key from `https://pro.formkit.com`.',\n    '- FormKit Pro keys are client-side project keys, not server-private secrets. Prefer hard-coded codebase config or another intentional client-exposed config surface.',\n    '- If you use or recommend Pro, say that clearly in the user-facing summary and mention the `@formkit/pro` plus Pro key requirement.',\n    '- For backend errors, prefer one adapter/helper that maps server payloads to FormKit form errors plus dot-notation input paths like `group.name` or `group.list.2.name`, then call `node.setErrors()` or framework `setErrors()`.',\n  ].join('\\n')\n}\n\nexport function renderManualEnablementInstructions(\n  agent: SupportedAgent,\n  runtime: FormKitRuntime,\n  skillPath: string\n): string {\n  return [\n    `${agent.label}: add this to the agent's project instructions or memory for the repository:`,\n    '```md',\n    renderProjectInstructionSection(runtime, skillPath),\n    '```',\n  ].join('\\n')\n}\n\nexport function upsertBoundedSection(\n  source: string,\n  section: string\n): string {\n  const boundedSection = [\n    FORMKIT_SECTION_START,\n    section.trim(),\n    FORMKIT_SECTION_END,\n  ].join('\\n')\n  const matcher = new RegExp(\n    `${escapeForRegex(FORMKIT_SECTION_START)}[\\\\s\\\\S]*?${escapeForRegex(\n      FORMKIT_SECTION_END\n    )}`,\n    'u'\n  )\n\n  if (matcher.test(source)) {\n    return source.replace(matcher, boundedSection)\n  }\n\n  if (!source.trim()) {\n    return `${boundedSection}\\n`\n  }\n\n  return `${source.replace(/\\s*$/u, '')}\\n\\n${boundedSection}\\n`\n}\n\nasync function upsertProjectEnablementFile(\n  filePath: string,\n  runtime: FormKitRuntime,\n  skillPath: string\n): Promise<void> {\n  const existing = (await tryRead(filePath)) ?? ''\n  const next = upsertBoundedSection(\n    existing,\n    renderProjectInstructionSection(runtime, skillPath)\n  )\n  await writeFile(filePath, next, 'utf8')\n}\n\nasync function resolveProjectRoot(cwd: string): Promise<string> {\n  try {\n    const result = await execa('git', ['rev-parse', '--show-toplevel'], { cwd })\n    return result.stdout.trim() || cwd\n  } catch {\n    return cwd\n  }\n}\n\nasync function findNearestPackageJson(startDir: string): Promise<string | null> {\n  let current = resolve(startDir)\n\n  while (true) {\n    const candidate = resolve(current, 'package.json')\n    if (await pathExists(candidate)) {\n      return candidate\n    }\n\n    const parent = dirname(current)\n    if (parent === current) {\n      return null\n    }\n\n    current = parent\n  }\n}\n\nfunction getCodexHome(): string {\n  return resolve(process.env.CODEX_HOME || join(homedir(), '.codex'))\n}\n\nasync function getFormKitSkillSourceDir(): Promise<string> {\n  const fileUrl = new URL('../assets/skills/formkit', import.meta.url)\n\n  if (fileUrl.protocol === 'file:') {\n    return fileURLToPath(fileUrl)\n  }\n\n  const candidates = [\n    resolve(process.cwd(), 'packages/cli/assets/skills/formkit'),\n    resolve(process.cwd(), 'assets/skills/formkit'),\n  ]\n\n  for (const candidate of candidates) {\n    if (await pathExists(candidate)) {\n      return candidate\n    }\n  }\n\n  throw new Error('Unable to locate the bundled FormKit skill assets.')\n}\n\nasync function pathExists(path: string): Promise<boolean> {\n  try {\n    await access(path)\n    return true\n  } catch {\n    return false\n  }\n}\n\nasync function tryRead(path: string): Promise<string | null> {\n  try {\n    return await readFile(path, 'utf8')\n  } catch {\n    return null\n  }\n}\n\nfunction printSummary(options: {\n  enablement: ProjectEnablementResult\n  projectRoot: string\n  runtime: FormKitRuntime\n  selectedAgents: Array<string>\n  skillPath: string\n}): void {\n  console.log(chalk.greenBright(`Installed FormKit skill at ${options.skillPath}`))\n  console.log(\n    chalk.blue(\n      `Using ${options.runtime === 'react' ? 'React' : 'Vue/Nuxt'} docs by default for ${options.projectRoot}`\n    )\n  )\n\n  if (options.enablement.updatedFiles.length) {\n    console.log(\n      chalk.greenBright(\n        `Updated project instructions: ${options.enablement.updatedFiles.join(', ')}`\n      )\n    )\n  }\n\n  const manualAgents = options.selectedAgents\n    .filter((agentId) => !(agentId in AUTO_ENABLE_FILES))\n    .map((agentId) => SUPPORTED_AGENTS.find((agent) => agent.id === agentId)?.label)\n    .filter(Boolean)\n\n  if (manualAgents.length) {\n    console.log(\n      chalk.yellow(\n        `Manual enablement is still required for: ${manualAgents.join(', ')}`\n      )\n    )\n  }\n\n  if (options.enablement.manualInstructions.length) {\n    console.log('')\n    for (const instructions of options.enablement.manualInstructions) {\n      console.log(instructions)\n      console.log('')\n    }\n  }\n\n  console.log(\n    chalk.blue(\n      `FormKit docs index: ${join(options.skillPath, 'references/docs-index.md')}`\n    )\n  )\n  console.log(chalk.blue('Restart Codex to pick up new skills.'))\n}\n\nfunction escapeForRegex(value: string): string {\n  return value.replace(/[.*+?^${}()|[\\]\\\\]/gu, '\\\\$&')\n}\n","import { FORMKIT_VERSION } from '@formkit/core'\nimport { Command } from 'commander'\nimport chalk from 'chalk'\nimport { readFileSync } from 'fs'\nimport { exportInput } from './exportInput'\nimport { createApp } from './createApp'\nimport { buildTheme } from './theme'\nimport { createTheme } from './createTheme'\nimport { setupSkill } from './skill'\nimport { dirname, resolve } from 'path'\nimport { fileURLToPath } from 'url'\nimport { execa } from 'execa'\n\nconst __filename = fileURLToPath(import.meta.url)\nconst cliVersion =\n  FORMKIT_VERSION === '__FKV__'\n    ? JSON.parse(\n        readFileSync(resolve(dirname(__filename), '../package.json'), 'utf8')\n      ).version\n    : FORMKIT_VERSION\n\n/**\n * @internal\n */\nexport const __dirname = dirname(__filename)\n\n/**\n * @internal\n */\nexport const red = (m: string): void =>\n  console.log(`${chalk.red.bold('[FormKit Error]: ')} ${chalk.red(m)}`)\n\n/**\n * @internal\n */\nexport const info = (m: string): void => {\n  console.log(`${chalk.blue(m)}`)\n}\n\n/**\n * @internal\n */\nexport const warning = (m: string): void => {\n  console.log(`${chalk.yellow.bold('[FormKit Warn]: ')} ${chalk.yellow(m)}`)\n}\n\n/**\n * @internal\n */\nexport const green = (m: string): void => {\n  console.log(chalk.greenBright(m))\n}\n\nconst program = new Command()\n\nprogram\n  .name('FormKit CLI')\n  .description('The official FormKit command line utility.')\n  .version(cliVersion)\n\nprogram\n  .command('export')\n  .argument(\n    '[input]',\n    'An input to export (from @formkit/inputs, like \"text\" or \"select\")'\n  )\n  .description(\n    'Export an input from @formkit/inputs to a local file for modification.'\n  )\n  .option('-d, --dir <dir>', 'The directory to export inputs to')\n  .option('-l, --lang <ts|js>', 'Export as TypeScript (ts) or JavaScript (js)')\n  .action(exportInput)\n\nprogram\n  .command('create-app')\n  .argument('[name]', 'Creates a vite application with this name.')\n  .option(\n    '-l, --lang <ts|js>',\n    'Create a TypeScript (ts) or JavaScript (js) app.'\n  )\n  .option('-f, --framework <vite|nuxt>', 'Create a new Vite or Nuxt app.')\n  .option(\n    '--pro <key>',\n    'Creates the project with FormKit pro installed if a project key is provided.'\n  )\n  .description('Creates a new Vue 3 Vite application with FormKit installed.')\n  .action(createApp)\n\nprogram\n  .command('theme')\n  .option(\n    '--theme <theme>',\n    'A published theme or local npm theme package identifier.'\n  )\n  .option(\n    '-s',\n    '--semantic',\n    'Build the theme as semantic classes rather than utility classes.'\n  )\n  .option(\n    '--variables <variables>',\n    'A comma separated list of variables to include in the theme. For example: --variables \"primaryColor=#221233, padding=10\"'\n  )\n  .option(\n    '--api <url>',\n    'An alternative API endpoint to use for theme fetching and generation.'\n  )\n  .description(\n    'Creates a FormKit theme file (formkit.theme.ts) using a known theme and variables.'\n  )\n  .action(buildTheme)\n\nprogram\n  .command('skill')\n  .description(\n    'Install the FormKit coding-agent skill and optionally enable it for this project.'\n  )\n  .action(setupSkill)\n\nprogram\n  .command('create-theme')\n  .argument('[name]', 'The public name of the theme, for example \"Monokai\".')\n  .option(\n    '--package-name <packageName>',\n    'The name of the package on npm, for example formkit-theme-monokai.'\n  )\n  .option('--dir <directory>', 'The relative directory to create the theme in.')\n  .description('Scaffold a new theme from @formkit/theme-starter.')\n  .action(createTheme)\n\n/**\n * @internal\n */\nexport async function cli(): Promise<void> {\n  const res = await execa('npx', ['--version'])\n  const [major] = res.stdout.trim().split('.')\n  if (Number(major) < 7) {\n    error(`Your npm version must be 7 or higher (found ${res.stdout.trim()}).`)\n  }\n  program.parse()\n}\n\nexport * from './theme'\nexport * from './skill'\n\n/**\n * @internal\n */\nexport function error(message: string): never {\n  red(message)\n  process.exit(1)\n}\n"]}