@nim-ui/components 0.0.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.
- package/dist/index.d.ts +1679 -0
- package/dist/index.js +2638 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +2953 -0
- package/package.json +84 -0
- package/src/registry/index.json +1061 -0
- package/src/registry/schema.ts +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/button.tsx","../src/components/input.tsx","../src/components/textarea.tsx","../src/components/badge.tsx","../src/components/avatar.tsx","../src/components/switch.tsx","../src/components/container.tsx","../src/components/grid.tsx","../src/components/stack.tsx","../src/components/flex.tsx","../src/components/spacer.tsx","../src/components/card.tsx","../src/components/modal.tsx","../src/components/drawer.tsx","../src/components/tabs.tsx","../src/components/data-card.tsx","../src/components/data-table.tsx","../src/components/stat.tsx","../src/components/product-card.tsx","../src/components/cart-item.tsx","../src/components/price-tag.tsx","../src/components/quantity-selector.tsx","../src/components/hero.tsx","../src/components/feature-grid.tsx","../src/components/cta.tsx","../src/components/testimonial.tsx","../src/components/form.tsx","../src/components/form-field.tsx","../src/components/select.tsx","../src/components/checkbox.tsx","../src/components/radio.tsx","../src/components/toast-store.ts","../src/components/toast.tsx","../src/components/alert.tsx","../src/components/progress.tsx","../src/components/spinner.tsx","../src/components/skeleton.tsx","../src/components/tooltip.tsx","../src/components/popover.tsx","../src/components/dropdown-menu.tsx","../src/components/alert-dialog.tsx","../src/components/accordion.tsx","../src/components/separator.tsx","../src/components/breadcrumb.tsx"],"names":["React","cva","React2","jsxs","jsx","React3","React4","React5","React6","React7","React8","React9","React10","React11","React12","React13","DialogPrimitive2","React14","React15","React16","React17","React18","React19","React20","React21","React22","React23","React24","React25","React26","React27","React28","React29","React30","React31","toast","React32","toasts","Icon","React33","React34","React35","React36","React37","React38","React40","React41","Separator","React42","React43"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,KAAK,MAAM,CAAA;AACpB;ACYA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,8OAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,6HAAA;AAAA,QACT,SAAA,EAAW,yJAAA;AAAA,QACX,OAAA,EAAS,sKAAA;AAAA,QACT,KAAA,EAAO,oHAAA;AAAA,QACP,WAAA,EAAa;AAAA,OACf;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yBAAA;AAAA,QACJ,EAAA,EAAI,0BAAA;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,IAAM,MAAA,GAAeA,OAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC1D,GAAA;AAAA,MACA,UAAU,OAAA,IAAW,QAAA;AAAA,MACpB,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,OAAA,oBACC,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,iCAAA;AAAA,YACV,KAAA,EAAM,4BAAA;AAAA,YACN,IAAA,EAAK,MAAA;AAAA,YACL,OAAA,EAAQ,WAAA;AAAA,YACR,aAAA,EAAY,MAAA;AAAA,YAEZ,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,YAAA,EAAa,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,CAAA;AAAA,kCAC3F,MAAA,EAAA,EAAK,SAAA,EAAU,cAAa,IAAA,EAAK,cAAA,EAAe,GAAE,iHAAA,EAAkH;AAAA;AAAA;AAAA,SACvK;AAAA,QAED;AAAA;AAAA;AAAA;AAGP;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;ACvDrB,IAAM,aAAA,GAAgBC,GAAAA;AAAA,EACpB,0YAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iGAAA;AAAA,QACT,KAAA,EAAO,8FAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AASA,IAAM,KAAA,GAAcC,OAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,IAAA,GAAO,MAAA,EAAQ,QAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnF,IAAA,IAAI,YAAY,SAAA,EAAW;AACzB,MAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+GACZ,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,wBAEFA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA;AAAA,YACA,SAAA,EAAW,EAAA;AAAA,cACT,aAAA,CAAc,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,cAC/B,QAAA,IAAY,OAAA;AAAA,cACZ,SAAA,IAAa,OAAA;AAAA,cACb;AAAA,aACF;AAAA,YACA,GAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,QACC,6BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gHACZ,QAAA,EAAA,SAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QACzD,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;ACrEpB,IAAM,gBAAA,GAAmBH,GAAAA;AAAA,EACvB,0UAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iGAAA;AAAA,QACT,KAAA,EAAO,8FAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,IAAM,QAAA,GAAiBI,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,MAAA,GAAS,IAAA,EAAM,IAAA,GAAO,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,wBAChED,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,gBAAA,CAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QAClC,CAAC,MAAA,IAAU,aAAA;AAAA,QACX;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,IAAA;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AC1CvB,IAAM,aAAA,GAAgBH,GAAAA;AAAA,EACpB,oFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+CAAA;AAAA,QACT,SAAA,EAAW,2EAAA;AAAA,QACX,OAAA,EAAS,yGAAA;AAAA,QACT,WAAA,EAAa,2CAAA;AAAA,QACb,OAAA,EAAS,+CAAA;AAAA,QACT,OAAA,EAAS,0EAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,KAAA,GAAcK,OAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,SAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAChDF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,SAAS,IAAA,EAAM,OAAA,EAAS,CAAA,EAAG,SAAS,CAAA;AAAA,MAClE,GAAA;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;ACjCpB,IAAM,cAAA,GAAiBH,GAAAA;AAAA,EACrB,qDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,MAAA,GAAeM,OAAA,CAAA,UAAA,CAGnB,CAAC,EAAE,SAAA,EAAW,MAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBAChCH,GAAAA;AAAA,EAAiB,eAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,WAAW,EAAA,CAAG,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,IAChD,GAAG;AAAA;AACN,CACD;AACD,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;AAE1C,IAAM,WAAA,GAAoBG,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BH,GAAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8B,eAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,cAAA,GAAuBG,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BH,GAAAA;AAAA,EAAiB,eAAA,CAAA,QAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mJAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,cAA8B,eAAA,CAAA,QAAA,CAAS,WAAA;AC/DtD,IAAM,cAAA,GAAiBH,GAAAA;AAAA,EACrB,qcAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,UAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,IAAM,mBAAA,GAAsBA,GAAAA;AAAA,EAC1B,kIAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,iFAAA;AAAA,QACJ,EAAA,EAAI,iFAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,MAAA,GAAeO,OAAA,CAAA,UAAA,CAGnB,CAAC,EAAE,SAAA,EAAW,MAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBAChCJ,GAAAA;AAAA,EAAiB,eAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,WAAW,EAAA,CAAG,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,IAChD,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAiB,eAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAC,CAAA,EAAG;AAAA;AACvE,CACD;AACD,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;ACpD1C,IAAM,iBAAA,GAAoBH,GAAAA;AAAA,EACxB,gBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,sBAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU,IAAA;AAAA,MACV,OAAA,EAAS;AAAA;AACX;AAEJ;AAMA,IAAM,SAAA,GAAkBQ,OAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,SAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3CL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,GAAG,iBAAA,CAAkB,EAAE,UAAU,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAChE,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;ACnCxB,IAAM,YAAA,GAAeH,GAAAA;AAAA,EACnB,MAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,CAAA,EAAG,aAAA;AAAA,QACH,CAAA,EAAG,4BAAA;AAAA,QACH,CAAA,EAAG,2CAAA;AAAA,QACH,CAAA,EAAG,2CAAA;AAAA,QACH,CAAA,EAAG,2CAAA;AAAA,QACH,CAAA,EAAG,0DAAA;AAAA,QACH,EAAA,EAAI;AAAA,OACN;AAAA,MACA,GAAA,EAAK;AAAA,QACH,IAAA,EAAM,OAAA;AAAA,QACN,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,CAAA;AAAA,MACN,GAAA,EAAK;AAAA;AACP;AAEJ;AAMA,IAAM,IAAA,GAAaS,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,KAAK,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnCN,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,GAAG,YAAA,CAAa,EAAE,MAAM,GAAA,EAAK,GAAG,SAAS,CAAA;AAAA,MACnD,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;ACzCnB,IAAM,aAAA,GAAgBH,GAAAA;AAAA,EACpB,MAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,QAAA,EAAU,UAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACd;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,OAAA;AAAA,QACN,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,aAAA;AAAA,QACP,MAAA,EAAQ,cAAA;AAAA,QACR,GAAA,EAAK,WAAA;AAAA,QACL,OAAA,EAAS;AAAA;AACX,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,UAAA;AAAA,MACX,OAAA,EAAS,IAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT;AAEJ;AAMA,IAAM,KAAA,GAAcU,OAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,OAAA,EAAS,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnDP,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,WAAW,OAAA,EAAS,KAAA,EAAO,CAAA,EAAG,SAAS,CAAA;AAAA,MACpE,GAAG;AAAA;AAAA;AAGV;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AC5CpB,IAAM,YAAA,GAAeH,GAAAA;AAAA,EACnB,MAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,GAAA,EAAK,UAAA;AAAA,QACL,MAAA,EAAQ,UAAA;AAAA,QACR,aAAA,EAAe,kBAAA;AAAA,QACf,gBAAA,EAAkB;AAAA,OACpB;AAAA,MACA,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,eAAA;AAAA,QACP,MAAA,EAAQ,gBAAA;AAAA,QACR,GAAA,EAAK,aAAA;AAAA,QACL,OAAA,EAAS,iBAAA;AAAA,QACT,MAAA,EAAQ,gBAAA;AAAA,QACR,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,aAAA;AAAA,QACP,MAAA,EAAQ,cAAA;AAAA,QACR,GAAA,EAAK,WAAA;AAAA,QACL,OAAA,EAAS,eAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,WAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,GAAA,EAAK;AAAA,QACH,IAAA,EAAM,OAAA;AAAA,QACN,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,KAAA;AAAA,MACX,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,IAAA,GAAaW,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,GAAA,EAAK,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9DR,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,YAAA,CAAa,EAAE,SAAA,EAAW,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,GAAA,EAAK,CAAA,EAAG,SAAS,CAAA;AAAA,MAC9E,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AC5DnB,IAAM,cAAA,GAAiBH,GAAAA;AAAA,EACrB,EAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,MAAA,GAAeY,OAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,MAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCT,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,MAAM,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACtD,GAAG;AAAA;AAAA;AAGV;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;ACtBrB,IAAM,YAAA,GAAeH,GAAAA;AAAA,EACnB,kFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,uEAAA;AAAA,QACT,QAAA,EAAU,kFAAA;AAAA,QACV,QAAA,EAAU,kEAAA;AAAA,QACV,KAAA,EAAO;AAAA,OACT;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,uDAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW;AAAA;AACb;AAEJ;AAMA,IAAM,IAAA,GAAaa,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5CV,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,GAAG,YAAA,CAAa,EAAE,SAAS,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAEnB,IAAM,UAAA,GAAmBU,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BV,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,WAAA,GAAoBU,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BV,IAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,OAAO,CACjE;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBU,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BV,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;ACpEzB,IAAM,KAAA,GAAwB,eAAA,CAAA;AAE9B,IAAM,YAAA,GAA+B,eAAA,CAAA;AAErC,IAAM,WAAA,GAA8B,eAAA,CAAA;AAEpC,IAAM,UAAA,GAA6B,eAAA,CAAA;AAEnC,IAAM,YAAA,GAAqBW,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BX,GAAAA;AAAA,EAAiB,eAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,wHAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEnD,IAAM,oBAAA,GAAuBH,GAAAA;AAAA,EAC3B,2PAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,YAAA,GAAqBc,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCZ,IAAAA,CAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAC,IAAC,YAAA,EAAA,EAAa,CAAA;AAAA,kBACdA,GAAAA;AAAA,IAAiB,eAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAqB,EAAG,SAAS,CAAA;AAAA,MAC9C,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,YAAA,CAAa,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEnD,IAAM,WAAA,GAAoBW,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BX,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,oDAAA,EAAsD,SAAS,CAAA;AAAA,IAC5E,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,SAAA,GAAkBW,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BX,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,IAChE,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,UAAA,GAAmBW,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BX,GAAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0FAAA,EAA4F,SAAS,CAAA;AAAA,IAClH,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,cAA8B,eAAA,CAAA,KAAA,CAAM,WAAA;AAE/C,IAAM,gBAAA,GAAyBW,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BX,GAAAA;AAAA,EAAiB,eAAA,CAAA,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAA8B,eAAA,CAAA,WAAA,CAAY,WAAA;ACnG3D,IAAM,MAAA,GAAyBY,eAAA,CAAA;AAE/B,IAAM,aAAA,GAAgCA,eAAA,CAAA;AAEtC,IAAM,YAAA,GAA+BA,eAAA,CAAA;AAErC,IAAM,WAAA,GAA8BA,eAAA,CAAA;AAEpC,IAAM,aAAA,GAAsBC,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAiBY,eAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,wHAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,cAA8BA,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,qBAAA,GAAwBf,GAAAA;AAAA,EAC5B,6DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,gLAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,aAAA,GAAsBgB,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,OAAO,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpDd,KAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAC,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACfA,GAAAA;AAAA,IAAiBY,eAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,qBAAA,CAAsB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACvD,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,aAAA,CAAc,cAA8BA,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,YAAA,GAAqBC,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,IACjD,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,UAAA,GAAmBa,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,IAChE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,WAAA,GAAoBa,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAiBY,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8DAAA,EAAgE,SAAS,CAAA;AAAA,IACtF,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8BA,eAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,iBAAA,GAA0BC,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAiBY,eAAA,CAAA,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,cAA8BA,eAAA,CAAA,WAAA,CAAY,WAAA;ACzG5D,IAAM,IAAA,GAAqB,aAAA,CAAA;AAE3B,IAAM,gBAAA,GAAmBf,GAAAA;AAAA,EACvB,uIAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,QAAA,GAAiBiB,mBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bd,GAAAA;AAAA,EAAe,aAAA,CAAA,IAAA;AAAA,EAAd;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAiB,EAAG,SAAS,CAAA;AAAA,IAC1C,GAAG;AAAA;AACN,CACD;AACD,QAAA,CAAS,cAA4B,aAAA,CAAA,IAAA,CAAK,WAAA;AAE1C,IAAM,mBAAA,GAAsBH,GAAAA;AAAA,EAC1B,glBAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,WAAA,GAAoBiB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bd,GAAAA;AAAA,EAAe,aAAA,CAAA,OAAA;AAAA,EAAd;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAoB,EAAG,SAAS,CAAA;AAAA,IAC7C,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA4B,aAAA,CAAA,OAAA,CAAQ,WAAA;AAEhD,IAAM,mBAAA,GAAsBH,GAAAA;AAAA,EAC1B,oMAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,WAAA,GAAoBiB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bd,GAAAA;AAAA,EAAe,aAAA,CAAA,OAAA;AAAA,EAAd;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAoB,EAAG,SAAS,CAAA;AAAA,IAC7C,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA4B,aAAA,CAAA,OAAA,CAAQ,WAAA;AC/EhD,IAAM,gBAAA,GAAmBH,GAAAA;AAAA,EACvB,sFAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAYA,IAAM,QAAA,GAAiBkB,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,cAAA,EAAgB,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAClF,IAAA,MAAM,kBAAkB,cAAA,KAAmB,IAAA,GACvC,oCAAA,GACA,cAAA,KAAmB,SACnB,gCAAA,GACA,wCAAA;AAEJ,IAAA,uBACEf,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAiB,EAAG,SAAS,CAAA;AAAA,QAC1C,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4DAAA,EACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,0BACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2DAAA,EACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,YACC,KAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,qBAAA,EAAuB,eAAe,CAAA,EACvD,QAAA,EAAA,KAAA,EACH;AAAA,WAAA,EAEJ,CAAA;AAAA,UACC,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kDACV,QAAA,EAAA,WAAA,EACH;AAAA,SAAA,EAEJ;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AClCvB,IAAM,iBAAA,GAAoBH,GAAAA;AAAA,EACxB,+CAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,SAAA,GAAkBmB,OAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACxBhB,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAkB,EAAG,SAAS,CAAA;AAAA,MAC3C,GAAG;AAAA;AAAA,GACN,EACF;AAEJ;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,eAAA,GAAwBgB,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BhB,IAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,OAAO,CAC1E;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,aAAA,GAAsBgB,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,eAAA,GAAwBgB,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,wDAAA,EAA0D,SAAS,CAAA;AAAA,IAChF,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,YAAA,GAAqBgB,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oMAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,aAAA,GAAsBgB,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mHAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,aAAA,GAAsBgB,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uFAAA,EAAyF,SAAS,CAAA;AAAA,IAC/G,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;ACzH5B,IAAM,YAAA,GAAeH,GAAAA;AAAA,EACnB,yBAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AASA,IAAM,IAAA,GAAaoB,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtClB,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,MACtC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2DAAA,EACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,wBACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kDACV,QAAA,EAAA,KAAA,EACH;AAAA;AAAA;AAAA;AAGN;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;ACpBnB,IAAM,mBAAA,GAAsBH,GAAAA;AAAA,EAC1B,2KAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAaA,IAAM,WAAA,GAAoBqB,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,WAAA,EAAa,MAAA,EAAQ,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,wBAC5EnB,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAoB,EAAG,SAAS,CAAA;AAAA,MAC7C,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,KAAA;AAAA,YACL,KAAK,QAAA,IAAY,KAAA;AAAA,YACjB,SAAA,EAAU;AAAA;AAAA,SACZ,EACF,CAAA;AAAA,wBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2EAAA,EACX,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,UACC,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+DACV,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,0BAEFD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0DAAA,EACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,YACC,MAAA,oBAAUA,GAAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,MAAA,EAAO;AAAA,WAAA,EAC1B;AAAA,SAAA,EACF;AAAA;AAAA;AAAA;AAGN;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AC/C1B,IAAM,gBAAA,GAAmBH,GAAAA;AAAA,EACvB,8EAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAeA,IAAM,QAAA,GAAiBsB,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC;AAAA,IACC,SAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG;AAAA,GACL,EAAG,wBACDpB,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAiB,EAAG,SAAS,CAAA;AAAA,MAC1C,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uFAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,KAAA;AAAA,YACL,KAAK,QAAA,IAAY,KAAA;AAAA,YACjB,SAAA,EAAU;AAAA;AAAA,SACZ,EACF,CAAA;AAAA,wBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oDAAA,EACX,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,cACC,2BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kDACV,QAAA,EAAA,OAAA,EACH;AAAA,aAAA,EAEJ,CAAA;AAAA,4BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wDACV,QAAA,EAAA,KAAA,EACH;AAAA,WAAA,EACF,CAAA;AAAA,0BACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,8BAAAA,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gDAAA,EAAiD,QAAA,EAAA;AAAA,gBAAA,OAAA;AAAA,gBACzD;AAAA,eAAA,EACR,CAAA;AAAA,cACC,gBAAA,oBACCA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,gCAAAC,GAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAA,EAAG,QAAA,GAAW,CAAC,CAAC,CAAA;AAAA,oBACzD,SAAA,EAAU,sJAAA;AAAA,oBACV,YAAA,EAAW,mBAAA;AAAA,oBACZ,QAAA,EAAA;AAAA;AAAA,iBAED;AAAA,gCACAA,GAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,MAAM,gBAAA,CAAiB,QAAA,GAAW,CAAC,CAAA;AAAA,oBAC5C,SAAA,EAAU,sJAAA;AAAA,oBACV,YAAA,EAAW,mBAAA;AAAA,oBACZ,QAAA,EAAA;AAAA;AAAA;AAED,eAAA,EACF;AAAA,aAAA,EAEJ,CAAA;AAAA,YACC,4BACCA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,QAAA;AAAA,gBACT,SAAA,EAAU,oHAAA;AAAA,gBACX,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EAEJ;AAAA,SAAA,EACF;AAAA;AAAA;AAAA;AAGN;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AClHvB,IAAM,gBAAA,GAAmBH,GAAAA;AAAA,EACvB,gCAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAUA,IAAM,QAAA,GAAiBuB,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,aAAA,EAAe,eAAA,EAAiB,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBACrErB,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAClD,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QACC,iCACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+DACb,QAAA,EAAA,aAAA,EACH,CAAA;AAAA,QAED,eAAA,oBACCD,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,wDAAA,EAAyD,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACjE;AAAA,SAAA,EACR;AAAA;AAAA;AAAA;AAIR;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AC3CvB,IAAM,wBAAA,GAA2BF,GAAAA;AAAA,EAC/B,iGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI,MAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAWA,IAAM,gBAAA,GAAyBwB,OAAA,CAAA,UAAA;AAAA,EAC7B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,EAAA,EAAI,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1E,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,QAAQ,CAAC,CAAA;AACxC,MAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,QAAQ,CAAC,CAAA;AACxC,MAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,MAAM,iBAAA,GAAoB,CAAC,CAAA,KAA2C;AACpE,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,OAAO,EAAE,CAAA;AAC5C,MAAA,IAAI,CAAC,KAAA,CAAM,QAAQ,KAAK,QAAA,IAAY,GAAA,IAAO,YAAY,GAAA,EAAK;AAC1D,QAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,MACrB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,EAAA;AAAA,MAClB,wKAAA;AAAA,MACA,SAAS,IAAA,IAAQ,SAAA;AAAA,MACjB,SAAS,IAAA,IAAQ,WAAA;AAAA,MACjB,SAAS,IAAA,IAAQ;AAAA,KACnB;AAEA,IAAA,MAAM,UAAA,GAAa,EAAA;AAAA,MACjB,wIAAA;AAAA,MACA,SAAS,IAAA,IAAQ,SAAA;AAAA,MACjB,SAAS,IAAA,IAAQ,WAAA;AAAA,MACjB,SAAS,IAAA,IAAQ;AAAA,KACnB;AAEA,IAAA,uBACEtB,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,wBAAA,CAAyB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QAC1D,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,eAAA;AAAA,cACT,UAAU,KAAA,IAAS,GAAA;AAAA,cACnB,SAAA,EAAW,WAAA;AAAA,cACX,YAAA,EAAW,mBAAA;AAAA,cACZ,QAAA,EAAA;AAAA;AAAA,WAED;AAAA,0BACAA,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,KAAA;AAAA,cACA,QAAA,EAAU,iBAAA;AAAA,cACV,GAAA;AAAA,cACA,GAAA;AAAA,cACA,SAAA,EAAW,UAAA;AAAA,cACX,YAAA,EAAW;AAAA;AAAA,WACb;AAAA,0BACAA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,eAAA;AAAA,cACT,UAAU,KAAA,IAAS,GAAA;AAAA,cACnB,SAAA,EAAW,WAAA;AAAA,cACX,YAAA,EAAW,mBAAA;AAAA,cACZ,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AC3F/B,IAAM,YAAA,GAAeH,GAAAA;AAAA,EACnB,+JAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAoBA,IAAM,IAAA,GAAayB,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC;AAAA,IACC,SAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA,GAAG;AAAA,GACL,EAAG,wBACDtB,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,MACvC,OACE,eAAA,GACI;AAAA,QACE,eAAA,EAAiB,gEAAgE,eAAe,CAAA,CAAA,CAAA;AAAA,QAChG,cAAA,EAAgB,OAAA;AAAA,QAChB,kBAAA,EAAoB;AAAA,OACtB,GACA,MAAA;AAAA,MAEL,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,2DAAA;AAAA,cACA,kBACI,YAAA,GACA;AAAA,aACN;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC,4BACCA,GAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,kDAAA;AAAA,cACA,kBACI,kBAAA,GACA;AAAA,aACN;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QAAA,CAEA,cAAc,YAAA,qBACdD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qDAAA,EACZ,QAAA,EAAA;AAAA,UAAA,UAAA,oBACCC,GAAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,MAAM,UAAA,CAAW,IAAA;AAAA,cACjB,SAAS,UAAA,CAAW,OAAA;AAAA,cACpB,SAAA,EAAU,mMAAA;AAAA,cAET,QAAA,EAAA,UAAA,CAAW;AAAA;AAAA,WACd;AAAA,UAED,gCACCA,GAAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,MAAM,YAAA,CAAa,IAAA;AAAA,cACnB,SAAS,YAAA,CAAa,OAAA;AAAA,cACtB,SAAA,EAAW,EAAA;AAAA,gBACT,sGAAA;AAAA,gBACA,kBACI,oDAAA,GACA;AAAA,eACN;AAAA,cAEC,QAAA,EAAA,YAAA,CAAa;AAAA;AAAA;AAChB,SAAA,EAEJ;AAAA,OAAA,EAEJ;AAAA;AAAA;AAGN;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;ACzGnB,IAAM,mBAAA,GAAsBH,GAAAA;AAAA,EAC1B,kBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,CAAA,EAAG,4BAAA;AAAA,QACH,CAAA,EAAG,2CAAA;AAAA,QACH,CAAA,EAAG;AAAA;AACL,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAMA,IAAM,WAAA,GAAoB0B,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,wBACjCvB,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACxD,GAAG;AAAA;AAAA;AAGV;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,mBAAA,GAAsBH,GAAAA;AAAA,EAC1B,gJAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAUA,IAAM,WAAA,GAAoB0B,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,aAAa,GAAG,KAAA,EAAM,EAAG,GAAA,qBAClDxB,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAoB,EAAG,SAAS,CAAA;AAAA,MAC7C,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA,oBACCC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mIACZ,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,wBAEFD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,8DAAA,EACX,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,0BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0CACV,QAAA,EAAA,WAAA,EACH;AAAA,SAAA,EACF;AAAA;AAAA;AAAA;AAGN;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;ACjE1B,IAAM,WAAA,GAAcH,GAAAA;AAAA,EAClB,4DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,oCAAA;AAAA,QACT,OAAA,EAAS,+CAAA;AAAA,QACT,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAaA,IAAM,GAAA,GAAY2B,OAAA,CAAA,UAAA;AAAA,EAChB,CAAC;AAAA,IACC,SAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA,GAAG;AAAA,KACF,GAAA,KAAQ;AACT,IAAA,MAAM,gBAAA,GAAmB,OAAA,KAAY,SAAA,IAAa,OAAA,KAAY,UAAA;AAE9D,IAAA,uBACExB,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,WAAA,CAAY,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QAChD,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,+CAAA;AAAA,gBACA,mBACI,YAAA,GACA;AAAA,eACN;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,+BACCA,GAAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,SAAA;AAAA,gBACA,mBACI,eAAA,GACA;AAAA,eACN;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,0BAEFD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAM,UAAA;AAAA,gBACN,OAAA,EAAS,aAAA;AAAA,gBACT,SAAA,EAAW,EAAA;AAAA,kBACT,sGAAA;AAAA,kBACA,mBACI,gDAAA,GACA;AAAA,iBACN;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YACC,eAAA,oBAAmBA,GAAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,eAAA,EAAgB;AAAA,WAAA,EAC5C;AAAA,SAAA,EACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,GAAA,CAAI,WAAA,GAAc,KAAA;AC7FlB,IAAM,mBAAA,GAAsBH,GAAAA;AAAA,EAC1B,sFAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAYA,IAAM,WAAA,GAAoB4B,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9DzB,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAoB,EAAG,SAAS,CAAA;AAAA,MAC7C,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+DAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,SAAA;AAAA,YACV,IAAA,EAAK,cAAA;AAAA,YACL,OAAA,EAAQ,WAAA;AAAA,YACR,aAAA,EAAY,MAAA;AAAA,YAEZ,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0NAAA,EAA2N;AAAA;AAAA,SACrO,EACF,CAAA;AAAA,wBACAA,GAAAA,CAAC,YAAA,EAAA,EAAW,SAAA,EAAU,kDACnB,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,wBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACZ,QAAA,EAAA;AAAA,UAAA,MAAA,oBACCC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6EACb,QAAA,kBAAAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,MAAA;AAAA,cACL,GAAA,EAAK,MAAA;AAAA,cACL,SAAA,EAAU;AAAA;AAAA,WACZ,EACF,CAAA;AAAA,0BAEFD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sDAAA,EACV,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,YAAA,CACE,QAAQ,OAAA,qBACRD,IAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,gDAAA,EACV,QAAA,EAAA;AAAA,cAAA,IAAA;AAAA,cACA,QAAQ,OAAA,IAAW,IAAA;AAAA,cACnB;AAAA,aAAA,EACH;AAAA,WAAA,EAEJ;AAAA,SAAA,EACF;AAAA,OAAA,EACF;AAAA;AAAA;AAGN;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AChE1B,IAAM,YAAA,GAAeF,GAAAA;AAAA,EACnB,4BAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,IAAA,GAAa6B,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,wBAC/B1B,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,MACvC,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,GAAG,KAAA,EAAM;AAAA,MACxE,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;ACvBnB,IAAM,iBAAA,GAAoBH,GAAAA;AAAA,EACxB,WAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAYA,IAAM,SAAA,GAAkB8B,OAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,wBAC5E5B,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAkB,EAAG,SAAS,CAAA;AAAA,MAC3C,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,IAAA;AAAA,YACT,SAAA,EAAU,kEAAA;AAAA,YAET,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cACA,4BAAYC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAoB,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAAA,SACpD;AAAA,QACC,QAAA;AAAA,QACA,UAAA,IAAc,CAAC,KAAA,oBACdA,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kDACV,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,QAED,yBACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0CACV,QAAA,EAAA,KAAA,EACH;AAAA;AAAA;AAAA;AAIR;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AC7CxB,IAAM,MAAA,GAAyB,eAAA,CAAA;AAE/B,IAAM,WAAA,GAA8B,eAAA,CAAA;AAEpC,IAAM,WAAA,GAA8B,eAAA,CAAA;AAEpC,IAAM,qBAAA,GAAwBH,GAAAA;AAAA,EAC5B,6ZAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,aAAA,GAAsB+B,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC7B,IAAAA;AAAA,EAAiB,eAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAsB,EAAG,SAAS,CAAA;AAAA,IAC/C,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDC,GAAAA,CAAiB,eAAA,CAAA,IAAA,EAAhB,EAAqB,OAAA,EAAO,MAC3B,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oBAAA;AAAA,UACV,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,cAAA;AAAA,UACP,OAAA,EAAQ,WAAA;AAAA,UAER,QAAA,kBAAAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAc,OAAA;AAAA,cACd,cAAA,EAAe,OAAA;AAAA,cACf,WAAA,EAAa,CAAA;AAAA,cACb,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA,OACF,EACF;AAAA;AAAA;AACF,CACD;AACD,aAAA,CAAc,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,qBAAA,GAAwBH,GAAAA;AAAA,EAC5B,+MAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,gBAAsB+B,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,UAAU,QAAA,GAAW,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,qBACzD5B,GAAAA,CAAiB,eAAA,CAAA,MAAA,EAAhB,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAiB,eAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAsB,EAAG,SAAS,CAAA;AAAA,IAChD,QAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,0BAAAA,GAAAA,CAAiB,eAAA,CAAA,QAAA,EAAhB,EAAyB,SAAA,EAAU,OACjC,QAAA,EACH;AAAA;AACF,CAAA,EACF,CACD;AACD,aAAA,CAAc,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,WAAA,GAAoB4B,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5B,GAAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+EAAA,EAAiF,SAAS,CAAA;AAAA,IACvG,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8B,eAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,kBAAA,GAAqBH,GAAAA;AAAA,EACzB,sUAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,UAAA,GAAmB+B,OAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC7B,IAAAA;AAAA,EAAiB,eAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAmB,EAAG,SAAS,CAAA;AAAA,IAC5C,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,UAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAiB,eAAA,CAAA,aAAA,EAAhB,EACC,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,SAAA;AAAA,UACV,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,cAAA;AAAA,UACP,OAAA,EAAQ,WAAA;AAAA,UAER,QAAA,kBAAAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAc,OAAA;AAAA,cACd,cAAA,EAAe,OAAA;AAAA,cACf,WAAA,EAAa,CAAA;AAAA,cACb,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA,SAEJ,CAAA,EACF,CAAA;AAAA,sBACAA,GAAAA,CAAiB,eAAA,CAAA,QAAA,EAAhB,EAA0B,QAAA,EAAS;AAAA;AAAA;AACtC,CACD;AACD,UAAA,CAAW,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;AC5I9C,IAAM,gBAAA,GAAmBH,GAAAA;AAAA,EACvB,sfAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,QAAA,GAAiBgC,mBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7B,GAAAA;AAAA,EAAmB,iBAAA,CAAA,IAAA;AAAA,EAAlB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAiB,EAAG,SAAS,CAAA;AAAA,IAC1C,GAAG,KAAA;AAAA,IAEJ,0BAAAA,GAAAA,CAAmB,iBAAA,CAAA,SAAA,EAAlB,EAA4B,SAAA,EAAU,iDACrC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAQ,WAAA;AAAA,QAER,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YACf,WAAA,EAAa,CAAA;AAAA,YACb,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA,KACF,EACF;AAAA;AACF,CACD;AACD,QAAA,CAAS,cAAgC,iBAAA,CAAA,IAAA,CAAK,WAAA;ACjB9C,IAAM,kBAAA,GAAqBH,GAAAA;AAAA,EACzB,YAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,UAAA,GAAmBiC,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAqB,mBAAA,CAAA,IAAA;AAAA,EAApB;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAmB,EAAG,SAAS,CAAA;AAAA,IAC5C,GAAG,KAAA;AAAA,IACJ;AAAA;AACF,CACD;AACD,UAAA,CAAW,cAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;AAElD,IAAM,sBAAA,GAAyBH,GAAAA;AAAA,EAC7B,yTAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB;AAMA,IAAM,cAAA,GAAuBiC,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAqB,mBAAA,CAAA,IAAA;AAAA,EAApB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAuB,EAAG,SAAS,CAAA;AAAA,IAChD,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAqB,mBAAA,CAAA,SAAA,EAApB,EAA8B,SAAA,EAAU,kCAAA,EACvC,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EAAsC,CAAA,EACvD;AAAA;AACF,CACD;AACD,cAAA,CAAe,cAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;AC9DtD,IAAI,SAAsB,EAAC;AAC3B,IAAM,SAAA,uBAAgB,GAAA,EAAgB;AAEtC,SAAS,UAAA,GAAa;AACpB,EAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,IAAA,QAAA,EAAS;AAAA,EACX;AACF;AAaO,IAAM,UAAA,GAA4B;AAAA,EACvC,WAAA,GAAc;AACZ,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA,EAEA,UAAU,QAAA,EAAsB;AAC9B,IAAA,SAAA,CAAU,IAAI,QAAQ,CAAA;AACtB,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,OAAO,QAAQ,CAAA;AAAA,IAC3B,CAAA;AAAA,EACF,CAAA;AAAA,EAEA,IAAI+B,MAAAA,EAAkB;AACpB,IAAA,MAAA,GAAS,CAAC,GAAG,MAAA,EAAQA,MAAK,CAAA;AAC1B,IAAA,UAAA,EAAW;AACX,IAAA,OAAOA,MAAAA,CAAM,EAAA;AAAA,EACf,CAAA;AAAA,EAEA,QAAQ,EAAA,EAAY;AAClB,IAAA,MAAM,OAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC7C,IAAA,IAAI,IAAA,CAAK,MAAA,KAAW,MAAA,CAAO,MAAA,EAAQ;AACjC,MAAA,MAAA,GAAS,IAAA;AACT,MAAA,UAAA,EAAW;AAAA,IACb;AAAA,EACF,CAAA;AAAA,EAEA,KAAA,GAAQ;AACN,IAAA,IAAI,MAAA,CAAO,SAAS,CAAA,EAAG;AACrB,MAAA,MAAA,GAAS,EAAC;AACV,MAAA,UAAA,EAAW;AAAA,IACb;AAAA,EACF;AACF;AAEA,IAAI,OAAA,GAAU,CAAA;AAEd,SAAS,UAAA,GAAqB;AAC5B,EAAA,OAAA,IAAW,CAAA;AACX,EAAA,OAAO,OAAO,OAAO,CAAA;AACvB;AAsBA,SAAS,YAAY,OAAA,EAA+B;AAClD,EAAA,MAAM,KAAK,UAAA,EAAW;AACtB,EAAA,MAAM,SAAA,GAAuB;AAAA,IAC3B,GAAG,OAAA;AAAA,IACH,EAAA;AAAA,IACA,OAAA,EAAS,QAAQ,OAAA,IAAW;AAAA,GAC9B;AACA,EAAA,UAAA,CAAW,IAAI,SAAS,CAAA;AACxB,EAAA,OAAO,EAAA;AACT;AAEA,SAAS,gBAAgB,OAAA,EAA+B;AACtD,EAAA,OAAO,CAAC,cAAA,KAAkD;AACxD,IAAA,IAAI,OAAO,mBAAmB,QAAA,EAAU;AACtC,MAAA,OAAO,WAAA,CAAY,EAAE,KAAA,EAAO,cAAA,EAAgB,SAAS,CAAA;AAAA,IACvD;AACA,IAAA,OAAO,WAAA,CAAY,EAAE,GAAG,cAAA,EAAgB,SAAS,CAAA;AAAA,EACnD,CAAA;AACF;AAEO,IAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa;AAAA,EAC9C,OAAA,EAAS,gBAAgB,SAAS,CAAA;AAAA,EAClC,KAAA,EAAO,gBAAgB,OAAO,CAAA;AAAA,EAC9B,OAAA,EAAS,gBAAgB,SAAS,CAAA;AAAA,EAClC,IAAA,EAAM,gBAAgB,MAAM,CAAA;AAAA,EAC5B,OAAA,EAAS,CAAC,EAAA,KAAe,UAAA,CAAW,QAAQ,EAAE,CAAA;AAAA,EAC9C,KAAA,EAAO,MAAM,UAAA,CAAW,KAAA;AAC1B,CAAC;AAcM,SAAS,aAAA,GAA6B;AAC3C,EAAA,OAAO,oBAAA;AAAA,IACL,UAAA,CAAW,SAAA;AAAA,IACX,UAAA,CAAW,WAAA;AAAA,IACX,UAAA,CAAW;AAAA,GACb;AACF;AClJA,IAAM,gBAAA,GAAmBlC,GAAAA;AAAA,EACvB,iGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,WAAA,EAAa,eAAA;AAAA,QACb,UAAA,EAAY,cAAA;AAAA,QACZ,YAAA,EAAc,iCAAA;AAAA,QACd,cAAA,EAAgB,kBAAA;AAAA,QAChB,aAAA,EAAe,iBAAA;AAAA,QACf,eAAA,EAAiB;AAAA;AACnB,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU;AAAA;AACZ;AAEJ;AAUA,IAAM,aAAA,GAAgBA,GAAAA;AAAA,EACpB,wWAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,0HAAA;AAAA,QACF,OAAA,EACE,wIAAA;AAAA,QACF,KAAA,EACE,4HAAA;AAAA,QACF,OAAA,EACE,wIAAA;AAAA,QACF,IAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AA2DA,IAAM,aAAA,GAA+B,cAAA,CAAA;AAgBrC,IAAM,aAAA,GAAsBmC,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpChC,GAAAA;AAAA,EAAgB,cAAA,CAAA,QAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,QAAA,EAAU,GAAG,SAAS,CAAA;AAAA,IACtD,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AA6B5B,IAAM,KAAA,GAAcgC,OAAA,CAAA,UAAA,CAGlB,CAAC,EAAE,SAAA,EAAW,SAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnChC,GAAAA;AAAA,EAAgB,cAAA,CAAA,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,gBAAc,OAAA,IAAW,SAAA;AAAA,IACzB,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAcpB,IAAM,UAAA,GAAmBgC,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhC,GAAAA;AAAA,EAAgB,cAAA,CAAA,KAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS,CAAA;AAAA,IAC/C,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAczB,IAAM,gBAAA,GAAyBgC,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhC,GAAAA;AAAA,EAAgB,cAAA,CAAA,WAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,SAAS,CAAA;AAAA,IAC5C,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAe/B,IAAM,UAAA,GAAmBgC,OAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpChC,GAAAA;AAAA,EAAgB,cAAA,CAAA,KAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qIAAA;AAAA,MACA,uGAAA;AAAA,MACA,mDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,YAAA,EAAW,oBAAA;AAAA,IACV,GAAG,KAAA;AAAA,IAEH,sCACCD,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,4BAAA;AAAA,QACN,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,GAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QAEZ,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,0BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAEJ,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAiBzB,IAAM,WAAA,GAAoBgC,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhC,GAAAA;AAAA,EAAgB,cAAA,CAAA,MAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,uKAAA;AAAA,MACA,qGAAA;AAAA,MACA,mDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAM1B,IAAM,WAAA,GAAc,sBAClBD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,4BAAA,EAA6B,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAA,EAAY,MAAA,EACjN,QAAA,EAAA;AAAA,kBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oCAAA,EAAqC,CAAA;AAAA,kBAC7CA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,uBAAA,EAAwB;AAAA,CAAA,EAC3C,CAAA;AAGF,IAAM,SAAA,GAAY,sBAChBD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,4BAAA,EAA6B,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAA,EAAY,MAAA,EACjN,QAAA,EAAA;AAAA,kBAAAC,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,kBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,kBACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,CAAA,EACtC,CAAA;AAGF,IAAM,WAAA,GAAc,sBAClBD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,4BAAA,EAA6B,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAA,EAAY,MAAA,EACjN,QAAA,EAAA;AAAA,kBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0FAAA,EAA2F,CAAA;AAAA,kBACnGA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,kBACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,IAAA,EAAK;AAAA,CAAA,EAC3C,CAAA;AAGF,IAAM,QAAA,GAAW,sBACfD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,4BAAA,EAA6B,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAA,EAAY,MAAA,EACjN,QAAA,EAAA;AAAA,kBAAAC,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,kBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,kBACtCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,GAAA,EAAI;AAAA,CAAA,EACzC,CAAA;AAGF,IAAM,YAAA,GAAyC;AAAA,EAC7C,OAAA,EAAS,WAAA;AAAA,EACT,KAAA,EAAO,SAAA;AAAA,EACP,OAAA,EAAS,WAAA;AAAA,EACT,IAAA,EAAM;AACR,CAAA;AA2BA,SAAS,OAAA,CAAQ;AAAA,EACf,QAAA,GAAW,cAAA;AAAA,EACX,QAAA,GAAW,GAAA;AAAA,EACX,cAAA,GAAiB;AACnB,CAAA,EAAiB;AACf,EAAA,MAAMiC,OAAAA,GAAeD,OAAA,CAAA,oBAAA;AAAA,IACnB,UAAA,CAAW,SAAA;AAAA,IACX,UAAA,CAAW,WAAA;AAAA,IACX,UAAA,CAAW;AAAA,GACb;AAEA,EAAA,uBACEjC,IAAAA,CAAC,aAAA,EAAA,EAAc,QAAA,EAAoB,cAAA,EAChC,QAAA,EAAA;AAAA,IAAAkC,OAAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM;AACjB,MAAA,MAAMC,QAAO,CAAA,CAAE,OAAA,GAAU,YAAA,CAAa,CAAA,CAAE,OAAO,CAAA,GAAI,MAAA;AACnD,MAAA,uBACEnC,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAS,CAAA,CAAE,OAAA;AAAA,UACX,UAAU,CAAA,CAAE,QAAA;AAAA,UACZ,YAAA,EAAc,CAAC,IAAA,KAAS;AACtB,YAAA,IAAI,CAAC,IAAA,EAAM,UAAA,CAAW,OAAA,CAAQ,EAAE,EAAE,CAAA;AAAA,UACpC,CAAA;AAAA,UAEC,QAAA,EAAA;AAAA,YAAAmC,KAAAA,oBACClC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YACb,QAAA,kBAAAA,GAAAA,CAACkC,KAAAA,EAAA,EAAK,CAAA,EACR,CAAA;AAAA,4BAEFnC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACZ,QAAA,EAAA;AAAA,cAAA,CAAA,CAAE,KAAA,oBAASC,GAAAA,CAAC,UAAA,EAAA,EAAY,YAAE,KAAA,EAAM,CAAA;AAAA,cAChC,EAAE,WAAA,oBAAeA,GAAAA,CAAC,gBAAA,EAAA,EAAkB,YAAE,WAAA,EAAY;AAAA,aAAA,EACrD,CAAA;AAAA,YACC,CAAA,CAAE,MAAA,oBACDA,GAAAA,CAAC,eAAY,OAAA,EAAS,CAAA,CAAE,MAAA,CAAO,OAAA,EAAS,SAAS,CAAA,CAAE,MAAA,CAAO,OAAA,EACvD,QAAA,EAAA,CAAA,CAAE,OAAO,KAAA,EACZ,CAAA;AAAA,4BAEFA,IAAC,UAAA,EAAA,EAAW;AAAA;AAAA,SAAA;AAAA,QArBP,CAAA,CAAE;AAAA,OAsBT;AAAA,IAEJ,CAAC,CAAA;AAAA,oBACDA,GAAAA,CAAC,aAAA,EAAA,EAAc,QAAA,EAAoB;AAAA,GAAA,EACrC,CAAA;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;AChbtB,IAAM,aAAA,GAAgBH,GAAAA;AAAA,EACpB,0EAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,mGAAA;AAAA,QACN,OAAA,EACE,qHAAA;AAAA,QACF,OAAA,EACE,qHAAA;AAAA,QACF,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AASA,IAAM,KAAA,GAAcsC,OAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,WAAA,EAAa,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnEpC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,SAAS,CAAA,EAAG,WAAA,IAAe,OAAA,EAAS,SAAS,CAAA;AAAA,MAC1E,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,+BACCC,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,SAAA;AAAA,YACT,SAAA,EAAU,0NAAA;AAAA,YACV,YAAA,EAAW,eAAA;AAAA,YAEX,QAAA,kBAAAD,IAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,4BAAA;AAAA,gBACN,KAAA,EAAM,IAAA;AAAA,gBACN,MAAA,EAAO,IAAA;AAAA,gBACP,OAAA,EAAQ,WAAA;AAAA,gBACR,IAAA,EAAK,MAAA;AAAA,gBACL,MAAA,EAAO,cAAA;AAAA,gBACP,WAAA,EAAY,GAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe,OAAA;AAAA,gBACf,aAAA,EAAY,MAAA;AAAA,gBAEZ,QAAA,EAAA;AAAA,kCAAAC,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,kCACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA;AACF;AAAA;AAAA;AAIR;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmBmC,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BnC,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBmC,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BnC,GAAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+CAAA,EAAiD,SAAS,CAAA;AAAA,IACvE,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;ACvF/B,IAAM,gBAAA,GAAmBH,GAAAA;AAAA,EACvB,iFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,IAAM,yBAAA,GAA4BA,GAAAA;AAAA,EAChC,2DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,oCAAA;AAAA,QACT,OAAA,EAAS,oCAAA;AAAA,QACT,OAAA,EAAS,oCAAA;AAAA,QACT,MAAA,EAAQ,gCAAA;AAAA,QACR,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAWA,IAAM,QAAA,GAAiBuC,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,GAAA,GAAM,GAAA,EAAK,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5E,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,CAAA,EAAI,KAAA,GAAQ,GAAA,GAAO,GAAG,CAAC,CAAA;AAEjE,IAAA,uBACErC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,KAAA;AAAA,QACf,eAAA,EAAe,CAAA;AAAA,QACf,eAAA,EAAe,GAAA;AAAA,QACf,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QAClD,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAW,EAAA,CAAG,yBAAA,CAA0B,EAAE,OAAA,EAAS,CAAC,CAAA;AAAA,cACpD,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,UAAU,CAAA,CAAA,CAAA;AAAI;AAAA,WACnC;AAAA,UACC,aAAa,IAAA,KAAS,IAAA,oBACrBD,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8GAAA,EACb,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,MAAM,UAAU,CAAA;AAAA,YAAE;AAAA,WAAA,EAC1B;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;ACtEvB,IAAM,eAAA,GAAkBF,IAAI,cAAA,EAAgB;AAAA,EAC1C,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,wCAAA;AAAA,MACT,SAAA,EAAW,wCAAA;AAAA,MACX,OAAA,EAAS,wCAAA;AAAA,MACT,WAAA,EAAa,oCAAA;AAAA,MACb,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAC;AAQD,IAAM,OAAA,GAAgBwC,OAAA,CAAA,UAAA;AAAA,EACpB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,QAAQ,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBAC1DtC,IAAAA,CAAC,UAAK,IAAA,EAAK,QAAA,EAAS,WAAU,0BAAA,EAC5B,QAAA,EAAA;AAAA,oBAAAA,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAM,4BAAA;AAAA,QACN,IAAA,EAAK,MAAA;AAAA,QACL,OAAA,EAAQ,WAAA;AAAA,QACR,SAAA,EAAW,GAAG,eAAA,CAAgB,EAAE,MAAM,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QAC3D,aAAA,EAAY,MAAA;AAAA,QACX,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,YAAA;AAAA,cACV,EAAA,EAAG,IAAA;AAAA,cACH,EAAA,EAAG,IAAA;AAAA,cACH,CAAA,EAAE,IAAA;AAAA,cACF,MAAA,EAAO,cAAA;AAAA,cACP,WAAA,EAAY;AAAA;AAAA,WACd;AAAA,0BACAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,YAAA;AAAA,cACV,IAAA,EAAK,cAAA;AAAA,cACL,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA;AAAA,KACF;AAAA,oBACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACnC;AAEJ;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACzDtB,IAAM,QAAA,GAAiBsC,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBtC,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,6DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AC8BvB,IAAM,kBAAkD,CAAC;AAAA,EACvD,aAAA,GAAgB,GAAA;AAAA,EAChB,iBAAA,GAAoB,GAAA;AAAA,EACpB,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAkB,gBAAA,CAAA,QAAA;AAAA,EAAjB;AAAA,IACC,aAAA;AAAA,IACA,iBAAA;AAAA,IACC,GAAG;AAAA;AACN;AAEF,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAkB9B,IAAM,OAAA,GAA2B,gBAAA,CAAA;AAMjC,IAAM,cAAA,GAAuBuC,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BvC,IAAkB,gBAAA,CAAA,OAAA,EAAjB,EAAyB,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CAC1E;AACD,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;AAMtD,IAAM,sBAAA,GAAyBH,GAAAA;AAAA,EAC7B,oIAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,yEAAA;AAAA,QACF,KAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAeA,IAAM,cAAA,GAAuB0C,OAAA,CAAA,UAAA;AAAA,EAI3B,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,UAAA,GAAa,CAAA;AAAA,IACb,IAAA,GAAO,KAAA;AAAA,IACP,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,qBAEAvC,GAAAA,CAAkB,gBAAA,CAAA,MAAA,EAAjB,EACC,QAAA,kBAAAD,IAAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAC3D,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,6BAAaC,GAAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAS,WAAW,MAAA,EAAW;AAAA;AAAA;AAAA,GAC7D,EACF;AAEJ;AACA,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;AAYtD,IAAM,YAAA,GAAqBuC,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,SAAA,EAAW,OAAA,GAAU,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC/CvC,GAAAA;AAAA,EAAkB,gBAAA,CAAA,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,OAAA,KAAY,YACR,uCAAA,GACA,kCAAA;AAAA,MACJ;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AC3I3B,IAAM,eAAA,GAAkD,CAAC,EAAE,QAAA,uBACzDA,GAAAA,CAAA,YAAG,QAAA,EAAS;AAEd,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAkB9B,IAAM,OAAA,GAA2B,gBAAA,CAAA;AAUjC,IAAM,cAAA,GAAuBwC,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BxC,IAAkB,gBAAA,CAAA,OAAA,EAAjB,EAAyB,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CAC1E;AACD,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;AAMtD,IAAM,sBAAA,GAAyBH,GAAAA;AAAA,EAC7B,wHAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,iIAAA;AAAA,QACF,OAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAeA,IAAM,cAAA,GAAuB2C,OAAA,CAAA,UAAA;AAAA,EAI3B,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,UAAA,GAAa,CAAA;AAAA,IACb,IAAA,GAAO,QAAA;AAAA,IACP,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AAEH,IAAA,MAAM,SAAA,GAAY,CAAA;AAClB,IAAA,MAAM,gBAAA,GAAwD;AAAA,MAC5D,MAAA,EAAQ;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,GAAA,EAAK,IAAI,SAAS,CAAA,EAAA,CAAA;AAAA,QAClB,IAAA,EAAM,KAAA;AAAA,QACN,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,UAAA,EAAY,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QACxB,WAAA,EAAa,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QACzB,YAAA,EAAc,GAAG,SAAS,CAAA,cAAA;AAAA,OAC5B;AAAA,MACA,GAAA,EAAK;AAAA,QACH,QAAA,EAAU,UAAA;AAAA,QACV,MAAA,EAAQ,IAAI,SAAS,CAAA,EAAA,CAAA;AAAA,QACrB,IAAA,EAAM,KAAA;AAAA,QACN,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,UAAA,EAAY,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QACxB,WAAA,EAAa,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QACzB,SAAA,EAAW,GAAG,SAAS,CAAA,cAAA;AAAA,OACzB;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,QAAA,EAAU,UAAA;AAAA,QACV,KAAA,EAAO,IAAI,SAAS,CAAA,EAAA,CAAA;AAAA,QACpB,GAAA,EAAK,KAAA;AAAA,QACL,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,SAAA,EAAW,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QACvB,YAAA,EAAc,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QAC1B,UAAA,EAAY,GAAG,SAAS,CAAA,cAAA;AAAA,OAC1B;AAAA,MACA,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,UAAA;AAAA,QACV,IAAA,EAAM,IAAI,SAAS,CAAA,EAAA,CAAA;AAAA,QACnB,GAAA,EAAK,KAAA;AAAA,QACL,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,SAAA,EAAW,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QACvB,YAAA,EAAc,GAAG,SAAS,CAAA,oBAAA,CAAA;AAAA,QAC1B,WAAA,EAAa,GAAG,SAAS,CAAA,cAAA;AAAA;AAC3B,KACF;AAEA,IAAA,uBACExC,GAAAA,CAAkB,gBAAA,CAAA,MAAA,EAAjB,EACC,QAAA,kBAAAD,IAAAA;AAAA,MAAkB,gBAAA,CAAA,OAAA;AAAA,MAAjB;AAAA,QACC,GAAA;AAAA,QACA,IAAA;AAAA,QACA,UAAA,EAAY,SAAA,GAAY,UAAA,GAAa,SAAA,GAAY,UAAA;AAAA,QACjD,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QAC5D,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAW;AAAA,QAC7B,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,6BACCC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,oBAAA,EAAmB,EAAA;AAAA,cACnB,aAAA,EAAY,MAAA;AAAA,cACZ,KAAA,EAAO,gBAAA,CAAiB,IAAA,IAAQ,QAAQ;AAAA;AAAA;AAC1C;AAAA;AAAA,KAEJ,EACF,CAAA;AAAA,EAEJ;AACF;AACA,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;AAYtD,IAAM,YAAA,GAAqBwC,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,WAAW,OAAA,GAAU,SAAA,EAAW,KAAA,GAAQ,EAAA,EAAI,SAAS,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,wBACvExC,GAAAA;AAAA,EAAkB,gBAAA,CAAA,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA;AAAA,IAC3D,KAAA,EAAO,EAAE,IAAA,EAAM,OAAA,EAAS,SAAS,OAAA,EAAQ;AAAA,IACxC,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAS3B,IAAM,YAAA,GAAqBwC,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BxC,IAAkB,gBAAA,CAAA,KAAA,EAAjB,EAAuB,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CACxE;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AC1N3B,IAAM,SAAA,GAAY,CAAC,EAAE,SAAA,uBACnBA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,4BAAA;AAAA,IACN,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAa,CAAA;AAAA,IACb,aAAA,EAAc,OAAA;AAAA,IACd,cAAA,EAAe,OAAA;AAAA,IACf,SAAA;AAAA,IAEA,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AACpC,CAAA;AAGF,IAAM,OAAA,GAAU,CAAC,EAAE,SAAA,uBACjBA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,4BAAA,EAA6B,OAAA,EAAQ,aAAY,SAAA,EAC1D,QAAA,kBAAAA,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAChC,CAAA;AAGF,IAAM,gBAAA,GAAmB,CAAC,EAAE,SAAA,uBAC1BA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,4BAAA;AAAA,IACN,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAa,CAAA;AAAA,IACb,aAAA,EAAc,OAAA;AAAA,IACd,cAAA,EAAe,OAAA;AAAA,IACf,SAAA;AAAA,IAEA,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AACpC,CAAA;AAqBF,IAAM,YAAA,GAAqC,qBAAA,CAAA;AAU3C,IAAM,mBAAA,GAA4B,mBAGhC,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,IAAuB,qBAAA,CAAA,OAAA,EAAtB,EAA8B,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CAC/E;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAMlC,IAAM,2BAAA,GAA8BH,GAAAA;AAAA,EAClC,gJAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,uHAAA;AAAA,QACF,OAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAaA,IAAM,sBAA4B,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,aAAa,CAAA,EAAG,IAAA,GAAO,QAAA,EAAU,GAAG,OAAM,EAAG,GAAA,qBACpEG,GAAAA,CAAuB,qBAAA,CAAA,MAAA,EAAtB,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAuB,qBAAA,CAAA,OAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAW,EAAA,CAAG,2BAAA,CAA4B,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAChE,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAYlC,IAAM,gBAAA,GAAyB,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjCA,GAAAA;AAAA,EAAuB,qBAAA,CAAA,IAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qHAAA;AAAA,MACA,uDAAA;AAAA,MACA,iEAAA;AAAA,MACA,yFAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAU/B,IAAM,qBAAA,GAA8B,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BA,GAAAA;AAAA,EAAuB,qBAAA,CAAA,SAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,oDAAA,EAAsD,SAAS,CAAA;AAAA,IAC5E,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAYpC,IAAM,iBAAA,GAA0B,OAAA,CAAA,UAAA,CAG9B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjCA,GAAAA;AAAA,EAAuB,qBAAA,CAAA,KAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0EAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAShC,IAAM,wBAAA,GAAiC,OAAA,CAAA,UAAA,CAGrC,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC7CD,IAAAA;AAAA,EAAuB,qBAAA,CAAA,YAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0HAAA;AAAA,MACA,uDAAA;AAAA,MACA,iEAAA;AAAA,MACA,yFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAuB,qBAAA,CAAA,aAAA,EAAtB,EACC,QAAA,kBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU,GACjC,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,wBAAA,CAAyB,WAAA,GAAc,0BAAA;AAUvC,IAAM,sBAAA,GAA+C,qBAAA,CAAA;AASrD,IAAM,qBAAA,GAA8B,OAAA,CAAA,UAAA,CAGlC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCD,IAAAA;AAAA,EAAuB,qBAAA,CAAA,SAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0HAAA;AAAA,MACA,uDAAA;AAAA,MACA,iEAAA;AAAA,MACA,yFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAuB,qBAAA,CAAA,aAAA,EAAtB,EACC,QAAA,kBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,sBAAA,EAAuB,GAC5C,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAUpC,IAAM,eAAA,GAAwC,qBAAA,CAAA;AAY9C,IAAM,sBAAA,GAA+B,OAAA,CAAA,UAAA,CAGnC,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3CD,IAAAA;AAAA,EAAuB,qBAAA,CAAA,UAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qHAAA;AAAA,MACA,uDAAA;AAAA,MACA,wEAAA;AAAA,MACA,iEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDC,GAAAA,CAAC,gBAAA,EAAA,EAAiB,SAAA,EAAU,iBAAA,EAAkB;AAAA;AAAA;AAChD,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAUrC,IAAM,sBAAA,GAA+B,OAAA,CAAA,UAAA,CAGnC,CAAC,EAAE,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnCA,GAAAA,CAAuB,qBAAA,CAAA,MAAA,EAAtB,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAuB,qBAAA,CAAA,UAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,WAAW,EAAA,CAAG,2BAAA,CAA4B,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAChE,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;ACtSrC,IAAM,WAAA,GAAmC,oBAAA,CAAA;AAUzC,IAAM,kBAAA,GAA2ByC,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BzC,IAAsB,oBAAA,CAAA,OAAA,EAArB,EAA6B,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CAC9E;AACD,kBAAA,CAAmB,cAAmC,oBAAA,CAAA,OAAA,CAAQ,WAAA;AAU9D,IAAM,kBAAA,GAA2ByC,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BzC,GAAAA;AAAA,EAAsB,oBAAA,CAAA,OAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,gCAAA;AAAA,MACA,wEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAMjC,IAAM,0BAAA,GAA6BH,GAAAA;AAAA,EACjC,4LAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,uHAAA;AAAA,QACF,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAUA,IAAM,kBAAA,GAA2B4C,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,WAAW,OAAA,EAAS,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC7C1C,IAAAA,CAAsB,6BAArB,EACC,QAAA,EAAA;AAAA,kBAAAC,IAAC,kBAAA,EAAA,EAAmB,CAAA;AAAA,kBACpBA,GAAAA;AAAA,IAAsB,oBAAA,CAAA,OAAA;AAAA,IAArB;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,0BAAA,CAA2B,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAC/D,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,kBAAA,CAAmB,cAAmC,oBAAA,CAAA,OAAA,CAAQ,WAAA;AAQ9D,IAAM,iBAAA,GAA0ByC,OAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBzC,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAU,SAAA,EAAW,EAAA,CAAG,uBAAuB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE/E;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAQhC,IAAM,iBAAA,GAA0ByC,OAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBzC,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA;AAAA;AAGV;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAUhC,IAAM,gBAAA,GAAyByC,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BzC,GAAAA;AAAA,EAAsB,oBAAA,CAAA,KAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAAmC,oBAAA,CAAA,KAAA,CAAM,WAAA;AAU1D,IAAM,sBAAA,GAA+ByC,mBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BzC,GAAAA;AAAA,EAAsB,oBAAA,CAAA,WAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,sBAAA,CAAuB,cAAmC,oBAAA,CAAA,WAAA,CAAY,WAAA;AAUtE,IAAM,iBAAA,GAA0ByC,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BzC,IAAsB,oBAAA,CAAA,MAAA,EAArB,EAA4B,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CAC7E;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAUhC,IAAM,iBAAA,GAA0ByC,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BzC,IAAsB,oBAAA,CAAA,MAAA,EAArB,EAA4B,KAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OAAO,CAC7E;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AC1PhC,IAAM,SAAA,GAA+B,kBAAA,CAAA;AAErC,IAAM,aAAA,GAAsB0C,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1C,GAAAA;AAAA,EAAoB,kBAAA,CAAA,IAAA;AAAA,EAAnB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,qDAAA,EAAuD,SAAS,CAAA;AAAA,IAC7E,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,mBAAyB0C,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC1C,GAAAA,CAAoB,kBAAA,CAAA,MAAA,EAAnB,EAA0B,SAAA,EAAU,QACnC,QAAA,kBAAAD,IAAAA;AAAA,EAAoB,kBAAA,CAAA,OAAA;AAAA,EAAnB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iGAAA;AAAA,MACA,iBAAA;AAAA,MACA,qGAAA;AAAA,MACA,qCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDC,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAM,4BAAA;AAAA,UACN,KAAA,EAAM,IAAA;AAAA,UACN,MAAA,EAAO,IAAA;AAAA,UACP,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,UACf,SAAA,EAAU,sFAAA;AAAA,UACV,aAAA,EAAY,MAAA;AAAA,UAEZ,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA;AACpC;AAAA;AACF,CAAA,EACF,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,gBAAA,GAAyB0C,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC1C,GAAAA;AAAA,EAAoB,kBAAA,CAAA,OAAA;AAAA,EAAnB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAU,2GAAA;AAAA,IACT,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,WAAA,EAAa,SAAS,GAAI,QAAA,EAAS;AAAA;AACxD,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AC5D/B,IAAM2C,UAAAA,GAAkBC,OAAA,CAAA,UAAA;AAAA,EAItB,CACE,EAAE,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,UAAA,GAAa,IAAA,EAAM,GAAG,KAAA,EAAM,EACrE,GAAA,qBAEA5C,GAAAA;AAAA,IAAoB,kBAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,6CAAA;AAAA,QACA,WAAA,KAAgB,eAAe,aAAA,GAAgB,aAAA;AAAA,QAC/C;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA2C,UAAAA,CAAU,WAAA,GAAc,WAAA;ACzBxB,IAAM,UAAA,GAAmBE,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7C,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,YAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,IACtB,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,cAAA,GAAuB6C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7C,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuB6C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7C,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA;AAAA,IAC1D,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuB6C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7C,GAAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuB6C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7C,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,MAAA;AAAA,IACL,eAAA,EAAc,MAAA;AAAA,IACd,cAAA,EAAa,MAAA;AAAA,IACb,SAAA,EAAW,EAAA,CAAG,oDAAA,EAAsD,SAAS,CAAA;AAAA,IAC5E,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAO7B,IAAM,sBAAsB,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,cAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,IAChE,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA,QAAA,IAAY;AAAA;AACf;AAEF,mBAAA,CAAoB,WAAA,GAAc,qBAAA","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\n\n/**\n * Utility function to merge Tailwind CSS classes\n * Handles conditional classes and prevents conflicts\n */\nexport function cn(...inputs: ClassValue[]) {\n return clsx(inputs);\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Button component with multiple variants and sizes\n *\n * @example\n * // Default button\n * <Button>Click me</Button>\n *\n * @example\n * // Button with variant and size\n * <Button variant=\"outline\" size=\"lg\">Large Outline Button</Button>\n *\n * @example\n * // Destructive button\n * <Button variant=\"destructive\">Delete</Button>\n */\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center font-medium transition-all duration-fast active:scale-[0.97] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none rounded-md',\n {\n variants: {\n variant: {\n default: 'bg-primary-600 text-white hover:bg-primary-700 focus-visible:ring-primary-500 dark:bg-primary-700 dark:hover:bg-primary-600',\n secondary: 'bg-neutral-200 text-neutral-900 hover:bg-neutral-300 focus-visible:ring-neutral-400 dark:bg-neutral-700 dark:text-neutral-100 dark:hover:bg-neutral-600',\n outline: 'border border-neutral-300 bg-transparent hover:bg-neutral-100 focus-visible:ring-neutral-400 dark:border-neutral-600 dark:hover:bg-neutral-800 dark:text-neutral-100',\n ghost: 'bg-transparent hover:bg-neutral-100 focus-visible:ring-neutral-400 dark:hover:bg-neutral-800 dark:text-neutral-100',\n destructive: 'bg-red-600 text-white hover:bg-red-700 focus-visible:ring-red-500 dark:bg-red-700 dark:hover:bg-red-600',\n },\n size: {\n sm: 'h-8 px-3 py-1.5 text-sm',\n md: 'h-10 px-4 py-2 text-base',\n lg: 'h-12 px-6 py-3 text-lg',\n xl: 'h-14 px-8 py-4 text-xl',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n loading?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, loading, disabled, children, ...props }, ref) => (\n <button\n className={cn(buttonVariants({ variant, size }), className)}\n ref={ref}\n disabled={loading || disabled}\n {...props}\n >\n {loading && (\n <svg\n className=\"animate-spin -ml-1 mr-2 h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n )}\n {children}\n </button>\n )\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Input component with validation states and sizes\n *\n * @example\n * // Default input\n * <Input placeholder=\"Enter text...\" />\n *\n * @example\n * // Input with error state\n * <Input variant=\"error\" placeholder=\"Invalid input\" />\n *\n * @example\n * // Large success input\n * <Input variant=\"success\" size=\"lg\" placeholder=\"Valid input\" />\n */\n\nconst inputVariants = cva(\n 'flex w-full rounded-md border bg-white px-3 py-2 text-base transition-[border-color,box-shadow] duration-fast ease-in-out file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-neutral-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-neutral-900 dark:placeholder:text-neutral-400',\n {\n variants: {\n variant: {\n default: 'border-neutral-300 focus-visible:ring-primary-500 dark:border-neutral-600 dark:text-neutral-100',\n error: 'border-red-500 focus-visible:ring-red-500 text-red-900 dark:border-red-400 dark:text-red-100',\n success: 'border-green-500 focus-visible:ring-green-500 text-green-900 dark:border-green-400 dark:text-green-100',\n },\n size: {\n sm: 'h-8 text-sm',\n md: 'h-10 text-base',\n lg: 'h-12 text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, variant, size, type = 'text', leftIcon, rightIcon, ...props }, ref) => {\n if (leftIcon || rightIcon) {\n return (\n <div className=\"relative w-full\">\n {leftIcon && (\n <div className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-neutral-500 dark:text-neutral-400\">\n {leftIcon}\n </div>\n )}\n <input\n type={type}\n className={cn(\n inputVariants({ variant, size }),\n leftIcon && 'pl-10',\n rightIcon && 'pr-10',\n className\n )}\n ref={ref}\n {...props}\n />\n {rightIcon && (\n <div className=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-neutral-500 dark:text-neutral-400\">\n {rightIcon}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <input\n type={type}\n className={cn(inputVariants({ variant, size }), className)}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = 'Input';\n\nexport { Input, inputVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Textarea component with validation states and sizes\n *\n * @example\n * // Default textarea\n * <Textarea placeholder=\"Enter your message...\" />\n *\n * @example\n * // Textarea with error state\n * <Textarea variant=\"error\" placeholder=\"Invalid input\" />\n *\n * @example\n * // Large textarea with no resize\n * <Textarea size=\"lg\" resize={false} rows={6} />\n */\n\nconst textareaVariants = cva(\n 'flex w-full rounded-md border bg-white px-3 py-2 text-base transition-[border-color,box-shadow] duration-fast ease-in-out placeholder:text-neutral-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-neutral-900 dark:placeholder:text-neutral-400',\n {\n variants: {\n variant: {\n default: 'border-neutral-300 focus-visible:ring-primary-500 dark:border-neutral-600 dark:text-neutral-100',\n error: 'border-red-500 focus-visible:ring-red-500 text-red-900 dark:border-red-400 dark:text-red-100',\n success: 'border-green-500 focus-visible:ring-green-500 text-green-900 dark:border-green-400 dark:text-green-100',\n },\n size: {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport interface TextareaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'>,\n VariantProps<typeof textareaVariants> {\n resize?: boolean;\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, variant, size, resize = true, rows = 4, ...props }, ref) => (\n <textarea\n className={cn(\n textareaVariants({ variant, size }),\n !resize && 'resize-none',\n className\n )}\n ref={ref}\n rows={rows}\n {...props}\n />\n )\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea, textareaVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Badge component for labels and status indicators\n *\n * @example\n * // Default badge\n * <Badge>New</Badge>\n *\n * @example\n * // Outline badge with size\n * <Badge variant=\"outline\" size=\"lg\">Featured</Badge>\n *\n * @example\n * // Destructive badge\n * <Badge variant=\"destructive\">Deprecated</Badge>\n */\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center font-medium rounded-full transition-colors',\n {\n variants: {\n variant: {\n default: 'bg-primary-600 text-white dark:bg-primary-700',\n secondary: 'bg-neutral-200 text-neutral-900 dark:bg-neutral-700 dark:text-neutral-100',\n outline: 'border border-neutral-300 bg-transparent text-neutral-900 dark:border-neutral-600 dark:text-neutral-100',\n destructive: 'bg-error-600 text-white dark:bg-error-700',\n success: 'bg-success-600 text-white dark:bg-success-700',\n warning: 'bg-warning-500 text-warning-950 dark:bg-warning-600 dark:text-warning-50',\n info: 'bg-info-600 text-white dark:bg-info-700',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n animate: {\n true: 'animate-scale-in',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant, size, animate, ...props }, ref) => (\n <div\n className={cn(badgeVariants({ variant, size, animate }), className)}\n ref={ref}\n {...props}\n />\n )\n);\nBadge.displayName = 'Badge';\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Avatar component for displaying user profile images with fallback\n *\n * @example\n * // Avatar with image\n * <Avatar>\n * <AvatarImage src=\"/user.jpg\" alt=\"User\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n *\n * @example\n * // Large avatar with fallback\n * <Avatar size=\"xl\">\n * <AvatarFallback>AB</AvatarFallback>\n * </Avatar>\n *\n * @example\n * // Small avatar with image\n * <Avatar size=\"sm\">\n * <AvatarImage src=\"/profile.jpg\" alt=\"Profile\" />\n * <AvatarFallback>U</AvatarFallback>\n * </Avatar>\n */\n\nconst avatarVariants = cva(\n 'relative flex shrink-0 overflow-hidden rounded-full',\n {\n variants: {\n size: {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {}\n\nconst Avatar = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, size, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn('aspect-square h-full w-full', className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n 'flex h-full w-full items-center justify-center rounded-full bg-neutral-200 text-neutral-900 font-medium dark:bg-neutral-700 dark:text-neutral-100',\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback, avatarVariants };\n","import * as React from 'react';\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Switch component built on Radix UI Switch\n *\n * @example\n * // Basic switch\n * <Switch id=\"airplane-mode\" />\n *\n * @example\n * // Switch with label\n * <div className=\"flex items-center space-x-2\">\n * <Switch id=\"notifications\" />\n * <label htmlFor=\"notifications\">Enable notifications</label>\n * </div>\n *\n * @example\n * // Controlled switch\n * <Switch checked={isEnabled} onCheckedChange={setIsEnabled} />\n */\n\nconst switchVariants = cva(\n 'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-fast ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=unchecked]:bg-neutral-200 dark:data-[state=checked]:bg-primary-700 dark:data-[state=unchecked]:bg-neutral-700',\n {\n variants: {\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-[3.25rem]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst switchThumbVariants = cva(\n 'pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform duration-fast ease-out dark:bg-neutral-100',\n {\n variants: {\n size: {\n sm: 'h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n md: 'h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\n lg: 'h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>,\n VariantProps<typeof switchVariants> {}\n\nconst Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitive.Root>,\n SwitchProps\n>(({ className, size, ...props }, ref) => (\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(switchVariants({ size }), className)}\n {...props}\n >\n <SwitchPrimitive.Thumb className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitive.Root>\n));\nSwitch.displayName = SwitchPrimitive.Root.displayName;\n\nexport { Switch, switchVariants, switchThumbVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Container component for responsive max-width constraints\n *\n * @example\n * // Default container\n * <Container>Content here</Container>\n *\n * @example\n * // Large container without padding\n * <Container maxWidth=\"lg\" padding={false}>Full width content</Container>\n *\n * @example\n * // Small centered container\n * <Container maxWidth=\"sm\">Narrow content</Container>\n */\n\nconst containerVariants = cva(\n 'mx-auto w-full',\n {\n variants: {\n maxWidth: {\n sm: 'max-w-screen-sm',\n md: 'max-w-screen-md',\n lg: 'max-w-screen-lg',\n xl: 'max-w-screen-xl',\n '2xl': 'max-w-screen-2xl',\n full: 'max-w-full',\n },\n padding: {\n true: 'px-4 sm:px-6 lg:px-8',\n false: '',\n },\n },\n defaultVariants: {\n maxWidth: 'xl',\n padding: true,\n },\n }\n);\n\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof containerVariants> {}\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, maxWidth, padding, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(containerVariants({ maxWidth, padding }), className)}\n {...props}\n />\n )\n);\nContainer.displayName = 'Container';\n\nexport { Container, containerVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Grid component for responsive CSS Grid layouts\n *\n * @example\n * // 3-column grid\n * <Grid cols={3} gap=\"md\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Grid>\n *\n * @example\n * // Responsive 4-column grid\n * <Grid cols={4} gap=\"lg\" responsive>\n * {items.map(item => <Card key={item.id} />)}\n * </Grid>\n */\n\nconst gridVariants = cva(\n 'grid',\n {\n variants: {\n cols: {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 sm:grid-cols-2',\n 3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',\n 5: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-5',\n 6: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6',\n 12: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-12',\n },\n gap: {\n none: 'gap-0',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n },\n },\n defaultVariants: {\n cols: 1,\n gap: 'md',\n },\n }\n);\n\nexport interface GridProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof gridVariants> {}\n\nconst Grid = React.forwardRef<HTMLDivElement, GridProps>(\n ({ className, cols, gap, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(gridVariants({ cols, gap }), className)}\n {...props}\n />\n )\n);\nGrid.displayName = 'Grid';\n\nexport { Grid, gridVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Stack component for vertical or horizontal stacking with consistent spacing\n *\n * @example\n * // Vertical stack\n * <Stack spacing=\"md\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * </Stack>\n *\n * @example\n * // Horizontal stack\n * <Stack direction=\"horizontal\" spacing=\"lg\" align=\"center\">\n * <Button>Action 1</Button>\n * <Button>Action 2</Button>\n * </Stack>\n */\n\nconst stackVariants = cva(\n 'flex',\n {\n variants: {\n direction: {\n vertical: 'flex-col',\n horizontal: 'flex-row',\n },\n spacing: {\n none: 'gap-0',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n },\n },\n defaultVariants: {\n direction: 'vertical',\n spacing: 'md',\n align: 'stretch',\n },\n }\n);\n\nexport interface StackProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof stackVariants> {}\n\nconst Stack = React.forwardRef<HTMLDivElement, StackProps>(\n ({ className, direction, spacing, align, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(stackVariants({ direction, spacing, align }), className)}\n {...props}\n />\n )\n);\nStack.displayName = 'Stack';\n\nexport { Stack, stackVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Flex component for common flexbox layout patterns\n *\n * @example\n * // Space between\n * <Flex justify=\"between\" align=\"center\">\n * <span>Left</span>\n * <span>Right</span>\n * </Flex>\n *\n * @example\n * // Centered column\n * <Flex direction=\"column\" justify=\"center\" align=\"center\">\n * <h1>Title</h1>\n * <p>Description</p>\n * </Flex>\n */\n\nconst flexVariants = cva(\n 'flex',\n {\n variants: {\n direction: {\n row: 'flex-row',\n column: 'flex-col',\n 'row-reverse': 'flex-row-reverse',\n 'column-reverse': 'flex-col-reverse',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap',\n },\n gap: {\n none: 'gap-0',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n },\n },\n defaultVariants: {\n direction: 'row',\n wrap: false,\n },\n }\n);\n\nexport interface FlexProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof flexVariants> {}\n\nconst Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n ({ className, direction, justify, align, wrap, gap, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(flexVariants({ direction, justify, align, wrap, gap }), className)}\n {...props}\n />\n )\n);\nFlex.displayName = 'Flex';\n\nexport { Flex, flexVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Spacer component for flexible spacing\n *\n * @example\n * // Fixed spacer\n * <Spacer size=\"md\" />\n *\n * @example\n * // Flex spacer (pushes siblings apart)\n * <Flex>\n * <div>Left</div>\n * <Spacer flex />\n * <div>Right</div>\n * </Flex>\n */\n\nconst spacerVariants = cva(\n '',\n {\n variants: {\n size: {\n xs: 'h-1 w-1',\n sm: 'h-2 w-2',\n md: 'h-4 w-4',\n lg: 'h-6 w-6',\n xl: 'h-8 w-8',\n '2xl': 'h-12 w-12',\n },\n flex: {\n true: 'flex-1',\n false: '',\n },\n },\n defaultVariants: {\n flex: false,\n },\n }\n);\n\nexport interface SpacerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof spacerVariants> {}\n\nconst Spacer = React.forwardRef<HTMLDivElement, SpacerProps>(\n ({ className, size, flex, ...props }, ref) => (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={cn(spacerVariants({ size, flex }), className)}\n {...props}\n />\n )\n);\nSpacer.displayName = 'Spacer';\n\nexport { Spacer, spacerVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Card component with header, content, and footer sections\n *\n * @example\n * // Basic card\n * <Card>\n * <CardContent>Card content here</CardContent>\n * </Card>\n *\n * @example\n * // Full card with all sections\n * <Card>\n * <CardHeader>\n * <h3>Card Title</h3>\n * </CardHeader>\n * <CardContent>\n * <p>Card content goes here</p>\n * </CardContent>\n * <CardFooter>\n * <button>Action</button>\n * </CardFooter>\n * </Card>\n *\n * @example\n * // Card with custom styling\n * <Card className=\"max-w-md\">\n * <CardHeader>Featured Content</CardHeader>\n * <CardContent>This is a featured card</CardContent>\n * </Card>\n */\n\nconst cardVariants = cva(\n 'rounded-lg transition-[box-shadow,transform,border-color] duration-fast ease-out',\n {\n variants: {\n variant: {\n default: 'border bg-white shadow-sm dark:bg-neutral-900 dark:border-neutral-700',\n outlined: 'border-2 border-neutral-300 bg-white dark:border-neutral-600 dark:bg-neutral-900',\n elevated: 'border border-transparent bg-white shadow-lg dark:bg-neutral-900',\n ghost: 'border border-transparent bg-transparent',\n },\n hoverable: {\n true: 'hover:-translate-y-0.5 hover:shadow-md cursor-pointer',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n hoverable: false,\n },\n }\n);\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, hoverable, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardVariants({ variant, hoverable }), className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n));\nCardHeader.displayName = 'CardHeader';\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n));\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardContent, CardFooter, cardVariants };\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Modal component built on Radix UI Dialog\n *\n * @example\n * // Basic modal\n * <Modal>\n * <ModalTrigger>Open Modal</ModalTrigger>\n * <ModalContent>\n * <ModalHeader>\n * <ModalTitle>Modal Title</ModalTitle>\n * </ModalHeader>\n * <ModalBody>Modal content goes here</ModalBody>\n * </ModalContent>\n * </Modal>\n *\n * @example\n * // Modal with description\n * <Modal>\n * <ModalTrigger>Open</ModalTrigger>\n * <ModalContent>\n * <ModalHeader>\n * <ModalTitle>Confirm Action</ModalTitle>\n * <ModalDescription>Are you sure you want to proceed?</ModalDescription>\n * </ModalHeader>\n * <ModalBody>Additional details here</ModalBody>\n * </ModalContent>\n * </Modal>\n */\n\nconst Modal = DialogPrimitive.Root;\n\nconst ModalTrigger = DialogPrimitive.Trigger;\n\nconst ModalPortal = DialogPrimitive.Portal;\n\nconst ModalClose = DialogPrimitive.Close;\n\nconst ModalOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n className\n )}\n {...props}\n />\n));\nModalOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst modalContentVariants = cva(\n 'fixed left-[50%] top-[50%] z-50 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 shadow-lg data-[state=open]:animate-scale-in data-[state=closed]:animate-scale-out rounded-lg dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface ModalContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof modalContentVariants> {}\n\nconst ModalContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n ModalContentProps\n>(({ className, children, ...props }, ref) => (\n <ModalPortal>\n <ModalOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(modalContentVariants(), className)}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </ModalPortal>\n));\nModalContent.displayName = DialogPrimitive.Content.displayName;\n\nconst ModalHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)}\n {...props}\n />\n));\nModalHeader.displayName = 'ModalHeader';\n\nconst ModalBody = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-neutral-700 dark:text-neutral-300', className)}\n {...props}\n />\n));\nModalBody.displayName = 'ModalBody';\n\nconst ModalTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight text-neutral-900 dark:text-neutral-100', className)}\n {...props}\n />\n));\nModalTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst ModalDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-600 dark:text-neutral-400', className)}\n {...props}\n />\n));\nModalDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Modal,\n ModalPortal,\n ModalOverlay,\n ModalClose,\n ModalTrigger,\n ModalContent,\n ModalHeader,\n ModalBody,\n ModalTitle,\n ModalDescription,\n modalContentVariants,\n};\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Drawer component that slides in from the side\n *\n * @example\n * // Right drawer\n * <Drawer>\n * <DrawerTrigger>Open Drawer</DrawerTrigger>\n * <DrawerContent>\n * <DrawerHeader>\n * <DrawerTitle>Drawer Title</DrawerTitle>\n * </DrawerHeader>\n * <DrawerBody>Drawer content here</DrawerBody>\n * </DrawerContent>\n * </Drawer>\n *\n * @example\n * // Left drawer\n * <Drawer>\n * <DrawerTrigger>Menu</DrawerTrigger>\n * <DrawerContent side=\"left\">\n * <DrawerHeader>\n * <DrawerTitle>Navigation</DrawerTitle>\n * </DrawerHeader>\n * <DrawerBody>Menu items here</DrawerBody>\n * </DrawerContent>\n * </Drawer>\n */\n\nconst Drawer = DialogPrimitive.Root;\n\nconst DrawerTrigger = DialogPrimitive.Trigger;\n\nconst DrawerPortal = DialogPrimitive.Portal;\n\nconst DrawerClose = DialogPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n className\n )}\n {...props}\n />\n));\nDrawerOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst drawerContentVariants = cva(\n 'fixed z-50 gap-4 bg-white p-6 shadow-lg dark:bg-neutral-900',\n {\n variants: {\n side: {\n left: 'inset-y-0 left-0 h-full w-3/4 max-w-sm border-r data-[state=open]:animate-slide-in-from-left data-[state=closed]:animate-slide-out-to-left sm:max-w-md dark:border-neutral-700',\n right: 'inset-y-0 right-0 h-full w-3/4 max-w-sm border-l data-[state=open]:animate-slide-in-from-right data-[state=closed]:animate-slide-out-to-right sm:max-w-md dark:border-neutral-700',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n);\n\nexport interface DrawerContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof drawerContentVariants> {}\n\nconst DrawerContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n DrawerContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(drawerContentVariants({ side }), className)}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-2', className)}\n {...props}\n />\n));\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerBody = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-neutral-700 dark:text-neutral-300', className)}\n {...props}\n />\n));\nDrawerBody.displayName = 'DrawerBody';\n\nconst DrawerTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-neutral-900 dark:text-neutral-100', className)}\n {...props}\n />\n));\nDrawerTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-600 dark:text-neutral-400', className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerClose,\n DrawerTrigger,\n DrawerContent,\n DrawerHeader,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n drawerContentVariants,\n};\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Tabs component for organizing content into switchable panels\n *\n * @example\n * // Basic tabs\n * <Tabs defaultValue=\"tab1\">\n * <TabsList>\n * <TabsTrigger value=\"tab1\">Tab 1</TabsTrigger>\n * <TabsTrigger value=\"tab2\">Tab 2</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"tab1\">Content 1</TabsContent>\n * <TabsContent value=\"tab2\">Content 2</TabsContent>\n * </Tabs>\n *\n * @example\n * // Tabs with multiple panels\n * <Tabs defaultValue=\"overview\">\n * <TabsList>\n * <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n * <TabsTrigger value=\"details\">Details</TabsTrigger>\n * <TabsTrigger value=\"settings\">Settings</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"overview\">Overview content</TabsContent>\n * <TabsContent value=\"details\">Details content</TabsContent>\n * <TabsContent value=\"settings\">Settings content</TabsContent>\n * </Tabs>\n */\n\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\n 'inline-flex h-10 items-center justify-center rounded-md bg-neutral-100 p-1 text-neutral-600 dark:bg-neutral-800 dark:text-neutral-400',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface TabsListProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {}\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants(), className)}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst tabsTriggerVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-[background-color,box-shadow,color] duration-fast ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-neutral-900 data-[state=active]:shadow-sm dark:ring-offset-neutral-900 dark:focus-visible:ring-primary-400 dark:data-[state=active]:bg-neutral-900 dark:data-[state=active]:text-neutral-100',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface TabsTriggerProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>,\n VariantProps<typeof tabsTriggerVariants> {}\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(tabsTriggerVariants(), className)}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst tabsContentVariants = cva(\n 'mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 dark:ring-offset-neutral-900 dark:focus-visible:ring-primary-400',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface TabsContentProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>,\n VariantProps<typeof tabsContentVariants> {}\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(tabsContentVariants(), className)}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, tabsTriggerVariants, tabsContentVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * DataCard component for displaying metrics with optional trend indicators\n *\n * @example\n * // Basic data card\n * <DataCard value=\"1,234\" label=\"Total Users\" />\n *\n * @example\n * // Data card with trend\n * <DataCard value=\"$45,231\" label=\"Revenue\" trend=\"+12.5%\" trendDirection=\"up\" />\n *\n * @example\n * // Data card with description\n * <DataCard\n * value=\"98.5%\"\n * label=\"Uptime\"\n * description=\"Last 30 days\"\n * trend=\"+2.3%\"\n * trendDirection=\"up\"\n * />\n */\n\nconst dataCardVariants = cva(\n 'rounded-lg border bg-white p-6 shadow-sm dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface DataCardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dataCardVariants> {\n value: string | number;\n label: string;\n description?: string;\n trend?: string;\n trendDirection?: 'up' | 'down' | 'neutral';\n}\n\nconst DataCard = React.forwardRef<HTMLDivElement, DataCardProps>(\n ({ className, value, label, description, trend, trendDirection, ...props }, ref) => {\n const trendColorClass = trendDirection === 'up'\n ? 'text-green-600 dark:text-green-400'\n : trendDirection === 'down'\n ? 'text-red-600 dark:text-red-400'\n : 'text-neutral-600 dark:text-neutral-400';\n\n return (\n <div\n ref={ref}\n className={cn(dataCardVariants(), className)}\n {...props}\n >\n <div className=\"flex flex-col space-y-2\">\n <p className=\"text-sm font-medium text-neutral-600 dark:text-neutral-400\">\n {label}\n </p>\n <div className=\"flex items-baseline gap-2\">\n <p className=\"text-3xl font-bold text-neutral-900 dark:text-neutral-100\">\n {value}\n </p>\n {trend && (\n <span className={cn('text-sm font-medium', trendColorClass)}>\n {trend}\n </span>\n )}\n </div>\n {description && (\n <p className=\"text-sm text-neutral-500 dark:text-neutral-500\">\n {description}\n </p>\n )}\n </div>\n </div>\n );\n }\n);\nDataCard.displayName = 'DataCard';\n\nexport { DataCard, dataCardVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * DataTable component for displaying tabular data\n *\n * @example\n * // Basic table\n * <DataTable>\n * <DataTableHeader>\n * <DataTableRow>\n * <DataTableHead>Name</DataTableHead>\n * <DataTableHead>Status</DataTableHead>\n * </DataTableRow>\n * </DataTableHeader>\n * <DataTableBody>\n * <DataTableRow>\n * <DataTableCell>John Doe</DataTableCell>\n * <DataTableCell>Active</DataTableCell>\n * </DataTableRow>\n * </DataTableBody>\n * </DataTable>\n *\n * @example\n * // Table with footer\n * <DataTable>\n * <DataTableHeader>\n * <DataTableRow>\n * <DataTableHead>Product</DataTableHead>\n * <DataTableHead>Price</DataTableHead>\n * </DataTableRow>\n * </DataTableHeader>\n * <DataTableBody>\n * <DataTableRow>\n * <DataTableCell>Item 1</DataTableCell>\n * <DataTableCell>$100</DataTableCell>\n * </DataTableRow>\n * </DataTableBody>\n * <DataTableFooter>\n * <DataTableRow>\n * <DataTableCell>Total</DataTableCell>\n * <DataTableCell>$100</DataTableCell>\n * </DataTableRow>\n * </DataTableFooter>\n * </DataTable>\n */\n\nconst dataTableVariants = cva(\n 'w-full caption-bottom text-sm border-collapse',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface DataTableProps\n extends React.TableHTMLAttributes<HTMLTableElement>,\n VariantProps<typeof dataTableVariants> {}\n\nconst DataTable = React.forwardRef<HTMLTableElement, DataTableProps>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(dataTableVariants(), className)}\n {...props}\n />\n </div>\n )\n);\nDataTable.displayName = 'DataTable';\n\nconst DataTableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nDataTableHeader.displayName = 'DataTableHeader';\n\nconst DataTableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nDataTableBody.displayName = 'DataTableBody';\n\nconst DataTableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-neutral-50 font-medium dark:bg-neutral-800', className)}\n {...props}\n />\n));\nDataTableFooter.displayName = 'DataTableFooter';\n\nconst DataTableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b border-neutral-200 transition-colors hover:bg-neutral-50 data-[state=selected]:bg-neutral-100 dark:border-neutral-700 dark:hover:bg-neutral-800 dark:data-[state=selected]:bg-neutral-800',\n className\n )}\n {...props}\n />\n));\nDataTableRow.displayName = 'DataTableRow';\n\nconst DataTableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-neutral-600 dark:text-neutral-400 [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nDataTableHead.displayName = 'DataTableHead';\n\nconst DataTableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle text-neutral-900 dark:text-neutral-100 [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nDataTableCell.displayName = 'DataTableCell';\n\nexport {\n DataTable,\n DataTableHeader,\n DataTableBody,\n DataTableFooter,\n DataTableRow,\n DataTableHead,\n DataTableCell,\n dataTableVariants,\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Stat component for displaying simple statistics\n *\n * @example\n * // Basic stat\n * <Stat value=\"1,234\" label=\"Total Users\" />\n *\n * @example\n * // Stat with custom styling\n * <Stat value=\"98%\" label=\"Success Rate\" className=\"text-green-600\" />\n *\n * @example\n * // Multiple stats in a group\n * <div className=\"grid grid-cols-3 gap-4\">\n * <Stat value=\"1.2K\" label=\"Followers\" />\n * <Stat value=\"456\" label=\"Following\" />\n * <Stat value=\"89\" label=\"Posts\" />\n * </div>\n */\n\nconst statVariants = cva(\n 'flex flex-col space-y-1',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface StatProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof statVariants> {\n value: string | number;\n label: string;\n}\n\nconst Stat = React.forwardRef<HTMLDivElement, StatProps>(\n ({ className, value, label, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(statVariants(), className)}\n {...props}\n >\n <p className=\"text-2xl font-bold text-neutral-900 dark:text-neutral-100\">\n {value}\n </p>\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {label}\n </p>\n </div>\n )\n);\nStat.displayName = 'Stat';\n\nexport { Stat, statVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * ProductCard component for displaying product information\n *\n * @example\n * // Basic product card\n * <ProductCard\n * image=\"/product.jpg\"\n * title=\"Premium Headphones\"\n * price=\"$199.99\"\n * />\n *\n * @example\n * // Product card with description\n * <ProductCard\n * image=\"/laptop.jpg\"\n * title=\"MacBook Pro\"\n * price=\"$1,999\"\n * description=\"Powerful laptop with M2 chip\"\n * />\n *\n * @example\n * // Product card with custom action\n * <ProductCard\n * image=\"/shirt.jpg\"\n * title=\"Cotton T-Shirt\"\n * price=\"$29.99\"\n * description=\"Comfortable everyday wear\"\n * action={<button>Add to Cart</button>}\n * />\n */\n\nconst productCardVariants = cva(\n 'rounded-lg border bg-white overflow-hidden shadow-sm transition-[box-shadow,transform] duration-fast ease-out hover:shadow-md dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface ProductCardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof productCardVariants> {\n image: string;\n title: string;\n price: string | number;\n description?: string;\n action?: React.ReactNode;\n imageAlt?: string;\n}\n\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n ({ className, image, title, price, description, action, imageAlt, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(productCardVariants(), className)}\n {...props}\n >\n <div className=\"aspect-square overflow-hidden bg-neutral-100 dark:bg-neutral-800\">\n <img\n src={image}\n alt={imageAlt || title}\n className=\"h-full w-full object-cover transition-transform hover:scale-105\"\n />\n </div>\n <div className=\"p-4 space-y-2\">\n <h3 className=\"font-semibold text-lg text-neutral-900 dark:text-neutral-100 line-clamp-1\">\n {title}\n </h3>\n {description && (\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400 line-clamp-2\">\n {description}\n </p>\n )}\n <div className=\"flex items-center justify-between pt-2\">\n <p className=\"text-xl font-bold text-neutral-900 dark:text-neutral-100\">\n {price}\n </p>\n {action && <div>{action}</div>}\n </div>\n </div>\n </div>\n )\n);\nProductCard.displayName = 'ProductCard';\n\nexport { ProductCard, productCardVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * CartItem component for displaying items in a shopping cart\n *\n * @example\n * // Basic cart item\n * <CartItem\n * image=\"/product.jpg\"\n * title=\"Premium Headphones\"\n * price=\"$199.99\"\n * quantity={1}\n * onRemove={() => console.log('Remove item')}\n * />\n *\n * @example\n * // Cart item with quantity control\n * <CartItem\n * image=\"/laptop.jpg\"\n * title=\"MacBook Pro\"\n * price=\"$1,999\"\n * quantity={2}\n * onQuantityChange={(qty) => console.log('New quantity:', qty)}\n * onRemove={() => console.log('Remove item')}\n * />\n *\n * @example\n * // Cart item with variant\n * <CartItem\n * image=\"/shirt.jpg\"\n * title=\"Cotton T-Shirt\"\n * price=\"$29.99\"\n * quantity={3}\n * variant=\"Size: L, Color: Blue\"\n * onRemove={() => console.log('Remove item')}\n * />\n */\n\nconst cartItemVariants = cva(\n 'flex gap-4 p-4 border-b bg-white dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface CartItemProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cartItemVariants> {\n image: string;\n title: string;\n price: string | number;\n quantity: number;\n variant?: string;\n imageAlt?: string;\n onRemove?: () => void;\n onQuantityChange?: (quantity: number) => void;\n}\n\nconst CartItem = React.forwardRef<HTMLDivElement, CartItemProps>(\n ({\n className,\n image,\n title,\n price,\n quantity,\n variant,\n imageAlt,\n onRemove,\n onQuantityChange,\n ...props\n }, ref) => (\n <div\n ref={ref}\n className={cn(cartItemVariants(), className)}\n {...props}\n >\n <div className=\"h-20 w-20 flex-shrink-0 overflow-hidden rounded-md bg-neutral-100 dark:bg-neutral-800\">\n <img\n src={image}\n alt={imageAlt || title}\n className=\"h-full w-full object-cover\"\n />\n </div>\n <div className=\"flex flex-1 flex-col justify-between\">\n <div className=\"flex justify-between\">\n <div>\n <h4 className=\"font-medium text-neutral-900 dark:text-neutral-100\">\n {title}\n </h4>\n {variant && (\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {variant}\n </p>\n )}\n </div>\n <p className=\"font-semibold text-neutral-900 dark:text-neutral-100\">\n {price}\n </p>\n </div>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n Qty: {quantity}\n </span>\n {onQuantityChange && (\n <div className=\"flex items-center gap-1\">\n <button\n onClick={() => onQuantityChange(Math.max(1, quantity - 1))}\n className=\"h-6 w-6 cursor-pointer rounded-md border border-neutral-300 transition-colors hover:bg-neutral-100 dark:border-neutral-600 dark:hover:bg-neutral-800\"\n aria-label=\"Decrease quantity\"\n >\n -\n </button>\n <button\n onClick={() => onQuantityChange(quantity + 1)}\n className=\"h-6 w-6 cursor-pointer rounded-md border border-neutral-300 transition-colors hover:bg-neutral-100 dark:border-neutral-600 dark:hover:bg-neutral-800\"\n aria-label=\"Increase quantity\"\n >\n +\n </button>\n </div>\n )}\n </div>\n {onRemove && (\n <button\n onClick={onRemove}\n className=\"cursor-pointer text-sm text-red-600 transition-colors hover:text-red-700 dark:text-red-400 dark:hover:text-red-300\"\n >\n Remove\n </button>\n )}\n </div>\n </div>\n </div>\n )\n);\nCartItem.displayName = 'CartItem';\n\nexport { CartItem, cartItemVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * PriceTag component for displaying prices with optional discounts\n *\n * @example\n * // Basic price\n * <PriceTag price=\"$99.99\" />\n *\n * @example\n * // Price with discount\n * <PriceTag price=\"$79.99\" originalPrice=\"$99.99\" />\n *\n * @example\n * // Large price with discount percentage\n * <PriceTag\n * price=\"$799\"\n * originalPrice=\"$999\"\n * discountPercent=\"20%\"\n * size=\"lg\"\n * />\n */\n\nconst priceTagVariants = cva(\n 'inline-flex items-center gap-2',\n {\n variants: {\n size: {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface PriceTagProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof priceTagVariants> {\n price: string | number;\n originalPrice?: string | number;\n discountPercent?: string;\n}\n\nconst PriceTag = React.forwardRef<HTMLDivElement, PriceTagProps>(\n ({ className, price, originalPrice, discountPercent, size, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(priceTagVariants({ size }), className)}\n {...props}\n >\n <span className=\"font-bold text-neutral-900 dark:text-neutral-100\">\n {price}\n </span>\n {originalPrice && (\n <span className=\"text-sm line-through text-neutral-500 dark:text-neutral-400\">\n {originalPrice}\n </span>\n )}\n {discountPercent && (\n <span className=\"text-sm font-medium text-green-600 dark:text-green-400\">\n Save {discountPercent}\n </span>\n )}\n </div>\n )\n);\nPriceTag.displayName = 'PriceTag';\n\nexport { PriceTag, priceTagVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * QuantitySelector component for selecting product quantities\n *\n * @example\n * // Basic quantity selector\n * <QuantitySelector value={1} onChange={(qty) => console.log(qty)} />\n *\n * @example\n * // Quantity selector with min/max\n * <QuantitySelector\n * value={5}\n * min={1}\n * max={10}\n * onChange={(qty) => console.log(qty)}\n * />\n *\n * @example\n * // Large quantity selector\n * <QuantitySelector\n * value={3}\n * size=\"lg\"\n * onChange={(qty) => console.log(qty)}\n * />\n */\n\nconst quantitySelectorVariants = cva(\n 'inline-flex items-center border rounded-md bg-white dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {\n size: {\n sm: 'h-8',\n md: 'h-10',\n lg: 'h-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface QuantitySelectorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>,\n VariantProps<typeof quantitySelectorVariants> {\n value: number;\n min?: number;\n max?: number;\n onChange?: (value: number) => void;\n}\n\nconst QuantitySelector = React.forwardRef<HTMLDivElement, QuantitySelectorProps>(\n ({ className, value, min = 1, max = 99, size, onChange, ...props }, ref) => {\n const handleDecrement = () => {\n const newValue = Math.max(min, value - 1);\n onChange?.(newValue);\n };\n\n const handleIncrement = () => {\n const newValue = Math.min(max, value + 1);\n onChange?.(newValue);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = parseInt(e.target.value, 10);\n if (!isNaN(newValue) && newValue >= min && newValue <= max) {\n onChange?.(newValue);\n }\n };\n\n const buttonClass = cn(\n 'cursor-pointer px-3 font-medium transition-colors hover:bg-neutral-100 disabled:opacity-50 disabled:cursor-not-allowed dark:hover:bg-neutral-800 dark:text-neutral-100',\n size === 'sm' && 'text-sm',\n size === 'md' && 'text-base',\n size === 'lg' && 'text-lg'\n );\n\n const inputClass = cn(\n 'w-12 text-center border-x bg-transparent font-medium text-neutral-900 dark:text-neutral-100 dark:border-neutral-700 focus:outline-none',\n size === 'sm' && 'text-sm',\n size === 'md' && 'text-base',\n size === 'lg' && 'text-lg'\n );\n\n return (\n <div\n ref={ref}\n className={cn(quantitySelectorVariants({ size }), className)}\n {...props}\n >\n <button\n type=\"button\"\n onClick={handleDecrement}\n disabled={value <= min}\n className={buttonClass}\n aria-label=\"Decrease quantity\"\n >\n -\n </button>\n <input\n type=\"number\"\n value={value}\n onChange={handleInputChange}\n min={min}\n max={max}\n className={inputClass}\n aria-label=\"Quantity\"\n />\n <button\n type=\"button\"\n onClick={handleIncrement}\n disabled={value >= max}\n className={buttonClass}\n aria-label=\"Increase quantity\"\n >\n +\n </button>\n </div>\n );\n }\n);\nQuantitySelector.displayName = 'QuantitySelector';\n\nexport { QuantitySelector, quantitySelectorVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Hero component for landing page headers\n *\n * @example\n * // Basic hero\n * <Hero\n * title=\"Welcome to Our Platform\"\n * subtitle=\"Build amazing things with our tools\"\n * />\n *\n * @example\n * // Hero with CTA buttons\n * <Hero\n * title=\"Transform Your Business\"\n * subtitle=\"Get started today with our innovative solutions\"\n * primaryCta={{ label: \"Get Started\", onClick: () => {} }}\n * secondaryCta={{ label: \"Learn More\", onClick: () => {} }}\n * />\n *\n * @example\n * // Hero with background image\n * <Hero\n * title=\"Beautiful Design\"\n * subtitle=\"Experience the future\"\n * backgroundImage=\"/hero-bg.jpg\"\n * primaryCta={{ label: \"Try Now\", onClick: () => {} }}\n * />\n */\n\nconst heroVariants = cva(\n 'relative flex flex-col items-center justify-center px-4 py-20 text-center bg-gradient-to-b from-neutral-50 to-white dark:from-neutral-900 dark:to-neutral-800',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface HeroProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof heroVariants> {\n title: string;\n subtitle?: string;\n primaryCta?: {\n label: string;\n onClick?: () => void;\n href?: string;\n };\n secondaryCta?: {\n label: string;\n onClick?: () => void;\n href?: string;\n };\n backgroundImage?: string;\n}\n\nconst Hero = React.forwardRef<HTMLDivElement, HeroProps>(\n ({\n className,\n title,\n subtitle,\n primaryCta,\n secondaryCta,\n backgroundImage,\n ...props\n }, ref) => (\n <div\n ref={ref}\n className={cn(heroVariants(), className)}\n style={\n backgroundImage\n ? {\n backgroundImage: `linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(${backgroundImage})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n }\n : undefined\n }\n {...props}\n >\n <div className=\"max-w-4xl space-y-6\">\n <h1\n className={cn(\n 'text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl',\n backgroundImage\n ? 'text-white'\n : 'text-neutral-900 dark:text-neutral-100'\n )}\n >\n {title}\n </h1>\n {subtitle && (\n <p\n className={cn(\n 'text-lg sm:text-xl md:text-2xl max-w-2xl mx-auto',\n backgroundImage\n ? 'text-neutral-100'\n : 'text-neutral-600 dark:text-neutral-400'\n )}\n >\n {subtitle}\n </p>\n )}\n {(primaryCta || secondaryCta) && (\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center pt-4\">\n {primaryCta && (\n <a\n href={primaryCta.href}\n onClick={primaryCta.onClick}\n className=\"inline-flex items-center justify-center px-8 py-3 text-base font-medium rounded-md text-white bg-primary-600 hover:bg-primary-700 transition-colors dark:bg-primary-700 dark:hover:bg-primary-600\"\n >\n {primaryCta.label}\n </a>\n )}\n {secondaryCta && (\n <a\n href={secondaryCta.href}\n onClick={secondaryCta.onClick}\n className={cn(\n 'inline-flex items-center justify-center px-8 py-3 text-base font-medium rounded-md transition-colors',\n backgroundImage\n ? 'text-white border-2 border-white hover:bg-white/10'\n : 'text-neutral-900 border-2 border-neutral-300 hover:bg-neutral-100 dark:text-neutral-100 dark:border-neutral-600 dark:hover:bg-neutral-800'\n )}\n >\n {secondaryCta.label}\n </a>\n )}\n </div>\n )}\n </div>\n </div>\n )\n);\nHero.displayName = 'Hero';\n\nexport { Hero, heroVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * FeatureGrid component for displaying features in a grid layout\n *\n * @example\n * // Basic feature grid\n * <FeatureGrid>\n * <FeatureCard\n * icon={<Icon />}\n * title=\"Fast Performance\"\n * description=\"Lightning fast load times\"\n * />\n * <FeatureCard\n * icon={<Icon />}\n * title=\"Secure\"\n * description=\"Enterprise-grade security\"\n * />\n * </FeatureGrid>\n *\n * @example\n * // Feature grid with custom columns\n * <FeatureGrid columns={4}>\n * <FeatureCard icon={<Icon />} title=\"Feature 1\" description=\"Description 1\" />\n * <FeatureCard icon={<Icon />} title=\"Feature 2\" description=\"Description 2\" />\n * <FeatureCard icon={<Icon />} title=\"Feature 3\" description=\"Description 3\" />\n * <FeatureCard icon={<Icon />} title=\"Feature 4\" description=\"Description 4\" />\n * </FeatureGrid>\n */\n\nconst featureGridVariants = cva(\n 'grid gap-8 py-12',\n {\n variants: {\n columns: {\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n },\n },\n defaultVariants: {\n columns: 3,\n },\n }\n);\n\nexport interface FeatureGridProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof featureGridVariants> {}\n\nconst FeatureGrid = React.forwardRef<HTMLDivElement, FeatureGridProps>(\n ({ className, columns, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(featureGridVariants({ columns }), className)}\n {...props}\n />\n )\n);\nFeatureGrid.displayName = 'FeatureGrid';\n\nconst featureCardVariants = cva(\n 'flex flex-col items-center text-center space-y-4 p-6 rounded-lg bg-white border border-neutral-200 dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface FeatureCardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof featureCardVariants> {\n icon?: React.ReactNode;\n title: string;\n description: string;\n}\n\nconst FeatureCard = React.forwardRef<HTMLDivElement, FeatureCardProps>(\n ({ className, icon, title, description, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(featureCardVariants(), className)}\n {...props}\n >\n {icon && (\n <div className=\"flex h-12 w-12 items-center justify-center rounded-lg bg-primary-100 text-primary-600 dark:bg-primary-900 dark:text-primary-400\">\n {icon}\n </div>\n )}\n <div className=\"space-y-2\">\n <h3 className=\"text-xl font-semibold text-neutral-900 dark:text-neutral-100\">\n {title}\n </h3>\n <p className=\"text-neutral-600 dark:text-neutral-400\">\n {description}\n </p>\n </div>\n </div>\n )\n);\nFeatureCard.displayName = 'FeatureCard';\n\nexport { FeatureGrid, FeatureCard, featureGridVariants, featureCardVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * CTA (Call to Action) component for landing pages\n *\n * @example\n * // Basic CTA\n * <CTA\n * title=\"Ready to get started?\"\n * description=\"Join thousands of satisfied customers\"\n * buttonText=\"Sign Up Now\"\n * onButtonClick={() => console.log('clicked')}\n * />\n *\n * @example\n * // CTA with custom styling\n * <CTA\n * title=\"Start Your Free Trial\"\n * description=\"No credit card required\"\n * buttonText=\"Try for Free\"\n * buttonHref=\"/signup\"\n * variant=\"primary\"\n * />\n *\n * @example\n * // CTA with secondary action\n * <CTA\n * title=\"Boost Your Productivity\"\n * description=\"Join our community today\"\n * buttonText=\"Get Started\"\n * onButtonClick={() => {}}\n * secondaryAction={<a href=\"/learn-more\">Learn More</a>}\n * />\n */\n\nconst ctaVariants = cva(\n 'relative overflow-hidden rounded-lg px-6 py-16 text-center',\n {\n variants: {\n variant: {\n default: 'bg-neutral-100 dark:bg-neutral-800',\n primary: 'bg-primary-600 text-white dark:bg-primary-700',\n gradient: 'bg-gradient-to-r from-primary-600 to-primary-800 text-white',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface CTAProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof ctaVariants> {\n title: string;\n description?: string;\n buttonText: string;\n buttonHref?: string;\n onButtonClick?: () => void;\n secondaryAction?: React.ReactNode;\n}\n\nconst CTA = React.forwardRef<HTMLDivElement, CTAProps>(\n ({\n className,\n variant,\n title,\n description,\n buttonText,\n buttonHref,\n onButtonClick,\n secondaryAction,\n ...props\n }, ref) => {\n const isColoredVariant = variant === 'primary' || variant === 'gradient';\n\n return (\n <div\n ref={ref}\n className={cn(ctaVariants({ variant }), className)}\n {...props}\n >\n <div className=\"mx-auto max-w-2xl space-y-6\">\n <h2\n className={cn(\n 'text-3xl font-bold tracking-tight sm:text-4xl',\n isColoredVariant\n ? 'text-white'\n : 'text-neutral-900 dark:text-neutral-100'\n )}\n >\n {title}\n </h2>\n {description && (\n <p\n className={cn(\n 'text-lg',\n isColoredVariant\n ? 'text-white/90'\n : 'text-neutral-600 dark:text-neutral-400'\n )}\n >\n {description}\n </p>\n )}\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center pt-4\">\n <a\n href={buttonHref}\n onClick={onButtonClick}\n className={cn(\n 'inline-flex items-center justify-center px-8 py-3 text-base font-medium rounded-md transition-colors',\n isColoredVariant\n ? 'bg-white text-primary-600 hover:bg-neutral-100'\n : 'bg-primary-600 text-white hover:bg-primary-700 dark:bg-primary-700 dark:hover:bg-primary-600'\n )}\n >\n {buttonText}\n </a>\n {secondaryAction && <div>{secondaryAction}</div>}\n </div>\n </div>\n </div>\n );\n }\n);\nCTA.displayName = 'CTA';\n\nexport { CTA, ctaVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Testimonial component for displaying customer reviews\n *\n * @example\n * // Basic testimonial\n * <Testimonial\n * quote=\"This product changed my life!\"\n * author=\"John Doe\"\n * />\n *\n * @example\n * // Testimonial with avatar and company\n * <Testimonial\n * quote=\"Excellent service and support. Highly recommended!\"\n * author=\"Jane Smith\"\n * company=\"Acme Corp\"\n * avatar=\"/avatar.jpg\"\n * />\n *\n * @example\n * // Testimonial with role\n * <Testimonial\n * quote=\"The best tool we've ever used for our team.\"\n * author=\"Mike Johnson\"\n * role=\"CEO\"\n * company=\"TechStart Inc\"\n * avatar=\"/mike.jpg\"\n * />\n */\n\nconst testimonialVariants = cva(\n 'rounded-lg border bg-white p-6 shadow-sm dark:bg-neutral-900 dark:border-neutral-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface TestimonialProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof testimonialVariants> {\n quote: string;\n author: string;\n role?: string;\n company?: string;\n avatar?: string;\n}\n\nconst Testimonial = React.forwardRef<HTMLDivElement, TestimonialProps>(\n ({ className, quote, author, role, company, avatar, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(testimonialVariants(), className)}\n {...props}\n >\n <div className=\"space-y-4\">\n <div className=\"flex items-start gap-1 text-primary-600 dark:text-primary-400\">\n <svg\n className=\"h-6 w-6\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z\" />\n </svg>\n </div>\n <blockquote className=\"text-lg text-neutral-900 dark:text-neutral-100\">\n {quote}\n </blockquote>\n <div className=\"flex items-center gap-4 pt-2\">\n {avatar && (\n <div className=\"h-12 w-12 overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-700\">\n <img\n src={avatar}\n alt={author}\n className=\"h-full w-full object-cover\"\n />\n </div>\n )}\n <div>\n <p className=\"font-semibold text-neutral-900 dark:text-neutral-100\">\n {author}\n </p>\n {(role || company) && (\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {role}\n {role && company && ', '}\n {company}\n </p>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n);\nTestimonial.displayName = 'Testimonial';\n\nexport { Testimonial, testimonialVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Form component wrapper for form elements\n *\n * @example\n * // Basic form\n * <Form onSubmit={(e) => e.preventDefault()}>\n * <input type=\"text\" />\n * <button type=\"submit\">Submit</button>\n * </Form>\n *\n * @example\n * // Form with spacing\n * <Form className=\"space-y-4\">\n * <FormField label=\"Name\" name=\"name\">\n * <Input type=\"text\" />\n * </FormField>\n * <Button type=\"submit\">Submit</Button>\n * </Form>\n *\n * @example\n * // Controlled form with error handling\n * <Form onSubmit={handleSubmit}>\n * <FormField label=\"Email\" name=\"email\" error={errors.email}>\n * <Input type=\"email\" />\n * </FormField>\n * <FormField label=\"Password\" name=\"password\" error={errors.password}>\n * <Input type=\"password\" />\n * </FormField>\n * <Button type=\"submit\">Login</Button>\n * </Form>\n */\n\nconst formVariants = cva(\n 'flex w-full flex-col gap-4',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface FormProps\n extends React.FormHTMLAttributes<HTMLFormElement>,\n VariantProps<typeof formVariants> {}\n\nconst Form = React.forwardRef<HTMLFormElement, FormProps>(\n ({ className, style, ...props }, ref) => (\n <form\n ref={ref}\n className={cn(formVariants(), className)}\n style={{ display: 'flex', flexDirection: 'column', gap: '1rem', ...style }}\n {...props}\n />\n )\n);\nForm.displayName = 'Form';\n\nexport { Form, formVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * FormField component for structured form inputs with label and error\n *\n * @example\n * // Basic form field\n * <FormField label=\"Username\" name=\"username\">\n * <Input type=\"text\" />\n * </FormField>\n *\n * @example\n * // Form field with error\n * <FormField\n * label=\"Email\"\n * name=\"email\"\n * error=\"Invalid email address\"\n * >\n * <Input type=\"email\" />\n * </FormField>\n *\n * @example\n * // Form field with helper text and required indicator\n * <FormField\n * label=\"Password\"\n * name=\"password\"\n * required\n * helperText=\"Must be at least 8 characters\"\n * >\n * <Input type=\"password\" />\n * </FormField>\n */\n\nconst formFieldVariants = cva(\n 'space-y-2',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface FormFieldProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof formFieldVariants> {\n label: string;\n name: string;\n error?: string;\n helperText?: string;\n required?: boolean;\n}\n\nconst FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n ({ className, label, name, error, helperText, required, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(formFieldVariants(), className)}\n {...props}\n >\n <label\n htmlFor={name}\n className=\"block text-sm font-medium text-neutral-900 dark:text-neutral-100\"\n >\n {label}\n {required && <span className=\"text-red-600 ml-1\">*</span>}\n </label>\n {children}\n {helperText && !error && (\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {helperText}\n </p>\n )}\n {error && (\n <p className=\"text-sm text-red-600 dark:text-red-400\">\n {error}\n </p>\n )}\n </div>\n )\n);\nFormField.displayName = 'FormField';\n\nexport { FormField, formFieldVariants };\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Select component built on Radix UI Select\n *\n * @example\n * // Basic select\n * <Select>\n * <SelectTrigger>\n * <SelectValue placeholder=\"Select an option\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectItem value=\"option1\">Option 1</SelectItem>\n * <SelectItem value=\"option2\">Option 2</SelectItem>\n * </SelectContent>\n * </Select>\n *\n * @example\n * // Select with groups\n * <Select>\n * <SelectTrigger>\n * <SelectValue placeholder=\"Choose a fruit\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectGroup>\n * <SelectLabel>Fruits</SelectLabel>\n * <SelectItem value=\"apple\">Apple</SelectItem>\n * <SelectItem value=\"banana\">Banana</SelectItem>\n * </SelectGroup>\n * </SelectContent>\n * </Select>\n */\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst selectTriggerVariants = cva(\n 'flex h-10 w-full items-center justify-between rounded-md border border-neutral-300 bg-white px-3 py-2 text-sm transition-colors placeholder:text-neutral-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-900 dark:text-neutral-100 dark:placeholder:text-neutral-400',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface SelectTriggerProps\n extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>,\n VariantProps<typeof selectTriggerVariants> {}\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(selectTriggerVariants(), className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <svg\n className=\"h-4 w-4 opacity-50\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst selectContentVariants = cva(\n 'relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-white shadow-md data-[state=open]:animate-scale-in data-[state=closed]:animate-scale-out dark:border-neutral-700 dark:bg-neutral-900',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface SelectContentProps\n extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>,\n VariantProps<typeof selectContentVariants> {}\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(selectContentVariants(), className)}\n position={position}\n {...props}\n >\n <SelectPrimitive.Viewport className=\"p-1\">\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('py-1.5 pl-8 pr-2 text-sm font-semibold text-neutral-900 dark:text-neutral-100', className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst selectItemVariants = cva(\n 'relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus-visible:bg-neutral-100 focus-visible:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus-visible:bg-neutral-800 dark:focus-visible:text-neutral-100 dark:text-neutral-100',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface SelectItemProps\n extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>,\n VariantProps<typeof selectItemVariants> {}\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n SelectItemProps\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(selectItemVariants(), className)}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n selectTriggerVariants,\n selectContentVariants,\n selectItemVariants,\n};\n","import * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Checkbox component built on Radix UI Checkbox\n *\n * @example\n * // Basic checkbox\n * <Checkbox id=\"terms\" />\n *\n * @example\n * // Checkbox with label\n * <div className=\"flex items-center space-x-2\">\n * <Checkbox id=\"terms\" />\n * <label htmlFor=\"terms\">Accept terms and conditions</label>\n * </div>\n *\n * @example\n * // Controlled checkbox\n * <Checkbox\n * checked={isChecked}\n * onCheckedChange={setIsChecked}\n * />\n */\n\nconst checkboxVariants = cva(\n 'peer h-5 w-5 shrink-0 rounded-sm border border-neutral-300 transition-[background-color,border-color] duration-fast ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=checked]:text-white data-[state=checked]:border-primary-600 dark:border-neutral-600 dark:data-[state=checked]:bg-primary-700 dark:data-[state=checked]:border-primary-700',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {}\n\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(checkboxVariants(), className)}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox, checkboxVariants };\n","import * as React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Radio component built on Radix UI RadioGroup\n *\n * @example\n * // Basic radio group\n * <RadioGroup defaultValue=\"option1\">\n * <div className=\"flex items-center space-x-2\">\n * <RadioGroupItem value=\"option1\" id=\"r1\" />\n * <label htmlFor=\"r1\">Option 1</label>\n * </div>\n * <div className=\"flex items-center space-x-2\">\n * <RadioGroupItem value=\"option2\" id=\"r2\" />\n * <label htmlFor=\"r2\">Option 2</label>\n * </div>\n * </RadioGroup>\n *\n * @example\n * // Controlled radio group\n * <RadioGroup value={value} onValueChange={setValue}>\n * <div className=\"flex items-center space-x-2\">\n * <RadioGroupItem value=\"yes\" id=\"yes\" />\n * <label htmlFor=\"yes\">Yes</label>\n * </div>\n * <div className=\"flex items-center space-x-2\">\n * <RadioGroupItem value=\"no\" id=\"no\" />\n * <label htmlFor=\"no\">No</label>\n * </div>\n * </RadioGroup>\n *\n * @example\n * // Radio group with descriptions\n * <RadioGroup defaultValue=\"comfortable\">\n * <div className=\"flex items-center space-x-2\">\n * <RadioGroupItem value=\"default\" id=\"r1\" />\n * <label htmlFor=\"r1\">Default</label>\n * </div>\n * <div className=\"flex items-center space-x-2\">\n * <RadioGroupItem value=\"comfortable\" id=\"r2\" />\n * <label htmlFor=\"r2\">Comfortable</label>\n * </div>\n * </RadioGroup>\n */\n\nconst radioGroupVariants = cva(\n 'grid gap-2',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface RadioGroupProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>,\n VariantProps<typeof radioGroupVariants> {}\n\nconst RadioGroup = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Root>,\n RadioGroupProps\n>(({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Root\n className={cn(radioGroupVariants(), className)}\n {...props}\n ref={ref}\n />\n));\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst radioGroupItemVariants = cva(\n 'aspect-square h-5 w-5 cursor-pointer rounded-full border border-neutral-300 text-primary-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-600 dark:text-primary-400',\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\nexport interface RadioGroupItemProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>,\n VariantProps<typeof radioGroupItemVariants> {}\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(radioGroupItemVariants(), className)}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <div className=\"h-2.5 w-2.5 rounded-full bg-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n));\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem, radioGroupVariants, radioGroupItemVariants };\n","import { useSyncExternalStore } from 'react';\n\n/**\n * Toast data stored in the external store\n */\nexport interface ToastData {\n id: string;\n title?: string;\n description?: string;\n variant: 'default' | 'success' | 'error' | 'warning' | 'info';\n duration?: number;\n action?: {\n label: string;\n altText: string;\n onClick: () => void;\n };\n}\n\n/**\n * Options for creating a toast via the imperative API\n */\nexport type ToastOptions = Omit<ToastData, 'id' | 'variant'> & {\n variant?: ToastData['variant'];\n};\n\n/**\n * Toast store API interface\n */\nexport interface ToastStoreAPI {\n getSnapshot: () => ToastData[];\n subscribe: (listener: () => void) => () => void;\n add: (toast: ToastData) => string;\n dismiss: (id: string) => void;\n clear: () => void;\n}\n\nlet toasts: ToastData[] = [];\nconst listeners = new Set<() => void>();\n\nfunction emitChange() {\n for (const listener of listeners) {\n listener();\n }\n}\n\n/**\n * External store for managing toast state.\n * Compatible with React's `useSyncExternalStore` for safe concurrent rendering.\n *\n * @example\n * ```ts\n * toastStore.add({ id: '1', variant: 'success', title: 'Done!' });\n * toastStore.dismiss('1');\n * toastStore.clear();\n * ```\n */\nexport const toastStore: ToastStoreAPI = {\n getSnapshot() {\n return toasts;\n },\n\n subscribe(listener: () => void) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n\n add(toast: ToastData) {\n toasts = [...toasts, toast];\n emitChange();\n return toast.id;\n },\n\n dismiss(id: string) {\n const next = toasts.filter((t) => t.id !== id);\n if (next.length !== toasts.length) {\n toasts = next;\n emitChange();\n }\n },\n\n clear() {\n if (toasts.length > 0) {\n toasts = [];\n emitChange();\n }\n },\n};\n\nlet counter = 0;\n\nfunction generateId(): string {\n counter += 1;\n return String(counter);\n}\n\n/**\n * Create a toast notification via the imperative API.\n *\n * @example\n * ```ts\n * // With options object\n * toast({ title: 'Saved!', variant: 'success' });\n *\n * // Shorthand\n * toast.success('Saved!');\n * toast.error('Something went wrong');\n * toast.warning('Be careful');\n * toast.info('FYI');\n *\n * // Dismiss / clear\n * const id = toast.success('Done');\n * toast.dismiss(id);\n * toast.clear();\n * ```\n */\nfunction createToast(options: ToastOptions): string {\n const id = generateId();\n const toastData: ToastData = {\n ...options,\n id,\n variant: options.variant ?? 'default',\n };\n toastStore.add(toastData);\n return id;\n}\n\nfunction createShorthand(variant: ToastData['variant']) {\n return (titleOrOptions: string | ToastOptions): string => {\n if (typeof titleOrOptions === 'string') {\n return createToast({ title: titleOrOptions, variant });\n }\n return createToast({ ...titleOrOptions, variant });\n };\n}\n\nexport const toast = Object.assign(createToast, {\n success: createShorthand('success'),\n error: createShorthand('error'),\n warning: createShorthand('warning'),\n info: createShorthand('info'),\n dismiss: (id: string) => toastStore.dismiss(id),\n clear: () => toastStore.clear(),\n});\n\n/**\n * React hook to subscribe to the toast store.\n * Uses `useSyncExternalStore` for safe concurrent rendering.\n *\n * @example\n * ```tsx\n * function Toaster() {\n * const toasts = useToastStore();\n * return toasts.map(t => <Toast key={t.id} {...t} />);\n * }\n * ```\n */\nexport function useToastStore(): ToastData[] {\n return useSyncExternalStore(\n toastStore.subscribe,\n toastStore.getSnapshot,\n toastStore.getSnapshot\n );\n}\n","import * as React from 'react';\nimport * as ToastPrimitive from '@radix-ui/react-toast';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\nimport { toastStore } from './toast-store';\n\n// ---------------------------------------------------------------------------\n// CVA Variants\n// ---------------------------------------------------------------------------\n\n/**\n * Viewport position variants for toast placement on screen.\n *\n * @example\n * ```tsx\n * <ToastViewport position=\"top-right\" />\n * ```\n */\nconst viewportVariants = cva(\n 'fixed z-[100] flex w-full sm:w-[380px] max-w-[calc(100vw-2rem)] flex-col gap-3 p-4 max-h-screen',\n {\n variants: {\n position: {\n 'top-right': 'top-0 right-0',\n 'top-left': 'top-0 left-0',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-0 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\n },\n },\n defaultVariants: {\n position: 'bottom-right',\n },\n }\n);\n\n/**\n * Toast variant styles with light and dark mode support.\n *\n * @example\n * ```tsx\n * <Toast variant=\"success\">Saved!</Toast>\n * ```\n */\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center gap-3 overflow-hidden rounded-lg border p-4 pr-8 shadow-lg transition-all data-[state=open]:animate-slide-in-from-right data-[state=closed]:animate-fade-out data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=cancel]:translate-x-0 data-[swipe=end]:animate-slide-out-to-right',\n {\n variants: {\n variant: {\n default:\n 'border-neutral-200 bg-white text-neutral-900 shadow-lg dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100',\n success:\n 'border-success-500/30 bg-success-50 text-success-700 shadow-lg dark:bg-success-500/10 dark:text-success-500 dark:border-success-500/20',\n error:\n 'border-error-500/30 bg-error-50 text-error-700 shadow-lg dark:bg-error-500/10 dark:text-error-500 dark:border-error-500/20',\n warning:\n 'border-warning-500/30 bg-warning-50 text-warning-700 shadow-lg dark:bg-warning-500/10 dark:text-warning-500 dark:border-warning-500/20',\n info:\n 'border-primary-500/30 bg-primary-50 text-primary-700 shadow-lg dark:bg-primary-500/10 dark:text-primary-500 dark:border-primary-500/20',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n// ---------------------------------------------------------------------------\n// TypeScript Interfaces\n// ---------------------------------------------------------------------------\n\nexport interface ToastProviderProps extends ToastPrimitive.ToastProviderProps {}\n\nexport interface ToastViewportProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport>,\n VariantProps<typeof viewportVariants> {}\n\nexport interface ToastProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Root>,\n VariantProps<typeof toastVariants> {}\n\nexport interface ToastTitleProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Title> {}\n\nexport interface ToastDescriptionProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Description> {}\n\nexport interface ToastCloseProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Close> {}\n\nexport interface ToastActionProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Action> {}\n\nexport interface ToasterProps {\n /** Position of the toast viewport on screen */\n position?:\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top-center'\n | 'bottom-center';\n /** Default auto-dismiss duration in milliseconds */\n duration?: number;\n /** Swipe direction to dismiss toasts */\n swipeDirection?: 'right' | 'left' | 'up' | 'down';\n}\n\n// ---------------------------------------------------------------------------\n// ToastProvider\n// ---------------------------------------------------------------------------\n\n/**\n * Toast provider that wraps the application to enable toast notifications.\n * Delegates to Radix UI Toast.Provider for context management.\n *\n * @example\n * ```tsx\n * <ToastProvider duration={5000} swipeDirection=\"right\">\n * <App />\n * <ToastViewport />\n * </ToastProvider>\n * ```\n */\nconst ToastProvider = ToastPrimitive.Provider;\n\n// ---------------------------------------------------------------------------\n// ToastViewport\n// ---------------------------------------------------------------------------\n\n/**\n * Viewport that renders toasts at a fixed position on screen.\n * Acts as an ARIA live region for screen reader announcements.\n *\n * @example\n * ```tsx\n * <ToastViewport position=\"top-right\" />\n * <ToastViewport position=\"bottom-center\" />\n * ```\n */\nconst ToastViewport = React.forwardRef<\n React.ComponentRef<typeof ToastPrimitive.Viewport>,\n ToastViewportProps\n>(({ className, position, ...props }, ref) => (\n <ToastPrimitive.Viewport\n ref={ref}\n className={cn(viewportVariants({ position }), className)}\n {...props}\n />\n));\nToastViewport.displayName = 'ToastViewport';\n\n// ---------------------------------------------------------------------------\n// Toast\n// ---------------------------------------------------------------------------\n\n/**\n * Individual toast notification with variant styling and animations.\n * Built on Radix UI Toast.Root with CVA variants for visual styles.\n *\n * @example\n * ```tsx\n * <Toast variant=\"success\">\n * <ToastTitle>Saved!</ToastTitle>\n * <ToastDescription>Your changes have been saved.</ToastDescription>\n * <ToastClose />\n * </Toast>\n * ```\n *\n * @example\n * ```tsx\n * <Toast variant=\"error\" duration={10000}>\n * <ToastTitle>Error</ToastTitle>\n * <ToastDescription>Something went wrong.</ToastDescription>\n * <ToastAction altText=\"Retry the operation\">Retry</ToastAction>\n * <ToastClose />\n * </Toast>\n * ```\n */\nconst Toast = React.forwardRef<\n React.ComponentRef<typeof ToastPrimitive.Root>,\n ToastProps\n>(({ className, variant, ...props }, ref) => (\n <ToastPrimitive.Root\n ref={ref}\n data-variant={variant ?? 'default'}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n));\nToast.displayName = 'Toast';\n\n// ---------------------------------------------------------------------------\n// ToastTitle\n// ---------------------------------------------------------------------------\n\n/**\n * Title text for a toast notification.\n *\n * @example\n * ```tsx\n * <ToastTitle>Operation successful</ToastTitle>\n * ```\n */\nconst ToastTitle = React.forwardRef<\n React.ComponentRef<typeof ToastPrimitive.Title>,\n ToastTitleProps\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Title\n ref={ref}\n className={cn('text-sm font-semibold', className)}\n {...props}\n />\n));\nToastTitle.displayName = 'ToastTitle';\n\n// ---------------------------------------------------------------------------\n// ToastDescription\n// ---------------------------------------------------------------------------\n\n/**\n * Description text for a toast notification.\n *\n * @example\n * ```tsx\n * <ToastDescription>Your changes have been saved successfully.</ToastDescription>\n * ```\n */\nconst ToastDescription = React.forwardRef<\n React.ComponentRef<typeof ToastPrimitive.Description>,\n ToastDescriptionProps\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Description\n ref={ref}\n className={cn('text-sm opacity-90', className)}\n {...props}\n />\n));\nToastDescription.displayName = 'ToastDescription';\n\n// ---------------------------------------------------------------------------\n// ToastClose\n// ---------------------------------------------------------------------------\n\n/**\n * Close button for dismissing a toast notification.\n * Includes an accessible aria-label for screen readers.\n *\n * @example\n * ```tsx\n * <ToastClose />\n * ```\n */\nconst ToastClose = React.forwardRef<\n React.ComponentRef<typeof ToastPrimitive.Close>,\n ToastCloseProps\n>(({ className, children, ...props }, ref) => (\n <ToastPrimitive.Close\n ref={ref}\n className={cn(\n 'absolute right-2 top-2 inline-flex h-6 w-6 cursor-pointer items-center justify-center rounded-md text-neutral-400 transition-colors',\n 'hover:text-neutral-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-400',\n 'dark:text-neutral-500 dark:hover:text-neutral-100',\n className\n )}\n aria-label=\"Close notification\"\n {...props}\n >\n {children ?? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n )}\n </ToastPrimitive.Close>\n));\nToastClose.displayName = 'ToastClose';\n\n// ---------------------------------------------------------------------------\n// ToastAction\n// ---------------------------------------------------------------------------\n\n/**\n * Action button within a toast notification.\n * Requires an `altText` prop for accessibility.\n *\n * @example\n * ```tsx\n * <ToastAction altText=\"Undo the last action\" onClick={handleUndo}>\n * Undo\n * </ToastAction>\n * ```\n */\nconst ToastAction = React.forwardRef<\n React.ComponentRef<typeof ToastPrimitive.Action>,\n ToastActionProps\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Action\n ref={ref}\n className={cn(\n 'inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border border-neutral-200 bg-transparent px-3 py-1.5 text-sm font-medium transition-colors',\n 'hover:bg-neutral-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-400',\n 'dark:border-neutral-700 dark:hover:bg-neutral-800',\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = 'ToastAction';\n\n// ---------------------------------------------------------------------------\n// Variant Icons\n// ---------------------------------------------------------------------------\n\nconst SuccessIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"shrink-0\" aria-hidden=\"true\">\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n);\n\nconst ErrorIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"shrink-0\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n);\n\nconst WarningIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"shrink-0\" aria-hidden=\"true\">\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst InfoIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"shrink-0\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n);\n\nconst variantIcons: Record<string, React.FC> = {\n success: SuccessIcon,\n error: ErrorIcon,\n warning: WarningIcon,\n info: InfoIcon,\n};\n\n// ---------------------------------------------------------------------------\n// Toaster (convenience component)\n// ---------------------------------------------------------------------------\n\n/**\n * Convenience component that combines ToastProvider, ToastViewport, and\n * renders toasts from the external store via `useSyncExternalStore`.\n *\n * Place once at the root of your application alongside the imperative\n * `toast()` API from `toast-store`.\n *\n * @example\n * ```tsx\n * import { Toaster, toast } from '@nim-ui/components';\n *\n * function App() {\n * return (\n * <>\n * <button onClick={() => toast.success('Saved!')}>Save</button>\n * <Toaster position=\"bottom-right\" />\n * </>\n * );\n * }\n * ```\n */\nfunction Toaster({\n position = 'bottom-right',\n duration = 5000,\n swipeDirection = 'right',\n}: ToasterProps) {\n const toasts = React.useSyncExternalStore(\n toastStore.subscribe,\n toastStore.getSnapshot,\n toastStore.getSnapshot,\n );\n\n return (\n <ToastProvider duration={duration} swipeDirection={swipeDirection}>\n {toasts.map((t) => {\n const Icon = t.variant ? variantIcons[t.variant] : undefined;\n return (\n <Toast\n key={t.id}\n variant={t.variant}\n duration={t.duration}\n onOpenChange={(open) => {\n if (!open) toastStore.dismiss(t.id);\n }}\n >\n {Icon && (\n <div className=\"shrink-0\">\n <Icon />\n </div>\n )}\n <div className=\"flex flex-1 flex-col gap-1\">\n {t.title && <ToastTitle>{t.title}</ToastTitle>}\n {t.description && <ToastDescription>{t.description}</ToastDescription>}\n </div>\n {t.action && (\n <ToastAction altText={t.action.altText} onClick={t.action.onClick}>\n {t.action.label}\n </ToastAction>\n )}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport position={position} />\n </ToastProvider>\n );\n}\n\nToaster.displayName = 'Toaster';\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n Toaster,\n toastVariants,\n viewportVariants,\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 transition-opacity duration-normal',\n {\n variants: {\n variant: {\n info: 'border-info-200 bg-info-50 text-info-800 dark:border-info-800 dark:bg-info-950 dark:text-info-200',\n success:\n 'border-success-200 bg-success-50 text-success-800 dark:border-success-800 dark:bg-success-950 dark:text-success-200',\n warning:\n 'border-warning-200 bg-warning-50 text-warning-800 dark:border-warning-800 dark:bg-warning-950 dark:text-warning-200',\n destructive:\n 'border-error-200 bg-error-50 text-error-800 dark:border-error-800 dark:bg-error-950 dark:text-error-200',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n }\n);\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n dismissible?: boolean;\n onDismiss?: () => void;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, dismissible, onDismiss, children, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), dismissible && 'pr-10', className)}\n {...props}\n >\n {children}\n {dismissible && (\n <button\n type=\"button\"\n onClick={onDismiss}\n className=\"absolute right-2 top-2 inline-flex h-6 w-6 cursor-pointer items-center justify-center rounded-md opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label=\"Dismiss alert\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n )}\n </div>\n )\n);\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-relaxed [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\nconst progressVariants = cva(\n 'relative w-full overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-700',\n {\n variants: {\n size: {\n sm: 'h-1.5',\n md: 'h-2.5',\n lg: 'h-4',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst progressIndicatorVariants = cva(\n 'h-full rounded-full transition-all duration-slow ease-out',\n {\n variants: {\n variant: {\n default: 'bg-primary-600 dark:bg-primary-500',\n success: 'bg-success-600 dark:bg-success-500',\n warning: 'bg-warning-500 dark:bg-warning-400',\n danger: 'bg-error-600 dark:bg-error-500',\n info: 'bg-info-600 dark:bg-info-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressVariants>,\n VariantProps<typeof progressIndicatorVariants> {\n value: number;\n max?: number;\n showLabel?: boolean;\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, max = 100, variant, size, showLabel, ...props }, ref) => {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n className={cn(progressVariants({ size }), className)}\n {...props}\n >\n <div\n className={cn(progressIndicatorVariants({ variant }))}\n style={{ width: `${percentage}%` }}\n />\n {showLabel && size === 'lg' && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-medium text-neutral-900 dark:text-neutral-100\">\n {Math.round(percentage)}%\n </span>\n )}\n </div>\n );\n }\n);\nProgress.displayName = 'Progress';\n\nexport { Progress, progressVariants, progressIndicatorVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\nconst spinnerVariants = cva('animate-spin', {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n },\n variant: {\n default: 'text-primary-600 dark:text-primary-400',\n secondary: 'text-neutral-600 dark:text-neutral-400',\n success: 'text-success-600 dark:text-success-400',\n destructive: 'text-error-600 dark:text-error-400',\n info: 'text-info-600 dark:text-info-400',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n});\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nconst Spinner = React.forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, variant, label = 'Loading', ...props }, ref) => (\n <span role=\"status\" className=\"inline-flex items-center\">\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n className={cn(spinnerVariants({ size, variant }), className)}\n aria-hidden=\"true\"\n {...props}\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n <span className=\"sr-only\">{label}</span>\n </span>\n )\n);\nSpinner.displayName = 'Spinner';\n\nexport { Spinner, spinnerVariants };\n","import * as React from 'react';\nimport { cn } from '../lib/utils';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'animate-pulse rounded-md bg-neutral-200 dark:bg-neutral-700',\n className\n )}\n {...props}\n />\n )\n);\nSkeleton.displayName = 'Skeleton';\n\nexport { Skeleton };\n","import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Tooltip component built on Radix UI Tooltip primitive.\n * Displays informational text when hovering or focusing on an element.\n *\n * @example\n * ```tsx\n * <TooltipProvider>\n * <Tooltip>\n * <TooltipTrigger>Hover me</TooltipTrigger>\n * <TooltipContent>Tooltip text</TooltipContent>\n * </Tooltip>\n * </TooltipProvider>\n * ```\n *\n * @example\n * ```tsx\n * // With arrow and light variant\n * <TooltipProvider>\n * <Tooltip>\n * <TooltipTrigger>Hover me</TooltipTrigger>\n * <TooltipContent variant=\"light\" showArrow>\n * Light tooltip with arrow\n * </TooltipContent>\n * </Tooltip>\n * </TooltipProvider>\n * ```\n */\n\n// ---------------------------------------------------------------------------\n// TooltipProvider\n// ---------------------------------------------------------------------------\n\nexport interface TooltipProviderProps {\n children: React.ReactNode;\n /** Delay in ms before the tooltip opens. @default 300 */\n delayDuration?: number;\n /** Delay in ms before the next tooltip opens when one was recently visible. @default 300 */\n skipDelayDuration?: number;\n /** When true, hovering the tooltip content will not keep it open. */\n disableHoverableContent?: boolean;\n}\n\nconst TooltipProvider: React.FC<TooltipProviderProps> = ({\n delayDuration = 300,\n skipDelayDuration = 300,\n ...props\n}) => (\n <TooltipPrimitive.Provider\n delayDuration={delayDuration}\n skipDelayDuration={skipDelayDuration}\n {...props}\n />\n);\nTooltipProvider.displayName = 'TooltipProvider';\n\n// ---------------------------------------------------------------------------\n// Tooltip (Root)\n// ---------------------------------------------------------------------------\n\nexport interface TooltipProps {\n children: React.ReactNode;\n /** Controlled open state. */\n open?: boolean;\n /** Uncontrolled default open state. */\n defaultOpen?: boolean;\n /** Callback when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Override the delay from the Provider for this tooltip. */\n delayDuration?: number;\n}\n\nconst Tooltip = TooltipPrimitive.Root;\n\n// ---------------------------------------------------------------------------\n// TooltipTrigger\n// ---------------------------------------------------------------------------\n\nconst TooltipTrigger = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Trigger ref={ref} className={cn(className)} {...props} />\n));\nTooltipTrigger.displayName = TooltipPrimitive.Trigger.displayName;\n\n// ---------------------------------------------------------------------------\n// tooltipContentVariants (CVA)\n// ---------------------------------------------------------------------------\n\nconst tooltipContentVariants = cva(\n 'z-50 overflow-hidden rounded-md px-3 py-1.5 text-sm data-[state=delayed-open]:animate-fade-in data-[state=closed]:animate-fade-out',\n {\n variants: {\n variant: {\n default:\n 'bg-neutral-900 text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900',\n light:\n 'border border-neutral-200 bg-white text-neutral-900 shadow-md dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n// ---------------------------------------------------------------------------\n// TooltipContent\n// ---------------------------------------------------------------------------\n\nexport interface TooltipContentProps\n extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>,\n VariantProps<typeof tooltipContentVariants> {\n /** Show an arrow pointing to the trigger element. @default false */\n showArrow?: boolean;\n /** Distance in px between the tooltip and the trigger. @default 4 */\n sideOffset?: number;\n}\n\nconst TooltipContent = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(\n (\n {\n className,\n variant,\n showArrow = false,\n sideOffset = 4,\n side = 'top',\n children,\n ...props\n },\n ref\n ) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n side={side}\n sideOffset={sideOffset}\n className={cn(tooltipContentVariants({ variant }), className)}\n {...props}\n >\n {children}\n {showArrow && <TooltipArrow variant={variant ?? undefined} />}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n);\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\n// ---------------------------------------------------------------------------\n// TooltipArrow\n// ---------------------------------------------------------------------------\n\nexport interface TooltipArrowProps\n extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow> {\n /** Variant to match the parent TooltipContent color scheme. @default 'default' */\n variant?: 'default' | 'light';\n}\n\nconst TooltipArrow = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Arrow>,\n TooltipArrowProps\n>(({ className, variant = 'default', ...props }, ref) => (\n <TooltipPrimitive.Arrow\n ref={ref}\n className={cn(\n variant === 'default'\n ? 'fill-neutral-900 dark:fill-neutral-50'\n : 'fill-white dark:fill-neutral-800',\n className\n )}\n {...props}\n />\n));\nTooltipArrow.displayName = 'TooltipArrow';\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n TooltipProvider,\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipArrow,\n tooltipContentVariants,\n};\n","import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Popover component built on Radix UI Popover primitive.\n * Displays rich content in a floating panel when clicking on a trigger element.\n *\n * @example\n * ```tsx\n * <Popover>\n * <PopoverTrigger>Click me</PopoverTrigger>\n * <PopoverContent>Popover content here</PopoverContent>\n * </Popover>\n * ```\n *\n * @example\n * ```tsx\n * // With arrow and outline variant\n * <Popover>\n * <PopoverTrigger>Click me</PopoverTrigger>\n * <PopoverContent variant=\"outline\" showArrow>\n * <p>Rich content with close button</p>\n * <PopoverClose>Close</PopoverClose>\n * </PopoverContent>\n * </Popover>\n * ```\n */\n\n// ---------------------------------------------------------------------------\n// PopoverProvider (optional)\n// ---------------------------------------------------------------------------\n\nexport interface PopoverProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * Optional context wrapper for managing multiple popovers.\n * Not required for single popover usage — simply renders children directly.\n */\nconst PopoverProvider: React.FC<PopoverProviderProps> = ({ children }) => (\n <>{children}</>\n);\nPopoverProvider.displayName = 'PopoverProvider';\n\n// ---------------------------------------------------------------------------\n// Popover (Root)\n// ---------------------------------------------------------------------------\n\nexport interface PopoverProps {\n children: React.ReactNode;\n /** Controlled open state. */\n open?: boolean;\n /** Uncontrolled default open state. */\n defaultOpen?: boolean;\n /** Callback when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** When true, interaction with outside elements is disabled and only popover content is visible to screen readers. */\n modal?: boolean;\n}\n\nconst Popover = PopoverPrimitive.Root;\n\n// ---------------------------------------------------------------------------\n// PopoverTrigger\n// ---------------------------------------------------------------------------\n\nexport type PopoverTriggerProps = React.ComponentPropsWithoutRef<\n typeof PopoverPrimitive.Trigger\n>;\n\nconst PopoverTrigger = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Trigger>,\n PopoverTriggerProps\n>(({ className, ...props }, ref) => (\n <PopoverPrimitive.Trigger ref={ref} className={cn(className)} {...props} />\n));\nPopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName;\n\n// ---------------------------------------------------------------------------\n// popoverContentVariants (CVA)\n// ---------------------------------------------------------------------------\n\nconst popoverContentVariants = cva(\n 'z-50 w-72 rounded-md p-4 shadow-md outline-none data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n {\n variants: {\n variant: {\n default:\n 'border border-neutral-200 bg-white text-neutral-900 shadow-lg dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100',\n outline:\n 'border-2 border-primary-500 bg-white text-neutral-900 shadow-lg dark:border-primary-400 dark:bg-neutral-800 dark:text-neutral-100',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n// ---------------------------------------------------------------------------\n// PopoverContent\n// ---------------------------------------------------------------------------\n\nexport interface PopoverContentProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>,\n VariantProps<typeof popoverContentVariants> {\n /** Show an arrow pointing to the trigger element. @default false */\n showArrow?: boolean;\n /** Distance in px between the popover and the trigger. @default 4 */\n sideOffset?: number;\n}\n\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n PopoverContentProps\n>(\n (\n {\n className,\n variant,\n showArrow = false,\n sideOffset = 4,\n side = 'bottom',\n children,\n ...props\n },\n ref\n ) => {\n // Arrow styles using CSS border trick — immune to Starlight CSS resets\n const arrowSize = 8;\n const arrowPositionMap: Record<string, React.CSSProperties> = {\n bottom: {\n position: 'absolute',\n top: `-${arrowSize}px`,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 0,\n height: 0,\n borderLeft: `${arrowSize}px solid transparent`,\n borderRight: `${arrowSize}px solid transparent`,\n borderBottom: `${arrowSize}px solid white`,\n },\n top: {\n position: 'absolute',\n bottom: `-${arrowSize}px`,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 0,\n height: 0,\n borderLeft: `${arrowSize}px solid transparent`,\n borderRight: `${arrowSize}px solid transparent`,\n borderTop: `${arrowSize}px solid white`,\n },\n left: {\n position: 'absolute',\n right: `-${arrowSize}px`,\n top: '50%',\n transform: 'translateY(-50%)',\n width: 0,\n height: 0,\n borderTop: `${arrowSize}px solid transparent`,\n borderBottom: `${arrowSize}px solid transparent`,\n borderLeft: `${arrowSize}px solid white`,\n },\n right: {\n position: 'absolute',\n left: `-${arrowSize}px`,\n top: '50%',\n transform: 'translateY(-50%)',\n width: 0,\n height: 0,\n borderTop: `${arrowSize}px solid transparent`,\n borderBottom: `${arrowSize}px solid transparent`,\n borderRight: `${arrowSize}px solid white`,\n },\n };\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n side={side}\n sideOffset={showArrow ? sideOffset + arrowSize : sideOffset}\n className={cn(popoverContentVariants({ variant }), className)}\n style={{ position: 'relative' }}\n {...props}\n >\n {children}\n {showArrow && (\n <div\n data-popover-arrow=\"\"\n aria-hidden=\"true\"\n style={arrowPositionMap[side ?? 'bottom']}\n />\n )}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n }\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\n// ---------------------------------------------------------------------------\n// PopoverArrow\n// ---------------------------------------------------------------------------\n\nexport interface PopoverArrowProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Arrow> {\n /** Variant to match the parent PopoverContent color scheme. @default 'default' */\n variant?: 'default' | 'outline';\n}\n\nconst PopoverArrow = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Arrow>,\n PopoverArrowProps\n>(({ className, variant = 'default', width = 14, height = 7, ...props }, ref) => (\n <PopoverPrimitive.Arrow\n ref={ref}\n width={width}\n height={height}\n className={cn('fill-white dark:fill-neutral-800', className)}\n style={{ fill: 'white', display: 'block' }}\n {...props}\n />\n));\nPopoverArrow.displayName = 'PopoverArrow';\n\n// ---------------------------------------------------------------------------\n// PopoverClose\n// ---------------------------------------------------------------------------\n\nexport interface PopoverCloseProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Close> {}\n\nconst PopoverClose = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Close>,\n PopoverCloseProps\n>(({ className, ...props }, ref) => (\n <PopoverPrimitive.Close ref={ref} className={cn(className)} {...props} />\n));\nPopoverClose.displayName = 'PopoverClose';\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n PopoverProvider,\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverArrow,\n PopoverClose,\n popoverContentVariants,\n};\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * DropdownMenu component built on Radix UI DropdownMenu primitive.\n * Displays a menu of actions/options triggered by a button click.\n *\n * @example\n * ```tsx\n * <DropdownMenu>\n * <DropdownMenuTrigger>Open</DropdownMenuTrigger>\n * <DropdownMenuContent>\n * <DropdownMenuItem>Item 1</DropdownMenuItem>\n * <DropdownMenuItem>Item 2</DropdownMenuItem>\n * </DropdownMenuContent>\n * </DropdownMenu>\n * ```\n */\n\n// ---------------------------------------------------------------------------\n// Inline SVG Icons\n// ---------------------------------------------------------------------------\n\nconst CheckIcon = ({ className }: { className?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\nconst DotIcon = ({ className }: { className?: string }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"5\" />\n </svg>\n);\n\nconst ChevronRightIcon = ({ className }: { className?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\n// ---------------------------------------------------------------------------\n// DropdownMenu (Root)\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuProps {\n children: React.ReactNode;\n /** Controlled open state. */\n open?: boolean;\n /** Uncontrolled default open state. */\n defaultOpen?: boolean;\n /** Callback when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Text direction. */\n dir?: 'ltr' | 'rtl';\n /** When true, interaction with outside elements is disabled. */\n modal?: boolean;\n}\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\n// ---------------------------------------------------------------------------\n// DropdownMenuTrigger\n// ---------------------------------------------------------------------------\n\nexport type DropdownMenuTriggerProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n>;\n\nconst DropdownMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Trigger>,\n DropdownMenuTriggerProps\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Trigger ref={ref} className={cn(className)} {...props} />\n));\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\n// ---------------------------------------------------------------------------\n// dropdownMenuContentVariants (CVA)\n// ---------------------------------------------------------------------------\n\nconst dropdownMenuContentVariants = cva(\n 'z-50 min-w-[8rem] overflow-hidden rounded-md p-1 shadow-md outline-none data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n {\n variants: {\n variant: {\n default:\n 'border border-neutral-200 bg-white text-neutral-900 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100',\n outline:\n 'border-2 border-neutral-300 bg-white text-neutral-900 dark:border-neutral-600 dark:bg-neutral-800 dark:text-neutral-100',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n// ---------------------------------------------------------------------------\n// DropdownMenuContent\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuContentProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>,\n VariantProps<typeof dropdownMenuContentVariants> {\n /** Distance in px between the menu and the trigger. @default 4 */\n sideOffset?: number;\n}\n\nconst DropdownMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(({ className, variant, sideOffset = 4, side = 'bottom', ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n side={side}\n sideOffset={sideOffset}\n className={cn(dropdownMenuContentVariants({ variant }), className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuItem\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {\n /** Add left padding to align with labels. */\n inset?: boolean;\n}\n\nconst DropdownMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n DropdownMenuItemProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n 'focus-visible:bg-primary-500 focus-visible:text-white',\n 'dark:focus-visible:bg-primary-600 dark:focus-visible:text-white',\n 'data-disabled:pointer-events-none data-disabled:opacity-50 data-disabled:cursor-default',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuSeparator\n// ---------------------------------------------------------------------------\n\nexport type DropdownMenuSeparatorProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n>;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-neutral-200 dark:bg-neutral-700', className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuLabel\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuLabelProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> {\n /** Add left padding to align with items that have icons. */\n inset?: boolean;\n}\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n DropdownMenuLabelProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n 'px-2 py-1.5 text-sm font-semibold text-neutral-500 dark:text-neutral-400',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuCheckboxItem\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuCheckboxItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> {}\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors',\n 'focus-visible:bg-primary-500 focus-visible:text-white',\n 'dark:focus-visible:bg-primary-600 dark:focus-visible:text-white',\n 'data-disabled:pointer-events-none data-disabled:opacity-50 data-disabled:cursor-default',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = 'DropdownMenuCheckboxItem';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuRadioGroup\n// ---------------------------------------------------------------------------\n\nexport type DropdownMenuRadioGroupProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.RadioGroup\n>;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\n// ---------------------------------------------------------------------------\n// DropdownMenuRadioItem\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuRadioItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> {}\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors',\n 'focus-visible:bg-primary-500 focus-visible:text-white',\n 'dark:focus-visible:bg-primary-600 dark:focus-visible:text-white',\n 'data-disabled:pointer-events-none data-disabled:opacity-50 data-disabled:cursor-default',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <DotIcon className=\"h-4 w-4 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = 'DropdownMenuRadioItem';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuSub\n// ---------------------------------------------------------------------------\n\nexport type DropdownMenuSubProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Sub\n>;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\n// ---------------------------------------------------------------------------\n// DropdownMenuSubTrigger\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuSubTriggerProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> {\n /** Add left padding to align with labels. */\n inset?: boolean;\n}\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n 'focus-visible:bg-primary-500 focus-visible:text-white',\n 'data-[state=open]:bg-neutral-100 dark:data-[state=open]:bg-neutral-700',\n 'dark:focus-visible:bg-primary-600 dark:focus-visible:text-white',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = 'DropdownMenuSubTrigger';\n\n// ---------------------------------------------------------------------------\n// DropdownMenuSubContent\n// ---------------------------------------------------------------------------\n\nexport interface DropdownMenuSubContentProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>,\n VariantProps<typeof dropdownMenuContentVariants> {}\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownMenuSubContentProps\n>(({ className, variant, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(dropdownMenuContentVariants({ variant }), className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuSubContent.displayName = 'DropdownMenuSubContent';\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuLabel,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n dropdownMenuContentVariants,\n};\n","import * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\n/**\n * Alert Dialog component built on Radix UI AlertDialog primitive.\n * Displays a modal dialog for confirming destructive or important actions.\n * Unlike regular dialogs, alert dialogs require explicit user response\n * and cannot be dismissed by clicking the overlay.\n *\n * @example\n * ```tsx\n * <AlertDialog>\n * <AlertDialogTrigger>Delete</AlertDialogTrigger>\n * <AlertDialogContent>\n * <AlertDialogHeader>\n * <AlertDialogTitle>Are you sure?</AlertDialogTitle>\n * <AlertDialogDescription>This action cannot be undone.</AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction>Continue</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n *\n * @example\n * ```tsx\n * // Destructive variant\n * <AlertDialog>\n * <AlertDialogTrigger>Delete Account</AlertDialogTrigger>\n * <AlertDialogContent variant=\"destructive\">\n * <AlertDialogHeader>\n * <AlertDialogTitle>Delete Account</AlertDialogTitle>\n * <AlertDialogDescription>\n * This will permanently delete your account and all data.\n * </AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction>Delete</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n */\n\n// ---------------------------------------------------------------------------\n// AlertDialog (Root)\n// ---------------------------------------------------------------------------\n\nexport interface AlertDialogProps {\n children: React.ReactNode;\n /** Controlled open state. */\n open?: boolean;\n /** Uncontrolled default open state. */\n defaultOpen?: boolean;\n /** Callback when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n}\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\n// ---------------------------------------------------------------------------\n// AlertDialogTrigger\n// ---------------------------------------------------------------------------\n\nexport type AlertDialogTriggerProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Trigger\n>;\n\nconst AlertDialogTrigger = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Trigger>,\n AlertDialogTriggerProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Trigger ref={ref} className={cn(className)} {...props} />\n));\nAlertDialogTrigger.displayName = AlertDialogPrimitive.Trigger.displayName;\n\n// ---------------------------------------------------------------------------\n// AlertDialogOverlay\n// ---------------------------------------------------------------------------\n\nexport type AlertDialogOverlayProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Overlay\n>;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Overlay>,\n AlertDialogOverlayProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n className\n )}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = 'AlertDialogOverlay';\n\n// ---------------------------------------------------------------------------\n// alertDialogContentVariants (CVA)\n// ---------------------------------------------------------------------------\n\nconst alertDialogContentVariants = cva(\n 'fixed left-1/2 top-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 rounded-lg p-6 shadow-lg outline-none data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n {\n variants: {\n variant: {\n default:\n 'border border-neutral-200 bg-white text-neutral-900 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100',\n destructive:\n 'border border-neutral-200 border-t-4 border-t-error-500 bg-white text-neutral-900 dark:border-neutral-700 dark:border-t-error-500 dark:bg-neutral-800 dark:text-neutral-100',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n// ---------------------------------------------------------------------------\n// AlertDialogContent\n// ---------------------------------------------------------------------------\n\nexport interface AlertDialogContentProps\n extends React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>,\n VariantProps<typeof alertDialogContentVariants> {}\n\nconst AlertDialogContent = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Content>,\n AlertDialogContentProps\n>(({ className, variant, children, ...props }, ref) => (\n <AlertDialogPrimitive.Portal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(alertDialogContentVariants({ variant }), className)}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Content>\n </AlertDialogPrimitive.Portal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\n// ---------------------------------------------------------------------------\n// AlertDialogHeader\n// ---------------------------------------------------------------------------\n\nexport interface AlertDialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst AlertDialogHeader = React.forwardRef<HTMLDivElement, AlertDialogHeaderProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-2', className)} {...props} />\n )\n);\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\n// ---------------------------------------------------------------------------\n// AlertDialogFooter\n// ---------------------------------------------------------------------------\n\nexport interface AlertDialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst AlertDialogFooter = React.forwardRef<HTMLDivElement, AlertDialogFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex justify-end gap-2 mt-4', className)}\n {...props}\n />\n )\n);\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\n// ---------------------------------------------------------------------------\n// AlertDialogTitle\n// ---------------------------------------------------------------------------\n\nexport type AlertDialogTitleProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Title\n>;\n\nconst AlertDialogTitle = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Title>,\n AlertDialogTitleProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\n 'text-lg font-semibold text-neutral-900 dark:text-neutral-100',\n className\n )}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\n// ---------------------------------------------------------------------------\n// AlertDialogDescription\n// ---------------------------------------------------------------------------\n\nexport type AlertDialogDescriptionProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Description\n>;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Description>,\n AlertDialogDescriptionProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;\n\n// ---------------------------------------------------------------------------\n// AlertDialogAction\n// ---------------------------------------------------------------------------\n\nexport type AlertDialogActionProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Action\n>;\n\nconst AlertDialogAction = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Action>,\n AlertDialogActionProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action ref={ref} className={cn(className)} {...props} />\n));\nAlertDialogAction.displayName = 'AlertDialogAction';\n\n// ---------------------------------------------------------------------------\n// AlertDialogCancel\n// ---------------------------------------------------------------------------\n\nexport type AlertDialogCancelProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Cancel\n>;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Cancel>,\n AlertDialogCancelProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel ref={ref} className={cn(className)} {...props} />\n));\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n alertDialogContentVariants,\n};\n","import * as React from 'react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { cn } from '../lib/utils';\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-neutral-200 dark:border-neutral-700', className)}\n {...props}\n />\n));\nAccordionItem.displayName = 'AccordionItem';\n\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between py-4 text-sm font-medium transition-all',\n 'hover:underline',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n '[&[data-state=open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"shrink-0 text-neutral-500 transition-transform duration-normal dark:text-neutral-400\"\n aria-hidden=\"true\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = 'AccordionTrigger';\n\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = 'AccordionContent';\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from 'react';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport { cn } from '../lib/utils';\n\nexport interface SeparatorProps\n extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {}\n\nconst Separator = React.forwardRef<\n React.ComponentRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-neutral-200 dark:bg-neutral-700',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = 'Separator';\n\nexport { Separator };\n","import * as React from 'react';\nimport { cn } from '../lib/utils';\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'>\n>(({ className, ...props }, ref) => (\n <nav\n ref={ref}\n aria-label=\"Breadcrumb\"\n className={cn(className)}\n {...props}\n />\n));\nBreadcrumb.displayName = 'Breadcrumb';\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<'ol'>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-neutral-500 dark:text-neutral-400',\n className\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = 'BreadcrumbList';\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<'li'>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn('inline-flex items-center gap-1.5', className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n 'cursor-pointer transition-colors hover:text-neutral-900 dark:hover:text-neutral-100',\n className\n )}\n {...props}\n />\n));\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-medium text-neutral-900 dark:text-neutral-100', className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\nexport interface BreadcrumbSeparatorProps\n extends React.ComponentPropsWithoutRef<'li'> {\n children?: React.ReactNode;\n}\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: BreadcrumbSeparatorProps) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('text-neutral-400 dark:text-neutral-500', className)}\n {...props}\n >\n {children ?? '/'}\n </li>\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n"]}
|