@planetaexo/design-system 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/separator.tsx","../src/components/FloatingInput.tsx","../src/lib/phone-countries.ts","../src/components/PhoneCountrySelect.tsx","../src/components/Offer.tsx"],"names":["twMerge","clsx","jsx","SeparatorPrimitive","React","jsxs","React2","_a","ChevronDownIcon","React3","CalendarIcon","MapPinIcon","Fragment","CheckIcon","XIcon","MailIcon","PhoneIcon","CheckCircle2Icon","ChevronRightIcon","UsersIcon","ArrowLeftIcon","MapIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACCA,SAAS,UAAU,EAAA,EAIU;AAJV,EAAA,IAAA,EAAA,GAAA,EAAA,EACjB;AAAA,IAAA,SAAA;AAAA,IACA,WAAA,GAAc;AAAA,GARhB,GAMmB,EAAA,EAGd,KAAA,GAAA,SAAA,CAHc,EAAA,EAGd;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEC,cAAA;AAAA,IAACC,mBAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,8GAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;ACRO,IAAM,aAAA,GAAsBC,iBAAA,CAAA,UAAA;AAAA,EACjC,CAAC,IAAqD,GAAA,KAAQ;AAA7D,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,KAAA,EAAO,KAAA,EAAO,EAAA,EAAI,SAAA,EAAW,QAAA,EAflC,GAeG,EAAA,EAA4C,KAAA,GAAA,SAAA,CAA5C,EAAA,EAA4C,CAA1C,OAAA,EAAO,OAAA,EAAO,MAAI,WAAA,EAAW,UAAA,CAAA,CAAA;AAC9B,IAAA,MAAM,OAAA,GAAU,kBAAYA,iBAAA,CAAA,KAAA,EAAM;AAElC,IAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EACtC,QAAA,EAAA;AAAA,sBAAAF,cAAAA;AAAA,QAAC,OAAA;AAAA,QAAA,cAAA,CAAA;AAAA,UACC,EAAA,EAAI,OAAA;AAAA,UACJ,GAAA;AAAA,UACA,WAAA,EAAY,GAAA;AAAA,UACZ,SAAA,EAAW,EAAA;AAAA,YACT,iEAAA;AAAA,YACA,kDAAA;AAAA,YACA,2CAAA;AAAA,YACA,yEAAA;AAAA,YACA,KAAA,IAAS;AAAA,WACX;AAAA,UACA;AAAA,SAAA,EACI,KAAA;AAAA,OACN;AAAA,sBACAG,eAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,YACT,8DAAA;AAAA,YACA,qEAAA;AAAA;AAAA,YAEA,sFAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YACA,4BAAYH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAsB,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAAA,OACtD;AAAA,MACC,yBACCA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yCAAyC,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EAEhE,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,aAAA,CAAc,WAAA,GAAc,eAAA;AAYrB,IAAM,cAAA,GAAuBE,iBAAA,CAAA,UAAA;AAAA,EAClC,CAAC,IAA+D,GAAA,KAAQ;AAAvE,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,KAAA,EAAO,KAAA,EAAO,EAAA,EAAI,SAAA,EAAW,UAAU,QAAA,EAnE5C,GAmEG,EAAA,EAAsD,KAAA,GAAA,SAAA,CAAtD,IAAsD,CAApD,OAAA,EAAO,OAAA,EAAO,IAAA,EAAI,aAAW,UAAA,EAAU,UAAA,CAAA,CAAA;AACxC,IAAA,MAAM,OAAA,GAAU,kBAAYA,iBAAA,CAAA,KAAA,EAAM;AAElC,IAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EACtC,QAAA,EAAA;AAAA,sBAAAF,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA,aAAA,CAAA,cAAA,CAAA;AAAA,UACC,EAAA,EAAI,OAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,EAAA;AAAA,YACT,iFAAA;AAAA,YACA,kDAAA;AAAA,YACA,mBAAA;AAAA,YACA,yEAAA;AAAA,YACA,KAAA,IAAS;AAAA,WACX;AAAA,UACA;AAAA,SAAA,EACI,KAAA,CAAA,EAXL;AAAA,UAaE;AAAA,SAAA;AAAA,OACH;AAAA,sBAEAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEACb,QAAA,kBAAAA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,+BAAA;AAAA,UACV,OAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAY,GAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,cAAA,EAAe,OAAA;AAAA,UAEf,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA,OACzB,EACF,CAAA;AAAA,sBACAG,eAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,YACT,8DAAA;AAAA,YACA,qEAAA;AAAA,YACA,sFAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YACA,4BAAYH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAsB,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAAA,OACtD;AAAA,MACC,yBACCA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yCAAyC,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EAEhE,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;AChHtB,IAAM,cAAA,GAAiC;AAAA,EAC5C,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAkB,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAO;AAAA,EACjE,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAkB,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAO;AAAA,EACjE,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAkB,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAO;AAAA,EACjE,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAAkB,IAAA,EAAM,oBAAA,EAAQ,MAAM,IAAA,EAAO;AAAA,EACjE,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kBAAkB,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAO;AAAA,EACjE,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAkB,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA;AAC5D,CAAA;AAGO,IAAM,UAAA,GAA6B;AAAA,EACxC,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,uBAA+B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,0BAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,IAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,4BAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,sBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,qBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,IAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,oBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,mBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,oBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,IAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,yBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gCAA+B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAO;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kCAA+B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,mBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,uBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,wBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,KAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA,EAAQ;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAA8B,IAAA,EAAM,oBAAA,EAAQ,MAAM,MAAA;AACxE,CAAA;AAEO,IAAM,eAAA,GAAkC,CAAC,GAAG,cAAA,EAAgB,GAAG,UAAU,CAAA;ACrMzE,SAAS,kBAAA,CAAmB;AAAA,EACjC,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAjB5B,EAAA,IAAA,EAAA;AAkBE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUI,2BAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,YAAA,GAAqBA,yBAAuB,IAAI,CAAA;AACtD,EAAA,MAAM,OAAA,GAAgBA,yBAAuB,IAAI,CAAA;AAEjD,EAAA,MAAM,QAAA,GAAA,CACJ,EAAA,GAAA,eAAA,CAAgB,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,KAAK,CAAA,KAA5C,IAAA,GAAA,EAAA,GAAiD,eAAA,CAAgB,CAAC,CAAA;AAGpE,EAAMA,4BAAU,MAAM;AACpB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AA5BvC,MAAA,IAAAC,GAAAA;AA6BM,MAAA,IAAI,EAAA,CAACA,MAAA,YAAA,CAAa,OAAA,KAAb,gBAAAA,GAAAA,CAAsB,QAAA,CAAS,EAAE,MAAA,CAAA,CAAA,EAAiB;AACrD,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,OAAO,CAAA;AAC9C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,OAAO,CAAA;AAAA,EAChE,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAGT,EAAMD,4BAAU,MAAM;AACpB,IAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,OAAA,CAAQ,OAAA,EAAS;AAC/B,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,OAAA,CAAQ,aAAA,CAAc,sBAAsB,CAAA;AACrE,IAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,cAAA,CAAe,EAAE,KAAA,EAAO,SAAA,EAAU,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAiB;AACrC,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,uBACED,gBAAC,KAAA,EAAA,EAAI,GAAA,EAAK,cAAc,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS,CAAA,EAElE,QAAA,EAAA;AAAA,oBAAAA,eAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAChC,eAAA,EAAc,SAAA;AAAA,QACd,eAAA,EAAe,IAAA;AAAA,QACf,SAAA,EAAW,EAAA;AAAA,UACT,sFAAA;AAAA,UACA,wDAAA;AAAA,UACA,yEAAA;AAAA,UACA,IAAA,IAAQ;AAAA,SACV;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,mBAAS,IAAA,EAAK,CAAA;AAAA,0BACxDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EAAgB,mBAAS,IAAA,EAAK,CAAA;AAAA,0BAC9CA,cAAAA;AAAA,YAACM,2BAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,wDAAA;AAAA,gBACA,IAAA,IAAQ;AAAA;AACV;AAAA;AACF;AAAA;AAAA,KACF;AAAA,IAGC,wBACCH,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,OAAA;AAAA,QACL,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,2CAAA;AAAA,UACA,+BAAA;AAAA,UACA,yDAAA;AAAA,UACA;AAAA,SACF;AAAA,QAGC,QAAA,EAAA;AAAA,UAAA,cAAA,CAAe,GAAA,CAAI,CAAC,CAAA,qBACnBA,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,eAAA,EAAe,EAAE,IAAA,KAAS,KAAA;AAAA,cAC1B,OAAA,EAAS,MAAM,YAAA,CAAa,CAAA,CAAE,IAAI,CAAA;AAAA,cAClC,SAAA,EAAW,EAAA;AAAA,gBACT,sEAAA;AAAA,gBACA,oEAAA;AAAA,gBACA,CAAA,CAAE,SAAS,KAAA,IAAS;AAAA,eACtB;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAA,EAAmC,YAAE,IAAA,EAAK,CAAA;AAAA,gCAC1DA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EACb,YAAE,IAAA,EACL,CAAA;AAAA,gCACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,YAAE,IAAA,EAAK;AAAA;AAAA,aAAA;AAAA,YAf9C,CAAA,CAAE;AAAA,WAiBV,CAAA;AAAA,0BAGDA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAsB,CAAA;AAAA,UAGpC,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,qBACfG,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,eAAA,EAAe,EAAE,IAAA,KAAS,KAAA;AAAA,cAC1B,OAAA,EAAS,MAAM,YAAA,CAAa,CAAA,CAAE,IAAI,CAAA;AAAA,cAClC,SAAA,EAAW,EAAA;AAAA,gBACT,sEAAA;AAAA,gBACA,oEAAA;AAAA,gBACA,CAAA,CAAE,SAAS,KAAA,IAAS;AAAA,eACtB;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAA,EAAmC,YAAE,IAAA,EAAK,CAAA;AAAA,gCAC1DA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EACb,YAAE,IAAA,EACL,CAAA;AAAA,gCACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,YAAE,IAAA,EAAK;AAAA;AAAA,aAAA;AAAA,YAf9C,CAAA,CAAE;AAAA,WAiBV;AAAA;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ;ACpCO,SAAS,kBAAA,CAAmB,EAAE,SAAA,EAAU,EAAsC;AApGrF,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAqGE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUO,iBAAA,CAAA,QAAA;AAAA,IAClC,IAAI,GAAA,CAAA,CAAI,EAAA,GAAA,CAAA,EAAA,GAAA,SAAA,CAAU,SAAA,KAAV,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,OAAO,CAAC,CAAA,KAAM,CAAA,CAAE,cAAA,CAAA,CAAgB,IAAI,CAAC,CAAA,KAAM,EAAE,EAAA,CAAA,KAAlE,IAAA,GAAA,EAAA,GAAyE,EAAE;AAAA,GACrF;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,EAAA,KACtB,UAAA,CAAW,CAAC,IAAA,KAAS;AACnB,IAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,IAAA,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA,GAAI,IAAA,CAAK,OAAO,EAAE,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA;AAC5C,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AAEH,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EAEb,QAAA,EAAA;AAAA,oBAAAH,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EAEb,QAAA,kBAAAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAK,SAAA,CAAU,KAAA;AAAA,QACf,GAAA,EAAA,CAAK,EAAA,GAAA,SAAA,CAAU,QAAA,KAAV,IAAA,GAAA,EAAA,GAAsB,SAAA,CAAU,KAAA;AAAA,QACrC,SAAA,EAAU;AAAA;AAAA,KACZ,EACF,CAAA;AAAA,oBAEAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EAEb,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sDAAA,EACZ,QAAA,EAAA;AAAA,QAAA,SAAA,CAAU,SAAA,mBACTH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6HAAA,EACb,QAAA,EAAA,SAAA,CAAU,SAAA,EACb,CAAA,mBAEAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA;AAAA,QAEP,SAAA,CAAU,4BACTA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAS,SAAA,CAAU,QAAA;AAAA,YACnB,SAAA,EAAU,iGAAA;AAAA,YACX,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EAEJ,CAAA;AAAA,sBAGAA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oEAAA,EACX,oBAAU,KAAA,EACb,CAAA;AAAA,sBAGAG,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gFAAA,EACX,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAACQ,wBAAA,EAAA,EAAa,SAAA,EAAU,mCAAA,EAAoC,CAAA;AAAA,QAC3D,SAAA,CAAU,QAAA;AAAA,QAAS,UAAA;AAAA,QAAI,SAAA,CAAU;AAAA,OAAA,EACpC,CAAA;AAAA,MAGC,UAAU,QAAA,oBACTL,eAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,gFAAA,EACX,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAACS,sBAAA,EAAA,EAAW,SAAA,EAAU,mCAAA,EAAoC,CAAA;AAAA,QACzD,SAAA,CAAU;AAAA,OAAA,EACb,CAAA;AAAA,MAID,SAAA,CAAU,SAAA,IAAa,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,qBACnDN,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oFAAA,EAAqF,QAAA,EAAA,qBAAA,EAElG,CAAA;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACZ,oBAAU,SAAA,CAAU,GAAA,CAAI,CAAC,GAAA,qBACxBG,eAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,gDAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAH,cAAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,UAAA;AAAA,kBACL,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,GAAA,CAAI,EAAE,CAAA;AAAA,kBAC3B,QAAA,EAAU,MAAM,cAAA,CAAe,GAAA,CAAI,EAAE,CAAA;AAAA,kBACrC,SAAA,EAAU;AAAA;AAAA,eACZ;AAAA,8BACAG,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iGAAA,EACb,QAAA,EAAA;AAAA,gBAAA,GAAA,CAAI,KAAA;AAAA,gBAAO,GAAA;AAAA,gCACZA,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,QAAA,EAAA;AAAA,kBAAA,GAAA;AAAA,kBAAE,GAAA,CAAI,cAAA;AAAA,kBAAe;AAAA,iBAAA,EAAC;AAAA,eAAA,EAChE;AAAA;AAAA,WAAA;AAAA,UAZK,GAAA,CAAI;AAAA,SAcZ,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA,MAID,SAAA,CAAU,WAAA,oBACTA,eAAAA,CAAAO,qBAAA,EACE,QAAA,EAAA;AAAA,wBAAAV,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,MAAA,EAAO,CAAA;AAAA,wBAC5BG,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yFAAA,EAA0F,QAAA,EAAA,WAAA,EAEvG,CAAA;AAAA,0BACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wDAAA,EACV,oBAAU,WAAA,EACb;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,MAID,SAAA,CAAU,QAAA,IAAY,SAAA,CAAU,QAAA,CAAS,MAAA,GAAS,qBACjDG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gDAAA,EAAiD,QAAA,EAAA,uBAAA,EAAkB,CAAA;AAAA,wBACjFA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uBACX,QAAA,EAAA,SAAA,CAAU,QAAA,CAAS,GAAA,CAAI,CAAC,MAAM,CAAA,qBAC7BG,eAAAA,CAAC,IAAA,EAAA,EAAW,WAAU,6DAAA,EACpB,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAACW,qBAAA,EAAA,EAAU,SAAA,EAAU,sCAAA,EAAuC,CAAA;AAAA,UAC3D;AAAA,SAAA,EAAA,EAFM,CAGT,CACD,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA,MAID,SAAA,CAAU,WAAA,IAAe,SAAA,CAAU,WAAA,CAAY,MAAA,GAAS,qBACvDR,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gDAAA,EAAiD,QAAA,EAAA,8BAAA,EAAsB,CAAA;AAAA,wBACrFA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uBACX,QAAA,EAAA,SAAA,CAAU,WAAA,CAAY,GAAA,CAAI,CAAC,MAAM,CAAA,qBAChCG,eAAAA,CAAC,IAAA,EAAA,EAAW,WAAU,6DAAA,EACpB,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAACY,iBAAA,EAAA,EAAM,SAAA,EAAU,0CAAA,EAA2C,CAAA;AAAA,UAC3D;AAAA,SAAA,EAAA,EAFM,CAGT,CACD,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA,MAID,SAAA,CAAU,kBAAA,IAAsB,SAAA,CAAU,kBAAA,CAAmB,MAAA,GAAS,qBACrET,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gDAAA,EAAiD,QAAA,EAAA,6BAAA,EAAwB,CAAA;AAAA,wBACvFA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uBACX,QAAA,EAAA,SAAA,CAAU,kBAAA,CAAmB,GAAA,CAAI,CAAC,MAAM,CAAA,qBACvCG,eAAAA,CAAC,IAAA,EAAA,EAAW,WAAU,gEAAA,EACpB,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mDAAA,EAAoD,CAAA;AAAA,UACnE;AAAA,SAAA,EAAA,EAFM,CAGT,CACD,CAAA,EACH;AAAA,OAAA,EACF;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;AAMA,SAAS,YAAA,CAAa;AAAA,EACpB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,uBACEG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAEb,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2EAAA,EAA4E,QAAA,EAAA,eAAA,EAEzF,CAAA;AAAA,wBACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8DAA8D,QAAA,EAAA,KAAA,EAAM;AAAA,OAAA,EACnF,CAAA;AAAA,sBACAA,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,MAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,YACT,+EAAA;AAAA,YACA,4EAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEC,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,IAGC,KAAA,oBACCG,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kEAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAAA,EACZ,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,MAAA;AAAA;AAAA,0BAELH,cAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAK,KAAA,CAAM,MAAA;AAAA,cACX,KAAK,KAAA,CAAM,IAAA;AAAA,cACX,SAAA,EAAU;AAAA;AAAA;AACZ,4BAEAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yEACb,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+CACb,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,CAAC,GACtB,CAAA,EACF,CAAA;AAAA,wBAEFG,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,0BACjFG,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CAAA,EAA8C,QAAA,EAAA;AAAA,YAAA,SAAA;AAAA,YACjD,GAAA;AAAA,4BACRH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAA0C,gBAAM,IAAA,EAAK,CAAA;AAAA,YAAO,sBAAA;AAAA,YAE3E,KAAA,CAAM,OAAA,oBACLG,eAAAA,CAAAO,qBAAA,EACG,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,cAAI,IAAA;AAAA,cAAG,GAAA;AAAA,8BACRV,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAAA,EAA8B,gBAAM,OAAA,EAAQ;AAAA,aAAA,EAC9D;AAAA,WAAA,EAEJ;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBAEAA,eAAC,SAAA,EAAA,EAAU,CAAA;AAAA,sBAEXG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,+BACLA,eAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,MAAM,KAAA,CAAM,WAAA;AAAA,YACZ,MAAA,EAAO,QAAA;AAAA,YACP,GAAA,EAAI,qBAAA;AAAA,YACJ,SAAA,EAAU,6IAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAH,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAkC,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,cAAA,EACxE,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,olCAAmlC,CAAA,EAC7lC,CAAA;AAAA,cAAM;AAAA;AAAA;AAAA,SAER;AAAA,QAED,KAAA,CAAM,yBACLG,eAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,CAAA,OAAA,EAAU,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,YAC3B,SAAA,EAAU,6IAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAH,cAAAA,CAACa,oBAAA,EAAA,EAAS,SAAA,EAAU,+BAAA,EAAgC,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SAExD;AAAA,QAED,KAAA,CAAM,+BACLV,eAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,MAAM,KAAA,CAAM,WAAA;AAAA,YACZ,MAAA,EAAO,QAAA;AAAA,YACP,GAAA,EAAI,qBAAA;AAAA,YACJ,SAAA,EAAU,6IAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAH,cAAAA,CAACc,qBAAA,EAAA,EAAU,SAAA,EAAU,+BAAA,EAAgC,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA;AAEzD,OAAA,EAEJ;AAAA,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAMA,SAAS,mBAAA,CAAoB;AAAA,EAC3B,UAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAOG;AACD,EAAA,uBACEX,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,oBAAAH,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kDAAA,EAAmD,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,oBACxEA,eAAC,SAAA,EAAA,EAAU,CAAA;AAAA,oBAEXA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACZ,QAAA,EAAA,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,EAAW,CAAA,qBAC1BG,eAAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kEAAA,EACb,oBAAU,KAAA,EACb,CAAA;AAAA,wBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6DAAA,EACb,oBAAU,UAAA,EACb;AAAA,OAAA,EACF,CAAA;AAAA,MACC,SAAA,CAAU,aAAa,SAAA,CAAU,SAAA,CAAU,SAAS,CAAA,oBACnDA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEACZ,QAAA,EAAA,SAAA,CAAU,SAAA,CAAU,IAAI,CAAC,IAAA,EAAM,sBAC9BG,eAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,wCAAA,EACrB,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uDAAA,EACb,eAAK,KAAA,EACR,CAAA;AAAA,wBACAG,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,8BAA8B,IAAA,CAAK,UAAA,GAAa,cAAA,GAAiB,uBAAuB,CAAA,EACzG,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,aAAa,QAAA,GAAM,EAAA;AAAA,UACxB,IAAA,CAAK;AAAA,SAAA,EACR;AAAA,OAAA,EAAA,EAPQ,CAQV,CACD,CAAA,EACH,CAAA;AAAA,MAED,CAAA,GAAI,WAAW,MAAA,GAAS,CAAA,oBAAKH,cAAAA,CAAC,SAAA,EAAA,EAAU,WAAU,MAAA,EAAO;AAAA,KAAA,EAAA,EAxBlD,SAAA,CAAU,EAyBpB,CACD,CAAA,EACH,CAAA;AAAA,oBAEAA,eAAC,SAAA,EAAA,EAAU,CAAA;AAAA,IAEV,QAAA,oBACCG,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,sBAClEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mDAAmD,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EAC9E,CAAA;AAAA,IAGD,WAAA,oBACCG,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uEAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA;AAAA,UAAA,WAAA;AAAA,UAAU,WAAA,CAAY,cAAA;AAAA,UAAe;AAAA,SAAA,EAAE,CAAA;AAAA,wBACjGH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EAAmD,sBAAY,aAAA,EAAc;AAAA,OAAA,EAC/F,CAAA;AAAA,sBACAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA,mBAAA,EAAiB,CAAA;AAAA,wBAC3EA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EAAmD,sBAAY,eAAA,EAAgB;AAAA,OAAA,EACjG,CAAA;AAAA,sBACAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,wBACrEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EAAmD,sBAAY,cAAA,EAAe;AAAA,OAAA,EAChG;AAAA,KAAA,EACF,CAAA;AAAA,oBAGFG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EAAmD,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,sBACxEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAiD,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EACzE,CAAA;AAAA,oBAEAA,cAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,UAAA;AAAA,QACT,SAAA,EAAW,EAAA;AAAA,UACT,6FAAA;AAAA,UACA,4EAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AASA,IAAM,YAAA,GAAqD;AAAA,EACzD,EAAE,EAAA,EAAI,aAAA,EAAe,KAAA,EAAO,2BAAA,EAA4B;AAAA,EACxD,EAAE,EAAA,EAAI,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,EACxC,EAAE,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,mBAAA;AAC1B,CAAA;AASA,SAAS,aAAA,CAAc;AAAA,EACrB,UAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUO,2BAAsB,aAAa,CAAA;AACjE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,2BAAwB,IAAI,CAAA;AAG5D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUA,iBAAA,CAAA,QAAA,CAAS;AAAA,IACnD,SAAA,EAAW,EAAA;AAAA,IACX,QAAA,EAAU,EAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,IACP,KAAA,EAAO,EAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,OAAA,EAAS,EAAA;AAAA,IACT,QAAA,EAAU,EAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACR,CAAA;AAGD,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,MAAA,CAAO,CAAC,GAAG,CAAA,KAAG;AAvgB/C,IAAA,IAAA,EAAA,EAAA,EAAA;AAugBkD,IAAA,OAAA,CAAA,IAAA,CAAK,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,CAAE,KAAA,KAAF,IAAA,GAAA,MAAA,GAAA,EAAA,CAAS,MAAA,KAAT,IAAA,GAAA,EAAA,GAAmB,CAAA,CAAA;AAAA,EAAA,CAAA,EAAI,CAAC,CAAA;AAC7E,EAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,MAAA,CAAO,CAAC,GAAG,CAAA,KAAG;AAxgBjD,IAAA,IAAA,EAAA,EAAA,EAAA;AAwgBoD,IAAA,OAAA,CAAA,IAAA,CAAK,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,CAAE,KAAA,KAAF,IAAA,GAAA,MAAA,GAAA,EAAA,CAAS,QAAA,KAAT,IAAA,GAAA,EAAA,GAAqB,CAAA,CAAA;AAAA,EAAA,CAAA,EAAI,CAAC,CAAA;AACjF,EAAA,MAAM,WAAW,WAAA,GAAc,aAAA;AAE/B,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUA,iBAAA,CAAA,QAAA;AAAA,IACxC,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,CAAK,IAAI,QAAA,EAAU,CAAC,CAAA,EAAE,EAAG,OAAO;AAAA,MACnD,SAAA,EAAW,EAAA;AAAA,MACX,QAAA,EAAU,EAAA;AAAA,MACV,WAAA,EAAa,EAAA;AAAA,MACb,KAAA,EAAO;AAAA,KACT,CAAE;AAAA,GACJ;AAGA,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAUA,2BAA6B,MAAM,CAAA;AAC3E,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,2BAAS,KAAK,CAAA;AAE9D,EAAA,MAAM,IAAA,GAAO,CAAqC,CAAA,EAAM,CAAA,KACtD,eAAe,CAAC,CAAA,KAAO,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,CAAA,CAAA,EAAL,EAAQ,CAAC,CAAC,GAAG,GAAE,CAAE,CAAA;AAE1C,EAAA,MAAM,IAAA,GAAO,CAAC,CAAA,EAAW,CAAA,EAA0B,CAAA,KACjD,cAAc,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,QAAS,GAAA,KAAQ,CAAA,GAAI,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,CAAA,CAAA,EAAL,EAAQ,CAAC,CAAC,GAAG,CAAA,EAAE,CAAA,GAAI,CAAE,CAAC,CAAA;AAElF,EAAA,MAAM,YAAY,YAAA,CAAa,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,IAAI,CAAA;AAE7D,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,QAAA,CAAS,IAAI,CAAA;AAEb,IAAA,IAAI,SAAS,aAAA,EAAe;AAC1B,MAAA,IAAI,CAAC,YAAY,SAAA,IAAa,CAAC,YAAY,QAAA,IAAY,CAAC,YAAY,KAAA,EAAO;AACzE,QAAA,QAAA,CAAS,qCAAqC,CAAA;AAC9C,QAAA;AAAA,MACF;AACA,MAAA,IAAI,CAAC,YAAY,QAAA,EAAU;AACzB,QAAA,QAAA,CAAS,mEAAmE,CAAA;AAC5E,QAAA;AAAA,MACF;AACA,MAAA,OAAA,CAAQ,YAAY,CAAA;AAAA,IACtB,CAAA,MAAA,IAAW,SAAS,YAAA,EAAc;AAChC,MAAA,MAAM,OAAA,GAAU,UAAA,CAAW,IAAA,CAAK,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,SAAA,IAAa,CAAC,CAAA,CAAE,QAAQ,CAAA;AAClE,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,QAAA,CAAS,wDAAwD,CAAA;AACjE,QAAA;AAAA,MACF;AACA,MAAA,OAAA,CAAQ,SAAS,CAAA;AAAA,IACnB,CAAA,MAAA,IAAW,SAAS,SAAA,EAAW;AAC7B,MAAA,IAAI,CAAC,aAAA,EAAe;AAClB,QAAA,QAAA,CAAS,wCAAwC,CAAA;AACjD,QAAA;AAAA,MACF;AACA,MAAA,OAAA,CAAQ,WAAW,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAA,IAAI,IAAA,KAAS,YAAA,EAAc,OAAA,CAAQ,aAAa,CAAA;AAAA,SAAA,IACvC,IAAA,KAAS,SAAA,EAAW,OAAA,CAAQ,YAAY,CAAA;AAAA,EACnD,CAAA;AAGA,EAAA,MAAM,YAAA,GAAe,cACjB,CAAA,aAAA,EAAgB,WAAA,CAAY,cAAc,CAAA,UAAA,EAAQ,WAAA,CAAY,aAAa,CAAA,CAAA,GAC3E,aAAA;AACJ,EAAA,MAAM,SAAA,GAAY,0BAAqB,KAAK,CAAA,CAAA;AAE5C,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2FAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,cAAAA,CAAC,SAAI,SAAA,EAAU,uEAAA,EACb,0BAAAA,cAAAA,CAACe,4BAAA,EAAA,EAAiB,SAAA,EAAU,wBAAA,EAAyB,CAAA,EACvD,CAAA;AAAA,sBACAZ,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kDAAA,EAAmD,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,wBACnFG,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+EAAA,EAAgF,QAAA,EAAA;AAAA,UAAA,uCAAA;AAAA,UACrD,GAAA;AAAA,0BACtCH,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+BAAA,EAAiC,QAAA,EAAA,WAAA,CAAY,SAAS,YAAA,EAAa,CAAA;AAAA,UAAO;AAAA,SAAA,EAE5F;AAAA,OAAA,EACF,CAAA;AAAA,sBACAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kEAAA,EAAmE,QAAA,EAAA,mBAAA,EAEhF,CAAA;AAAA,wBACAG,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mDAAA,EAAoD,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,UAC1D,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,EAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,WAAA;AAAY,SAAA,EAC1D;AAAA,OAAA,EACF,CAAA;AAAA,sBACAH,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,QAAA;AAAA,UACT,SAAA,EAAU,kIAAA;AAAA,UACX,QAAA,EAAA;AAAA;AAAA;AAED,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EAEb,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uDAAA,EAAwD,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,sBACrFA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EACZ,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACpBG,eAAAA,CAAOI,4BAAN,EACC,QAAA,EAAA;AAAA,wBAAAP,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,mBAAA;AAAA,cACA,EAAE,EAAA,KAAO,IAAA,GACL,4BAAA,GACA,CAAA,GAAI,YACJ,iBAAA,GACA;AAAA,aACN;AAAA,YAEC,QAAA,EAAA,CAAA,CAAE;AAAA;AAAA,SACL;AAAA,QACC,CAAA,GAAI,aAAa,MAAA,GAAS,CAAA,oBACzBA,cAAAA,CAACgB,4BAAA,EAAA,EAAiB,WAAU,wCAAA,EAAyC;AAAA,OAAA,EAAA,EAdpD,CAAA,CAAE,EAgBvB,CACD,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBAEAb,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAGZ,QAAA,EAAA;AAAA,MAAA,IAAA,KAAS,aAAA,oBACRA,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA,+HAAA,EAGvD,CAAA;AAAA,wBACAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,eAAC,aAAA,EAAA,EAAc,KAAA,EAAM,YAAA,EAAa,QAAA,EAAQ,MAAC,KAAA,EAAO,WAAA,CAAY,SAAA,EAAW,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,aAAa,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AAAA,0BAC7HA,cAAAA,CAAC,aAAA,EAAA,EAAc,OAAM,WAAA,EAAY,QAAA,EAAQ,MAAC,KAAA,EAAO,WAAA,CAAY,QAAA,EAAU,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,YAAY,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAAG;AAAA,SAAA,EAC5H,CAAA;AAAA,wBACAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,eAAC,aAAA,EAAA,EAAc,KAAA,EAAM,SAAQ,IAAA,EAAK,OAAA,EAAQ,UAAQ,IAAA,EAAC,KAAA,EAAO,YAAY,KAAA,EAAO,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,SAAS,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AAAA,0BAC7HG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,cAAAA,CAAC,kBAAA,EAAA,EAAmB,KAAA,EAAO,WAAA,CAAY,YAAA,EAAc,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,cAAA,EAAgB,CAAC,CAAA,EAAG,WAAU,UAAA,EAAW,CAAA;AAAA,4BACpHG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,cAAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,WAAA;AAAA,kBACH,IAAA,EAAK,KAAA;AAAA,kBACL,WAAA,EAAY,GAAA;AAAA,kBACZ,OAAO,WAAA,CAAY,KAAA;AAAA,kBACnB,UAAU,CAAC,CAAA,KAAM,KAAK,OAAA,EAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,kBAC7C,SAAA,EAAU;AAAA;AAAA,eACZ;AAAA,8BACAA,cAAAA,CAAC,OAAA,EAAA,EAAM,SAAQ,WAAA,EAAY,SAAA,EAAU,wUAAuU,QAAA,EAAA,OAAA,EAE5W;AAAA,aAAA,EACF;AAAA,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBACAG,eAAAA,CAAC,cAAA,EAAA,EAAe,OAAM,SAAA,EAAU,QAAA,EAAQ,MAAC,KAAA,EAAO,WAAA,CAAY,OAAA,EAAS,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,WAAW,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAClH,QAAA,EAAA;AAAA,0BAAAH,eAAC,QAAA,EAAA,EAAO,KAAA,EAAM,IAAG,QAAA,EAAQ,IAAA,EAAC,QAAM,IAAA,EAAC,CAAA;AAAA,0BACjCA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,0BACzBA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,0BACzBA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,0BAChCA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,0BACjCA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,0BAC5BA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,UAAA,EAAQ;AAAA,SAAA,EAC7B,CAAA;AAAA,wBACAA,cAAAA,CAAC,aAAA,EAAA,EAAc,OAAM,gBAAA,EAAiB,QAAA,EAAQ,MAAC,KAAA,EAAO,WAAA,CAAY,QAAA,EAAU,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,YAAY,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AAAA,wBAC/HG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,cAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,WAAA;AAAA,cACH,WAAA,EAAY,GAAA;AAAA,cACZ,IAAA,EAAM,CAAA;AAAA,cACN,OAAO,WAAA,CAAY,KAAA;AAAA,cACnB,UAAU,CAAC,CAAA,KAAM,KAAK,OAAA,EAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC7C,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BACAA,cAAAA,CAAC,OAAA,EAAA,EAAM,SAAQ,WAAA,EAAY,SAAA,EAAU,mPAAkP,QAAA,EAAA,kBAAA,EAEvR;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,MAID,SAAS,YAAA,oBACRG,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAACiB,qBAAA,EAAA,EAAU,SAAA,EAAU,+BAAA,EAAgC,CAAA;AAAA,0BACrDjB,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oDAAmD,QAAA,EAAA,mBAAA,EAAiB;AAAA,SAAA,EACpF,CAAA;AAAA,QAEC,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACxB,UAAA,MAAM,UAAU,CAAA,IAAK,WAAA;AACrB,UAAA,uBACEG,eAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,yDAAA,EACrB,QAAA,EAAA;AAAA,4BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,8BAAAA,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gDAAA,EAAiD,QAAA,EAAA;AAAA,gBAAA,YAAA;AAAA,gBACjD,CAAA,GAAI;AAAA,eAAA,EACjB,CAAA;AAAA,8BACAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA;AAAA,gBACf,+DAAA;AAAA,gBACA,UACI,0EAAA,GACA;AAAA,eACN,EACG,QAAA,EAAA,OAAA,GAAU,YAAA,GAAY,QAAA,EACzB;AAAA,aAAA,EACF,CAAA;AAAA,4BAEAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,eAAC,aAAA,EAAA,EAAc,KAAA,EAAM,cAAa,QAAA,EAAQ,IAAA,EAAC,OAAO,CAAA,CAAE,SAAA,EAAW,QAAA,EAAU,CAAC,MAAM,IAAA,CAAK,CAAA,EAAG,aAAa,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AAAA,8BACtHA,cAAAA,CAAC,aAAA,EAAA,EAAc,OAAM,WAAA,EAAY,QAAA,EAAQ,MAAC,KAAA,EAAO,CAAA,CAAE,UAAU,QAAA,EAAU,CAAC,MAAM,IAAA,CAAK,CAAA,EAAG,YAAY,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,EAAG;AAAA,aAAA,EACrH,CAAA;AAAA,4BAEAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,8BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,gCAAAH,cAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACC,EAAA,EAAI,OAAO,CAAC,CAAA,CAAA;AAAA,oBACZ,IAAA,EAAK,MAAA;AAAA,oBACL,QAAA,EAAU,OAAA;AAAA,oBACV,OAAO,CAAA,CAAE,WAAA;AAAA,oBACT,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,GAAG,aAAA,EAAe,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,oBACtD,SAAA,EAAU;AAAA;AAAA,iBACZ;AAAA,gCACAG,gBAAC,OAAA,EAAA,EAAM,OAAA,EAAS,OAAO,CAAC,CAAA,CAAA,EAAI,WAAU,mFAAA,EAAoF,QAAA,EAAA;AAAA,kBAAA,eAAA;AAAA,kBAC1G,2BAAWH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAsB,QAAA,EAAA,GAAA,EAAC;AAAA,iBAAA,EAClE;AAAA,eAAA,EACF,CAAA;AAAA,8BACAA,cAAAA;AAAA,gBAAC,aAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,OAAA;AAAA,kBACN,IAAA,EAAK,OAAA;AAAA,kBACL,OAAO,CAAA,CAAE,KAAA;AAAA,kBACT,QAAA,EAAU,CAAC,CAAA,KAAM,IAAA,CAAK,GAAG,OAAA,EAAS,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA;AAClD,aAAA,EACF;AAAA,WAAA,EAAA,EAxCQ,CAyCV,CAAA;AAAA,QAEJ,CAAC;AAAA,OAAA,EACH,CAAA;AAAA,MAID,SAAS,SAAA,oBACRG,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,wBAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yCAAA,EAA0C,QAAA,EAAA,qHAAA,EAGvD,CAAA;AAAA,QAGC,WAAA,oBACCG,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gDAAA,EAAiD,QAAA,EAAA,8BAAA,EAE9D,CAAA;AAAA,0BACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACX,QAAA,EAAA,CAAC,SAAA,EAAW,MAAM,CAAA,CAAY,GAAA,CAAI,CAAC,GAAA,qBACnCA,cAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAM,YAAA,CAAa,GAAG,CAAA;AAAA,cAC/B,SAAA,EAAW,EAAA;AAAA,gBACT,6EAAA;AAAA,gBACA,SAAA,KAAc,MACV,2DAAA,GACA;AAAA,eACN;AAAA,cAEC,QAAA,EAAA,GAAA,KAAQ,YAAY,YAAA,GAAe;AAAA,aAAA;AAAA,YAV/B;AAAA,WAYR,CAAA,EACH;AAAA,SAAA,EACF,CAAA;AAAA,wBAIFG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yDAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0GAAA,EACX,QAAA,EAAA;AAAA,4BAAAH,cAAAA,CAAC,UAAK,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,YAAO;AAAA,WAAA,EAChB,CAAA;AAAA,0BACAA,cAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,2HAAA;AAAA,cACX,QAAA,EAAA;AAAA;AAAA;AAED,SAAA,EACF,CAAA;AAAA,wBAGAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yDAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0GAAA,EACX,QAAA,EAAA;AAAA,4BAAAH,cAAAA,CAACQ,wBAAA,EAAA,EAAa,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,YAAE;AAAA,WAAA,EAC1C,CAAA;AAAA,0BACAL,eAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,yCAAA,EACf,QAAA,EAAA;AAAA,4BAAAH,cAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,UAAA;AAAA,gBACL,OAAA,EAAS,aAAA;AAAA,gBACT,UAAU,CAAC,CAAA,KAAM,gBAAA,CAAiB,CAAA,CAAE,OAAO,OAAO,CAAA;AAAA,gBAClD,SAAA,EAAU;AAAA;AAAA,aACZ;AAAA,4BACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qDAAoD,QAAA,EAAA,qEAAA,EAEpE;AAAA,WAAA,EACF;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,MAID,yBACCA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sCAAsC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAI3DG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,SAAA,GAAY,qBACXA,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,SAAA,EAAU,+IAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAAH,cAAAA,CAACkB,yBAAA,EAAA,EAAc,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,gBAAE;AAAA;AAAA;AAAA,WAE3C;AAAA,0BAEFlB,cAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,SAAA,EAAW,EAAA;AAAA,gBACT,uDAAA;AAAA,gBACA,4EAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEC,QAAA,EAAA,IAAA,KAAS,YAAY,iBAAA,GAAoB;AAAA;AAAA;AAC5C,SAAA,EACF,CAAA;AAAA,QACC,SAAA,KAAc,qBACbA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,QAAA;AAAA,YACT,SAAA,EAAU,yHAAA;AAAA,YACX,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EAEJ;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAMO,SAAS,KAAA,CAAM;AAAA,EACpB,IAAA,GAAO,sBAAA;AAAA,EACP,OAAA,GAAU,aAAA;AAAA,EACV,KAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA,GAAgB,UAAA;AAAA,EAChB;AACF,CAAA,EAAe;AACb,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUO,2BAAS,KAAK,CAAA;AAE1D,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,cAAA,CAAe,IAAI,CAAA;AACnB,IAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,EAAA;AAAA,EACF,CAAA;AAEA,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA,EAG1E,QAAA,EAAA;AAAA,oBAAAH,eAAC,KAAA,EAAA,EAAI,GAAA,EAAK,MAAM,GAAA,EAAK,OAAA,EAAS,WAAU,iCAAA,EAAkC,CAAA;AAAA,oBAG1EA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kEAAkE,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAGtFG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sEAAA,EAGb,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAEb,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,qBAAA,EACjB,QAAA,EAAA;AAAA,0BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,cAAAA,CAACmB,mBAAA,EAAA,EAAQ,SAAA,EAAU,+BAAA,EAAgC,CAAA;AAAA,4BACnDnB,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oDAAmD,QAAA,EAAA,qBAAA,EAEjE;AAAA,WAAA,EACF,CAAA;AAAA,UACC,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,qBACfA,eAAC,kBAAA,EAAA,EAAsC,SAAA,EAAA,EAAd,SAAA,CAAU,EAA0B,CAC9D;AAAA,SAAA,EACH,CAAA;AAAA,QAGC,CAAC,+BACAA,cAAAA;AAAA,UAAC,mBAAA;AAAA,UAAA;AAAA,YACC,UAAA;AAAA,YACA,QAAA;AAAA,YACA,KAAA;AAAA,YACA,WAAA;AAAA,YACA,UAAA,EAAY,UAAA;AAAA,YACZ;AAAA;AAAA,SACF;AAAA,QAID,+BACCA,cAAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,UAAA;AAAA,YACA,KAAA;AAAA,YACA,WAAA;AAAA,YACA,QAAA,EAAU,MAAM,cAAA,CAAe,KAAK;AAAA;AAAA;AACtC,OAAA,EAEJ,CAAA;AAAA,sBAGAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBACb,QAAA,kBAAAA,cAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,KAAA;AAAA,UACA,KAAA;AAAA,UACA,MAAA,EAAQ,UAAA;AAAA,UACR,SAAA,EAAW;AAAA;AAAA,OACb,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n","\"use client\"\r\n\r\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Separator({\r\n className,\r\n orientation = \"horizontal\",\r\n ...props\r\n}: SeparatorPrimitive.Props) {\r\n return (\r\n <SeparatorPrimitive\r\n data-slot=\"separator\"\r\n orientation={orientation}\r\n className={cn(\r\n \"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Separator }\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\n/* -----------------------------------------------------------------------\r\n FloatingInput — text input com label flutuante na borda\r\n ----------------------------------------------------------------------- */\r\nexport interface FloatingInputProps\r\n extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label: string;\r\n error?: string;\r\n}\r\n\r\nexport const FloatingInput = React.forwardRef<HTMLInputElement, FloatingInputProps>(\r\n ({ label, error, id, className, required, ...props }, ref) => {\r\n const inputId = id ?? React.useId();\r\n\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <input\r\n id={inputId}\r\n ref={ref}\r\n placeholder=\" \"\r\n className={cn(\r\n \"peer block w-full rounded-lg border border-border bg-background\",\r\n \"px-3 pt-5 pb-2 text-base text-foreground font-ui\",\r\n \"transition-colors placeholder-transparent\",\r\n \"focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\",\r\n error && \"border-destructive focus:border-destructive focus:ring-destructive\"\r\n )}\r\n required={required}\r\n {...props}\r\n />\r\n <label\r\n htmlFor={inputId}\r\n className={cn(\r\n \"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2\",\r\n \"text-base text-muted-foreground font-ui transition-all duration-150\",\r\n /* When peer has content or is focused, float up */\r\n \"peer-focus:top-3 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary\",\r\n \"peer-not-placeholder-shown:top-3 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs peer-not-placeholder-shown:text-muted-foreground\"\r\n )}\r\n >\r\n {label}\r\n {required && <span className=\"text-primary ml-0.5\">*</span>}\r\n </label>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-destructive font-ui\">{error}</p>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\nFloatingInput.displayName = \"FloatingInput\";\r\n\r\n/* -----------------------------------------------------------------------\r\n FloatingSelect — select com label flutuante na borda\r\n ----------------------------------------------------------------------- */\r\nexport interface FloatingSelectProps\r\n extends React.SelectHTMLAttributes<HTMLSelectElement> {\r\n label: string;\r\n error?: string;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const FloatingSelect = React.forwardRef<HTMLSelectElement, FloatingSelectProps>(\r\n ({ label, error, id, className, required, children, ...props }, ref) => {\r\n const inputId = id ?? React.useId();\r\n\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <select\r\n id={inputId}\r\n ref={ref}\r\n className={cn(\r\n \"peer block w-full appearance-none rounded-lg border border-border bg-background\",\r\n \"px-3 pt-5 pb-2 text-base text-foreground font-ui\",\r\n \"transition-colors\",\r\n \"focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\",\r\n error && \"border-destructive\"\r\n )}\r\n required={required}\r\n {...props}\r\n >\r\n {children}\r\n </select>\r\n {/* Custom chevron */}\r\n <div className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2\">\r\n <svg\r\n className=\"h-4 w-4 text-muted-foreground\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"m6 9 6 6 6-6\" />\r\n </svg>\r\n </div>\r\n <label\r\n htmlFor={inputId}\r\n className={cn(\r\n \"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2\",\r\n \"text-base text-muted-foreground font-ui transition-all duration-150\",\r\n \"peer-focus:top-3 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary\",\r\n \"peer-not-placeholder-shown:top-3 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs\"\r\n )}\r\n >\r\n {label}\r\n {required && <span className=\"text-primary ml-0.5\">*</span>}\r\n </label>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-destructive font-ui\">{error}</p>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\nFloatingSelect.displayName = \"FloatingSelect\";\r\n","export interface PhoneCountry {\r\n code: string; // ISO 3166-1 alpha-2\r\n name: string;\r\n flag: string; // emoji\r\n dial: string; // e.g. \"+55\"\r\n}\r\n\r\n/* Priority countries shown first */\r\nexport const PHONE_PRIORITY: PhoneCountry[] = [\r\n { code: \"BR\", name: \"Brasil\", flag: \"🇧🇷\", dial: \"+55\" },\r\n { code: \"DE\", name: \"Deutschland\", flag: \"🇩🇪\", dial: \"+49\" },\r\n { code: \"FR\", name: \"France\", flag: \"🇫🇷\", dial: \"+33\" },\r\n { code: \"US\", name: \"United States\", flag: \"🇺🇸\", dial: \"+1\" },\r\n { code: \"GB\", name: \"United Kingdom\", flag: \"🇬🇧\", dial: \"+44\" },\r\n { code: \"NL\", name: \"Netherlands\", flag: \"🇳🇱\", dial: \"+31\" },\r\n];\r\n\r\n/* Rest of the world — alphabetical by English name */\r\nexport const PHONE_REST: PhoneCountry[] = [\r\n { code: \"AF\", name: \"Afghanistan\", flag: \"🇦🇫\", dial: \"+93\" },\r\n { code: \"AL\", name: \"Albania\", flag: \"🇦🇱\", dial: \"+355\" },\r\n { code: \"DZ\", name: \"Algeria\", flag: \"🇩🇿\", dial: \"+213\" },\r\n { code: \"AD\", name: \"Andorra\", flag: \"🇦🇩\", dial: \"+376\" },\r\n { code: \"AO\", name: \"Angola\", flag: \"🇦🇴\", dial: \"+244\" },\r\n { code: \"AG\", name: \"Antigua and Barbuda\", flag: \"🇦🇬\", dial: \"+1268\" },\r\n { code: \"AR\", name: \"Argentina\", flag: \"🇦🇷\", dial: \"+54\" },\r\n { code: \"AM\", name: \"Armenia\", flag: \"🇦🇲\", dial: \"+374\" },\r\n { code: \"AU\", name: \"Australia\", flag: \"🇦🇺\", dial: \"+61\" },\r\n { code: \"AT\", name: \"Austria\", flag: \"🇦🇹\", dial: \"+43\" },\r\n { code: \"AZ\", name: \"Azerbaijan\", flag: \"🇦🇿\", dial: \"+994\" },\r\n { code: \"BS\", name: \"Bahamas\", flag: \"🇧🇸\", dial: \"+1242\" },\r\n { code: \"BH\", name: \"Bahrain\", flag: \"🇧🇭\", dial: \"+973\" },\r\n { code: \"BD\", name: \"Bangladesh\", flag: \"🇧🇩\", dial: \"+880\" },\r\n { code: \"BB\", name: \"Barbados\", flag: \"🇧🇧\", dial: \"+1246\" },\r\n { code: \"BY\", name: \"Belarus\", flag: \"🇧🇾\", dial: \"+375\" },\r\n { code: \"BE\", name: \"Belgium\", flag: \"🇧🇪\", dial: \"+32\" },\r\n { code: \"BZ\", name: \"Belize\", flag: \"🇧🇿\", dial: \"+501\" },\r\n { code: \"BJ\", name: \"Benin\", flag: \"🇧🇯\", dial: \"+229\" },\r\n { code: \"BT\", name: \"Bhutan\", flag: \"🇧🇹\", dial: \"+975\" },\r\n { code: \"BO\", name: \"Bolivia\", flag: \"🇧🇴\", dial: \"+591\" },\r\n { code: \"BA\", name: \"Bosnia and Herzegovina\", flag: \"🇧🇦\", dial: \"+387\" },\r\n { code: \"BW\", name: \"Botswana\", flag: \"🇧🇼\", dial: \"+267\" },\r\n { code: \"BN\", name: \"Brunei\", flag: \"🇧🇳\", dial: \"+673\" },\r\n { code: \"BG\", name: \"Bulgaria\", flag: \"🇧🇬\", dial: \"+359\" },\r\n { code: \"BF\", name: \"Burkina Faso\", flag: \"🇧🇫\", dial: \"+226\" },\r\n { code: \"BI\", name: \"Burundi\", flag: \"🇧🇮\", dial: \"+257\" },\r\n { code: \"CV\", name: \"Cabo Verde\", flag: \"🇨🇻\", dial: \"+238\" },\r\n { code: \"KH\", name: \"Cambodia\", flag: \"🇰🇭\", dial: \"+855\" },\r\n { code: \"CM\", name: \"Cameroon\", flag: \"🇨🇲\", dial: \"+237\" },\r\n { code: \"CA\", name: \"Canada\", flag: \"🇨🇦\", dial: \"+1\" },\r\n { code: \"CF\", name: \"Central African Republic\", flag: \"🇨🇫\", dial: \"+236\" },\r\n { code: \"TD\", name: \"Chad\", flag: \"🇹🇩\", dial: \"+235\" },\r\n { code: \"CL\", name: \"Chile\", flag: \"🇨🇱\", dial: \"+56\" },\r\n { code: \"CN\", name: \"China\", flag: \"🇨🇳\", dial: \"+86\" },\r\n { code: \"CO\", name: \"Colombia\", flag: \"🇨🇴\", dial: \"+57\" },\r\n { code: \"KM\", name: \"Comoros\", flag: \"🇰🇲\", dial: \"+269\" },\r\n { code: \"CG\", name: \"Congo\", flag: \"🇨🇬\", dial: \"+242\" },\r\n { code: \"CD\", name: \"Congo (DRC)\", flag: \"🇨🇩\", dial: \"+243\" },\r\n { code: \"CR\", name: \"Costa Rica\", flag: \"🇨🇷\", dial: \"+506\" },\r\n { code: \"HR\", name: \"Croatia\", flag: \"🇭🇷\", dial: \"+385\" },\r\n { code: \"CU\", name: \"Cuba\", flag: \"🇨🇺\", dial: \"+53\" },\r\n { code: \"CY\", name: \"Cyprus\", flag: \"🇨🇾\", dial: \"+357\" },\r\n { code: \"CZ\", name: \"Czech Republic\", flag: \"🇨🇿\", dial: \"+420\" },\r\n { code: \"DK\", name: \"Denmark\", flag: \"🇩🇰\", dial: \"+45\" },\r\n { code: \"DJ\", name: \"Djibouti\", flag: \"🇩🇯\", dial: \"+253\" },\r\n { code: \"DM\", name: \"Dominica\", flag: \"🇩🇲\", dial: \"+1767\" },\r\n { code: \"DO\", name: \"Dominican Republic\", flag: \"🇩🇴\", dial: \"+1809\" },\r\n { code: \"EC\", name: \"Ecuador\", flag: \"🇪🇨\", dial: \"+593\" },\r\n { code: \"EG\", name: \"Egypt\", flag: \"🇪🇬\", dial: \"+20\" },\r\n { code: \"SV\", name: \"El Salvador\", flag: \"🇸🇻\", dial: \"+503\" },\r\n { code: \"GQ\", name: \"Equatorial Guinea\", flag: \"🇬🇶\", dial: \"+240\" },\r\n { code: \"ER\", name: \"Eritrea\", flag: \"🇪🇷\", dial: \"+291\" },\r\n { code: \"EE\", name: \"Estonia\", flag: \"🇪🇪\", dial: \"+372\" },\r\n { code: \"SZ\", name: \"Eswatini\", flag: \"🇸🇿\", dial: \"+268\" },\r\n { code: \"ET\", name: \"Ethiopia\", flag: \"🇪🇹\", dial: \"+251\" },\r\n { code: \"FJ\", name: \"Fiji\", flag: \"🇫🇯\", dial: \"+679\" },\r\n { code: \"FI\", name: \"Finland\", flag: \"🇫🇮\", dial: \"+358\" },\r\n { code: \"GA\", name: \"Gabon\", flag: \"🇬🇦\", dial: \"+241\" },\r\n { code: \"GM\", name: \"Gambia\", flag: \"🇬🇲\", dial: \"+220\" },\r\n { code: \"GE\", name: \"Georgia\", flag: \"🇬🇪\", dial: \"+995\" },\r\n { code: \"GH\", name: \"Ghana\", flag: \"🇬🇭\", dial: \"+233\" },\r\n { code: \"GR\", name: \"Greece\", flag: \"🇬🇷\", dial: \"+30\" },\r\n { code: \"GD\", name: \"Grenada\", flag: \"🇬🇩\", dial: \"+1473\" },\r\n { code: \"GT\", name: \"Guatemala\", flag: \"🇬🇹\", dial: \"+502\" },\r\n { code: \"GN\", name: \"Guinea\", flag: \"🇬🇳\", dial: \"+224\" },\r\n { code: \"GW\", name: \"Guinea-Bissau\", flag: \"🇬🇼\", dial: \"+245\" },\r\n { code: \"GY\", name: \"Guyana\", flag: \"🇬🇾\", dial: \"+592\" },\r\n { code: \"HT\", name: \"Haiti\", flag: \"🇭🇹\", dial: \"+509\" },\r\n { code: \"HN\", name: \"Honduras\", flag: \"🇭🇳\", dial: \"+504\" },\r\n { code: \"HU\", name: \"Hungary\", flag: \"🇭🇺\", dial: \"+36\" },\r\n { code: \"IS\", name: \"Iceland\", flag: \"🇮🇸\", dial: \"+354\" },\r\n { code: \"IN\", name: \"India\", flag: \"🇮🇳\", dial: \"+91\" },\r\n { code: \"ID\", name: \"Indonesia\", flag: \"🇮🇩\", dial: \"+62\" },\r\n { code: \"IR\", name: \"Iran\", flag: \"🇮🇷\", dial: \"+98\" },\r\n { code: \"IQ\", name: \"Iraq\", flag: \"🇮🇶\", dial: \"+964\" },\r\n { code: \"IE\", name: \"Ireland\", flag: \"🇮🇪\", dial: \"+353\" },\r\n { code: \"IL\", name: \"Israel\", flag: \"🇮🇱\", dial: \"+972\" },\r\n { code: \"IT\", name: \"Italy\", flag: \"🇮🇹\", dial: \"+39\" },\r\n { code: \"JM\", name: \"Jamaica\", flag: \"🇯🇲\", dial: \"+1876\" },\r\n { code: \"JP\", name: \"Japan\", flag: \"🇯🇵\", dial: \"+81\" },\r\n { code: \"JO\", name: \"Jordan\", flag: \"🇯🇴\", dial: \"+962\" },\r\n { code: \"KZ\", name: \"Kazakhstan\", flag: \"🇰🇿\", dial: \"+7\" },\r\n { code: \"KE\", name: \"Kenya\", flag: \"🇰🇪\", dial: \"+254\" },\r\n { code: \"KI\", name: \"Kiribati\", flag: \"🇰🇮\", dial: \"+686\" },\r\n { code: \"KW\", name: \"Kuwait\", flag: \"🇰🇼\", dial: \"+965\" },\r\n { code: \"KG\", name: \"Kyrgyzstan\", flag: \"🇰🇬\", dial: \"+996\" },\r\n { code: \"LA\", name: \"Laos\", flag: \"🇱🇦\", dial: \"+856\" },\r\n { code: \"LV\", name: \"Latvia\", flag: \"🇱🇻\", dial: \"+371\" },\r\n { code: \"LB\", name: \"Lebanon\", flag: \"🇱🇧\", dial: \"+961\" },\r\n { code: \"LS\", name: \"Lesotho\", flag: \"🇱🇸\", dial: \"+266\" },\r\n { code: \"LR\", name: \"Liberia\", flag: \"🇱🇷\", dial: \"+231\" },\r\n { code: \"LY\", name: \"Libya\", flag: \"🇱🇾\", dial: \"+218\" },\r\n { code: \"LI\", name: \"Liechtenstein\", flag: \"🇱🇮\", dial: \"+423\" },\r\n { code: \"LT\", name: \"Lithuania\", flag: \"🇱🇹\", dial: \"+370\" },\r\n { code: \"LU\", name: \"Luxembourg\", flag: \"🇱🇺\", dial: \"+352\" },\r\n { code: \"MG\", name: \"Madagascar\", flag: \"🇲🇬\", dial: \"+261\" },\r\n { code: \"MW\", name: \"Malawi\", flag: \"🇲🇼\", dial: \"+265\" },\r\n { code: \"MY\", name: \"Malaysia\", flag: \"🇲🇾\", dial: \"+60\" },\r\n { code: \"MV\", name: \"Maldives\", flag: \"🇲🇻\", dial: \"+960\" },\r\n { code: \"ML\", name: \"Mali\", flag: \"🇲🇱\", dial: \"+223\" },\r\n { code: \"MT\", name: \"Malta\", flag: \"🇲🇹\", dial: \"+356\" },\r\n { code: \"MH\", name: \"Marshall Islands\", flag: \"🇲🇭\", dial: \"+692\" },\r\n { code: \"MR\", name: \"Mauritania\", flag: \"🇲🇷\", dial: \"+222\" },\r\n { code: \"MU\", name: \"Mauritius\", flag: \"🇲🇺\", dial: \"+230\" },\r\n { code: \"MX\", name: \"Mexico\", flag: \"🇲🇽\", dial: \"+52\" },\r\n { code: \"FM\", name: \"Micronesia\", flag: \"🇫🇲\", dial: \"+691\" },\r\n { code: \"MD\", name: \"Moldova\", flag: \"🇲🇩\", dial: \"+373\" },\r\n { code: \"MC\", name: \"Monaco\", flag: \"🇲🇨\", dial: \"+377\" },\r\n { code: \"MN\", name: \"Mongolia\", flag: \"🇲🇳\", dial: \"+976\" },\r\n { code: \"ME\", name: \"Montenegro\", flag: \"🇲🇪\", dial: \"+382\" },\r\n { code: \"MA\", name: \"Morocco\", flag: \"🇲🇦\", dial: \"+212\" },\r\n { code: \"MZ\", name: \"Mozambique\", flag: \"🇲🇿\", dial: \"+258\" },\r\n { code: \"MM\", name: \"Myanmar\", flag: \"🇲🇲\", dial: \"+95\" },\r\n { code: \"NA\", name: \"Namibia\", flag: \"🇳🇦\", dial: \"+264\" },\r\n { code: \"NR\", name: \"Nauru\", flag: \"🇳🇷\", dial: \"+674\" },\r\n { code: \"NP\", name: \"Nepal\", flag: \"🇳🇵\", dial: \"+977\" },\r\n { code: \"NZ\", name: \"New Zealand\", flag: \"🇳🇿\", dial: \"+64\" },\r\n { code: \"NI\", name: \"Nicaragua\", flag: \"🇳🇮\", dial: \"+505\" },\r\n { code: \"NE\", name: \"Niger\", flag: \"🇳🇪\", dial: \"+227\" },\r\n { code: \"NG\", name: \"Nigeria\", flag: \"🇳🇬\", dial: \"+234\" },\r\n { code: \"KP\", name: \"North Korea\", flag: \"🇰🇵\", dial: \"+850\" },\r\n { code: \"MK\", name: \"North Macedonia\", flag: \"🇲🇰\", dial: \"+389\" },\r\n { code: \"NO\", name: \"Norway\", flag: \"🇳🇴\", dial: \"+47\" },\r\n { code: \"OM\", name: \"Oman\", flag: \"🇴🇲\", dial: \"+968\" },\r\n { code: \"PK\", name: \"Pakistan\", flag: \"🇵🇰\", dial: \"+92\" },\r\n { code: \"PW\", name: \"Palau\", flag: \"🇵🇼\", dial: \"+680\" },\r\n { code: \"PS\", name: \"Palestine\", flag: \"🇵🇸\", dial: \"+970\" },\r\n { code: \"PA\", name: \"Panama\", flag: \"🇵🇦\", dial: \"+507\" },\r\n { code: \"PG\", name: \"Papua New Guinea\", flag: \"🇵🇬\", dial: \"+675\" },\r\n { code: \"PY\", name: \"Paraguay\", flag: \"🇵🇾\", dial: \"+595\" },\r\n { code: \"PE\", name: \"Peru\", flag: \"🇵🇪\", dial: \"+51\" },\r\n { code: \"PH\", name: \"Philippines\", flag: \"🇵🇭\", dial: \"+63\" },\r\n { code: \"PL\", name: \"Poland\", flag: \"🇵🇱\", dial: \"+48\" },\r\n { code: \"PT\", name: \"Portugal\", flag: \"🇵🇹\", dial: \"+351\" },\r\n { code: \"QA\", name: \"Qatar\", flag: \"🇶🇦\", dial: \"+974\" },\r\n { code: \"RO\", name: \"Romania\", flag: \"🇷🇴\", dial: \"+40\" },\r\n { code: \"RU\", name: \"Russia\", flag: \"🇷🇺\", dial: \"+7\" },\r\n { code: \"RW\", name: \"Rwanda\", flag: \"🇷🇼\", dial: \"+250\" },\r\n { code: \"KN\", name: \"Saint Kitts and Nevis\", flag: \"🇰🇳\", dial: \"+1869\" },\r\n { code: \"LC\", name: \"Saint Lucia\", flag: \"🇱🇨\", dial: \"+1758\" },\r\n { code: \"VC\", name: \"Saint Vincent and Grenadines\",flag: \"🇻🇨\", dial: \"+1784\"},\r\n { code: \"WS\", name: \"Samoa\", flag: \"🇼🇸\", dial: \"+685\" },\r\n { code: \"SM\", name: \"San Marino\", flag: \"🇸🇲\", dial: \"+378\" },\r\n { code: \"ST\", name: \"São Tomé and Príncipe\", flag: \"🇸🇹\", dial: \"+239\" },\r\n { code: \"SA\", name: \"Saudi Arabia\", flag: \"🇸🇦\", dial: \"+966\" },\r\n { code: \"SN\", name: \"Senegal\", flag: \"🇸🇳\", dial: \"+221\" },\r\n { code: \"RS\", name: \"Serbia\", flag: \"🇷🇸\", dial: \"+381\" },\r\n { code: \"SC\", name: \"Seychelles\", flag: \"🇸🇨\", dial: \"+248\" },\r\n { code: \"SL\", name: \"Sierra Leone\", flag: \"🇸🇱\", dial: \"+232\" },\r\n { code: \"SG\", name: \"Singapore\", flag: \"🇸🇬\", dial: \"+65\" },\r\n { code: \"SK\", name: \"Slovakia\", flag: \"🇸🇰\", dial: \"+421\" },\r\n { code: \"SI\", name: \"Slovenia\", flag: \"🇸🇮\", dial: \"+386\" },\r\n { code: \"SB\", name: \"Solomon Islands\", flag: \"🇸🇧\", dial: \"+677\" },\r\n { code: \"SO\", name: \"Somalia\", flag: \"🇸🇴\", dial: \"+252\" },\r\n { code: \"ZA\", name: \"South Africa\", flag: \"🇿🇦\", dial: \"+27\" },\r\n { code: \"KR\", name: \"South Korea\", flag: \"🇰🇷\", dial: \"+82\" },\r\n { code: \"SS\", name: \"South Sudan\", flag: \"🇸🇸\", dial: \"+211\" },\r\n { code: \"ES\", name: \"Spain\", flag: \"🇪🇸\", dial: \"+34\" },\r\n { code: \"LK\", name: \"Sri Lanka\", flag: \"🇱🇰\", dial: \"+94\" },\r\n { code: \"SD\", name: \"Sudan\", flag: \"🇸🇩\", dial: \"+249\" },\r\n { code: \"SR\", name: \"Suriname\", flag: \"🇸🇷\", dial: \"+597\" },\r\n { code: \"SE\", name: \"Sweden\", flag: \"🇸🇪\", dial: \"+46\" },\r\n { code: \"CH\", name: \"Switzerland\", flag: \"🇨🇭\", dial: \"+41\" },\r\n { code: \"SY\", name: \"Syria\", flag: \"🇸🇾\", dial: \"+963\" },\r\n { code: \"TW\", name: \"Taiwan\", flag: \"🇹🇼\", dial: \"+886\" },\r\n { code: \"TJ\", name: \"Tajikistan\", flag: \"🇹🇯\", dial: \"+992\" },\r\n { code: \"TZ\", name: \"Tanzania\", flag: \"🇹🇿\", dial: \"+255\" },\r\n { code: \"TH\", name: \"Thailand\", flag: \"🇹🇭\", dial: \"+66\" },\r\n { code: \"TL\", name: \"Timor-Leste\", flag: \"🇹🇱\", dial: \"+670\" },\r\n { code: \"TG\", name: \"Togo\", flag: \"🇹🇬\", dial: \"+228\" },\r\n { code: \"TO\", name: \"Tonga\", flag: \"🇹🇴\", dial: \"+676\" },\r\n { code: \"TT\", name: \"Trinidad and Tobago\", flag: \"🇹🇹\", dial: \"+1868\" },\r\n { code: \"TN\", name: \"Tunisia\", flag: \"🇹🇳\", dial: \"+216\" },\r\n { code: \"TR\", name: \"Turkey\", flag: \"🇹🇷\", dial: \"+90\" },\r\n { code: \"TM\", name: \"Turkmenistan\", flag: \"🇹🇲\", dial: \"+993\" },\r\n { code: \"TV\", name: \"Tuvalu\", flag: \"🇹🇻\", dial: \"+688\" },\r\n { code: \"UG\", name: \"Uganda\", flag: \"🇺🇬\", dial: \"+256\" },\r\n { code: \"UA\", name: \"Ukraine\", flag: \"🇺🇦\", dial: \"+380\" },\r\n { code: \"AE\", name: \"United Arab Emirates\", flag: \"🇦🇪\", dial: \"+971\" },\r\n { code: \"UY\", name: \"Uruguay\", flag: \"🇺🇾\", dial: \"+598\" },\r\n { code: \"UZ\", name: \"Uzbekistan\", flag: \"🇺🇿\", dial: \"+998\" },\r\n { code: \"VU\", name: \"Vanuatu\", flag: \"🇻🇺\", dial: \"+678\" },\r\n { code: \"VA\", name: \"Vatican City\", flag: \"🇻🇦\", dial: \"+379\" },\r\n { code: \"VE\", name: \"Venezuela\", flag: \"🇻🇪\", dial: \"+58\" },\r\n { code: \"VN\", name: \"Vietnam\", flag: \"🇻🇳\", dial: \"+84\" },\r\n { code: \"YE\", name: \"Yemen\", flag: \"🇾🇪\", dial: \"+967\" },\r\n { code: \"ZM\", name: \"Zambia\", flag: \"🇿🇲\", dial: \"+260\" },\r\n { code: \"ZW\", name: \"Zimbabwe\", flag: \"🇿🇼\", dial: \"+263\" },\r\n];\r\n\r\nexport const PHONE_COUNTRIES: PhoneCountry[] = [...PHONE_PRIORITY, ...PHONE_REST];\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { ChevronDownIcon } from \"lucide-react\";\r\nimport { PHONE_COUNTRIES, PHONE_PRIORITY, PHONE_REST } from \"@/lib/phone-countries\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\ninterface PhoneCountrySelectProps {\r\n value: string; // ISO code e.g. \"BR\"\r\n onChange: (code: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function PhoneCountrySelect({\r\n value,\r\n onChange,\r\n className,\r\n}: PhoneCountrySelectProps) {\r\n const [open, setOpen] = React.useState(false);\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const listRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const selected =\r\n PHONE_COUNTRIES.find((c) => c.code === value) ?? PHONE_COUNTRIES[0];\r\n\r\n /* Close on click outside */\r\n React.useEffect(() => {\r\n if (!open) return;\r\n const handler = (e: MouseEvent) => {\r\n if (!containerRef.current?.contains(e.target as Node)) {\r\n setOpen(false);\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handler);\r\n return () => document.removeEventListener(\"mousedown\", handler);\r\n }, [open]);\r\n\r\n /* Scroll selected item into view when opening */\r\n React.useEffect(() => {\r\n if (!open || !listRef.current) return;\r\n const activeEl = listRef.current.querySelector(\"[data-selected=true]\");\r\n activeEl?.scrollIntoView({ block: \"nearest\" });\r\n }, [open]);\r\n\r\n const handleSelect = (code: string) => {\r\n onChange(code);\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"relative shrink-0\", className)}>\r\n {/* Trigger — shows only flag + dial code */}\r\n <button\r\n type=\"button\"\r\n onClick={() => setOpen((v) => !v)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n className={cn(\r\n \"flex h-14 items-center gap-1.5 rounded-l-lg border border-r-0 border-border bg-muted\",\r\n \"px-3 font-ui text-sm text-foreground transition-colors\",\r\n \"focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\",\r\n open && \"border-primary ring-1 ring-primary\"\r\n )}\r\n >\r\n <span className=\"text-base leading-none\">{selected.flag}</span>\r\n <span className=\"tabular-nums\">{selected.dial}</span>\r\n <ChevronDownIcon\r\n className={cn(\r\n \"h-3.5 w-3.5 text-muted-foreground transition-transform\",\r\n open && \"rotate-180\"\r\n )}\r\n />\r\n </button>\r\n\r\n {/* Dropdown list */}\r\n {open && (\r\n <div\r\n ref={listRef}\r\n role=\"listbox\"\r\n className={cn(\r\n \"absolute left-0 top-[calc(100%+4px)] z-50\",\r\n \"w-64 max-h-64 overflow-y-auto\",\r\n \"rounded-lg border border-border bg-background shadow-lg\",\r\n \"py-1\"\r\n )}\r\n >\r\n {/* Priority countries */}\r\n {PHONE_PRIORITY.map((c) => (\r\n <button\r\n key={c.code}\r\n type=\"button\"\r\n role=\"option\"\r\n data-selected={c.code === value}\r\n onClick={() => handleSelect(c.code)}\r\n className={cn(\r\n \"flex w-full items-center gap-2.5 px-3 py-2 text-sm font-ui text-left\",\r\n \"transition-colors hover:bg-muted focus:outline-none focus:bg-muted\",\r\n c.code === value && \"bg-primary/8 text-primary font-semibold\"\r\n )}\r\n >\r\n <span className=\"text-base leading-none shrink-0\">{c.flag}</span>\r\n <span className=\"w-10 shrink-0 tabular-nums text-muted-foreground\">\r\n {c.dial}\r\n </span>\r\n <span className=\"truncate text-foreground\">{c.name}</span>\r\n </button>\r\n ))}\r\n\r\n {/* Divider */}\r\n <div className=\"my-1 h-px bg-border\" />\r\n\r\n {/* Rest alphabetical */}\r\n {PHONE_REST.map((c) => (\r\n <button\r\n key={c.code}\r\n type=\"button\"\r\n role=\"option\"\r\n data-selected={c.code === value}\r\n onClick={() => handleSelect(c.code)}\r\n className={cn(\r\n \"flex w-full items-center gap-2.5 px-3 py-2 text-sm font-ui text-left\",\r\n \"transition-colors hover:bg-muted focus:outline-none focus:bg-muted\",\r\n c.code === value && \"bg-primary/8 text-primary font-semibold\"\r\n )}\r\n >\r\n <span className=\"text-base leading-none shrink-0\">{c.flag}</span>\r\n <span className=\"w-10 shrink-0 tabular-nums text-muted-foreground\">\r\n {c.dial}\r\n </span>\r\n <span className=\"truncate text-foreground\">{c.name}</span>\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n CalendarIcon,\r\n MapPinIcon,\r\n CheckIcon,\r\n XIcon,\r\n ChevronRightIcon,\r\n MailIcon,\r\n PhoneIcon,\r\n MapIcon,\r\n CheckCircle2Icon,\r\n ArrowLeftIcon,\r\n UsersIcon,\r\n} from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { FloatingInput, FloatingSelect } from \"./FloatingInput\";\r\nimport { PhoneCountrySelect } from \"./PhoneCountrySelect\";\r\n\r\n/* -----------------------------------------------------------------------\r\n Types\r\n ----------------------------------------------------------------------- */\r\n\r\nexport interface OfferSummaryLineItem {\r\n label: string;\r\n price: string;\r\n /** Rendered in success green with a − prefix */\r\n isDiscount?: boolean;\r\n}\r\n\r\nexport interface OfferOptionalItem {\r\n id: string;\r\n label: string;\r\n /** e.g. \"R$150.00 per person\" */\r\n pricePerPerson: string;\r\n defaultChecked?: boolean;\r\n}\r\n\r\nexport interface OfferAdventureItem {\r\n id: string;\r\n /** Short reference code shown as a badge, e.g. \"EX012345\" */\r\n reference?: string;\r\n image: string;\r\n imageAlt?: string;\r\n title: string;\r\n /** Start date string, e.g. \"April 23, 2026\" */\r\n dateFrom: string;\r\n /** End date string, e.g. \"April 26, 2026\" */\r\n dateTo: string;\r\n location?: string;\r\n /** Optional add-ons that replace the former tags section */\r\n optionals?: OfferOptionalItem[];\r\n slots?: { adults: number; children?: number };\r\n description?: string;\r\n included?: string[];\r\n notIncluded?: string[];\r\n cancellationPolicy?: string[];\r\n totalPrice: string;\r\n lineItems?: OfferSummaryLineItem[];\r\n /** Called when user clicks \"Remove from proposal\" */\r\n onRemove?: () => void;\r\n}\r\n\r\nexport interface OfferDepositInfo {\r\n depositPercent: number;\r\n depositAmount: string;\r\n remainingAmount: string;\r\n balanceDueDate: string;\r\n}\r\n\r\nexport interface OfferAgentInfo {\r\n name: string;\r\n company?: string;\r\n avatar?: string;\r\n whatsappUrl?: string;\r\n email?: string;\r\n scheduleUrl?: string;\r\n}\r\n\r\nexport interface OfferProps {\r\n /** Logo URL (defaults to /logo-planetaexo.png) */\r\n logo?: string;\r\n logoAlt?: string;\r\n title: string;\r\n adventures: OfferAdventureItem[];\r\n subtotal?: string;\r\n total: string;\r\n depositInfo?: OfferDepositInfo;\r\n agent?: OfferAgentInfo;\r\n onContinue?: () => void;\r\n continueLabel?: string;\r\n className?: string;\r\n}\r\n\r\n/* -----------------------------------------------------------------------\r\n OfferAdventureCard — cartão de aventura (exportado para composição em apps)\r\n ----------------------------------------------------------------------- */\r\n\r\nexport function OfferAdventureCard({ adventure }: { adventure: OfferAdventureItem }) {\r\n const [checked, setChecked] = React.useState<Set<string>>(\r\n new Set(adventure.optionals?.filter((o) => o.defaultChecked).map((o) => o.id) ?? [])\r\n );\r\n\r\n const toggleOptional = (id: string) =>\r\n setChecked((prev) => {\r\n const next = new Set(prev);\r\n next.has(id) ? next.delete(id) : next.add(id);\r\n return next;\r\n });\r\n\r\n return (\r\n <div className=\"rounded-2xl border border-border bg-card overflow-hidden\">\r\n {/* Cover image */}\r\n <div className=\"aspect-[16/7] overflow-hidden bg-muted\">\r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n <img\r\n src={adventure.image}\r\n alt={adventure.imageAlt ?? adventure.title}\r\n className=\"w-full h-full object-cover\"\r\n />\r\n </div>\r\n\r\n <div className=\"p-5 lg:p-6 flex flex-col gap-2.5\">\r\n {/* Reference + Remove row */}\r\n <div className=\"flex items-center justify-between gap-2 min-h-[22px]\">\r\n {adventure.reference ? (\r\n <span className=\"inline-flex items-center rounded-md bg-primary/10 px-2 py-0.5 text-xs font-semibold text-primary font-heading tracking-wide\">\r\n {adventure.reference}\r\n </span>\r\n ) : (\r\n <span />\r\n )}\r\n {adventure.onRemove && (\r\n <button\r\n type=\"button\"\r\n onClick={adventure.onRemove}\r\n className=\"text-[11px] text-destructive/60 hover:text-destructive transition-colors font-sans leading-none\"\r\n >\r\n Remove from proposal\r\n </button>\r\n )}\r\n </div>\r\n\r\n {/* Title */}\r\n <h3 className=\"text-xl font-bold text-foreground font-heading leading-snug mt-0.5\">\r\n {adventure.title}\r\n </h3>\r\n\r\n {/* Date range */}\r\n <p className=\"flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none\">\r\n <CalendarIcon className=\"w-3.5 h-3.5 text-primary shrink-0\" />\r\n {adventure.dateFrom} → {adventure.dateTo}\r\n </p>\r\n\r\n {/* Location */}\r\n {adventure.location && (\r\n <p className=\"flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none\">\r\n <MapPinIcon className=\"w-3.5 h-3.5 text-primary shrink-0\" />\r\n {adventure.location}\r\n </p>\r\n )}\r\n\r\n {/* Optionals */}\r\n {adventure.optionals && adventure.optionals.length > 0 && (\r\n <div className=\"flex flex-col gap-2 mt-1\">\r\n <p className=\"text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest\">\r\n Available optionals\r\n </p>\r\n <div className=\"flex flex-col gap-1.5\">\r\n {adventure.optionals.map((opt) => (\r\n <label\r\n key={opt.id}\r\n className=\"flex items-center gap-2.5 cursor-pointer group\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n checked={checked.has(opt.id)}\r\n onChange={() => toggleOptional(opt.id)}\r\n className=\"h-4 w-4 shrink-0 rounded border-border accent-primary cursor-pointer\"\r\n />\r\n <span className=\"text-sm font-sans text-foreground/80 group-hover:text-foreground transition-colors leading-snug\">\r\n {opt.label}{\" \"}\r\n <span className=\"text-muted-foreground\">({opt.pricePerPerson})</span>\r\n </span>\r\n </label>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Description */}\r\n {adventure.description && (\r\n <>\r\n <Separator className=\"my-1\" />\r\n <div>\r\n <p className=\"text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2\">\r\n Itinerary\r\n </p>\r\n <p className=\"text-base text-foreground/80 leading-relaxed font-sans\">\r\n {adventure.description}\r\n </p>\r\n </div>\r\n </>\r\n )}\r\n\r\n {/* What's included */}\r\n {adventure.included && adventure.included.length > 0 && (\r\n <div className=\"flex flex-col gap-2 mt-1\">\r\n <h4 className=\"text-sm font-bold text-foreground font-heading\">O que está incluso</h4>\r\n <ul className=\"flex flex-col gap-1\">\r\n {adventure.included.map((item, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-sm text-foreground/80 font-sans\">\r\n <CheckIcon className=\"w-4 h-4 text-primary shrink-0 mt-0.5\" />\r\n {item}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {/* What's not included */}\r\n {adventure.notIncluded && adventure.notIncluded.length > 0 && (\r\n <div className=\"flex flex-col gap-2 mt-1\">\r\n <h4 className=\"text-sm font-bold text-foreground font-heading\">O que não está incluso</h4>\r\n <ul className=\"flex flex-col gap-1\">\r\n {adventure.notIncluded.map((item, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-sm text-foreground/80 font-sans\">\r\n <XIcon className=\"w-4 h-4 text-destructive shrink-0 mt-0.5\" />\r\n {item}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {/* Cancellation policy */}\r\n {adventure.cancellationPolicy && adventure.cancellationPolicy.length > 0 && (\r\n <div className=\"flex flex-col gap-2 mt-1\">\r\n <h4 className=\"text-sm font-bold text-foreground font-heading\">Política de cancelamento</h4>\r\n <ul className=\"flex flex-col gap-1\">\r\n {adventure.cancellationPolicy.map((item, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-sm text-muted-foreground font-sans\">\r\n <span className=\"w-1.5 h-1.5 rounded-full bg-primary shrink-0 mt-2\" />\r\n {item}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/* -----------------------------------------------------------------------\r\n Internal: OfferSidebar\r\n ----------------------------------------------------------------------- */\r\n\r\nfunction OfferSidebar({\r\n total,\r\n agent,\r\n onBook,\r\n bookLabel,\r\n}: {\r\n total: string;\r\n agent?: OfferAgentInfo;\r\n onBook?: () => void;\r\n bookLabel: string;\r\n}) {\r\n return (\r\n <div className=\"flex flex-col gap-4\">\r\n {/* Pricing card */}\r\n <div className=\"rounded-2xl border border-border bg-card p-5 flex flex-col gap-4\">\r\n <div>\r\n <p className=\"text-xs uppercase tracking-widest text-muted-foreground font-heading mb-1\">\r\n Booking Total\r\n </p>\r\n <p className=\"text-3xl font-black text-primary font-heading leading-none\">{total}</p>\r\n </div>\r\n <button\r\n type=\"button\"\r\n onClick={onBook}\r\n className={cn(\r\n \"w-full rounded-full bg-primary py-3 text-sm font-bold tracking-wide uppercase\",\r\n \"text-primary-foreground font-heading transition-colors hover:bg-primary/90\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\r\n )}\r\n >\r\n {bookLabel}\r\n </button>\r\n </div>\r\n\r\n {/* Agent card */}\r\n {agent && (\r\n <div className=\"rounded-2xl border border-border bg-card p-5 flex flex-col gap-4\">\r\n <div className=\"flex flex-col items-center gap-3 text-center\">\r\n {agent.avatar ? (\r\n // eslint-disable-next-line @next/next/no-img-element\r\n <img\r\n src={agent.avatar}\r\n alt={agent.name}\r\n className=\"w-16 h-16 rounded-full object-cover ring-2 ring-primary/20\"\r\n />\r\n ) : (\r\n <div className=\"w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center\">\r\n <span className=\"text-xl font-bold text-primary font-heading\">\r\n {agent.name.charAt(0)}\r\n </span>\r\n </div>\r\n )}\r\n <div>\r\n <p className=\"text-xs text-muted-foreground font-sans\">Need help with your offer?</p>\r\n <p className=\"text-sm font-sans text-foreground/80 mt-0.5\">\r\n Contact{\" \"}\r\n <span className=\"font-bold text-foreground font-heading\">{agent.name}</span> your\r\n travel advisor\r\n {agent.company && (\r\n <>\r\n {\" \"}at{\" \"}\r\n <span className=\"font-semibold text-primary\">{agent.company}</span>\r\n </>\r\n )}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <Separator />\r\n\r\n <div className=\"flex flex-col gap-2\">\r\n {agent.whatsappUrl && (\r\n <a\r\n href={agent.whatsappUrl}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"flex items-center gap-2.5 rounded-lg border border-border px-4 py-2.5 text-sm font-sans text-foreground hover:bg-muted/50 transition-colors\"\r\n >\r\n <svg className=\"w-4 h-4 shrink-0 text-[#25D366]\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\" />\r\n </svg>\r\n WhatsApp\r\n </a>\r\n )}\r\n {agent.email && (\r\n <a\r\n href={`mailto:${agent.email}`}\r\n className=\"flex items-center gap-2.5 rounded-lg border border-border px-4 py-2.5 text-sm font-sans text-foreground hover:bg-muted/50 transition-colors\"\r\n >\r\n <MailIcon className=\"w-4 h-4 shrink-0 text-primary\" />\r\n Email\r\n </a>\r\n )}\r\n {agent.scheduleUrl && (\r\n <a\r\n href={agent.scheduleUrl}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"flex items-center gap-2.5 rounded-lg border border-border px-4 py-2.5 text-sm font-sans text-foreground hover:bg-muted/50 transition-colors\"\r\n >\r\n <PhoneIcon className=\"w-4 h-4 shrink-0 text-primary\" />\r\n Schedule a call\r\n </a>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\n/* -----------------------------------------------------------------------\r\n Internal: Summary section\r\n ----------------------------------------------------------------------- */\r\n\r\nfunction OfferSummarySection({\r\n adventures,\r\n subtotal,\r\n total,\r\n depositInfo,\r\n onContinue,\r\n continueLabel,\r\n}: {\r\n adventures: OfferAdventureItem[];\r\n subtotal?: string;\r\n total: string;\r\n depositInfo?: OfferDepositInfo;\r\n onContinue?: () => void;\r\n continueLabel: string;\r\n}) {\r\n return (\r\n <div className=\"rounded-2xl border border-border bg-card p-5 flex flex-col gap-4\">\r\n <h3 className=\"font-bold text-foreground font-heading text-base\">Summary</h3>\r\n <Separator />\r\n\r\n <div className=\"flex flex-col gap-4\">\r\n {adventures.map((adventure, i) => (\r\n <div key={adventure.id}>\r\n <div className=\"flex items-start justify-between gap-3\">\r\n <span className=\"text-sm font-semibold text-foreground font-heading leading-tight\">\r\n {adventure.title}\r\n </span>\r\n <span className=\"text-sm font-semibold text-foreground font-heading shrink-0\">\r\n {adventure.totalPrice}\r\n </span>\r\n </div>\r\n {adventure.lineItems && adventure.lineItems.length > 0 && (\r\n <div className=\"mt-2 flex flex-col gap-1.5 pl-3 border-l-2 border-border ml-1\">\r\n {adventure.lineItems.map((item, j) => (\r\n <div key={j} className=\"flex items-start justify-between gap-3\">\r\n <span className=\"text-xs text-muted-foreground font-sans leading-tight\">\r\n {item.label}\r\n </span>\r\n <span className={cn(\"text-xs font-sans shrink-0\", item.isDiscount ? \"text-success\" : \"text-muted-foreground\")}>\r\n {item.isDiscount ? \"−\" : \"\"}\r\n {item.price}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n {i < adventures.length - 1 && <Separator className=\"mt-4\" />}\r\n </div>\r\n ))}\r\n </div>\r\n\r\n <Separator />\r\n\r\n {subtotal && (\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"text-sm text-muted-foreground font-sans\">Subtotal</span>\r\n <span className=\"text-sm font-semibold text-foreground font-sans\">{subtotal}</span>\r\n </div>\r\n )}\r\n\r\n {depositInfo && (\r\n <div className=\"flex flex-col gap-1.5 rounded-lg bg-muted/50 border border-border p-3\">\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"text-xs text-muted-foreground font-sans\">Deposit ({depositInfo.depositPercent}%)</span>\r\n <span className=\"text-xs font-semibold text-foreground font-sans\">{depositInfo.depositAmount}</span>\r\n </div>\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"text-xs text-muted-foreground font-sans\">Remaining balance</span>\r\n <span className=\"text-xs font-semibold text-foreground font-sans\">{depositInfo.remainingAmount}</span>\r\n </div>\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"text-xs text-muted-foreground font-sans\">Balance due</span>\r\n <span className=\"text-xs font-semibold text-foreground font-sans\">{depositInfo.balanceDueDate}</span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"flex items-center justify-between pt-1\">\r\n <span className=\"text-base font-bold text-foreground font-heading\">Total</span>\r\n <span className=\"text-2xl font-black text-primary font-heading\">{total}</span>\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onContinue}\r\n className={cn(\r\n \"w-full rounded-full bg-primary py-3.5 text-center text-sm font-bold uppercase tracking-wide\",\r\n \"text-primary-foreground font-heading transition-colors hover:bg-primary/90\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\r\n )}\r\n >\r\n {continueLabel}\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\n/* -----------------------------------------------------------------------\r\n Internal: Booking Wizard\r\n Steps: responsible → travellers → payment → confirmed\r\n ----------------------------------------------------------------------- */\r\n\r\ntype BookingStep = \"responsible\" | \"travellers\" | \"payment\" | \"confirmed\";\r\n\r\nconst WIZARD_STEPS: { id: BookingStep; label: string }[] = [\r\n { id: \"responsible\", label: \"Responsible party details\" },\r\n { id: \"travellers\", label: \"Travellers\" },\r\n { id: \"payment\", label: \"Payment and terms\" },\r\n];\r\n\r\ninterface TravellerValues {\r\n firstName: string;\r\n lastName: string;\r\n dateOfBirth: string;\r\n email: string;\r\n}\r\n\r\nfunction BookingWizard({\r\n adventures,\r\n total,\r\n depositInfo,\r\n onCancel,\r\n}: {\r\n adventures: OfferAdventureItem[];\r\n total: string;\r\n depositInfo?: OfferDepositInfo;\r\n onCancel?: () => void;\r\n}) {\r\n const [step, setStep] = React.useState<BookingStep>(\"responsible\");\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n /* Step 1 — responsible party */\r\n const [responsible, setResponsible] = React.useState({\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n phoneCountry: \"BR\",\r\n country: \"\",\r\n passport: \"\",\r\n notes: \"\",\r\n });\r\n\r\n /* Step 2 — travellers */\r\n const totalAdults = adventures.reduce((s, a) => s + (a.slots?.adults ?? 1), 0);\r\n const totalChildren = adventures.reduce((s, a) => s + (a.slots?.children ?? 0), 0);\r\n const totalPax = totalAdults + totalChildren;\r\n\r\n const [travellers, setTravellers] = React.useState<TravellerValues[]>(\r\n Array.from({ length: Math.max(totalPax, 1) }, () => ({\r\n firstName: \"\",\r\n lastName: \"\",\r\n dateOfBirth: \"\",\r\n email: \"\",\r\n }))\r\n );\r\n\r\n /* Step 3 — payment */\r\n const [payAmount, setPayAmount] = React.useState<\"deposit\" | \"full\">(\"full\");\r\n const [termsAccepted, setTermsAccepted] = React.useState(false);\r\n\r\n const setR = <K extends keyof typeof responsible>(k: K, v: (typeof responsible)[K]) =>\r\n setResponsible((p) => ({ ...p, [k]: v }));\r\n\r\n const setT = (i: number, k: keyof TravellerValues, v: string) =>\r\n setTravellers((prev) => prev.map((t, idx) => (idx === i ? { ...t, [k]: v } : t)));\r\n\r\n const stepIndex = WIZARD_STEPS.findIndex((s) => s.id === step);\r\n\r\n const goNext = () => {\r\n setError(null);\r\n\r\n if (step === \"responsible\") {\r\n if (!responsible.firstName || !responsible.lastName || !responsible.email) {\r\n setError(\"Please fill in all required fields.\");\r\n return;\r\n }\r\n if (!responsible.passport) {\r\n setError(\"Please enter the document (CPF or passport) according to country.\");\r\n return;\r\n }\r\n setStep(\"travellers\");\r\n } else if (step === \"travellers\") {\r\n const missing = travellers.some((t) => !t.firstName || !t.lastName);\r\n if (missing) {\r\n setError(\"Please fill in first and last name for all passengers.\");\r\n return;\r\n }\r\n setStep(\"payment\");\r\n } else if (step === \"payment\") {\r\n if (!termsAccepted) {\r\n setError(\"You must accept the terms to complete.\");\r\n return;\r\n }\r\n setStep(\"confirmed\");\r\n }\r\n };\r\n\r\n const goPrev = () => {\r\n setError(null);\r\n if (step === \"travellers\") setStep(\"responsible\");\r\n else if (step === \"payment\") setStep(\"travellers\");\r\n };\r\n\r\n /* Deposit amount label */\r\n const depositLabel = depositInfo\r\n ? `Pay deposit (${depositInfo.depositPercent}%) — ${depositInfo.depositAmount}`\r\n : \"Pay deposit\";\r\n const fullLabel = `Pay full amount — ${total}`;\r\n\r\n if (step === \"confirmed\") {\r\n return (\r\n <div className=\"rounded-2xl border border-border bg-card p-8 flex flex-col items-center gap-6 text-center\">\r\n <div className=\"flex h-20 w-20 items-center justify-center rounded-full bg-primary/10\">\r\n <CheckCircle2Icon className=\"w-10 h-10 text-primary\" />\r\n </div>\r\n <div>\r\n <h3 className=\"text-2xl font-black text-foreground font-heading\">Booking confirmed!</h3>\r\n <p className=\"mt-2 text-sm text-muted-foreground font-sans max-w-sm mx-auto leading-relaxed\">\r\n A confirmation email has been sent to{\" \"}\r\n <span className=\"font-semibold text-foreground\">{responsible.email || \"your email\"}</span>.\r\n Our team will be in touch shortly.\r\n </p>\r\n </div>\r\n <div className=\"rounded-xl border border-border bg-muted/30 px-6 py-4 w-full max-w-xs\">\r\n <p className=\"text-xs text-muted-foreground font-sans uppercase tracking-wider\">\r\n Booking reference\r\n </p>\r\n <p className=\"text-lg font-black text-primary font-heading mt-1\">\r\n PEX-{Math.random().toString(36).slice(2, 8).toUpperCase()}\r\n </p>\r\n </div>\r\n <button\r\n type=\"button\"\r\n onClick={onCancel}\r\n className=\"rounded-full border border-primary px-6 py-2.5 text-sm font-bold text-primary font-heading hover:bg-primary/10 transition-colors\"\r\n >\r\n Back to offer\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"rounded-2xl border border-border bg-card overflow-hidden\">\r\n {/* Step indicator */}\r\n <div className=\"border-b border-border px-5 py-4 bg-muted/20\">\r\n <h3 className=\"text-base font-bold text-foreground font-heading mb-2\">Booking details</h3>\r\n <div className=\"flex items-center gap-1.5 flex-wrap\">\r\n {WIZARD_STEPS.map((s, i) => (\r\n <React.Fragment key={s.id}>\r\n <span\r\n className={cn(\r\n \"text-xs font-sans\",\r\n s.id === step\r\n ? \"text-primary font-semibold\"\r\n : i < stepIndex\r\n ? \"text-foreground\"\r\n : \"text-muted-foreground\"\r\n )}\r\n >\r\n {s.label}\r\n </span>\r\n {i < WIZARD_STEPS.length - 1 && (\r\n <ChevronRightIcon className=\"w-3 h-3 text-muted-foreground shrink-0\" />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"p-5 flex flex-col gap-5\">\r\n\r\n {/* ── Step 1: Responsible party ── */}\r\n {step === \"responsible\" && (\r\n <div className=\"flex flex-col gap-4\">\r\n <p className=\"text-sm text-muted-foreground font-sans\">\r\n Enter the responsible person's details. This person will receive booking confirmations\r\n and is accountable for all travellers.\r\n </p>\r\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\r\n <FloatingInput label=\"First name\" required value={responsible.firstName} onChange={(e) => setR(\"firstName\", e.target.value)} />\r\n <FloatingInput label=\"Last name\" required value={responsible.lastName} onChange={(e) => setR(\"lastName\", e.target.value)} />\r\n </div>\r\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\r\n <FloatingInput label=\"Email\" type=\"email\" required value={responsible.email} onChange={(e) => setR(\"email\", e.target.value)} />\r\n <div className=\"flex w-full min-w-0\">\r\n <PhoneCountrySelect value={responsible.phoneCountry} onChange={(c) => setR(\"phoneCountry\", c)} className=\"shrink-0\" />\r\n <div className=\"relative min-w-0 flex-1\">\r\n <input\r\n id=\"wiz-phone\"\r\n type=\"tel\"\r\n placeholder=\" \"\r\n value={responsible.phone}\r\n onChange={(e) => setR(\"phone\", e.target.value)}\r\n className=\"peer block h-14 w-full rounded-r-lg border border-border bg-background px-3 pt-5 pb-2 text-base text-foreground font-sans transition-colors placeholder-transparent focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\"\r\n />\r\n <label htmlFor=\"wiz-phone\" className=\"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-base text-muted-foreground font-sans transition-all duration-150 peer-focus:top-3 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary peer-not-placeholder-shown:top-3 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs\">\r\n Phone\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <FloatingSelect label=\"Country\" required value={responsible.country} onChange={(e) => setR(\"country\", e.target.value)}>\r\n <option value=\"\" disabled hidden />\r\n <option value=\"BR\">Brazil</option>\r\n <option value=\"FR\">France</option>\r\n <option value=\"US\">United States</option>\r\n <option value=\"UK\">United Kingdom</option>\r\n <option value=\"AR\">Argentina</option>\r\n <option value=\"PT\">Portugal</option>\r\n </FloatingSelect>\r\n <FloatingInput label=\"Passport / CPF\" required value={responsible.passport} onChange={(e) => setR(\"passport\", e.target.value)} />\r\n <div className=\"relative\">\r\n <textarea\r\n id=\"wiz-notes\"\r\n placeholder=\" \"\r\n rows={3}\r\n value={responsible.notes}\r\n onChange={(e) => setR(\"notes\", e.target.value)}\r\n className=\"peer block w-full resize-none rounded-lg border border-border bg-background px-3 pt-6 pb-3 text-base text-foreground font-sans transition-colors placeholder-transparent focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\"\r\n />\r\n <label htmlFor=\"wiz-notes\" className=\"pointer-events-none absolute left-3 top-4 text-base text-muted-foreground font-sans transition-all duration-150 peer-focus:top-2 peer-focus:text-xs peer-focus:text-primary peer-not-placeholder-shown:top-2 peer-not-placeholder-shown:text-xs\">\r\n Notes (optional)\r\n </label>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* ── Step 2: Traveller details ── */}\r\n {step === \"travellers\" && (\r\n <div className=\"flex flex-col gap-5\">\r\n <div className=\"flex items-center gap-2\">\r\n <UsersIcon className=\"w-5 h-5 text-primary shrink-0\" />\r\n <h4 className=\"font-bold text-foreground font-heading text-base\">Traveller details</h4>\r\n </div>\r\n\r\n {travellers.map((t, i) => {\r\n const isChild = i >= totalAdults;\r\n return (\r\n <div key={i} className=\"rounded-xl border border-border p-4 flex flex-col gap-3\">\r\n <div className=\"flex items-center justify-between\">\r\n <p className=\"text-sm font-bold text-foreground font-heading\">\r\n Traveller {i + 1}\r\n </p>\r\n <span className={cn(\r\n \"text-xs font-semibold font-heading rounded-full px-2.5 py-0.5\",\r\n isChild\r\n ? \"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400\"\r\n : \"bg-primary/10 text-primary\"\r\n )}>\r\n {isChild ? \"Criança\" : \"Adulto\"}\r\n </span>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2\">\r\n <FloatingInput label=\"First name\" required value={t.firstName} onChange={(e) => setT(i, \"firstName\", e.target.value)} />\r\n <FloatingInput label=\"Last name\" required value={t.lastName} onChange={(e) => setT(i, \"lastName\", e.target.value)} />\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2\">\r\n <div className=\"relative\">\r\n <input\r\n id={`dob-${i}`}\r\n type=\"date\"\r\n required={isChild}\r\n value={t.dateOfBirth}\r\n onChange={(e) => setT(i, \"dateOfBirth\", e.target.value)}\r\n className=\"peer block h-14 w-full rounded-lg border border-border bg-background px-3 pt-5 pb-2 text-base text-foreground font-sans transition-colors focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\"\r\n />\r\n <label htmlFor={`dob-${i}`} className=\"pointer-events-none absolute left-3 top-3 text-xs text-muted-foreground font-sans\">\r\n Date of birth{isChild && <span className=\"text-primary ml-0.5\">*</span>}\r\n </label>\r\n </div>\r\n <FloatingInput\r\n label=\"Email\"\r\n type=\"email\"\r\n value={t.email}\r\n onChange={(e) => setT(i, \"email\", e.target.value)}\r\n />\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {/* ── Step 3: Payment and terms ── */}\r\n {step === \"payment\" && (\r\n <div className=\"flex flex-col gap-5\">\r\n <p className=\"text-sm text-muted-foreground font-sans\">\r\n When you confirm, we will open secure online payment (Stripe). Choose deposit vs full\r\n amount below when applicable.\r\n </p>\r\n\r\n {/* Amount selection */}\r\n {depositInfo && (\r\n <div className=\"flex flex-col gap-2\">\r\n <p className=\"text-sm font-bold text-foreground font-heading\">\r\n What do you want to pay now?\r\n </p>\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-2\">\r\n {([\"deposit\", \"full\"] as const).map((opt) => (\r\n <button\r\n key={opt}\r\n type=\"button\"\r\n onClick={() => setPayAmount(opt)}\r\n className={cn(\r\n \"rounded-lg border-2 px-4 py-3 text-sm text-left font-sans transition-colors\",\r\n payAmount === opt\r\n ? \"border-primary bg-primary/5 text-foreground font-semibold\"\r\n : \"border-border bg-background text-muted-foreground hover:border-primary/40\"\r\n )}\r\n >\r\n {opt === \"deposit\" ? depositLabel : fullLabel}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Payment method */}\r\n <div className=\"rounded-xl border border-border p-4 flex flex-col gap-3\">\r\n <p className=\"text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest flex items-center gap-1.5\">\r\n <span>$</span> Payment method\r\n </p>\r\n <button\r\n type=\"button\"\r\n className=\"w-full rounded-lg border-2 border-primary bg-primary/5 px-4 py-3 text-sm text-center text-primary font-semibold font-sans\"\r\n >\r\n Stripe (cartão)\r\n </button>\r\n </div>\r\n\r\n {/* Terms and conditions */}\r\n <div className=\"rounded-xl border border-border p-4 flex flex-col gap-3\">\r\n <p className=\"text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest flex items-center gap-1.5\">\r\n <CalendarIcon className=\"w-3.5 h-3.5\" /> Terms and conditions\r\n </p>\r\n <label className=\"flex items-start gap-2.5 cursor-pointer\">\r\n <input\r\n type=\"checkbox\"\r\n checked={termsAccepted}\r\n onChange={(e) => setTermsAccepted(e.target.checked)}\r\n className=\"h-4 w-4 shrink-0 mt-0.5 rounded border-border accent-primary cursor-pointer\"\r\n />\r\n <span className=\"text-sm font-sans text-foreground/80 leading-snug\">\r\n I have read and accept the terms and conditions of the reservation.\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Error */}\r\n {error && (\r\n <p className=\"text-sm text-destructive font-sans\">{error}</p>\r\n )}\r\n\r\n {/* Navigation */}\r\n <div className=\"flex flex-col gap-2\">\r\n <div className=\"flex items-center gap-3\">\r\n {stepIndex > 0 && (\r\n <button\r\n type=\"button\"\r\n onClick={goPrev}\r\n className=\"flex items-center gap-1.5 rounded-full border border-border px-5 py-2.5 text-sm text-foreground font-sans hover:bg-muted/50 transition-colors\"\r\n >\r\n <ArrowLeftIcon className=\"w-3.5 h-3.5\" />\r\n Back\r\n </button>\r\n )}\r\n <button\r\n type=\"button\"\r\n onClick={goNext}\r\n className={cn(\r\n \"rounded-full bg-primary px-8 py-2.5 text-sm font-bold\",\r\n \"text-primary-foreground font-heading transition-colors hover:bg-primary/90\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\r\n )}\r\n >\r\n {step === \"payment\" ? \"Confirm booking\" : \"Next\"}\r\n </button>\r\n </div>\r\n {stepIndex === 0 && (\r\n <button\r\n type=\"button\"\r\n onClick={onCancel}\r\n className=\"text-sm text-muted-foreground font-sans hover:text-foreground transition-colors self-start underline underline-offset-2\"\r\n >\r\n Cancel\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/* -----------------------------------------------------------------------\r\n Offer — main export\r\n ----------------------------------------------------------------------- */\r\n\r\nexport function Offer({\r\n logo = \"/logo-planetaexo.png\",\r\n logoAlt = \"Planeta EXO\",\r\n title,\r\n adventures,\r\n subtotal,\r\n total,\r\n depositInfo,\r\n agent,\r\n onContinue,\r\n continueLabel = \"Book now\",\r\n className,\r\n}: OfferProps) {\r\n const [showBooking, setShowBooking] = React.useState(false);\r\n\r\n const handleBook = () => {\r\n setShowBooking(true);\r\n onContinue?.();\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-5xl mx-auto flex flex-col gap-6\", className)}>\r\n {/* ── Logo ── */}\r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n <img src={logo} alt={logoAlt} className=\"w-[200px] h-auto object-contain\" />\r\n\r\n {/* ── Title ── */}\r\n <h1 className=\"text-2xl font-black text-foreground font-heading leading-tight\">{title}</h1>\r\n\r\n {/* ── Two-column layout ── */}\r\n <div className=\"grid grid-cols-1 lg:grid-cols-[1fr_280px] gap-6 lg:gap-8 items-start\">\r\n\r\n {/* Left: main content */}\r\n <div className=\"flex flex-col gap-6\">\r\n {/* Adventures */}\r\n <section className=\"flex flex-col gap-5\">\r\n <div className=\"flex items-center gap-2\">\r\n <MapIcon className=\"w-5 h-5 text-primary shrink-0\" />\r\n <h2 className=\"font-bold text-foreground font-heading text-base\">\r\n Included Adventures\r\n </h2>\r\n </div>\r\n {adventures.map((adventure) => (\r\n <OfferAdventureCard key={adventure.id} adventure={adventure} />\r\n ))}\r\n </section>\r\n\r\n {/* Summary */}\r\n {!showBooking && (\r\n <OfferSummarySection\r\n adventures={adventures}\r\n subtotal={subtotal}\r\n total={total}\r\n depositInfo={depositInfo}\r\n onContinue={handleBook}\r\n continueLabel={continueLabel}\r\n />\r\n )}\r\n\r\n {/* Booking wizard */}\r\n {showBooking && (\r\n <BookingWizard\r\n adventures={adventures}\r\n total={total}\r\n depositInfo={depositInfo}\r\n onCancel={() => setShowBooking(false)}\r\n />\r\n )}\r\n </div>\r\n\r\n {/* Right: sticky sidebar */}\r\n <div className=\"lg:sticky lg:top-8\">\r\n <OfferSidebar\r\n total={total}\r\n agent={agent}\r\n onBook={handleBook}\r\n bookLabel={continueLabel}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -0,0 +1,79 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ClassValue } from 'clsx';
3
+
4
+ interface OfferSummaryLineItem {
5
+ label: string;
6
+ price: string;
7
+ /** Rendered in success green with a − prefix */
8
+ isDiscount?: boolean;
9
+ }
10
+ interface OfferOptionalItem {
11
+ id: string;
12
+ label: string;
13
+ /** e.g. "R$150.00 per person" */
14
+ pricePerPerson: string;
15
+ defaultChecked?: boolean;
16
+ }
17
+ interface OfferAdventureItem {
18
+ id: string;
19
+ /** Short reference code shown as a badge, e.g. "EX012345" */
20
+ reference?: string;
21
+ image: string;
22
+ imageAlt?: string;
23
+ title: string;
24
+ /** Start date string, e.g. "April 23, 2026" */
25
+ dateFrom: string;
26
+ /** End date string, e.g. "April 26, 2026" */
27
+ dateTo: string;
28
+ location?: string;
29
+ /** Optional add-ons that replace the former tags section */
30
+ optionals?: OfferOptionalItem[];
31
+ slots?: {
32
+ adults: number;
33
+ children?: number;
34
+ };
35
+ description?: string;
36
+ included?: string[];
37
+ notIncluded?: string[];
38
+ cancellationPolicy?: string[];
39
+ totalPrice: string;
40
+ lineItems?: OfferSummaryLineItem[];
41
+ /** Called when user clicks "Remove from proposal" */
42
+ onRemove?: () => void;
43
+ }
44
+ interface OfferDepositInfo {
45
+ depositPercent: number;
46
+ depositAmount: string;
47
+ remainingAmount: string;
48
+ balanceDueDate: string;
49
+ }
50
+ interface OfferAgentInfo {
51
+ name: string;
52
+ company?: string;
53
+ avatar?: string;
54
+ whatsappUrl?: string;
55
+ email?: string;
56
+ scheduleUrl?: string;
57
+ }
58
+ interface OfferProps {
59
+ /** Logo URL (defaults to /logo-planetaexo.png) */
60
+ logo?: string;
61
+ logoAlt?: string;
62
+ title: string;
63
+ adventures: OfferAdventureItem[];
64
+ subtotal?: string;
65
+ total: string;
66
+ depositInfo?: OfferDepositInfo;
67
+ agent?: OfferAgentInfo;
68
+ onContinue?: () => void;
69
+ continueLabel?: string;
70
+ className?: string;
71
+ }
72
+ declare function OfferAdventureCard({ adventure }: {
73
+ adventure: OfferAdventureItem;
74
+ }): react_jsx_runtime.JSX.Element;
75
+ declare function Offer({ logo, logoAlt, title, adventures, subtotal, total, depositInfo, agent, onContinue, continueLabel, className, }: OfferProps): react_jsx_runtime.JSX.Element;
76
+
77
+ declare function cn(...inputs: ClassValue[]): string;
78
+
79
+ export { Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferDepositInfo, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, cn };
@@ -0,0 +1,79 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ClassValue } from 'clsx';
3
+
4
+ interface OfferSummaryLineItem {
5
+ label: string;
6
+ price: string;
7
+ /** Rendered in success green with a − prefix */
8
+ isDiscount?: boolean;
9
+ }
10
+ interface OfferOptionalItem {
11
+ id: string;
12
+ label: string;
13
+ /** e.g. "R$150.00 per person" */
14
+ pricePerPerson: string;
15
+ defaultChecked?: boolean;
16
+ }
17
+ interface OfferAdventureItem {
18
+ id: string;
19
+ /** Short reference code shown as a badge, e.g. "EX012345" */
20
+ reference?: string;
21
+ image: string;
22
+ imageAlt?: string;
23
+ title: string;
24
+ /** Start date string, e.g. "April 23, 2026" */
25
+ dateFrom: string;
26
+ /** End date string, e.g. "April 26, 2026" */
27
+ dateTo: string;
28
+ location?: string;
29
+ /** Optional add-ons that replace the former tags section */
30
+ optionals?: OfferOptionalItem[];
31
+ slots?: {
32
+ adults: number;
33
+ children?: number;
34
+ };
35
+ description?: string;
36
+ included?: string[];
37
+ notIncluded?: string[];
38
+ cancellationPolicy?: string[];
39
+ totalPrice: string;
40
+ lineItems?: OfferSummaryLineItem[];
41
+ /** Called when user clicks "Remove from proposal" */
42
+ onRemove?: () => void;
43
+ }
44
+ interface OfferDepositInfo {
45
+ depositPercent: number;
46
+ depositAmount: string;
47
+ remainingAmount: string;
48
+ balanceDueDate: string;
49
+ }
50
+ interface OfferAgentInfo {
51
+ name: string;
52
+ company?: string;
53
+ avatar?: string;
54
+ whatsappUrl?: string;
55
+ email?: string;
56
+ scheduleUrl?: string;
57
+ }
58
+ interface OfferProps {
59
+ /** Logo URL (defaults to /logo-planetaexo.png) */
60
+ logo?: string;
61
+ logoAlt?: string;
62
+ title: string;
63
+ adventures: OfferAdventureItem[];
64
+ subtotal?: string;
65
+ total: string;
66
+ depositInfo?: OfferDepositInfo;
67
+ agent?: OfferAgentInfo;
68
+ onContinue?: () => void;
69
+ continueLabel?: string;
70
+ className?: string;
71
+ }
72
+ declare function OfferAdventureCard({ adventure }: {
73
+ adventure: OfferAdventureItem;
74
+ }): react_jsx_runtime.JSX.Element;
75
+ declare function Offer({ logo, logoAlt, title, adventures, subtotal, total, depositInfo, agent, onContinue, continueLabel, className, }: OfferProps): react_jsx_runtime.JSX.Element;
76
+
77
+ declare function cn(...inputs: ClassValue[]): string;
78
+
79
+ export { Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferDepositInfo, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, cn };