@hilum/ui 2.0.4 → 2.1.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 +56 -37
- package/dist/index.js +442 -379
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/account-menu.tsx +115 -0
- package/src/index.ts +1 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/accordion.tsx","../src/components/button.tsx","../src/components/action-panel.tsx","../src/components/activity-feed.tsx","../src/components/alert-dialog.tsx","../src/components/alert.tsx","../src/components/aspect-ratio.tsx","../src/components/avatar-stack.tsx","../src/components/avatar.tsx","../src/components/badge.tsx","../src/components/breadcrumb.tsx","../src/components/button-group.tsx","../src/components/calendar.tsx","../src/components/card-heading.tsx","../src/components/card.tsx","../src/components/carousel.tsx","../src/components/chart.tsx","../src/components/checkbox.tsx","../src/components/collapsible.tsx","../src/components/color-picker.tsx","../src/components/color-input.tsx","../src/components/combobox.tsx","../src/components/dialog.tsx","../src/components/command-palette.tsx","../src/components/command.tsx","../src/components/context-menu.tsx","../src/components/table.tsx","../src/components/input.tsx","../src/components/data-table.tsx","../src/components/popover.tsx","../src/components/date-picker.tsx","../src/components/description-list.tsx","../src/components/drawer.tsx","../src/components/dropdown-menu.tsx","../src/components/empty-state.tsx","../src/components/label.tsx","../src/components/field.tsx","../src/components/grid-list.tsx","../src/components/hover-card.tsx","../src/components/input-group.tsx","../src/components/input-number.tsx","../src/components/input-otp.tsx","../src/components/kbd.tsx","../src/components/media-object.tsx","../src/components/menubar.tsx","../src/components/native-select.tsx","../src/components/navigation-menu.tsx","../src/components/notification.tsx","../src/components/page-heading.tsx","../src/components/pagination.tsx","../src/components/progress.tsx","../src/components/property-row.tsx","../src/components/radio-card.tsx","../src/components/radio-group.tsx","../src/components/resizable.tsx","../src/components/scroll-area.tsx","../src/components/section-heading.tsx","../src/components/select.tsx","../src/components/separator.tsx","../src/components/sheet.tsx","../src/components/tooltip.tsx","../src/components/sidebar.tsx","../src/components/skeleton.tsx","../src/components/slider.tsx","../src/components/sonner.tsx","../src/components/spinner.tsx","../src/components/stacked-list.tsx","../src/components/stat-card.tsx","../src/components/steps.tsx","../src/components/switch.tsx","../src/components/tabs.tsx","../src/components/textarea.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx"],"names":["React","jsx","jsxs","React2","cva","React3","React4","sizeMap","React5","AvatarPrimitive","React6","ChevronRight","React7","React8","React9","React10","React11","React12","Check","React13","React14","ArrowRight","Search","React16","React17","React18","ChevronDown","ChevronsUpDown","Popover","React19","DrawerPrimitive","React20","React21","Circle","React22","LabelPrimitive","React23","React24","React25","React26","Minus","React27","gapMap","React28","React29","React30","AlertCircle","X","React31","React32","ChevronLeft","MoreHorizontal","React33","colMap","React34","Separator","React35","React36","ChevronUp","React37","SeparatorPrimitive","Dialog","React38","Tooltip","React39","React40","Slot","React41","SonnerToaster","React42","React43","React44","React45"],"mappings":";;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACEA,IAAM,aAAA,GAAsBA,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA,CAAC,UAAU,IAAA,EAAV,EAAe,KAAU,SAAA,EAAW,EAAA,CAAG,0BAA0B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAC1F;AACD,aAAA,CAAc,WAAA,GAAc,WAAA;AAE5B,IAAM,aAAA,GAAsBA,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA,CAAC,UAAU,IAAA,EAAV,EAAe,KAAU,SAAA,EAAW,EAAA,CAAG,IAAI,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CACpE;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,gBAAA,GAAyBA,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,wBACpC,GAAA,CAAC,SAAA,CAAU,MAAA,EAAV,EAAiB,WAAU,MAAA,EAC1B,QAAA,kBAAA,IAAA;AAAA,EAAC,SAAA,CAAU,OAAA;AAAA,EAAV;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+CAAA;AAAA,MACA,gFAAA;AAAA,MACA,qCAAA;AAAA,MACA,4EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,EAAA;AAAA,UACN,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AACF,CAAA,EACF,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,gBAAA,GAAyBA,mBAG7B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC,GAAA;AAAA,EAAC,SAAA,CAAU,OAAA;AAAA,EAAV;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,4CAAA;AAAA,MACA,mFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,QAAA,EAAS;AAAA;AAClC,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AC5D/B,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB;AAAA,IACE,wDAAA;AAAA,IACA,oCAAA;AAAA,IACA,0CAAA;AAAA,IACA,sFAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,uFAAA;AAAA,QACT,WAAA,EAAa,6FAAA;AAAA,QACb,OAAA,EAAS,wEAAA;AAAA,QACT,SAAA,EAAW,+CAAA;AAAA,QACX,KAAA,EACE,6FAAA;AAAA,QACF,KAAA,EAAO,4DAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,0BAAA;AAAA,QACT,EAAA,EAAI,mCAAA;AAAA,QACJ,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM,mBAAA;AAAA,QACN,SAAA,EAAW,wDAAA;AAAA,QACX,SAAA,EAAW,mBAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,SAAS,MAAA,CAAO,EAAE,SAAA,EAAW,OAAA,EAAS,MAAM,OAAA,GAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAgB;AACpF,EAAA,MAAM,IAAA,GAAO,OAAA,GAAU,IAAA,CAAK,IAAA,GAAO,QAAA;AACnC,EAAA,uBACEC,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AC7BrB,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,MAAA,GAAS,SAAA;AAAA,EACT,QAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,aAAa,OAAA,KAAY,MAAA,GAAS,CAAC,MAAM,IAAI,EAAC,CAAA;AAEpD,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,UAAA,CAAW,MAAA,KAAW,CAAA,IAAK,CAAC,MAAM,OAAO,IAAA;AAC7C,IAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,IAAA,KACE,IAAA,CAAK,uBACJA,IAAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,SAAA,EAAU,+GAAA;AAAA,UAET,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,KAAA;AAAA,YAAM,GAAA;AAAA,4BAACD,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAW,MAAC,QAAA,EAAA,QAAA,EAAC;AAAA;AAAA;AAAA,0BAGlCC,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,SAAA,EAAU,+GAAA;AAAA,UAET,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,KAAA;AAAA,YAAM,GAAA;AAAA,4BAACD,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAW,MAAC,QAAA,EAAA,QAAA,EAAC;AAAA;AAAA;AAAA,OAClC,CAAA;AAAA,MAEH,UAAA,CAAW,GAAA;AAAA,QAAI,CAAC,CAAA,EAAG,CAAA,KAClB,EAAE,IAAA,mBACAA,IAAC,MAAA,EAAA,EAAe,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,EAAE,OAAA,IAAW,SAAA,EAAW,SAAO,IAAA,EAChE,QAAA,kBAAAA,IAAC,GAAA,EAAA,EAAE,IAAA,EAAM,CAAA,CAAE,IAAA,EAAO,YAAE,KAAA,EAAM,CAAA,EAAA,EADf,CAEb,CAAA,mBAEAA,IAAC,MAAA,EAAA,EAAe,IAAA,EAAK,MAAK,OAAA,EAAS,CAAA,CAAE,WAAW,SAAA,EAAW,OAAA,EAAS,EAAE,OAAA,EACnE,QAAA,EAAA,CAAA,CAAE,SADQ,CAEb;AAAA;AAEJ,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,6BAAA;AAAA,QACA,OAAA,KAAY,UACR,wBAAA,GACA,sCAAA;AAAA,QACJ,WAAW,QAAA,IAAY,yCAAA;AAAA,QACvB;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,WAAW,MAAA,KAAW,QAAA,GAAW,QAAA,GAAW,EAAE,CAAA,EAC/D,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAA,EAAsC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACxD,WAAA,oBACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,MAAA,KAAW,SAAA,GAAY,MAAA,GAAS,EAAE,CAAA,EAC9E,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,UAED,QAAA,IAAY,WAAW,SAAA,oBAAaA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAS;AAAA,SAAA,EACvE,CAAA;AAAA,QAEC,WAAW,SAAA,GAAA,CACT,UAAA,CAAW,SAAS,CAAA,IAAK,IAAA,qBAASA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,yBAAc,EAAE,CAAA,mBAE1EC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,aAAA;AAAc,SAAA,EACjB;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AC9F1B,SAAS,YAAA,CAAa,EAAE,MAAA,EAAQ,SAAA,EAAU,EAAsB;AAC9D,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EACvC,QAAA,kBAAAA,IAAC,IAAA,EAAA,EAAG,IAAA,EAAK,QAAO,SAAA,EAAU,OAAA,EACvB,iBAAO,GAAA,CAAI,CAAC,OAAO,CAAA,KAAM;AACxB,IAAA,MAAM,MAAA,GAAS,CAAA,KAAM,MAAA,CAAO,MAAA,GAAS,CAAA;AACrC,IAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EACC,0BAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,eAAA,EACZ,QAAA,EAAA;AAAA,MAAA,CAAC,0BACAD,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oDAAA;AAAA,UACV,aAAA,EAAY;AAAA;AAAA,OACd;AAAA,sBAEFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAEb,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,SACC,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,6EAAA;AAAA,cACA,MAAM,WAAA,IAAe;AAAA,aACvB;AAAA,YAEC,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,SACT,EACF,CAAA;AAAA,wBAGAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+DAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EAA8B,gBAAM,OAAA,EAAQ,CAAA;AAAA,UAC1D,KAAA,CAAM,wBACLA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAU,KAAA,CAAM,QAAA,IAAY,KAAA,CAAM,IAAA;AAAA,cAClC,SAAA,EAAU,iDAAA;AAAA,cAET,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA;AACT,SAAA,EAEJ;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA,EAAA,EAlCO,KAAA,CAAM,EAAA,IAAM,CAmCrB,CAAA;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;AC7D3B,IAAM,kBAAkB,WAAA,CAAY;AACpC,IAAM,qBAAqB,WAAA,CAAY;AACvC,IAAM,oBAAoB,WAAA,CAAY;AAEtC,IAAM,kBAAA,GAA2BE,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BF,GAAAA;AAAA,EAAC,WAAA,CAAY,OAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iDAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,kBAAA,GAA2BE,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCD,IAAAA,CAAC,WAAA,CAAY,QAAZ,EACC,QAAA,EAAA;AAAA,kBAAAD,IAAC,kBAAA,EAAA,EAAmB,CAAA;AAAA,kBACpBA,GAAAA;AAAA,IAAC,WAAA,CAAY,OAAA;AAAA,IAAZ;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,uEAAA;AAAA,QACA,yDAAA;AAAA,QACA,8DAAA;AAAA,QACA,4DAAA;AAAA,QACA,8DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,SAAS,iBAAA,CAAkB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyC;AACxF,EAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACjF;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,SAAS,iBAAA,CAAkB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyC;AACxF,EAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,0CAAA,EAA4C,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/F;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,gBAAA,GAAyBE,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BF,GAAAA;AAAA,EAAC,WAAA,CAAY,KAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,IAC/D,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,sBAAA,GAA+BE,mBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BF,GAAAA,CAAC,YAAY,WAAA,EAAZ,EAAwB,KAAU,SAAA,EAAW,EAAA,CAAG,8BAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CACvG;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAErC,IAAM,iBAAA,GAA0BE,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BF,GAAAA;AAAA,EAAC,WAAA,CAAY,MAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,6DAAA;AAAA,MACA,gEAAA;AAAA,MACA,uFAAA;AAAA,MACA,mGAAA;AAAA,MACA,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,iBAAA,GAA0BE,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BF,GAAAA;AAAA,EAAC,WAAA,CAAY,MAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,6DAAA;AAAA,MACA,gEAAA;AAAA,MACA,wEAAA;AAAA,MACA,mGAAA;AAAA,MACA,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;ACjHhC,IAAM,aAAA,GAAgBG,GAAAA;AAAA,EACpB,4GAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,8DAAA;AAAA,QACT,IAAA,EAAM,2EAAA;AAAA,QACN,OAAA,EAAS,2EAAA;AAAA,QACT,OAAA,EAAS,2EAAA;AAAA,QACT,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA;AAAU;AAE1C,CAAA;AAIA,IAAM,KAAA,GAAcC,OAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAG,GAAA,qBACjCJ,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,MAAK,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAEjG;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmBI,OAAA,CAAA,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBJ,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAU,SAAA,EAAW,EAAA,CAAG,2CAA2C,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAEjG;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBI,OAAA,CAAA,UAAA;AAAA,EAC7B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBJ,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAU,SAAA,EAAW,EAAA,CAAG,mBAAmB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAEzE;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;ACnC/B,IAAM,eAAA,GAAwBK,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BL,GAAAA;AAAA,EAAC,WAAA,CAAY,IAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA;AAAA,IACzD,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,aAAA;ACC9B,IAAM,OAAA,GAAU;AAAA,EACd,EAAA,EAAI,EAAE,OAAA,EAAS,qBAAA,EAAuB,MAAM,YAAA,EAAa;AAAA,EACzD,EAAA,EAAI,EAAE,OAAA,EAAS,eAAA,EAAiB,MAAM,SAAA,EAAU;AAAA,EAChD,EAAA,EAAI,EAAE,OAAA,EAAS,gBAAA,EAAkB,MAAM,MAAA;AACzC,CAAA;AAEA,SAAS,YAAY,EAAE,OAAA,EAAS,KAAK,IAAA,GAAO,IAAA,EAAM,WAAU,EAAqB;AAC/E,EAAA,MAAM,QAAQ,GAAA,GAAM,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,GAAI,OAAA;AAC5C,EAAA,MAAM,WAAW,GAAA,IAAO,OAAA,CAAQ,SAAS,GAAA,GAAM,OAAA,CAAQ,SAAS,GAAA,GAAM,CAAA;AACtE,EAAA,MAAM,CAAA,GAAI,QAAQ,IAAI,CAAA;AAEtB,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAC5C,QAAA,EAAA;AAAA,IAAA,KAAA,CAAM,GAAA,CAAI,CAAC,MAAA,EAAQ,CAAA,qBAClBD,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QAEC,OAAO,MAAA,CAAO,IAAA;AAAA,QACd,SAAA,EAAW,EAAA;AAAA,UACT,4EAAA;AAAA,UACA,CAAA,CAAE;AAAA,SACJ;AAAA,QAEC,QAAA,EAAA,MAAA,CAAO,GAAA,mBACNA,GAAAA,CAAC,SAAI,GAAA,EAAK,MAAA,CAAO,GAAA,EAAK,GAAA,EAAK,MAAA,CAAO,IAAA,EAAM,SAAA,EAAU,wBAAA,EAAyB,oBAE3EA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,wDAAA;AAAA,cACA,CAAA,CAAE,IAAA;AAAA,cACF,OAAO,UAAA,IAAc;AAAA,aACvB;AAAA,YAEC,QAAA,EAAA,MAAA,CAAO,YAAY,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,EAAG,CAAC,EAAE,WAAA;AAAY;AAAA;AAC1D,OAAA;AAAA,MAlBG;AAAA,KAqBR,CAAA;AAAA,IACA,QAAA,GAAW,qBACVC,IAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,mIAAA;AAAA,UACA,CAAA,CAAE,OAAA;AAAA,UACF,CAAA,CAAE;AAAA,SACJ;AAAA,QACD,QAAA,EAAA;AAAA,UAAA,GAAA;AAAA,UACG;AAAA;AAAA;AAAA;AACJ,GAAA,EAEJ,CAAA;AAEJ;AC7DA,IAAMK,QAAAA,GAAU;AAAA,EACd,EAAA,EAAI,mBAAA;AAAA,EACJ,EAAA,EAAI,gBAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAQA,IAAM,MAAA,GAAeC,OAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,IAAA,GAAO,MAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBACrCP,GAAAA;AAAA,IAACQ,QAAA,CAAgB,IAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,qDAAA;AAAA,QACAF,SAAQ,IAAI,CAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AAErB,IAAM,WAAA,GAAoBC,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BP,GAAAA;AAAA,EAACQ,QAAA,CAAgB,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0CAAA,EAA4C,SAAS,CAAA;AAAA,IAClE,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,cAAA,GAAuBD,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BP,GAAAA;AAAA,EAACQ,QAAA,CAAgB,QAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+GAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAiB;AAAA,EACrB,MAAA,EAAQ,oBAAA;AAAA,EACR,OAAA,EAAS,UAAA;AAAA,EACT,IAAA,EAAM,gBAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,eAAA;AAAA,EACJ,EAAA,EAAI,uBAAA;AAAA,EACJ,EAAA,EAAI,eAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAMA,IAAM,mBAAyBD,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAAG,GAAA,qBACzDN,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,+BAAA,EACb,QAAA,EAAA;AAAA,kBAAAD,IAAC,MAAA,EAAA,EAAO,GAAA,EAAU,MAAY,SAAA,EAAuB,GAAG,OACrD,QAAA,EACH,CAAA;AAAA,EACC,0BACCA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wDAAA;AAAA,QACA,eAAe,MAAM,CAAA;AAAA,QACrB,cAAc,IAAI;AAAA;AACpB;AAAA;AACF,CAAA,EAEJ,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AChG/B,IAAM,aAAA,GAAgBG,GAAAA;AAAA,EACpB,iGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+BAAA;AAAA,QACT,SAAA,EAAW,gCAAA;AAAA,QACX,OAAA,EAAS,2DAAA;AAAA,QACT,KAAA,EAAO,kCAAA;AAAA,QACP,OAAA,EAAS,8EAAA;AAAA,QACT,OAAA,EAAS,2EAAA;AAAA,QACT,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAIA,SAAS,MAAM,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAe;AAC3D,EAAA,uBACEH,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,SAAQ,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,SAAS,SAAA,EAAW,CAAC,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE7F;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AC3BpB,IAAM,aAAmBS,OAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,GAAG,OAAM,EAAG,GAAA,qBAAQT,GAAAA,CAAC,SAAI,GAAA,EAAU,YAAA,EAAW,YAAA,EAAc,GAAG,OAAO,CAAE;AAC7E,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,cAAA,GAAuBS,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBT,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,gEAAA,EAAkE,SAAS,CAAA;AAAA,MACxF,GAAG;AAAA;AAAA;AAGV;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBS,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBT,GAAAA,CAAC,IAAA,EAAA,EAAG,KAAU,SAAA,EAAW,EAAA,CAAG,oCAAoC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE3F;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBS,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBT,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAU,SAAA,EAAW,EAAA,CAAG,2CAA2C,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAEjG;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBS,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBT,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA;AAAA,MAC1D,GAAG;AAAA;AAAA;AAGV;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,mBAAA,GAAsB,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAM,qBAC3DA,GAAAA,CAAC,IAAA,EAAA,EAAG,IAAA,EAAK,cAAA,EAAe,aAAA,EAAY,MAAA,EAAO,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS,CAAA,EAAI,GAAG,KAAA,EAC/F,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,CAAA,EACvC;AAEF,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,qBAAqB,CAAC,EAAE,WAAW,GAAG,KAAA,uBAC1CA,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,cAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS,CAAA;AAAA,IACjE,GAAG,KAAA;AAAA,IAEJ,0BAAAA,GAAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAM,EAAA,EAAI,WAAU,uBAAA,EAAwB;AAAA;AAC9D;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;ACxDjC,SAAS,WAAA,CAAY,EAAE,QAAA,EAAU,SAAA,EAAU,EAAqB;AAC9D,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,2GAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAMA,SAAS,gBAAgB,EAAE,MAAA,EAAQ,WAAW,QAAA,EAAU,GAAG,OAAM,EAAyB;AACxF,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,0FAAA;AAAA,QACA,gHAAA;AAAA,QACA,SACI,+BAAA,GACA,4DAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAC1B,eAAA,CAAgB,WAAA,GAAc,iBAAA;ACpC9B,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,UAAA,EAAY,kBAAkB,IAAA,EAAM,GAAG,OAAM,EAAkB;AAC5F,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,eAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,SAAS,CAAA;AAAA,MAC9B,UAAA,EAAY;AAAA,QACV,MAAA,EAAQ,iCAAA;AAAA,QACR,KAAA,EAAO,qBAAA;AAAA,QACP,aAAA,EAAe,sDAAA;AAAA,QACf,aAAA,EAAe,oCAAA;AAAA,QACf,GAAA,EAAK,4DAAA;AAAA,QACL,eAAA,EAAiB,EAAA;AAAA,UACf,qEAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,WAAA,EAAa,EAAA;AAAA,UACX,sEAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,UAAA,EAAY,6BAAA;AAAA,QACZ,QAAA,EAAU,MAAA;AAAA,QACV,OAAA,EAAS,kFAAA;AAAA,QACT,IAAA,EAAM,kBAAA;AAAA,QACN,GAAA,EAAK,0BAAA;AAAA,QACL,UAAA,EAAY,EAAA;AAAA,UACV,wEAAA;AAAA,UACA,kDAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,QAAA,EACE,6FAAA;AAAA,QACF,KAAA,EAAO,wDAAA;AAAA,QACP,OAAA,EAAS,6CAAA;AAAA,QACT,QAAA,EAAU,0CAAA;AAAA,QACV,WAAA,EAAa,gFAAA;AAAA,QACb,SAAA,EAAW,gFAAA;AAAA,QACX,YAAA,EACE,mFAAA;AAAA,QACF,MAAA,EAAQ,WAAA;AAAA,QACR,GAAG;AAAA,OACL;AAAA,MACA,UAAA,EAAY;AAAA,QACV,SAAS,CAAC,EAAE,aAAY,KACtB,WAAA,KAAgB,yBAASA,GAAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,IAAI,CAAA,mBAAKA,IAACU,YAAAA,EAAA,EAAa,MAAM,EAAA,EAAI;AAAA,OACjF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;ACvCvB,SAAS,YAAY,EAAE,KAAA,EAAO,aAAa,OAAA,EAAS,QAAA,EAAU,WAAU,EAAqB;AAC3F,EAAA,uBACET,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,yEAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,0BACDA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,4BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CAAA,EAA+C,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YACjE,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wCAAwC,QAAA,EAAA,WAAA,EAAY;AAAA,WAAA,EACnF;AAAA,SAAA,EACF,CAAA;AAAA,QAEC,OAAA,IAAW,QAAQ,MAAA,GAAS,CAAA,oBAC3BA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA;AAAA,UAAI,CAAC,MAAA,EAAQ,CAAA,KACpB,MAAA,CAAO,IAAA,mBACLA,GAAAA,CAAC,MAAA,EAAA,EAAe,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAA,CAAO,OAAA,IAAW,SAAA,EAAW,OAAA,EAAO,IAAA,EACrE,QAAA,kBAAAA,GAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAO,QAAA,EAAA,MAAA,CAAO,KAAA,EAAM,CAAA,EAAA,EADzB,CAEb,CAAA,mBAEAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,IAAA;AAAA,cACL,OAAA,EAAS,OAAO,OAAA,IAAW,SAAA;AAAA,cAC3B,SAAS,MAAA,CAAO,OAAA;AAAA,cAEf,QAAA,EAAA,MAAA,CAAO;AAAA,aAAA;AAAA,YALH;AAAA;AAMP,SAEJ,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ;ACjDA,IAAM,YAAA,GAAeG,IAAI,YAAA,EAAc;AAAA,EACrC,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,wBAAA;AAAA,MACT,KAAA,EAAO,UAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC;AAID,IAAM,IAAA,GAAaQ,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,wBACjCX,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,MAAA;AAAA,MACV,WAAW,EAAA,CAAG,YAAA,CAAa,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAMnB,IAAM,UAAA,GAAmBW,OAAA,CAAA,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBX,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,2BAAA,EAA6B,SAAS,CAAA;AAAA,MACnD,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,SAAA,GAAkBW,OAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBX,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,MACpD,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,eAAA,GAAwBW,OAAA,CAAA,UAAA;AAAA,EAC5B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBX,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA;AAGV;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,WAAA,GAAoBW,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBX,GAAAA,CAAC,SAAI,GAAA,EAAU,WAAA,EAAU,gBAAe,SAAA,EAAW,EAAA,CAAG,YAAY,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE7F;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBW,OAAA,CAAA,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBX,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,MACpD,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAMzB,IAAM,SAAA,GAAkBW,OAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBX,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AC/ExB,IAAM,eAAA,GAAwBY,sBAA2C,IAAI,CAAA;AAE7E,SAAS,WAAA,GAAc;AACrB,EAAA,MAAM,OAAA,GAAgBA,mBAAW,eAAe,CAAA;AAChD,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAC9E,EAAA,OAAO,OAAA;AACT;AAEA,SAAS,QAAA,CAAS;AAAA,EAChB,IAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgD;AAC9C,EAAA,MAAM,CAAC,WAAA,EAAa,QAAQ,CAAA,GAAI,gBAAA;AAAA,IAC9B;AAAA,MACE,GAAG,IAAA;AAAA,MACH,IAAA,EAAM,WAAA,KAAgB,UAAA,GAAa,GAAA,GAAM;AAAA,KAC3C;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAE9D,EAAA,MAAM,QAAA,GAAiBA,OAAA,CAAA,WAAA,CAAY,CAAC,GAAA,KAAqB;AACvD,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,gBAAA,CAAiB,GAAA,CAAI,eAAe,CAAA;AACpC,IAAA,gBAAA,CAAiB,GAAA,CAAI,eAAe,CAAA;AAAA,EACtC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAmBA,oBAAY,MAAM;AACzC,IAAA,QAAA,EAAU,UAAA,EAAW;AAAA,EACvB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,UAAA,GAAmBA,oBAAY,MAAM;AACzC,IAAA,QAAA,EAAU,UAAA,EAAW;AAAA,EACvB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,WAAA;AAAA,IAC1B,CAAC,KAAA,KAA+C;AAC9C,MAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,EAAa;AAC7B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,UAAA,EAAW;AAAA,MACb,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,YAAA,EAAc;AACrC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,UAAA,EAAW;AAAA,MACb;AAAA,IACF,CAAA;AAAA,IACA,CAAC,YAAY,UAAU;AAAA,GACzB;AAEA,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,QAAA,CAAS,EAAA,CAAG,UAAU,QAAQ,CAAA;AAC9B,IAAA,QAAA,CAAS,EAAA,CAAG,UAAU,QAAQ,CAAA;AAC9B,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,GAAA,CAAI,UAAU,QAAQ,CAAA;AAC/B,MAAA,QAAA,CAAS,GAAA,CAAI,UAAU,QAAQ,CAAA;AAAA,IACjC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAEvB,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,CAAC,QAAA,IAAY,CAAC,MAAA,EAAQ;AAC1B,IAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,EACjB,CAAA,EAAG,CAAC,QAAA,EAAU,MAAM,CAAC,CAAA;AAErB,EAAA,uBACEZ,GAAAA;AAAA,IAAC,eAAA,CAAgB,QAAA;AAAA,IAAhB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,WAAA;AAAA,QACA,GAAA,EAAK,QAAA;AAAA,QACL,IAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,gBAAA,EAAkB,aAAA;AAAA,UAClB,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,UACnC,IAAA,EAAK,QAAA;AAAA,UACL,sBAAA,EAAqB,UAAA;AAAA,UACpB,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC7E,EAAA,MAAM,EAAE,WAAA,EAAa,WAAA,EAAY,GAAI,WAAA,EAAY;AAEjD,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAK,WAAA,EAAa,SAAA,EAAU,mBAC/B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,EAAA,CAAG,MAAA,EAAQ,gBAAgB,UAAA,GAAa,gBAAA,GAAmB,SAAS,SAAS,CAAA;AAAA,MACvF,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,WAAA,EAAY;AAEpC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,sBAAA,EAAqB,OAAA;AAAA,MACrB,SAAA,EAAW,EAAA;AAAA,QACT,oCAAA;AAAA,QACA,WAAA,KAAgB,aAAa,MAAA,GAAS,MAAA;AAAA,QACtC;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,MAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,aAAA,KAAkB,WAAA,EAAY;AAE/D,EAAA,uBACEC,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,+BAAA;AAAA,QACA,WAAA,KAAgB,aACZ,6CAAA,GACA,mCAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACA,UAAU,CAAC,aAAA;AAAA,MACX,OAAA,EAAS,UAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,wBAC9BA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,gBAAA,EAAc;AAAA;AAAA;AAAA,GAC1C;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,MAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,aAAA,KAAkB,WAAA,EAAY;AAE/D,EAAA,uBACEC,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,+BAAA;AAAA,QACA,WAAA,KAAgB,aACZ,gDAAA,GACA,oCAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACA,UAAU,CAAC,aAAA;AAAA,MACX,OAAA,EAAS,UAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,wBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,YAAA,EAAU;AAAA;AAAA;AAAA,GACtC;AAEJ;AC7MO,IAAM,YAAA,GAAe;AAAA,EAC1B,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,OAAA;AAAA,EAC/B,SAAA,EAAW,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,OAAA;AAAA,EACjC,QAAA,EAAU,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,OAAA;AAAA,EAChC,KAAA,EAAO,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,eAAA;AAAA,EAC7B,MAAA,EAAQ,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,MAAA;AAAA,EAC9B,IAAA,EAAM,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM;AAC9B;AAQA,SAAS,eAAe,EAAE,QAAA,EAAU,SAAA,EAAW,MAAA,GAAS,KAAI,EAAwB;AAClF,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,QAAA,EAAU,SAAS,CAAA,EACpC,QAAA,kBAAAA,IAAC,mBAAA,EAAA,EAAoB,KAAA,EAAM,MAAA,EAAO,MAAA,EAC/B,UACH,CAAA,EACF,CAAA;AAEJ;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAO7B,SAAS,aAAa,EAAE,MAAA,EAAQ,OAAA,EAAS,KAAA,EAAO,gBAAe,EAAsB;AACnF,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,OAAA,EAAS,QAAQ,OAAO,IAAA;AACxC,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mEAAA,EACZ,QAAA,EAAA;AAAA,IAAA,KAAA,oBAASD,IAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,kCAAA,EAAoC,cAAc,GAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACtF,OAAA,CAAQ,IAAI,CAAC,KAAA,EAAO,sBACnBC,IAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,yBAAA,EACrB,QAAA,EAAA;AAAA,sBAAAD,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,mCAAA;AAAA,UACV,KAAA,EAAO,EAAE,eAAA,EAAiB,KAAA,CAAM,KAAA;AAAM;AAAA,OACxC;AAAA,sBACAC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,IAAA;AAAA,QAAK;AAAA,OAAA,EAAC,CAAA;AAAA,sBAC7DD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAuC,gBAAM,KAAA,EAAM;AAAA,KAAA,EAAA,EAN3D,CAOV,CACD;AAAA,GAAA,EACH,CAAA;AAEJ;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;ACjD3B,IAAM,YAAA,GAAqBa,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,QAAA,CAAS,IAAA;AAAA,EAAT;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,6EAAA;AAAA,MACA,qFAAA;AAAA,MACA,iDAAA;AAAA,MACA,iFAAA;AAAA,MACA,6FAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,QAAA,CAAS,SAAA,EAAT,EAAmB,WAAU,kDAAA,EAC3B,QAAA,EAAA,KAAA,CAAM,OAAA,KAAY,eAAA,mBACjBA,GAAAA,CAAC,SAAM,IAAA,EAAM,EAAA,EAAI,WAAA,EAAa,CAAA,EAAG,CAAA,mBAEjCA,GAAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,WAAA,EAAa,CAAA,EAAG,CAAA,EAErC;AAAA;AACF,CACD;AACD,YAAA,CAAa,WAAA,GAAc,UAAA;AC5B3B,IAAM,kBAAkB,WAAA,CAAY;AACpC,IAAM,qBAAqB,WAAA,CAAY;AACvC,IAAM,qBAAqB,WAAA,CAAY;ACWvC,SAAS,WAAW,CAAA,EAAoB;AACtC,EAAA,OAAO,0BAAA,CAA2B,KAAK,CAAC,CAAA;AAC1C;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAUc,iBAAS,KAAK,CAAA;AAE1C,EAAMA,kBAAU,MAAM;AACpB,IAAA,MAAA,CAAO,KAAK,CAAA;AAAA,EACd,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,MAAA,GAAS,CAAC,IAAA,KAAiB;AAC/B,IAAA,IAAI,UAAA,CAAW,IAAI,CAAA,EAAG,QAAA,CAAS,IAAI,CAAA;AAAA,EACrC,CAAA;AAEA,EAAA,uBACEb,IAAAA,CAAC,OAAA,CAAQ,IAAA,EAAR,EACC,QAAA,EAAA;AAAA,oBAAAD,IAAC,OAAA,CAAQ,OAAA,EAAR,EAAgB,OAAA,EAAO,MACtB,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,QAAA;AAAA,QACA,YAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAW,EAAA;AAAA,UACT,yFAAA;AAAA,UACA,uCAAA;AAAA,UACA,wHAAA;AAAA,UACA,iDAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAW,IAAA;AAAA,YACX,SAAA,EAAU,0CAAA;AAAA,YACV,KAAA,EAAO,EAAE,eAAA,EAAiB,KAAA;AAAM;AAAA;AAClC;AAAA,KACF,EACF,CAAA;AAAA,oBACAA,GAAAA,CAAC,OAAA,CAAQ,MAAA,EAAR,EACC,QAAA,kBAAAC,IAAAA;AAAA,MAAC,OAAA,CAAQ,OAAA;AAAA,MAAR;AAAA,QACC,KAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,SAAA,EAAU,8DAAA;AAAA,QAEV,QAAA,EAAA;AAAA,0BAAAD,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,OAAA;AAAA,cACL,KAAA,EAAO,UAAA,CAAW,GAAG,CAAA,GAAI,GAAA,GAAM,SAAA;AAAA,cAC/B,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,gBAAA,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA;AACrB,gBAAA,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cACzB,CAAA;AAAA,cACA,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BACAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,4BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAAA,EAAgC,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,4BACnDA,GAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,MAAA;AAAA,gBACL,KAAA,EAAO,GAAA;AAAA,gBACP,UAAU,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,gBACtC,QAAQ,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,gBACpC,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,kBAAA,IAAI,EAAE,GAAA,KAAQ,OAAA,EAAS,MAAA,CAAQ,CAAA,CAAE,OAA4B,KAAK,CAAA;AAAA,gBACpE,CAAA;AAAA,gBACA,SAAA,EAAU;AAAA;AAAA;AACZ,WAAA,EACF,CAAA;AAAA,UACC,OAAA,IAAW,OAAA,CAAQ,MAAA,GAAS,CAAA,oBAC3BA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,sBACZA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAM,QAAA,CAAS,CAAC,CAAA;AAAA,cACzB,YAAA,EAAY,CAAA;AAAA,cACZ,SAAA,EAAU,oKAAA;AAAA,cACV,KAAA,EAAO,EAAE,eAAA,EAAiB,CAAA;AAAE,aAAA;AAAA,YALvB;AAAA,WAOR,CAAA,EACH;AAAA;AAAA;AAAA,KAEJ,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACxF1B,SAAS,UAAA,CAAW;AAAA,EAClB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAUe,iBAAS,KAAK,CAAA;AAE1C,EAAMA,kBAAU,MAAM;AACpB,IAAA,MAAA,CAAO,KAAK,CAAA;AAAA,EACd,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,SAAA,GAAY,CAAC,IAAA,KAAiB;AAClC,IAAA,IAAI,0BAAA,CAA2B,IAAA,CAAK,IAAI,CAAA,WAAY,IAAI,CAAA;AAAA,gBAC5C,KAAK,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,uBACEd,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,6FAAA;AAAA,QACA,0FAAA;AAAA,QACA,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,QAAA;AAAA,YACC,GAAI,OAAA,KAAY,MAAA,IAAa,EAAE,OAAA,EAAQ;AAAA,YACvC,GAAI,QAAA,KAAa,MAAA,IAAa,EAAE,QAAA,EAAS;AAAA,YAC1C,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACAA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,GAAA,CAAI,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA;AAAA,YAC3B,QAAA,EAAU,CAAC,CAAA,KAAM,MAAA,CAAO,GAAA,GAAM,CAAA,CAAE,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA;AAAA,YAC9D,MAAA,EAAQ,CAAC,CAAA,KAAM,SAAA,CAAU,GAAA,GAAM,CAAA,CAAE,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA;AAAA,YAC/D,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,cAAA,IAAI,EAAE,GAAA,KAAQ,OAAA;AACZ,gBAAA,SAAA,CAAU,MAAO,CAAA,CAAE,MAAA,CAA4B,MAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA;AAAA,YAC1E,CAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,QACC,OAAO,YAAY,QAAA,IAAY,eAAA,oBAC9BC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mDAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,GAAA,EAAK,CAAA;AAAA,cACL,GAAA,EAAK,GAAA;AAAA,cACL,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA;AAAA,cACzB,QAAA,EAAU,CAAC,CAAA,KAAM,eAAA,CAAgB,OAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,cACvD,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAW,IAAA,EAAC,SAAA,EAAU,yCAAwC,QAAA,EAAA,GAAA,EAEpE;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AChEzB,SAAS,QAAA,CAAS;AAAA,EAChB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,GAAc,WAAA;AAAA,EACd,iBAAA,GAAoB,WAAA;AAAA,EACpB,SAAA,GAAY,mBAAA;AAAA,EACZ;AACF,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUgB,iBAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,iBAAS,EAAE,CAAA;AAC3C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUA,iBAAS,EAAE,CAAA;AACvD,EAAA,MAAM,YAAA,GAAqBA,eAAuB,IAAI,CAAA;AACtD,EAAA,MAAM,QAAA,GAAiBA,eAAyB,IAAI,CAAA;AACpD,EAAA,MAAM,YAAkBA,OAAA,CAAA,KAAA,EAAM;AAE9B,EAAA,MAAM,iBAAiB,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,KAAK,CAAA;AAE5D,EAAA,MAAM,QAAA,GACJ,KAAA,KAAU,EAAA,GACN,OAAA,GACA,OAAA,CAAQ,MAAA;AAAA,IACN,CAAC,CAAA,KACC,CAAA,CAAE,MAAM,WAAA,EAAY,CAAE,SAAS,KAAA,CAAM,WAAA,EAAa,CAAA,IAClD,EAAE,WAAA,EAAa,WAAA,GAAc,QAAA,CAAS,KAAA,CAAM,aAAa;AAAA,GAC7D;AAGN,EAAMA,kBAAU,MAAM;AACpB,IAAA,cAAA,CAAe,EAAE,CAAA;AAAA,EACnB,CAAA,EAAG,CAAC,QAAA,CAAS,MAAA,EAAQ,IAAI,CAAC,CAAA;AAG1B,EAAMA,kBAAU,MAAM;AACpB,IAAA,SAAS,YAAY,CAAA,EAAe;AAClC,MAAA,IAAI,YAAA,CAAa,WAAW,CAAC,YAAA,CAAa,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AAC5E,QAAA,OAAA,CAAQ,KAAK,CAAA;AACb,QAAA,QAAA,CAAS,EAAE,CAAA;AAAA,MACb;AAAA,IACF;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAClD,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,WAAW,CAAA;AAAA,EACpE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAS,aAAA,GAAgB;AACvB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,cAAA,CAAe,EAAE,CAAA;AAAA,EACnB;AAEA,EAAA,SAAS,aAAa,GAAA,EAAqB;AACzC,IAAA,aAAA,GAAgB,IAAI,KAAK,CAAA;AACzB,IAAA,aAAA,EAAc;AAAA,EAChB;AAEA,EAAA,SAAS,mBAAmB,CAAA,EAA0C;AACpE,IAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,MAAA,aAAA,EAAc;AACd,MAAA;AAAA,IACF;AACA,IAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,CAAC,IAAA,EAAM;AAAE,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAG,QAAA;AAAA,MAAQ;AACpC,MAAA,cAAA,CAAe,CAAC,MAAM,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,EAAG,QAAA,CAAS,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,IAC5D,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,SAAA,EAAW;AAC9B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,cAAA,CAAe,CAAC,CAAA,KAAM,IAAA,CAAK,IAAI,CAAA,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,IAC1C,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,EAAS;AAC5B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,CAAC,IAAA,EAAM;AAAE,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAG,QAAA;AAAA,MAAQ;AACpC,MAAA,MAAM,SAAS,WAAA,IAAe,CAAA,GAAI,SAAS,WAAW,CAAA,GAAI,SAAS,CAAC,CAAA;AACpE,MAAA,IAAI,MAAA,eAAqB,MAAM,CAAA;AAAA,IACjC,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO;AAC1B,MAAA,aAAA,EAAc;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,uBACEf,KAAC,KAAA,EAAA,EAAI,GAAA,EAAK,cAAc,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EAEzD,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACZ,QAAA,EAAA;AAAA,MAAA,cAAA,EAAgB,MAAA,IAAU,CAAC,IAAA,oBAC1BD,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6JAAA,EACZ,QAAA,EAAA,cAAA,CAAe,MAAA,EAClB,CAAA;AAAA,MAED,cAAA,EAAgB,WAAA,IAAe,CAAC,IAAA,oBAC/BA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,kEAAA;AAAA,UACV,KAAA,EAAO,EAAE,eAAA,EAAiB,cAAA,CAAe,WAAA;AAAY;AAAA,OACvD;AAAA,sBAEFA,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,MAAA;AAAA,UACL,IAAA,EAAK,UAAA;AAAA,UACL,eAAA,EAAe,IAAA;AAAA,UACf,eAAA,EAAc,SAAA;AAAA,UACd,eAAA,EAAe,OAAO,SAAA,GAAY,MAAA;AAAA,UAClC,uBAAA,EAAuB,QAAQ,WAAA,IAAe,CAAA,GAAI,GAAG,SAAS,CAAA,QAAA,EAAW,WAAW,CAAA,CAAA,GAAK,MAAA;AAAA,UACzF,mBAAA,EAAkB,MAAA;AAAA,UAClB,SAAA,EAAW,EAAA;AAAA,YACT,mFAAA;AAAA,YACA,mCAAA;AAAA,YACA,wGAAA;AAAA,YACA,iDAAA;AAAA,YACA,cAAA,EAAgB,UAAU,CAAC,IAAA,GACvB,SACA,cAAA,EAAgB,WAAA,IAAe,CAAC,IAAA,GAC9B,MAAA,GACA;AAAA,WACR;AAAA,UACA,WAAA,EAAa,IAAA,GAAO,iBAAA,GAAqB,cAAA,EAAgB,KAAA,IAAS,WAAA;AAAA,UAClE,KAAA,EAAO,IAAA,GAAO,KAAA,GAAS,cAAA,EAAgB,KAAA,IAAS,EAAA;AAAA,UAChD,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,YAAA,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AACvB,YAAA,IAAI,CAAC,IAAA,EAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,UACzB,CAAA;AAAA,UACA,SAAS,MAAM;AACb,YAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,YAAA,QAAA,CAAS,EAAE,CAAA;AAAA,UACb,CAAA;AAAA,UACA,SAAA,EAAW;AAAA;AAAA,OACb;AAAA,sBACAA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,EAAU,EAAA;AAAA,UACV,YAAA,EAAY,OAAO,OAAA,GAAU,MAAA;AAAA,UAC7B,SAAA,EAAU,uHAAA;AAAA,UACV,SAAS,MAAM;AACb,YAAA,IAAI,IAAA,EAAM;AACR,cAAA,aAAA,EAAc;AAAA,YAChB,CAAA,MAAO;AACL,cAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,cAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AAAA,YAC1B;AAAA,UACF,CAAA;AAAA,UAEA,QAAA,kBAAAA,GAAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA;AAC5B,KAAA,EACF,CAAA;AAAA,IAGC,IAAA,oBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mGAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAG,EAAA,EAAI,SAAA,EAAW,IAAA,EAAK,SAAA,EAAU,SAAA,EAAU,6BAAA,EACzC,QAAA,EAAA,QAAA,CAAS,MAAA,KAAW,CAAA,mBACnBA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sCAAA,EAAwC,QAAA,EAAA,SAAA,EAAU,CAAA,GAEhE,QAAA,CAAS,GAAA,CAAI,CAAC,QAAQ,GAAA,KAAQ;AAC5B,MAAA,MAAM,UAAA,GAAa,OAAO,KAAA,KAAU,KAAA;AACpC,MAAA,MAAM,WAAW,GAAA,KAAQ,WAAA;AACzB,MAAA,uBACEC,IAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UAEC,EAAA,EAAI,CAAA,EAAG,SAAS,CAAA,QAAA,EAAW,GAAG,CAAA,CAAA;AAAA,UAC9B,IAAA,EAAK,QAAA;AAAA,UACL,eAAA,EAAe,UAAA;AAAA,UACf,SAAA,EAAW,EAAA;AAAA,YACT,uFAAA;AAAA,YACA,UAAA,GACI,kCAAA,GACA,QAAA,GACE,0BAAA,GACA;AAAA,WACR;AAAA,UACA,WAAA,EAAa,CAAC,CAAA,KAAM,CAAA,CAAE,cAAA,EAAe;AAAA,UACrC,YAAA,EAAc,MAAM,cAAA,CAAe,GAAG,CAAA;AAAA,UACtC,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM,CAAA;AAAA,UAGjC,QAAA,EAAA;AAAA,YAAA,MAAA,CAAO,0BACND,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,wFAAA;AAAA,kBACA,aAAa,4BAAA,GAA+B;AAAA,iBAC9C;AAAA,gBAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,aACV;AAAA,YAGD,MAAA,CAAO,WAAA,IAAe,CAAC,MAAA,CAAO,0BAC7BA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,8BAAA;AAAA,gBACV,KAAA,EAAO,EAAE,eAAA,EAAiB,MAAA,CAAO,WAAA;AAAY;AAAA,aAC/C;AAAA,4BAEFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,OAAE,SAAA,EAAW,EAAA,CAAG,YAAY,UAAA,IAAc,eAAe,CAAA,EACvD,QAAA,EAAA,MAAA,CAAO,KAAA,EACV,CAAA;AAAA,cACC,MAAA,CAAO,+BACNA,GAAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,kBAAA;AAAA,oBACA,aAAa,oBAAA,GAAuB;AAAA,mBACtC;AAAA,kBAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA;AACV,aAAA,EAEJ,CAAA;AAAA,YACC,UAAA,oBAAcA,GAAAA,CAACiB,KAAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,WAAU,UAAA,EAAW;AAAA;AAAA,SAAA;AAAA,QAjDhD,MAAA,CAAO;AAAA,OAkDd;AAAA,IAEJ,CAAC,GAEL,CAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;ACxOvB,IAAM,aAAa,MAAA,CAAO;AAC1B,IAAM,gBAAgB,MAAA,CAAO;AAC7B,IAAM,cAAc,MAAA,CAAO;AAE3B,IAAM,aAAA,GAAsBC,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BlB,GAAAA;AAAA,EAAC,MAAA,CAAO,OAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iDAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,aAAA,GAAsBkB,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCjB,IAAAA,CAAC,MAAA,CAAO,QAAP,EACC,QAAA,EAAA;AAAA,kBAAAD,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACfC,IAAAA;AAAA,IAAC,MAAA,CAAO,OAAA;AAAA,IAAP;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,uEAAA;AAAA,QACA,yDAAA;AAAA,QACA,8DAAA;AAAA,QACA,4DAAA;AAAA,QACA,8DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDA,IAAAA,CAAC,MAAA,CAAO,KAAA,EAAP,EAAa,WAAU,gKAAA,EACtB,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,0BACbA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,SAAA,EACjC;AAAA;AAAA;AAAA;AACF,CAAA,EACF,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyC;AACnF,EAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACjF;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyC;AACnF,EAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,0CAAA,EAA4C,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/F;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,WAAA,GAAoBkB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BlB,GAAAA;AAAA,EAAC,MAAA,CAAO,KAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,IAC/D,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,iBAAA,GAA0BkB,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BlB,GAAAA,CAAC,OAAO,WAAA,EAAP,EAAmB,KAAU,SAAA,EAAW,EAAA,CAAG,8BAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAClG;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AC5DhC,SAAS,cAAA,CAAe;AAAA,EACtB,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA,GAAc,WAAA;AAAA,EACd,SAAA,GAAY;AACd,CAAA,EAAwB;AACtB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUmB,iBAAS,EAAE,CAAA;AAC3C,EAAA,MAAM,QAAA,GAAiBA,eAAyB,IAAI,CAAA;AAGpD,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,UAAA,CAAW,MAAM,QAAA,CAAS,OAAA,EAAS,KAAA,IAAS,EAAE,CAAA;AAC9C,MAAA,QAAA,CAAS,EAAE,CAAA;AAAA,IACb;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,QAAA,GACJ,KAAA,KAAU,EAAA,GACN,KAAA,GACA,KAAA,CAAM,MAAA;AAAA,IACJ,CAAC,IAAA,KACC,IAAA,CAAK,KAAA,CAAM,WAAA,EAAY,CAAE,QAAA,CAAS,KAAA,CAAM,WAAA,EAAa,CAAA,IACrD,IAAA,CAAK,WAAA,EAAa,WAAA,EAAY,CAAE,QAAA,CAAS,KAAA,CAAM,WAAA,EAAa,CAAA,IAC5D,IAAA,CAAK,QAAA,EAAU,WAAA,EAAY,CAAE,QAAA,CAAS,KAAA,CAAM,WAAA,EAAa;AAAA,GAC7D;AAGN,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,MAAA,CAA6C,CAAC,KAAK,IAAA,KAAS;AACnF,IAAA,MAAM,GAAA,GAAM,KAAK,QAAA,IAAY,EAAA;AAC7B,IAAA,IAAI,CAAC,GAAA,CAAI,GAAG,GAAG,GAAA,CAAI,GAAG,IAAI,EAAC;AAC3B,IAAA,GAAA,CAAI,GAAG,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAClB,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AAEtC,EAAA,SAAS,aAAa,IAAA,EAA0B;AAC9C,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,MAAA,CAAO,QAAA,CAAS,OAAO,IAAA,CAAK,IAAA;AAAA,IAC9B,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,QAAA,IAAW;AAAA,IAClB;AACA,IAAA,OAAA,EAAQ;AAAA,EACV;AAEA,EAAA,uBACEnB,GAAAA,CAAC,UAAA,EAAA,EAAO,IAAA,EAAY,cAAc,CAAC,CAAA,KAAM,CAAC,CAAA,IAAK,SAAQ,EACrD,QAAA,kBAAAC,IAAAA,CAAC,aAAA,EAAA,EAAc,WAAU,uCAAA,EAEvB,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAM,EAAA,EAAI,WAAU,gCAAA,EAAiC,CAAA;AAAA,sBAC7DA,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,MAAA;AAAA,UACL,SAAA,EAAU,sGAAA;AAAA,UACV,WAAA;AAAA,UACA,KAAA,EAAO,KAAA;AAAA,UACP,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UACxC,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,YAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,OAAA,EAAQ;AAChC,YAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,IAAW,QAAA,CAAS,SAAS,CAAA,EAAG,YAAA,CAAa,QAAA,CAAS,CAAC,CAAC,CAAA;AAAA,UACxE;AAAA;AAAA,OACF;AAAA,sBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yFAAA,EAA0F,QAAA,EAAA,KAAA,EAE1G,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACZ,QAAA,EAAA,QAAA,CAAS,MAAA,KAAW,CAAA,mBACnBA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kDAAA,EAAoD,QAAA,EAAA,SAAA,EAAU,CAAA,mBAE3EA,GAAAA,CAAC,IAAA,EAAA,EAAG,IAAA,EAAK,MAAA,EAAO,SAAA,EAAU,MAAA,EACvB,QAAA,EAAA,UAAA,CAAW,GAAA,CAAI,CAAC,GAAA,qBACfC,IAAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,GAAA,oBAAOD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yCAAyC,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,MACjE,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,IAAA,EAAM,sBACvBC,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,8IAAA;AAAA,UACV,OAAA,EAAS,MAAM,YAAA,CAAa,IAAI,CAAA;AAAA,UAE/B,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,wBACJD,GAAAA,CAAC,UAAK,SAAA,EAAU,gHAAA,EACb,eAAK,IAAA,EACR,CAAA;AAAA,4BAEFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sCAAA,EAAwC,eAAK,KAAA,EAAM,CAAA;AAAA,cAC/D,IAAA,CAAK,+BACJA,GAAAA,CAAC,OAAE,SAAA,EAAU,wCAAA,EAA0C,eAAK,WAAA,EAAY;AAAA,aAAA,EAE5E,CAAA;AAAA,4BACAA,GAAAA,CAACoB,UAAAA,EAAA,EAAW,IAAA,EAAM,EAAA,EAAI,WAAU,gCAAA,EAAiC;AAAA;AAAA,SAAA;AAAA,QAhB5D,KAAK,EAAA,IAAM;AAAA,OAkBnB;AAAA,KAAA,EAAA,EAtBM,GAuBT,CACD,CAAA,EACH,CAAA,EAEJ;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;AC3H7B,IAAM,aAAmB,OAAA,CAAA,aAAA,CAAmC;AAAA,EAC1D,KAAA,EAAO,EAAA;AAAA,EACP,UAAU,MAAM;AAAA,EAAC,CAAA;AAAA,EACjB,eAAe,MAAM;AAAA,EAAC;AACxB,CAAC,CAAA;AAED,IAAM,iBAAA,GAA0B,sBAAc,CAAC,CAAA;AAM/C,SAAS,QAAQ,EAAE,SAAA,EAAW,UAAU,QAAA,EAAU,GAAG,OAAM,EAAiB;AAC1E,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAU,iBAAS,EAAE,CAAA;AAC3C,EAAA,MAAM,UAAA,GAAmB,OAAA,CAAA,MAAA,iBAAO,IAAI,GAAA,EAAa,CAAA;AACjD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAU,iBAAS,CAAC,CAAA;AAExD,EAAA,MAAM,aAAA,GAAsB,OAAA,CAAA,WAAA,CAAY,CAAC,EAAA,EAAY,OAAA,KAAqB;AACxE,IAAA,MAAM,GAAA,GAAM,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA;AACrC,IAAA,IAAI,OAAA,IAAW,CAAC,GAAA,EAAK;AACnB,MAAA,UAAA,CAAW,OAAA,CAAQ,IAAI,EAAE,CAAA;AACzB,MAAA,eAAA,CAAgB,UAAA,CAAW,QAAQ,IAAI,CAAA;AAAA,IACzC,CAAA,MAAA,IAAW,CAAC,OAAA,IAAW,GAAA,EAAK;AAC1B,MAAA,UAAA,CAAW,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC5B,MAAA,eAAA,CAAgB,UAAA,CAAW,QAAQ,IAAI,CAAA;AAAA,IACzC;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACEpB,GAAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAoB,OAAO,EAAE,KAAA,EAAO,QAAA,EAAU,GAAI,QAAA,KAAa,MAAA,IAAa,EAAE,QAAA,EAAS,EAAI,aAAA,EAAc,EACxG,QAAA,kBAAAA,GAAAA,CAAC,kBAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,YAAA,EACjC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,KAEL,CAAA,EACF,CAAA;AAEJ;AAEA,IAAM,YAAA,GAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAS,GAAU,mBAAW,UAAU,CAAA;AACvD,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAA,EACb,QAAA,EAAA;AAAA,oBAAAD,IAACqB,MAAAA,EAAA,EAAO,IAAA,EAAM,EAAA,EAAI,WAAU,gCAAA,EAAiC,CAAA;AAAA,oBAC7DrB,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,MAAA;AAAA,QACL,YAAA,EAAa,KAAA;AAAA,QACb,WAAA,EAAY,KAAA;AAAA,QACZ,UAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAW,EAAA;AAAA,UACT,sDAAA;AAAA,UACA,sDAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,KAAA,EAAO,KAAA;AAAA,QACP,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACvC,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,WAAA,GAAoB,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,OAAA,GAAgB,eAA8B,IAAI,CAAA;AAExD,IAAA,MAAM,WAAA,GAAoB,OAAA,CAAA,WAAA;AAAA,MACxB,CAAC,EAAA,KAA8B;AAC7B,QAAA,OAAA,CAAQ,OAAA,GAAU,EAAA;AAClB,QAAA,IAAI,OAAO,GAAA,KAAQ,UAAA,EAAY,GAAA,CAAI,EAAE,CAAA;AAAA,aAAA,IAC5B,GAAA,EAAM,GAAA,CAAsD,OAAA,GAAU,EAAA;AAAA,MACjF,CAAA;AAAA,MACA,CAAC,GAAG;AAAA,KACN;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA2B;AAChD,MAAA,IAAI,CAAC,CAAC,WAAA,EAAa,SAAS,EAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA,EAAG;AAC/C,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,KAAK,OAAA,CAAQ,OAAA;AACnB,MAAA,IAAI,CAAC,EAAA,EAAI;AACT,MAAA,MAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,QAClB,EAAA,CAAG,iBAA8B,6CAA6C;AAAA,OAChF;AACA,MAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AACnB,MAAA,MAAM,OAAA,GAAU,EAAA,CAAG,aAAA,CAA2B,uBAAuB,CAAA;AACrE,MAAA,MAAM,GAAA,GAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,EAAA;AAC/C,MAAA,MAAM,IAAA,GACJ,EAAE,GAAA,KAAQ,WAAA,GACN,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,EAAG,KAAA,CAAM,SAAS,CAAC,CAAC,IACzC,KAAA,CAAM,IAAA,CAAK,IAAI,GAAA,GAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AAChC,MAAA,IAAA,EAAM,KAAA,EAAM;AAAA,IACd,CAAA;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAW,aAAA;AAAA,QACX,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,QAC5D,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,YAAA,GAAqB,OAAA,CAAA,UAAA;AAAA,EACzB,CAAC,EAAE,SAAA,EAAW,QAAA,GAAW,qBAAqB,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChE,IAAA,MAAM,YAAA,GAAqB,mBAAW,iBAAiB,CAAA;AACvD,IAAA,IAAI,YAAA,GAAe,GAAG,OAAO,IAAA;AAC7B,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,QACxE,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAM3B,IAAM,YAAA,GAAqB,OAAA,CAAA,UAAA;AAAA,EACzB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,UAAU,GAAG,KAAA,IAAS,GAAA,qBAC3CC,KAAC,KAAA,EAAA,EAAI,GAAA,EAAU,MAAK,OAAA,EAAQ,SAAA,EAAW,GAAG,MAAA,EAAQ,SAAS,CAAA,EAAI,GAAG,KAAA,EAC/D,QAAA,EAAA;AAAA,IAAA,OAAA,oBAAWD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gDAAgD,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,IAChF;AAAA,GAAA,EACH;AAEJ;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAS3B,IAAM,WAAA,GAAoB,OAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,EAAA,EAAI,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpF,IAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,aAAa,aAAA,EAAc,GAAU,mBAAW,UAAU,CAAA;AACnF,IAAA,MAAM,KAAW,OAAA,CAAA,KAAA,EAAM;AAEvB,IAAA,MAAM,UAAA,GAAA,CAAc,YAAY,CAAC,KAAK,GAAG,IAAA,CAAK,GAAG,EAAE,WAAA,EAAY;AAC/D,IAAA,MAAM,YAAY,CAAC,KAAA,IAAS,WAAW,QAAA,CAAS,KAAA,CAAM,aAAa,CAAA;AAEnE,IAAM,wBAAgB,MAAM;AAC1B,MAAA,aAAA,CAAc,EAAA,EAAI,SAAA,IAAa,CAAC,QAAQ,CAAA;AACxC,MAAA,OAAO,MAAM,aAAA,CAAc,EAAA,EAAI,KAAK,CAAA;AAAA,IACtC,GAAG,CAAC,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,aAAa,CAAC,CAAA;AAE3C,IAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AAEvB,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,QAAA,GAAW,KAAK,CAAA;AAChB,MAAA,WAAA,GAAc,KAAK,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,eAAA,EAAe,KAAA;AAAA,QACf,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,eAAA,EAAa,IAAA;AAAA,QACb,QAAA,EAAU,WAAW,MAAA,GAAY,CAAA;AAAA,QACjC,SAAA,EAAW,EAAA;AAAA,UACT,2FAAA;AAAA,UACA,2DAAA;AAAA,UACA,sCAAA;AAAA,UACA,sCAAA;AAAA,UACA,QAAA,IAAY,gCAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,OAAA,EAAS,YAAA;AAAA,QACT,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,UAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACrB,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,YAAA,EAAa;AAAA,UACf;AAAA,QACF,CAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,gBAAA,GAAyB,OAAA,CAAA,UAAA;AAAA,EAC7B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAU,SAAA,EAAW,EAAA,CAAG,sBAAsB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE9E;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA0C;AACvF,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,mEAAA,EAAqE,SAAS,CAAA;AAAA,MAC3F,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,OAAA,CAAQ,WAAA,GAAc,SAAA;ACvOtB,IAAM,kBAAkB,WAAA,CAAY;AACpC,IAAM,qBAAqB,WAAA,CAAY;AACvC,IAAM,mBAAmB,WAAA,CAAY;AACrC,IAAM,oBAAoB,WAAA,CAAY;AACtC,IAAM,iBAAiB,WAAA,CAAY;AACnC,IAAM,wBAAwB,WAAA,CAAY;AAE1C,IAAM,kBAAA,GAA2BsB,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtB,GAAAA,CAAC,WAAA,CAAY,MAAA,EAAZ,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAC,WAAA,CAAY,OAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iIAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,eAAA,GAAwBsB,OAAA,CAAA,UAAA,CAM5B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,WAAA,EAAa,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9CtB,GAAAA;AAAA,EAAC,WAAA,CAAY,IAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sFAAA;AAAA,MACA,qCAAA;AAAA,MACA,cACI,iEAAA,GACA,4DAAA;AAAA,MACJ,gEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,uBAAA,GAAgCsB,OAAA,CAAA,UAAA,CAGpC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCrB,IAAAA;AAAA,EAAC,WAAA,CAAY,YAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6DACd,QAAA,kBAAAA,GAAAA,CAAC,YAAY,aAAA,EAAZ,EACC,QAAA,kBAAAA,GAAAA,CAACiB,OAAA,EAAM,IAAA,EAAM,IAAI,SAAA,EAAU,iBAAA,EAAkB,GAC/C,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,uBAAA,CAAwB,WAAA,GAAc,yBAAA;AAEtC,IAAM,oBAAA,GAA6BK,OAAA,CAAA,UAAA,CAGjC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCrB,IAAAA;AAAA,EAAC,WAAA,CAAY,SAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2DAAA,EACd,QAAA,kBAAAA,IAAC,WAAA,CAAY,aAAA,EAAZ,EACC,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAO,IAAA,EAAM,GAAG,SAAA,EAAU,iCAAA,EAAkC,GAC/D,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAEnC,IAAM,gBAAA,GAAyBsB,OAAA,CAAA,UAAA,CAK7B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjCtB,GAAAA;AAAA,EAAC,WAAA,CAAY,KAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,KAAA,IAAS,QAAQ,SAAS,CAAA;AAAA,IAClF,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,oBAAA,GAA6BsB,mBAGjC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtB,GAAAA;AAAA,EAAC,WAAA,CAAY,SAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,IACjD,GAAG;AAAA;AACN,CACD;AACD,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAEnC,IAAM,qBAAA,GAA8BsB,OAAA,CAAA,UAAA,CAKlC,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3CrB,IAAAA;AAAA,EAAC,WAAA,CAAY,UAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sFAAA;AAAA,MACA,2DAAA;AAAA,MACA,iEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDD,GAAAA,CAACU,YAAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,WAAU,+BAAA,EAAgC;AAAA;AAAA;AACpE,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,qBAAA,GAA8BY,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtB,GAAAA;AAAA,EAAC,WAAA,CAAY,UAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iIAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,SAAS,mBAAA,CAAoB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA0C;AAC3F,EAAA,uBAAOA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,uCAAA,EAAyC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC7F;AACA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AClLlC,IAAM,KAAA,GAAcuB,OAAA,CAAA,UAAA,CAGlB,CAAC,EAAE,SAAA,EAAW,oBAAoB,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9CvB,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IAEA,QAAA,kBAAAA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,kDAAA,EAAoD,SAAS,CAAA;AAAA,QAC1E,GAAG;AAAA;AAAA;AACN;AACF,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,WAAA,GAAoBuB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BvB,IAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,OAAO,CACnE;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,SAAA,GAAkBuB,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BvB,IAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA,EAAI,GAAG,OAAO,CACzF;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,WAAA,GAAoBuB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BvB,IAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EAAI,GAAG,OAAO,CAC/E;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,QAAA,GAAiBuB,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBvB,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,oEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,SAAA,GAAkBuB,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BvB,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8DAAA;AAAA,MACA,+BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,SAAA,GAAkBuB,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BvB,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mDAAA;AAAA,MACA,+BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,YAAA,GAAqBuB,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BvB,IAAC,SAAA,EAAA,EAAQ,GAAA,EAAU,WAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,OAAO,CAC/F;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AC/F3B,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAkC;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mEAAA;AAAA,QACA,wDAAA;AAAA,QACA,gCAAA;AAAA,QACA,wHAAA;AAAA,QACA,mEAAA;AAAA,QACA,sFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;ACSpB,SAAS,SAAA,CAAiB;AAAA,EACxB,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA,GAAoB,WAAA;AAAA,EACpB,QAAA,GAAW,EAAA;AAAA,EACX,cAAA,GAAiB;AACnB,CAAA,EAA0B;AACxB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUwB,OAAA,CAAA,QAAA,CAAuB,EAAE,CAAA;AAC7D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,OAAA,CAAA,QAAA,CAA6B,EAAE,CAAA;AAE/E,EAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,IAC1B,IAAA;AAAA,IACA,OAAA;AAAA,IACA,iBAAiB,eAAA,EAAgB;AAAA,IACjC,mBAAmB,iBAAA,EAAkB;AAAA,IACrC,qBAAqB,mBAAA,EAAoB;AAAA,IACzC,uBAAuB,qBAAA,EAAsB;AAAA,IAC7C,eAAA,EAAiB,UAAA;AAAA,IACjB,qBAAA,EAAuB,gBAAA;AAAA,IACvB,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAc;AAAA,IAChC,YAAA,EAAc,EAAE,UAAA,EAAY,EAAE,UAAS;AAAE,GAC1C,CAAA;AAED,EAAA,uBACEvB,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,IAAA,SAAA,oBACCD,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAa,iBAAA;AAAA,QACb,OAAQ,KAAA,CAAM,SAAA,CAAU,SAAS,CAAA,EAAG,gBAAe,IAAgB,EAAA;AAAA,QACnE,QAAA,EAAU,CAAC,CAAA,KAAM,KAAA,CAAM,SAAA,CAAU,SAAS,CAAA,EAAG,cAAA,CAAe,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,QAC1E,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBAEFC,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAD,IAAC,WAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,eAAA,EAAgB,CAAE,IAAI,CAAC,WAAA,qBAC5BA,GAAAA,CAAC,YACE,QAAA,EAAA,WAAA,CAAY,OAAA,CAAQ,GAAA,CAAI,CAAC,2BACxBA,GAAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UAEC,aACE,MAAA,CAAO,MAAA,CAAO,UAAA,EAAW,GACrB,OAAO,MAAA,CAAO,WAAA,EAAY,KAAM,KAAA,GAC9B,cACA,MAAA,CAAO,MAAA,CAAO,aAAY,KAAM,MAAA,GAC9B,eACA,MAAA,GACJ,MAAA;AAAA,UAGL,iBAAO,aAAA,GAAgB,IAAA,GAAO,OAAO,MAAA,CAAO,UAAA,qBAC3CC,IAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,uEAAA;AAAA,gBACA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAY,IAAK;AAAA,eACjC;AAAA,cACA,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,uBAAA,EAAwB;AAAA,cAE9C,QAAA,EAAA;AAAA,gBAAA,UAAA,CAAW,OAAO,MAAA,CAAO,SAAA,CAAU,MAAA,EAAQ,MAAA,CAAO,YAAY,CAAA;AAAA,gBAC9D,MAAA,CAAO,MAAA,CAAO,WAAA,EAAY,KAAM,wBAC/BD,GAAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAM,IAAI,SAAA,EAAU,oBAAA,EAAqB,CAAA,GAClD,MAAA,CAAO,OAAO,WAAA,EAAY,KAAM,MAAA,mBAClCA,GAAAA,CAACyB,WAAAA,EAAA,EAAY,IAAA,EAAM,IAAI,SAAA,EAAU,oBAAA,EAAqB,CAAA,mBAEtDzB,IAAC0B,cAAAA,EAAA,EAAe,IAAA,EAAM,EAAA,EAAI,WAAU,uBAAA,EAAwB;AAAA;AAAA;AAAA,WAEhE,GAEA,WAAW,MAAA,CAAO,MAAA,CAAO,UAAU,MAAA,EAAQ,MAAA,CAAO,YAAY;AAAA,SAAA;AAAA,QA7B3D,MAAA,CAAO;AAAA,OAgCf,CAAA,EAAA,EAnCY,WAAA,CAAY,EAoC3B,CACD,CAAA,EACH,CAAA;AAAA,sBACA1B,GAAAA,CAAC,SAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,WAAA,EAAY,CAAE,IAAA,EAAM,MAAA,GACzB,KAAA,CAAM,WAAA,EAAY,CAAE,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,qBAC5BA,GAAAA,CAAC,QAAA,EAAA,EACE,QAAA,EAAA,GAAA,CAAI,eAAA,EAAgB,CAAE,GAAA,CAAI,CAAC,IAAA,qBAC1BA,GAAAA,CAAC,SAAA,EAAA,EACE,QAAA,EAAA,UAAA,CAAW,KAAK,MAAA,CAAO,SAAA,CAAU,IAAA,EAAM,IAAA,CAAK,UAAA,EAAY,CAAA,EAAA,EAD3C,IAAA,CAAK,EAErB,CACD,CAAA,EAAA,EALY,GAAA,CAAI,EAMnB,CACD,CAAA,mBAEDA,GAAAA,CAAC,QAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,OAAA,EAAS,OAAA,CAAQ,MAAA,EAAQ,SAAA,EAAU,wCAAA,EAAyC,QAAA,EAAA,aAAA,EAEvF,CAAA,EACF,CAAA,EAEJ;AAAA,KAAA,EACF,CAAA;AAAA,IACC,cAAA,oBACCC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAAA,EACV,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,mBAAA,GAAsB,IAAA,CAAK,MAAA;AAAA,QAAO,SAAA;AAAA,QACxC,MAAM,mBAAA,EAAoB,CAAE,IAAA,CAAK,MAAA,KAAW,IAAI,GAAA,GAAM;AAAA,OAAA,EACzD,CAAA;AAAA,sBACAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAAA,EAAgC,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACxC,KAAA,CAAM,QAAA,EAAS,CAAE,UAAA,CAAW,SAAA,GAAY,CAAA;AAAA,UAAE,MAAA;AAAA,UAAK,MAAM,YAAA;AAAa,SAAA,EAC1E,CAAA;AAAA,wBACAD,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAS,MAAM,KAAA,CAAM,YAAA,EAAa;AAAA,YAClC,QAAA,EAAU,CAAC,KAAA,CAAM,kBAAA,EAAmB;AAAA,YACrC,QAAA,EAAA;AAAA;AAAA,SAED;AAAA,wBACAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAS,MAAM,KAAA,CAAM,QAAA,EAAS;AAAA,YAC9B,QAAA,EAAU,CAAC,KAAA,CAAM,cAAA,EAAe;AAAA,YACjC,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;ACvJA,IAAM,cAAc2B,OAAAA,CAAQ;AAC5B,IAAM,iBAAiBA,OAAAA,CAAQ;AAC/B,IAAM,eAAeA,OAAAA,CAAQ;AAE7B,IAAM,iBAAuBC,OAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,UAAU,UAAA,GAAa,CAAA,EAAG,GAAG,KAAA,IAAS,GAAA,qBAC5D5B,IAAC2B,OAAAA,CAAQ,MAAA,EAAR,EACC,QAAA,kBAAA3B,GAAAA;AAAA,EAAC2B,OAAAA,CAAQ,OAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8DAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;ACvB7B,IAAM,UAAA,GAAa,CAAC,IAAA,KAClB,IAAA,CAAK,mBAAmB,OAAA,EAAS;AAAA,EAC/B,KAAA,EAAO,MAAA;AAAA,EACP,GAAA,EAAK,SAAA;AAAA,EACL,IAAA,EAAM;AACR,CAAC;AAUH,SAAS,UAAA,CAAW;AAAA,EAClB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,aAAA;AAAA,EACd,QAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,uBACE1B,KAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACrB,QAAA,kBAAAC,IAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,SAAA,EAAW,EAAA;AAAA,UACT,qDAAA;AAAA,UACA,CAAC,KAAA,IAAS,uBAAA;AAAA,UACV;AAAA,SACF;AAAA,QACA,QAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,WAAU,gCAAA,EAAiC,CAAA;AAAA,UAClE,QAAQ,UAAA,CAAW,KAAK,oBAAIA,GAAAA,CAAC,UAAM,QAAA,EAAA,WAAA,EAAY;AAAA;AAAA;AAAA,KAClD,EACF,CAAA;AAAA,oBACAA,GAAAA,CAAC,cAAA,EAAA,EAAe,WAAU,4BAAA,EAA6B,KAAA,EAAM,SAC3D,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACJ,GAAI,KAAA,KAAU,MAAA,IAAa,EAAE,UAAU,KAAA,EAAM;AAAA,QAC7C,GAAI,QAAA,KAAa,MAAA,IAAa,EAAE,UAAU,QAAA,EAAS;AAAA,QACpD,SAAA,EAAS;AAAA;AAAA,KACX,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;ACxCzB,SAAS,eAAA,CAAgB;AAAA,EACvB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU,CAAA;AAAA,EACV,OAAA,GAAU,KAAA;AAAA,EACV;AACF,CAAA,EAAyB;AACvB,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACD,QAAA,EAAA;AAAA,IAAA,CAAA,KAAA,IAAS,WAAA,qBACTA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,oBAASD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sCAAsC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAClE,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sCAAsC,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EACjF,CAAA;AAAA,oBAGFA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,wBAAA,EAA0B,OAAA,KAAY,CAAA,IAAK,wBAAwB,GAClF,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,sBAChBC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAW,EAAA;AAAA,UACT,QAAA;AAAA,UACA,OAAA,KAAY,IACR,uCAAA,GACA,4CAAA;AAAA,UACJ,OAAA,KAAY,CAAA,IAAK,CAAA,KAAM,KAAA,CAAM,SAAS,CAAA,IAAK,wBAAA;AAAA,UAC3C,OAAA,IAAW,CAAA,GAAI,CAAA,KAAM,CAAA,IAAK;AAAA,SAC5B;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qEAAA,EACX,eAAK,IAAA,EACR,CAAA;AAAA,0BACAA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,wBAAwB,OAAA,KAAY,CAAA,GAAI,YAAA,GAAe,EAAE,GACxE,QAAA,EAAA,IAAA,CAAK,MAAA,mBACJC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yCAAA,EACb,QAAA,EAAA;AAAA,4BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,IAAA,CAAK,OAAA,EAAQ,CAAA;AAAA,YACnB,IAAA,CAAK;AAAA,WAAA,EACR,CAAA,GAEA,KAAK,OAAA,EAET;AAAA;AAAA,OAAA;AAAA,MAtBK;AAAA,KAwBR,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AC9D9B,IAAM,aAAa6B,MAAA,CAAgB;AACnC,IAAM,gBAAgBA,MAAA,CAAgB;AACtC,IAAM,eAAeA,MAAA,CAAgB;AACrC,IAAM,cAAcA,MAAA,CAAgB;AAEpC,IAAM,aAAA,GAAsBC,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAC6B,MAAA,CAAgB,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,IACjF,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,aAAA,GAAsBC,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC7B,IAAAA,CAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAD,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACfC,IAAAA;AAAA,IAAC4B,MAAA,CAAgB,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA7B,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6CAAA,EAA8C,CAAA;AAAA,QAC5D;AAAA;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,eAAe,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBAC1CA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,+CAAA,EAAiD,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE7F,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,eAAe,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBAC1CA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAErF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,WAAA,GAAoB8B,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAC6B,MAAA,CAAgB,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,iBAAA,GAA0BC,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAC6B,MAAA,CAAgB,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;ACrEhC,IAAM,mBAAmB,YAAA,CAAa;AACtC,IAAM,sBAAsB,YAAA,CAAa;AACzC,IAAM,oBAAoB,YAAA,CAAa;AACvC,IAAM,qBAAqB,YAAA,CAAa;AACxC,IAAM,kBAAkB,YAAA,CAAa;AACrC,IAAM,yBAAyB,YAAA,CAAa;AAE5C,IAAM,sBAA4BE,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,aAAa,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,wBAC1C/B,GAAAA,CAAC,YAAA,CAAa,MAAA,EAAb,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAC,YAAA,CAAa,OAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,yDAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,gBAAA,GAAyB+B,OAAA,CAAA,UAAA,CAM7B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,WAAA,EAAa,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9C/B,GAAAA;AAAA,EAAC,YAAA,CAAa,IAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sFAAA;AAAA,MACA,qCAAA;AAAA,MACA,cACI,iEAAA,GACA,4DAAA;AAAA,MACJ,gEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,wBAAA,GAAiC+B,OAAA,CAAA,UAAA,CAGrC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC9B,IAAAA;AAAA,EAAC,YAAA,CAAa,YAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6DACd,QAAA,kBAAAA,GAAAA,CAAC,aAAa,aAAA,EAAb,EACC,QAAA,kBAAAA,GAAAA,CAACiB,OAAA,EAAM,IAAA,EAAM,IAAI,SAAA,EAAU,iBAAA,EAAkB,GAC/C,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,wBAAA,CAAyB,WAAA,GAAc,0BAAA;AAEvC,IAAM,qBAAA,GAA8Bc,OAAA,CAAA,UAAA,CAGlC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC9B,IAAAA;AAAA,EAAC,YAAA,CAAa,SAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6DACd,QAAA,kBAAAA,GAAAA,CAAC,aAAa,aAAA,EAAb,EACC,QAAA,kBAAAA,GAAAA,CAACgC,QAAA,EAAO,IAAA,EAAM,GAAG,SAAA,EAAU,iCAAA,EAAkC,GAC/D,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,iBAAA,GAA0BD,OAAA,CAAA,UAAA,CAK9B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC/B,GAAAA;AAAA,EAAC,YAAA,CAAa,KAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,KAAA,IAAS,QAAQ,SAAS,CAAA;AAAA,IAClF,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,qBAAA,GAA8B+B,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B/B,GAAAA;AAAA,EAAC,YAAA,CAAa,SAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,IACjD,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,sBAAA,GAA+B+B,OAAA,CAAA,UAAA,CAKnC,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3C9B,IAAAA;AAAA,EAAC,YAAA,CAAa,UAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sFAAA;AAAA,MACA,2DAAA;AAAA,MACA,iEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDD,GAAAA,CAACU,YAAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,WAAU,+BAAA,EAAgC;AAAA;AAAA;AACpE,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAErC,IAAM,sBAAA,GAA+BqB,mBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B/B,GAAAA;AAAA,EAAC,YAAA,CAAa,UAAA;AAAA,EAAb;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8EAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAErC,SAAS,oBAAA,CAAqB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA0C;AAC5F,EAAA,uBAAOA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,uCAAA,EAAyC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC7F;AACA,oBAAA,CAAqB,WAAA,GAAc,sBAAA;ACtKnC,SAAS,WAAW,EAAE,IAAA,EAAM,OAAO,WAAA,EAAa,MAAA,EAAQ,WAAU,EAAoB;AACpF,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA,EACpF,QAAA,EAAA;AAAA,IAAA,IAAA,oBACCD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mGACZ,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,oBAEFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAA,EAAsC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACxD,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uCAAuC,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAClF,CAAA;AAAA,IACC,MAAA,KACE,MAAA,CAAO,IAAA,mBACNA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,IAAA,EAAK,OAAA,EAAO,IAAA,EACvB,QAAA,kBAAAA,GAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAO,QAAA,EAAA,MAAA,CAAO,KAAA,EAAM,CAAA,EACtC,CAAA,mBAEAA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAA,CAAO,OAAA,EAC/B,iBAAO,KAAA,EACV,CAAA;AAAA,GAAA,EAEN,CAAA;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACpCzB,IAAM,KAAA,GAAciC,mBAGlB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BjC,GAAAA;AAAA,EAACkC,OAAA,CAAe,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qDAAA;AAAA,MACA,2DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;ACJpB,SAAS,KAAA,CAAM;AAAA,EACb,KAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAe;AAGb,EAAA,MAAM,aAAA,GAAgB,OAAA,GAAU,CAAA,EAAG,OAAO,CAAA,YAAA,CAAA,GAAiB,MAAA;AAE3D,EAAA,uBACEjC,KAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS,CAAA,EAC7D,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAkB,eAAA,EAAe,QAAA,EACrC,QAAA,EAAA;AAAA,QAAA,KAAA;AAAA,QACA,QAAA,oBAAYD,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yBAAA,EAA0B,aAAA,EAAY,QAAO,QAAA,EAAA,GAAA,EAAC;AAAA,OAAA,EAC7E,CAAA;AAAA,MACC,8BAAcA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAiC,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EAC7E,CAAA;AAAA,IACC,QAAA;AAAA,IACA,KAAA,mBACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,IAAI,aAAA,EAAe,IAAA,EAAK,SAAQ,SAAA,EAAU,0BAAA,EAA4B,iBAAM,CAAA,GAC7E,IAAA,mBACFA,GAAAA,CAAC,GAAA,EAAA,EAAE,IAAI,aAAA,EAAe,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,IAAA,EAAK,CAAA,GACpE;AAAA,GAAA,EACN,CAAA;AAEJ;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;ACnCpB,IAAM,MAAA,GAAS;AAAA,EACb,CAAA,EAAG,4BAAA;AAAA,EACH,CAAA,EAAG,2CAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAEA,IAAM,MAAA,GAAS;AAAA,EACb,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,OAAA,GAAU,GAAG,GAAA,GAAM,IAAA,EAAM,WAAU,EAAkB;AACjF,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAG,IAAA,EAAK,MAAA,EAAO,WAAW,EAAA,CAAG,MAAA,EAAQ,MAAA,CAAO,OAAO,GAAG,MAAA,CAAO,GAAG,CAAA,EAAG,SAAS,GAC1E,QAAA,EACH,CAAA;AAEJ;AAgBA,SAAS,YAAA,CAAa;AAAA,EACpB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,wBACJC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,yGAAA;AAAA,QACA,IAAA,IAAQ,uBAAA;AAAA,QACR;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,MAAA,oBAAUD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,wBACzCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sCAAsC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACxD,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAiC,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,QAAA,CACxE,QAAQ,QAAA,qBACRC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gDAAA,EACZ,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAQD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAiC,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UAC9D,4BAAYA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAiC,QAAA,EAAA,QAAA,EAAS;AAAA,SAAA,EACzE;AAAA;AAAA;AAAA,GAEJ;AAGF,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA,IAAA,mBACCA,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA,EAAU,oGAAA;AAAA,MAET,QAAA,EAAA;AAAA;AAAA,MAGH,KAAA,EAEJ,CAAA;AAEJ;AAgBA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,KAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA,GAAc,eAAA;AAAA,EACd,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,wBACJC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,+FAAA;AAAA,QACA,IAAA,IAAQ,uBAAA;AAAA,QACR;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,mFAAA;AAAA,cACA;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oFAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,4BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CAAA,EAA+C,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YACjE,wBAAQA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAiC,QAAA,EAAA,IAAA,EAAK;AAAA,WAAA,EAC9D,CAAA;AAAA,UACC,4BAAYA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAiB,QAAA,EAAA,QAAA,EAAS;AAAA,SAAA,EACxD;AAAA;AAAA;AAAA,GACF;AAGF,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA,IAAA,mBACCA,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA,EAAU,6FAAA;AAAA,MAET,QAAA,EAAA;AAAA;AAAA,MAGH,KAAA,EAEJ,CAAA;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AACvB,YAAA,CAAa,WAAA,GAAc,cAAA;AAC3B,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AC1JjC,IAAM,gBAAgB,SAAA,CAAU;AAChC,IAAM,mBAAmB,SAAA,CAAU;AAEnC,IAAM,mBAAyBmC,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,UAAU,UAAA,GAAa,CAAA,EAAG,GAAG,KAAA,IAAS,GAAA,qBAC5DnC,IAAC,SAAA,CAAU,MAAA,EAAV,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAC,SAAA,CAAU,OAAA;AAAA,EAAV;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oFAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AChB/B,IAAM,UAAA,GAAmBoC,OAAA,CAAA,UAAA;AAAA,EACvB,CACE;AAAA,IACE,YAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,MAAA,GAAS,OAAO,cAAA,GAAiB,YAAA;AACvC,IAAA,MAAM,aAAa,YAAA,IAAgB,WAAA;AACnC,IAAA,MAAM,WAAA,GAAc,aAAA,IAAiB,YAAA,IAAgB,cAAA,IAAkB,KAAA;AAEvE,IAAA,MAAM,SAAA,GAAY,EAAA;AAAA,MAChB,uFAAA;AAAA,MACA,+GAAA;AAAA,MACA,QACI,uFAAA,GACA;AAAA,KACN;AAEA,IAAA,IAAI,CAAC,UAAA,IAAc,CAAC,WAAA,EAAa;AAC/B,MAAA,uBAAOpC,GAAAA,CAAC,OAAA,EAAA,EAAM,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,MAAA,EAAQ,MAAA,EAAQ,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAAA,IAC1F;AAEA,IAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,MAAA,EAAQ,gBAAgB,CAAA,EAExC,QAAA,EAAA;AAAA,MAAA,YAAA,oBACCD,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,iGAAA;AAAA,YACA,QAAQ,oBAAA,GAAuB,eAAA;AAAA,YAC/B,OAAO,gBAAA,GAAmB;AAAA,WAC5B;AAAA,UAEC,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,sBAIFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,WAAA,oBACCD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8FACZ,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,wBAGFA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,SAAA,EAAW,EAAA;AAAA,cACT,SAAA;AAAA;AAAA,cAEA,YAAA,GACI,aAAA,IAAiB,cAAA,GACf,mBAAA,GACA,OACE,kCAAA,GACA,gCAAA,GACJ,WAAA,GACE,aAAA,GACE,OACE,yCAAA,GACA,uCAAA,GACF,YAAA,IAAgB,KAAA,GACd,GAAG,MAAA,EAAQ,WAAW,CAAA,GACtB,EAAA,CAAG,QAAQ,WAAW,CAAA,GAC1B,aAAA,GACE,IAAA,GACE,uCACA,kCAAA,GACF,YAAA,IAAgB,KAAA,IAAS,cAAA,GACvB,GAAG,MAAA,EAAQ,WAAW,CAAA,GACtB,EAAA,CAAG,QAAQ,MAAM,CAAA;AAAA,cAC3B;AAAA,aACF;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,QAAA,CAEE,YAAA,IAAgB,0BAChBA,GAAAA,CAAC,SAAI,SAAA,EAAU,uEAAA,EACZ,QAAA,EAAA,KAAA,mBACCA,GAAAA,CAAC,WAAA,EAAA,EAAY,MAAM,EAAA,EAAI,SAAA,EAAU,oBAAmB,CAAA,mBAEpDA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,YAAA,EAAa,CAAA,EAE1D;AAAA,OAAA,EAEJ,CAAA;AAAA,MAGC,iCACCA,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,iGAAA;AAAA,YACA,QAAQ,oBAAA,GAAuB,eAAA;AAAA,YAC/B,OAAO,gBAAA,GAAmB;AAAA,WAC5B;AAAA,UAEC,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MAID,kCAAkBA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAA,cAAA,EAAe;AAAA,KAAA,EAC3D,CAAA;AAAA,EAEJ;AACF;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;ACzGzB,IAAM,WAAA,GAAoBqC,OAAA,CAAA,UAAA;AAAA,EACxB,CACE;AAAA,IACE,KAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA,GAAM,CAAA,QAAA;AAAA,IACN,GAAA,GAAM,QAAA;AAAA,IACN,IAAA,GAAO,CAAA;AAAA,IACP,IAAA;AAAA,IACA,SAAA,GAAY,CAAA;AAAA,IACZ,YAAA,GAAe,KAAA;AAAA,IACf,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,CAAC,MAAM,OAAO,CAAA,GAAUA,iBAAiB,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAC,CAAA;AAEvE,IAAMA,kBAAU,MAAM;AACpB,MAAA,OAAA,CAAQ,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,IAClC,CAAA,EAAG,CAAC,KAAA,EAAO,SAAS,CAAC,CAAA;AAErB,IAAA,MAAM,QAAcA,OAAA,CAAA,WAAA,CAAY,CAAC,CAAA,KAAc,IAAA,CAAK,IAAI,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,CAAC,CAAC,CAAA,EAAG,CAAC,GAAA,EAAK,GAAG,CAAC,CAAA;AAE1F,IAAA,MAAM,MAAA,GAAS,CAAC,GAAA,KAAgB;AAC9B,MAAA,MAAM,CAAA,GAAI,WAAW,GAAG,CAAA;AACxB,MAAA,IAAI,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG;AACtB,QAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AACpB,QAAA,QAAA,CAAS,IAAI,CAAA;AACb,QAAA,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,MACjC,CAAA,MAAO;AACL,QAAA,OAAA,CAAQ,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,IAAA,GAAO,CAAC,KAAA,KAAkB;AAC9B,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,GAAQ,KAAK,CAAA;AAChC,MAAA,QAAA,CAAS,IAAI,CAAA;AACb,MAAA,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,IACjC,CAAA;AAEA,IAAA,MAAM,SAAA,GAAY,CAAC,CAAA,KAA6C;AAC9D,MAAA,IAAI,CAAA,CAAE,QAAQ,SAAA,EAAW;AACvB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAA,CAAK,IAAA,IAAQ,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,CAAA,CAAE,CAAA;AAAA,MACnC,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,WAAA,EAAa;AAChC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAA,CAAK,CAAC,IAAA,IAAQ,CAAA,CAAE,QAAA,GAAW,KAAK,CAAA,CAAE,CAAA;AAAA,MACpC,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,EAAS;AAC5B,QAAA,MAAA,CAAQ,CAAA,CAAE,OAA4B,KAAK,CAAA;AAAA,MAC7C;AAAA,IACF,CAAA;AAEA,IAAA,uBACEpC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,uFAAA;AAAA,UACA,0FAAA;AAAA,UACA,QAAA,IAAY,gCAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAD,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,IAAA,EAAK,MAAA;AAAA,cACL,SAAA,EAAU,SAAA;AAAA,cACV,UAAA,EAAY,KAAA;AAAA,cACZ,KAAA,EAAO,IAAA;AAAA,cACP,UAAU,CAAC,CAAA,KAAM,OAAA,CAAQ,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cACvC,QAAQ,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cACpC,SAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA,EAAU,uMAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,IAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAW,IAAA,EAAC,SAAA,EAAU,mEACzB,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,UAED,CAAC,YAAA,oBACAC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sCAAA,EACb,QAAA,EAAA;AAAA,4BAAAD,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,QAAA,EAAU,EAAA;AAAA,gBACV,OAAA,EAAS,MAAM,IAAA,CAAK,IAAI,CAAA;AAAA,gBACxB,YAAA,EAAW,WAAA;AAAA,gBACX,SAAA,EAAU,oFAAA;AAAA,gBAEV,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,OAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,IAAA,EAAK,gBAC/C,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAmB,CAAA,EAC7B;AAAA;AAAA,aACF;AAAA,4BACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAAyB,CAAA;AAAA,4BACxCA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,QAAA,EAAU,EAAA;AAAA,gBACV,OAAA,EAAS,MAAM,IAAA,CAAK,CAAC,IAAI,CAAA;AAAA,gBACzB,YAAA,EAAW,WAAA;AAAA,gBACX,SAAA,EAAU,oFAAA;AAAA,gBAEV,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,OAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,IAAA,EAAK,gBAC/C,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAmB,CAAA,EAC7B;AAAA;AAAA;AACF,WAAA,EACF;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;ACnI1B,IAAM,QAAA,GAAiBsC,OAAA,CAAA,UAAA,CAGrB,CAAC,EAAE,SAAA,EAAW,oBAAoB,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9CtC,GAAAA;AAAA,EAAC,QAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,kBAAA,EAAoB,EAAA,CAAG,iDAAA,EAAmD,kBAAkB,CAAA;AAAA,IAC5F,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,aAAA,GAAsBsC,OAAA,CAAA,UAAA;AAAA,EAC1B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBtC,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAU,SAAA,EAAW,EAAA,CAAG,qBAAqB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE7E;AACA,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,YAAA,GAAqBsC,mBAGzB,CAAC,EAAE,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzC,EAAA,MAAM,eAAA,GAAwBA,mBAAW,eAAe,CAAA;AACxD,EAAA,MAAM,EAAE,MAAM,YAAA,EAAc,QAAA,KAAa,eAAA,EAAiB,KAAA,CAAM,KAAK,CAAA,IAAK,EAAC;AAE3E,EAAA,uBACErC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,qDAAA;AAAA,QACA,kEAAA;AAAA,QACA,qDAAA;AAAA,QACA,gBAAA;AAAA,QACA,QAAA,IAAY,wDAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,QACA,YAAA,oBACCD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EAA2D,CAAA,EAC5E;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,iBAAA,GAA0BsC,OAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,GAAG,KAAA,IAAS,GAAA,qBACbtC,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,IAAA,EAAK,aAAa,GAAG,KAAA,EAClC,0BAAAA,GAAAA,CAACuC,KAAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,uBAAA,EAAwB,CAAA,EACrD;AAEJ;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AC9DhC,IAAM,GAAA,GAAYC,OAAA,CAAA,UAAA;AAAA,EAChB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,wBACxBxC,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,GAAA,CAAI,WAAA,GAAc,KAAA;ACHlB,IAAM,QAAA,GAAW;AAAA,EACf,GAAA,EAAK,aAAA;AAAA,EACL,MAAA,EAAQ,cAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAA;AAEA,IAAMyC,OAAAA,GAAS;AAAA,EACb,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB,KAAA,GAAQ,KAAA;AAAA,EACR,GAAA,GAAM,IAAA;AAAA,EACN;AACF,CAAA,EAAqB;AACnB,EAAA,uBACExC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,MAAA;AAAA,QACA,kBAAkB,OAAA,IAAW,kBAAA;AAAA,QAC7B,SAAS,KAAK,CAAA;AAAA,QACdwC,QAAO,GAAG,CAAA;AAAA,QACV;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAzC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACjCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAS;AAAA;AAAA;AAAA,GAC5C;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACzC1B,IAAM,WAAA,GAAoB0C,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1C,GAAAA;AAAA,EAAC,OAAA,CAAQ,IAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,4EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,SAAA;AAE1B,IAAM,cAAc,OAAA,CAAQ;AAE5B,IAAM,eAAe,OAAA,CAAQ;AAE7B,IAAM,aAAa,OAAA,CAAQ;AAE3B,IAAM,oBAAoB,OAAA,CAAQ;AAElC,IAAM,cAAA,GAAuB0C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1C,GAAAA;AAAA,EAAC,OAAA,CAAQ,OAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,uHAAA;AAAA,MACA,gBAAA;AAAA,MACA,8DAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuB0C,mBAG3B,CAAC,EAAE,WAAW,KAAA,GAAQ,OAAA,EAAS,cAAc,EAAA,EAAI,UAAA,GAAa,GAAG,GAAG,KAAA,IAAS,GAAA,qBAC7E1C,IAAC,OAAA,CAAQ,MAAA,EAAR,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAC,OAAA,CAAQ,OAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0DAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,WAAA,GAAoB0C,OAAA,CAAA,UAAA,CAKxB,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC1C,GAAAA;AAAA,EAAC,OAAA,CAAQ,IAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sFAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,mBAAA,GAA4B0C,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCzC,IAAAA;AAAA,EAAC,OAAA,CAAQ,YAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6DACd,QAAA,kBAAAA,GAAAA,CAAC,QAAQ,aAAA,EAAR,EACC,QAAA,kBAAAA,GAAAA,CAACiB,OAAA,EAAM,IAAA,EAAM,IAAI,SAAA,EAAU,iBAAA,EAAkB,GAC/C,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,gBAAA,GAAyByB,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCzC,IAAAA;AAAA,EAAC,OAAA,CAAQ,SAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA,2DAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6DACd,QAAA,kBAAAA,GAAAA,CAAC,QAAQ,aAAA,EAAR,EACC,QAAA,kBAAAA,GAAAA,CAACgC,QAAA,EAAO,IAAA,EAAM,GAAG,SAAA,EAAU,iCAAA,EAAkC,GAC/D,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,YAAA,GAAqBU,OAAA,CAAA,UAAA,CAKzB,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC1C,GAAAA;AAAA,EAAC,OAAA,CAAQ,KAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,KAAA,IAAS,QAAQ,SAAS,CAAA;AAAA,IAClF,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,gBAAA,GAAyB0C,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1C,GAAAA;AAAA,EAAC,OAAA,CAAQ,SAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,IACjD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,iBAAA,GAA0B0C,OAAA,CAAA,UAAA,CAK9B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3CzC,IAAAA;AAAA,EAAC,OAAA,CAAQ,UAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sFAAA;AAAA,MACA,2DAAA;AAAA,MACA,iEAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDD,GAAAA,CAACU,YAAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,WAAU,+BAAA,EAAgC;AAAA;AAAA;AACpE,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,iBAAA,GAA0BgC,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1C,GAAAA;AAAA,EAAC,OAAA,CAAQ,UAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8EAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA0C;AACvF,EAAA,uBAAOA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,uCAAA,EAAyC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC7F;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;ACnN9B,IAAM,YAAA,GAAqB2C,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC1C,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,UAAA,EACb,QAAA,EAAA;AAAA,kBAAAD,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,mFAAA;AAAA,QACA,sBAAA;AAAA,QACA,wEAAA;AAAA,QACA,iDAAA;AAAA,QACA,sFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAAA,kBACAA,GAAAA;AAAA,IAACyB,WAAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,SAAA,EAAU;AAAA;AAAA;AACZ,CAAA,EACF,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,kBAAA,GAA2BkB,OAAA,CAAA,UAAA,CAG/B,CAAC,KAAA,EAAO,GAAA,qBAAQ3C,GAAAA,CAAC,QAAA,EAAA,EAAO,GAAA,EAAW,GAAG,KAAA,EAAO,CAAE;AACjD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,oBAAA,GAA6B2C,OAAA,CAAA,UAAA,CAGjC,CAAC,KAAA,EAAO,GAAA,qBAAQ3C,GAAAA,CAAC,UAAA,EAAA,EAAS,GAAA,EAAW,GAAG,KAAA,EAAO,CAAE;AACnD,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AClCnC,IAAM,kBAAA,GAA2B4C,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC5C,GAAAA;AAAA,EAAC,cAAA,CAAe,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,iEAAA,EAAmE,SAAS,CAAA;AAAA,IACzF,GAAG,KAAA;AAAA,IAEH;AAAA;AACH,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,gBAAA;AAEjC,IAAM,kBAAA,GAA2B4C,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,GAAAA;AAAA,EAAC,cAAA,CAAe,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+DAAA,EAAiE,SAAS,CAAA;AAAA,IACvF,GAAG;AAAA;AACN,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,qBAAqB,cAAA,CAAe;AAE1C,IAAM,qBAAA,GAA8B4C,OAAA,CAAA,UAAA,CAGlC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC3C,IAAAA;AAAA,EAAC,cAAA,CAAe,OAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oFAAA;AAAA,MACA,wCAAA;AAAA,MACA,sCAAA;AAAA,MACA,mDAAA;AAAA,MACA,gCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDD,GAAAA;AAAA,QAACyB,WAAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,EAAA;AAAA,UACN,SAAA,EAAU,sEAAA;AAAA,UACV,aAAA,EAAY;AAAA;AAAA;AACd;AAAA;AACF,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,qBAAA,GAA8BmB,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,GAAAA;AAAA,EAAC,cAAA,CAAe,OAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qBAAA;AAAA,MACA,gEAAA;AAAA,MACA,0DAAA;AAAA,MACA,8FAAA;AAAA,MACA,wFAAA;AAAA,MACA,uBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,kBAAA,GAA2B4C,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,GAAAA;AAAA,EAAC,cAAA,CAAe,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mEAAA;AAAA,MACA,sCAAA;AAAA,MACA,gCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,sBAAA,GAA+B4C,OAAA,CAAA,UAAA,CAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gDACb,QAAA,kBAAAA,GAAAA;AAAA,EAAC,cAAA,CAAe,QAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mKAAA;AAAA,MACA,oDAAA;AAAA,MACA,8DAAA;AAAA,MACA,8DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAErC,IAAM,uBAAA,GAAgC4C,mBAGpC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,GAAAA;AAAA,EAAC,cAAA,CAAe,SAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oEAAA;AAAA,MACA,iEAAA;AAAA,MACA,2DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6EAAA,EAA8E;AAAA;AAC/F,CACD;AACD,uBAAA,CAAwB,WAAA,GAAc,yBAAA;AAEtC,SAAS,0BAAA,GAA6B;AACpC,EAAA,OAAO,EAAA;AAAA,IACL,oFAAA;AAAA,IACA,wCAAA;AAAA,IACA,sCAAA;AAAA,IACA,mDAAA;AAAA,IACA;AAAA,GACF;AACF;AC7HA,IAAM,aAAA,GAAgB;AAAA,EACpB,OAAA,EAAS,EAAE,IAAA,EAAM,IAAA,EAAM,WAAW,uBAAA,EAAwB;AAAA,EAC1D,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,KAAA,EAAO,EAAE,IAAA,EAAM6C,WAAAA,EAAa,WAAW,kBAAA,EAAmB;AAAA,EAC1D,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,aAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,IAAA,EAAM,EAAE,IAAA,EAAM,IAAA,EAAM,WAAW,uBAAA;AACjC,CAAA;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,OAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,MAAA,GAAS,cAAc,OAAO,CAAA;AACpC,EAAA,MAAM,cAAc,MAAA,CAAO,IAAA;AAE3B,EAAA,MAAM,YAAA,GAAe,SAAS,WAAA,mBAAc7C,IAAC,WAAA,EAAA,EAAY,IAAA,EAAM,IAAI,CAAA,GAAK,IAAA,CAAA;AAExE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,6GAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,OACb,QAAA,kBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAEZ,QAAA,EAAA;AAAA,QAAA,YAAA,oBACCD,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,iBAAA,EAAmB,MAAA,CAAO,SAAS,CAAA,EAAI,QAAA,EAAA,YAAA,EAAa,CAAA;AAAA,wBAIzEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAA,EAAsC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACxD,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qCAAqC,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,UAG7E,OAAA,IAAW,OAAA,CAAQ,MAAA,GAAS,CAAA,oBAC3BA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,sBACpBA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,SAAS,MAAA,CAAO,OAAA;AAAA,cAChB,SAAA,EAAW,EAAA;AAAA,gBACT,sCAAA;AAAA,gBACA,MAAA,CAAO,OAAA,KAAY,OAAA,GACf,mDAAA,GACA;AAAA,eACN;AAAA,cAEC,QAAA,EAAA,MAAA,CAAO;AAAA,aAAA;AAAA,YAVH;AAAA,WAYR,CAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGC,2BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YACb,QAAA,kBAAAC,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,OAAA;AAAA,YACT,SAAA,EAAU,2JAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,8BAC/BA,GAAAA,CAAC8C,CAAAA,EAAA,EAAE,MAAM,EAAA,EAAI;AAAA;AAAA;AAAA,SACf,EACF;AAAA,OAAA,EAEJ,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;AC1E3B,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,uBACE7C,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA,EAExD,QAAA,EAAA;AAAA,IAAA,WAAA,IAAe,YAAY,MAAA,GAAS,CAAA,oBACnCD,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gCAAA,EAAiC,YAAA,EAAW,YAAA,EACxD,QAAA,EAAA,WAAA,CAAY,IAAI,CAAC,KAAA,EAAO,sBACvBC,IAAAA,CAAO8C,kBAAN,EACE,QAAA,EAAA;AAAA,MAAA,CAAA,GAAI,CAAA,oBAAK/C,GAAAA,CAACU,YAAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,WAAU,gCAAA,EAAiC,CAAA;AAAA,MAC5E,KAAA,CAAM,uBACLV,GAAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,SAAA,EAAU,6EAAA;AAAA,UAET,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,0BAGTA,GAAAA,CAAC,UAAK,SAAA,EAAU,6CAAA,EAA+C,gBAAM,KAAA,EAAM;AAAA,KAAA,EAAA,EAV1D,CAYrB,CACD,CAAA,EACH,CAAA;AAAA,oBAIFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kDAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACvD,UACE,OAAO,KAAA,KAAU,2BAChBA,GAAAA,CAAC,SAAM,OAAA,EAAQ,WAAA,EAAa,iBAAM,CAAA,mBAElCA,IAAC,KAAA,EAAA,EAAM,OAAA,EAAS,MAAM,OAAA,IAAW,WAAA,EAAc,gBAAM,KAAA,EAAM,CAAA;AAAA,SAAA,EAEjE,CAAA;AAAA,QACC,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+CAA+C,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,QAGvF,QAAQ,IAAA,CAAK,MAAA,GAAS,qBACrBA,GAAAA,CAAC,SAAI,SAAA,EAAU,wCAAA,EACZ,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACZC,IAAAA,CAAC,KAAA,EAAA,EAAY,WAAU,yDAAA,EACpB,QAAA,EAAA;AAAA,UAAA,CAAA,CAAE,wBAAQD,GAAAA,CAAC,UAAK,SAAA,EAAU,uBAAA,EAAyB,YAAE,IAAA,EAAK,CAAA;AAAA,0BAC3DA,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK;AAAA,SAAA,EAAA,EAFN,CAGV,CACD,CAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AAAA,MAGC,OAAA,IAAW,QAAQ,MAAA,GAAS,CAAA,oBAC3BA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA;AAAA,QAAI,CAAC,MAAA,EAAQ,CAAA,KACpB,MAAA,CAAO,uBACLA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAS,MAAA,CAAO,OAAA,GAAU,SAAA,GAAa,OAAO,OAAA,IAAW,SAAA;AAAA,YACzD,OAAA,EAAO,IAAA;AAAA,YAEP,0BAAAA,GAAAA,CAAC,GAAA,EAAA,EAAE,MAAM,MAAA,CAAO,IAAA,EAAO,iBAAO,KAAA,EAAM;AAAA,WAAA;AAAA,UAL/B;AAAA,4BAQPA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAS,MAAA,CAAO,OAAA,GAAU,SAAA,GAAa,OAAO,OAAA,IAAW,SAAA;AAAA,YACzD,SAAS,MAAA,CAAO,OAAA;AAAA,YAEf,QAAA,EAAA,MAAA,CAAO;AAAA,WAAA;AAAA,UALH;AAAA;AAMP,OAEJ,EACF;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;ACrHA,IAAM,aAAa,CAAC,EAAE,WAAW,GAAG,KAAA,uBAClCA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,YAAA;AAAA,IACL,YAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,IAC5D,GAAG;AAAA;AACN;AAEF,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,iBAAA,GAA0BgD,OAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBhD,GAAAA,CAAC,IAAA,EAAA,EAAG,KAAU,SAAA,EAAW,EAAA,CAAG,oCAAoC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE3F;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,cAAA,GAAuBgD,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQhD,GAAAA,CAAC,IAAA,EAAA,EAAG,KAAU,SAAA,EAAW,EAAA,CAAG,IAAI,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAC3F;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAI7B,IAAM,cAAA,GAAiB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,uBAChDA,GAAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,IAClC,SAAA,EAAW,EAAA;AAAA,MACT,cAAA,CAAe,EAAE,OAAA,EAAS,QAAA,GAAW,YAAY,OAAA,EAAS,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxE,wBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,qBAAqB,CAAC;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEC,IAAAA;AAAA,EAAC,cAAA;AAAA,EAAA;AAAA,IACC,YAAA,EAAW,qBAAA;AAAA,IACX,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS,CAAA;AAAA,IAC3C,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAACiD,WAAAA,EAAA,EAAY,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,sBACvBjD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAO,QAAA,EAAA,MAAA,EAAI;AAAA;AAAA;AAC7B;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,iBAAiB,CAAC,EAAE,WAAW,GAAG,KAAA,uBACtCC,IAAAA;AAAA,EAAC,cAAA;AAAA,EAAA;AAAA,IACC,YAAA,EAAW,iBAAA;AAAA,IACX,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS,CAAA;AAAA,IAC3C,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,MAAA,EAAO,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBAC3BA,GAAAA,CAACU,YAAAA,EAAA,EAAa,MAAM,EAAA,EAAI;AAAA;AAAA;AAC1B;AAEF,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,qBAAqB,CAAC,EAAE,WAAW,GAAG,KAAA,uBAC1CV,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,aAAA,EAAW,IAAA;AAAA,IACX,SAAA,EAAW,EAAA,CAAG,+DAAA,EAAiE,SAAS,CAAA;AAAA,IACvF,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAACkD,cAAAA,EAAA,EAAe,MAAM,EAAA,EAAI;AAAA;AAC5B;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AC1EjC,IAAM,YAAA,GAAqBC,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjCnD,GAAAA;AAAA,EAAC,QAAA,CAAS,IAAA;AAAA,EAAT;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,2DAAA,EAA6D,SAAS,CAAA;AAAA,IACpF,KAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA,CAAS,SAAA;AAAA,MAAT;AAAA,QACC,SAAA,EAAU,sDAAA;AAAA,QACV,OAAO,EAAE,SAAA,EAAW,eAAe,GAAA,IAAO,KAAA,IAAS,EAAE,CAAA,EAAA,CAAA;AAAK;AAAA;AAC5D;AACF,CACD;AACD,YAAA,CAAa,WAAA,GAAc,UAAA;ACM3B,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,MAAA,GAAS,SAAA;AAAA,EACT,UAAA,GAAa,EAAA;AAAA,EACb,UAAA,GAAa,QAAA;AAAA,EACb,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,SAAS,MAAA,KAAW,QAAA;AAE1B,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,0BAAA;AAAA,QACA,SACI,EAAA,CAAG,OAAA,EAAS,eAAe,QAAA,GAAW,cAAA,GAAiB,aAAa,CAAA,GACpE,gCAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,KAAA,KAAU,0BACTD,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,2CAAA;AAAA,cACA,SAAS,UAAA,GAAa;AAAA,aACxB;AAAA,YACA,KAAA,EACE,MAAA,GACI,EAAE,KAAA,EAAO,OAAO,UAAA,KAAe,QAAA,GAAW,CAAA,EAAG,UAAU,CAAA,EAAA,CAAA,GAAO,UAAA,EAAW,GACzE,MAAA;AAAA,YAGL,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEFA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAA0C,QAAA,EAAS;AAAA;AAAA;AAAA,GACpE;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AC7C1B,SAAS,UAAA,CAAW,EAAE,OAAA,EAAS,KAAA,EAAO,eAAe,OAAA,GAAU,CAAA,EAAG,WAAU,EAAoB;AAC9F,EAAA,MAAMoD,OAAAA,GAAS;AAAA,IACb,CAAA,EAAG,aAAA;AAAA,IACH,CAAA,EAAG,4BAAA;AAAA,IACH,CAAA,EAAG,4BAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACL;AAEA,EAAA,uBACEpD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,YAAA,EAAcoD,OAAAA,CAAO,OAAO,CAAA,EAAG,SAAS,CAAA,EACxD,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,IAAA,MAAM,UAAA,GAAa,OAAO,KAAA,KAAU,KAAA;AACpC,IAAA,uBACEnD,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,OAAA;AAAA,QACL,cAAA,EAAc,UAAA;AAAA,QACd,UAAU,MAAA,CAAO,QAAA;AAAA,QACjB,SAAS,MAAM,CAAC,OAAO,QAAA,IAAY,aAAA,GAAgB,OAAO,KAAK,CAAA;AAAA,QAC/D,SAAA,EAAW,EAAA;AAAA,UACT,4FAAA;AAAA,UACA,qFAAA;AAAA,UACA,iDAAA;AAAA,UACA,aACI,6CAAA,GACA;AAAA,SACN;AAAA,QAGC,QAAA,EAAA;AAAA,UAAA,UAAA,oBACCD,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,2EAAA;AAAA,cACV,aAAA,EAAY;AAAA;AAAA,WACd;AAAA,0BAGFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,cAAA,MAAA,CAAO,wBAAQD,GAAAA,CAAC,SAAI,SAAA,EAAU,4BAAA,EAA8B,iBAAO,IAAA,EAAK,CAAA;AAAA,8BACzEA,GAAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,oBAAA;AAAA,oBACA,aAAa,iBAAA,GAAoB;AAAA,mBACnC;AAAA,kBAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,eACV;AAAA,cACC,MAAA,CAAO,+BACNA,GAAAA,CAAC,OAAE,SAAA,EAAU,sCAAA,EAAwC,iBAAO,WAAA,EAAY;AAAA,aAAA,EAE5E,CAAA;AAAA,4BACAA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,0FAAA;AAAA,kBACA,aACI,uCAAA,GACA;AAAA,iBACN;AAAA,gBAEC,QAAA,EAAA,UAAA,oBAAcA,GAAAA,CAACiB,KAAAA,EAAA,EAAM,MAAM,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,WAAA,EAAa,CAAA,EAAG;AAAA;AAAA;AAC9E,WAAA,EACF,CAAA;AAAA,UAEC,MAAA,CAAO,wBACNjB,GAAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,4BAAA;AAAA,gBACA,aAAa,iBAAA,GAAoB;AAAA,eACnC;AAAA,cAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA;AACV;AAAA,OAAA;AAAA,MA1DG,MAAA,CAAO;AAAA,KA4Dd;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AClGzB,IAAM,cAAA,GAAuBqD,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrD,GAAAA,CAAC,WAAW,IAAA,EAAX,EAAgB,KAAU,SAAA,EAAW,EAAA,CAAG,cAAc,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAC/E;AACD,cAAA,CAAe,WAAA,GAAc,YAAA;AAE7B,IAAM,cAAA,GAAuBqD,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrD,GAAAA;AAAA,EAAC,UAAA,CAAW,IAAA;AAAA,EAAX;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,wEAAA;AAAA,MACA,+BAAA;AAAA,MACA,oEAAA;AAAA,MACA,iDAAA;AAAA,MACA,2EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,UAAA,CAAW,SAAA,EAAX,EAAqB,SAAA,EAAU,kCAAA,EAC9B,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EAA8B,CAAA,EAC/C;AAAA;AACF,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AClB7B,SAAS,mBAAA,CAAoB;AAAA,EAC3B,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6B;AAC3B,EAAA,MAAM,mBAAA,GAAsB,eAAe,SAAA,IAAa,YAAA;AACxD,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAa,mBAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,oBAAA;AAAA,QACA,wBAAwB,UAAA,IAAc,UAAA;AAAA,QACtC;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,cAAA,GAAiB;AAMvB,SAAS,gBAAgB,EAAE,SAAA,EAAW,aAAa,IAAA,EAAM,GAAG,OAAM,EAAyB;AACzF,EAAA,uBACEA,GAAAA;AAAA,IAACsD,WAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,6DAAA;AAAA,QACA,qFAAA;AAAA;AAAA,QAEA,uFAAA;AAAA;AAAA,QAEA,qEAAA;AAAA;AAAA,QAEA,gFAAA;AAAA,QACA,4NAAA;AAAA;AAAA,QAEA,4BAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,UAAA,oBACCtD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sGAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,yBAAwB,CAAA,EAC5D;AAAA;AAAA,GAEJ;AAEJ;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;ACjE9B,IAAM,cAAA,GAAuBuD,mBAG3B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCtD,KAAC,UAAA,CAAW,IAAA,EAAX,EAAgB,GAAA,EAAU,SAAA,EAAW,GAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EACnF,QAAA,EAAA;AAAA,kBAAAD,IAAC,UAAA,CAAW,QAAA,EAAX,EAAoB,SAAA,EAAU,mCAC5B,QAAA,EACH,CAAA;AAAA,kBACAA,GAAAA,CAAC,mBAAA,EAAA,EAAoB,WAAA,EAAY,UAAA,EAAW,CAAA;AAAA,kBAC5CA,GAAAA,CAAC,mBAAA,EAAA,EAAoB,WAAA,EAAY,YAAA,EAAa,CAAA;AAAA,kBAC9CA,GAAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EAAkB;AAAA,CAAA,EACrB,CACD;AACD,cAAA,CAAe,WAAA,GAAc,YAAA;AAE7B,IAAM,mBAAA,GAA4BuD,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,WAAA,GAAc,UAAA,EAAY,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpDvD,GAAAA;AAAA,EAAC,UAAA,CAAW,SAAA;AAAA,EAAX;AAAA,IACC,GAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+CAAA;AAAA,MACA,gBAAgB,UAAA,IAAc,+CAAA;AAAA,MAC9B,gBAAgB,YAAA,IAAgB,iDAAA;AAAA,MAChC;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,0BAAAA,GAAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,WAAU,wEAAA,EAAyE;AAAA;AACvG,CACD,CAAA;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;ACpBlC,SAAS,cAAA,CAAe;AAAA,EACtB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA,GAAS,IAAA;AAAA,EACT;AACF,CAAA,EAAwB;AACtB,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wEAAA;AAAA,QACA,MAAA,IAAU,wBAAA;AAAA,QACV;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACvD,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mCAAmC,QAAA,EAAA,WAAA,EAAY;AAAA,SAAA,EAC9E,CAAA;AAAA,QAEC,OAAA,IAAW,QAAQ,MAAA,GAAS,CAAA,oBAC3BA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA;AAAA,UAAI,CAAC,MAAA,EAAQ,CAAA,KACpB,MAAA,CAAO,IAAA,mBACLA,GAAAA,CAAC,MAAA,EAAA,EAAe,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAA,CAAO,OAAA,IAAW,SAAA,EAAW,OAAA,EAAO,IAAA,EACrE,QAAA,kBAAAA,GAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAO,QAAA,EAAA,MAAA,CAAO,KAAA,EAAM,CAAA,EAAA,EADzB,CAEb,CAAA,mBAEAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,IAAA;AAAA,cACL,OAAA,EAAS,OAAO,OAAA,IAAW,SAAA;AAAA,cAC3B,SAAS,MAAA,CAAO,OAAA;AAAA,cAEf,QAAA,EAAA,MAAA,CAAO;AAAA,aAAA;AAAA,YALH;AAAA;AAMP,SAEJ,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ;ACtDA,IAAM,aAAa,MAAA,CAAO;AAC1B,IAAM,cAAc,MAAA,CAAO;AAC3B,IAAM,cAAc,MAAA,CAAO;AAE3B,IAAM,aAAA,GAAsBwD,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCvD,IAAAA;AAAA,EAAC,MAAA,CAAO,OAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2EAAA;AAAA,MACA,qCAAA;AAAA,MACA,oDAAA;AAAA,MACA,iDAAA;AAAA,MACA,0CAAA;AAAA,MACA,uBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDD,GAAAA,CAAC,MAAA,CAAO,IAAA,EAAP,EAAY,OAAA,EAAO,IAAA,EAClB,QAAA,kBAAAA,GAAAA,CAACyB,aAAA,EAAY,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,kCAAiC,CAAA,EACpE;AAAA;AAAA;AACF,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,gBAAsB+B,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,UAAU,QAAA,GAAW,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,qBACzDxD,IAAC,MAAA,CAAO,MAAA,EAAP,EACC,QAAA,kBAAAC,IAAAA;AAAA,EAAC,MAAA,CAAO,OAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qDAAA;AAAA,MACA,uCAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA,8DAAA;AAAA,MACA,+EAAA;AAAA,MACA,aAAa,QAAA,IAAY,iEAAA;AAAA,MACzB;AAAA,KACF;AAAA,IACA,QAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,MAAA,CAAO,cAAA,EAAP,EAAsB,WAAU,sDAAA,EAC/B,QAAA,kBAAAA,GAAAA,CAACyD,SAAAA,EAAA,EAAU,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,yBAAwB,CAAA,EACzD,CAAA;AAAA,sBACAzD,GAAAA;AAAA,QAAC,MAAA,CAAO,QAAA;AAAA,QAAP;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,aAAa,QAAA,IACX;AAAA,WACJ;AAAA,UAEC;AAAA;AAAA,OACH;AAAA,sBACAA,GAAAA,CAAC,MAAA,CAAO,gBAAA,EAAP,EAAwB,SAAA,EAAU,sDAAA,EACjC,QAAA,kBAAAA,GAAAA,CAACyB,aAAA,EAAY,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,yBAAwB,CAAA,EAC3D;AAAA;AAAA;AACF,CAAA,EACF,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,UAAA,GAAmB+B,OAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCvD,IAAAA;AAAA,EAAC,MAAA,CAAO,IAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,uFAAA;AAAA,MACA,yCAAA;AAAA,MACA,sCAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DACd,QAAA,kBAAAA,GAAAA,CAAC,OAAO,aAAA,EAAP,EACC,QAAA,kBAAAA,GAAAA,CAACiB,OAAA,EAAM,IAAA,EAAM,IAAI,SAAA,EAAU,iBAAA,EAAkB,GAC/C,CAAA,EACF,CAAA;AAAA,sBACAjB,GAAAA,CAAC,MAAA,CAAO,QAAA,EAAP,EAAiB,QAAA,EAAS;AAAA;AAAA;AAC7B,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,WAAA,GAAoBwD,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxD,GAAAA;AAAA,EAAC,MAAA,CAAO,KAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS,CAAA;AAAA,IACjE,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,eAAA,GAAwBwD,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxD,GAAAA,CAAC,OAAO,SAAA,EAAP,EAAiB,KAAU,SAAA,EAAW,EAAA,CAAG,2BAA2B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAC7F;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AChH9B,IAAMsD,UAAAA,GAAkBI,OAAA,CAAA,UAAA,CAGtB,CAAC,EAAE,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,UAAA,GAAa,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,wBACzE1D,GAAAA;AAAA,EAAC2D,SAAA,CAAmB,IAAA;AAAA,EAAnB;AAAA,IACC,GAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mBAAA;AAAA,MACA,WAAA,KAAgB,eAAe,aAAA,GAAgB,aAAA;AAAA,MAC/C;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACDL,UAAAA,CAAU,WAAA,GAAc,WAAA;ACdxB,IAAM,YAAYM,MAAAA,CAAO;AACzB,IAAM,eAAeA,MAAAA,CAAO;AAC5B,IAAM,aAAaA,MAAAA,CAAO;AAE1B,IAAM,YAAA,GAAqBC,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7D,GAAAA;AAAA,EAAC4D,MAAAA,CAAO,OAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iDAAA;AAAA,MACA,8DAAA;AAAA,MACA,4DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD,CAAA;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,oBAAA,GAAuBzD,GAAAA;AAAA,EAC3B;AAAA,IACE,wCAAA;AAAA,IACA,8DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,KAAA,EACE,mHAAA;AAAA,QACF,IAAA,EAAM,gHAAA;AAAA,QACN,GAAA,EAAK,iGAAA;AAAA,QACL,MAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAOA,IAAM,YAAA,GAAqB0D,OAAA,CAAA,UAAA;AAAA,EACzB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAO,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAClD5D,IAAAA,CAAC2D,MAAAA,CAAO,QAAP,EACC,QAAA,EAAA;AAAA,oBAAA5D,IAAC,YAAA,EAAA,EAAa,CAAA;AAAA,oBACdC,IAAAA;AAAA,MAAC2D,MAAAA,CAAO,OAAA;AAAA,MAAP;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QACtD,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,0BACD3D,IAAAA,CAAC2D,MAAAA,CAAO,KAAA,EAAP,EAAa,WAAU,gKAAA,EACtB,QAAA,EAAA;AAAA,4BAAA5D,GAAAA,CAAC8C,CAAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,4BACb9C,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,WAAA,EACjC;AAAA;AAAA;AAAA;AACF,GAAA,EACF;AAEJ;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyC;AAClF,EAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACjF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyC;AAClF,EAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,0CAAA,EAA4C,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/F;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmB6D,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7D,GAAAA;AAAA,EAAC4D,MAAAA,CAAO,KAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,IAC/D,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBC,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7D,GAAAA,CAAC4D,OAAO,WAAA,EAAP,EAAmB,KAAU,SAAA,EAAW,EAAA,CAAG,8BAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAClG;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;ACnG/B,SAAS,eAAA,CAAgB;AAAA,EACvB,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA4D;AAC1D,EAAA,uBACE5D,IAAC8D,OAAAA,CAAQ,QAAA,EAAR,EAAiB,aAAA,EAAe,GAAA,EAAM,GAAG,KAAA,EACvC,QAAA,EACH,CAAA;AAEJ;AAEA,IAAM,cAAcA,OAAAA,CAAQ;AAC5B,IAAM,iBAAiBA,OAAAA,CAAQ;AAE/B,IAAM,iBAAuBC,OAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,aAAa,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,wBAC1C/D,GAAAA,CAAC8D,OAAAA,CAAQ,MAAA,EAAR,EACC,QAAA,kBAAA9D,GAAAA;AAAA,EAAC8D,OAAAA,CAAQ,OAAA;AAAA,EAAR;AAAA,IACC,GAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,qEAAA;AAAA,MACA,iCAAA;AAAA,MACA,gGAAA;AAAA,MACA,+EAAA;AAAA,MACA,+EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AC1B7B,IAAM,mBAAA,GAAsB,eAAA;AAC5B,IAAM,aAAA,GAAgB,OAAA;AACtB,IAAM,kBAAA,GAAqB,QAAA;AAa3B,IAAM,cAAA,GAAuBE,sBAA0C,IAAI,CAAA;AAE3E,SAAS,UAAA,GAAa;AACpB,EAAA,MAAM,GAAA,GAAYA,mBAAW,cAAc,CAAA;AAC3C,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAC1E,EAAA,OAAO,GAAA;AACT;AAYA,SAAS,eAAA,CAAgB;AAAA,EACvB,WAAA,GAAc,IAAA;AAAA,EACd,IAAA,EAAM,QAAA;AAAA,EACN,YAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,iBAAS,WAAW,CAAA;AAEpD,EAAA,MAAM,IAAA,GAAO,QAAA,KAAa,MAAA,GAAY,QAAA,GAAW,KAAA;AAEjD,EAAA,MAAM,OAAA,GAAgBA,OAAA,CAAA,WAAA;AAAA,IACpB,CAAC,KAAA,KAAmB;AAClB,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,YAAA,CAAa,KAAK,CAAA;AAAA,MACpB,CAAA,MAAO;AACL,QAAA,QAAA,CAAS,KAAK,CAAA;AAAA,MAChB;AAEA,MAAA,QAAA,CAAS,MAAA,GAAS,GAAG,mBAAmB,CAAA,CAAA,EAAI,KAAK,CAAA,kBAAA,EAAqB,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,CAAC,CAAA,CAAA;AAAA,IACxF,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,MAAM,aAAA,GAAsBA,oBAAY,MAAM;AAC5C,IAAA,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,EACf,CAAA,EAAG,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA;AAElB,EAAA,MAAM,KAAA,GAAQ,OAAO,UAAA,GAAa,WAAA;AAElC,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,IACzB,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,SAAS,aAAA,EAAc,CAAA;AAAA,IAC7C,CAAC,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,aAAa;AAAA,GACtC;AAEA,EAAA,uBACEhE,GAAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,YAAA,EAC9B,QAAA,kBAAAA,GAAAA,CAAC,eAAA,EAAA,EAAgB,aAAA,EAAe,CAAA,EAC9B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,UAAA;AAAA,MACb,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA,CAAG,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACtE,KAAA,EACE;AAAA,QACE,iBAAA,EAAmB,aAAA;AAAA,QACnB,sBAAA,EAAwB,kBAAA;AAAA,QACxB,GAAG;AAAA,OACL;AAAA,MAED,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,KAEL,CAAA,EACF,CAAA;AAEJ;AAYA,SAAS,OAAA,CAAQ;AAAA,EACf,IAAA,GAAO,MAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,WAAA,GAAc,MAAA;AAAA,EACd,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,UAAA,EAAW;AAE7B,EAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,IAAA,uBACEA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAW,IAAA;AAAA,QACX,cAAA,EAAc,OAAA;AAAA,QACd,kBAAA,EAAiB,MAAA;AAAA,QACjB,SAAA,EAAW,EAAA;AAAA,UACT,wEAAA;AAAA,UACA,SAAS,OAAA,IAAW,qBAAA;AAAA,UACpB;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,IAAI,gBAAgB,WAAA,EAAa;AAC/B,IAAA,uBACEA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAY,KAAA;AAAA,QACZ,WAAA,EAAW,IAAA;AAAA,QACX,cAAA,EAAc,OAAA;AAAA,QACd,kBAAA,EAAiB,WAAA;AAAA,QACjB,SAAA,EAAW,EAAA;AAAA,UACT,+DAAA;AAAA,UACA,uDAAA;AAAA,UACA,+GAAA;AAAA,UACA,SAAS,OAAA,IAAW,6DAAA;AAAA,UACpB;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,KAAA;AAAA,MACZ,WAAA,EAAW,IAAA;AAAA,MACX,cAAA,EAAc,OAAA;AAAA,MACd,kBAAA,EAAiB,MAAA;AAAA,MACjB,SAAA,EAAW,EAAA;AAAA,QACT,yEAAA;AAAA,QACA,6DAAA;AAAA,QACA,2FAAA;AAAA,QACA,SAAS,OAAA,IAAW,qBAAA;AAAA,QACpB,YAAY,UAAA,IAAc,4DAAA;AAAA,QAC1B,YAAY,OAAA,IAAW,YAAA;AAAA,QACvB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAMA,SAAS,eAAe,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAwC;AAC7F,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,UAAA,EAAW;AAErC,EAAA,uBACEC,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,SAAA;AAAA,MACb,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,IAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,SAAS,CAAA;AAAA,MAClC,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA,aAAA,EAAc;AAAA,MAChB,CAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,wBACrBA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,gBAAA,EAAc;AAAA;AAAA;AAAA,GAC1C;AAEJ;AAMA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AAC5E,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,UAAA,EAAW;AAErC,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,MAAA;AAAA,MACb,YAAA,EAAW,gBAAA;AAAA,MACX,QAAA,EAAU,EAAA;AAAA,MACV,OAAA,EAAS,aAAA;AAAA,MACT,KAAA,EAAM,gBAAA;AAAA,MACN,SAAA,EAAW,EAAA;AAAA,QACT,kGAAA;AAAA,QACA,6DAAA;AAAA,QACA,iCAAA;AAAA,QACA,gEAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAiC;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,OAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,iEAAA,EAAmE,SAAS,CAAA;AAAA,MACzF,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,aAAA,CAAc,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,MACxE,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC5E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,SAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,sDAAA,EAAwD,SAAS,CAAA;AAAA,MAC9E,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,aAAA,CAAc,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,MACxE,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA2C;AACzF,EAAA,uBACEA,GAAAA;AAAA,IAACsD,UAAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,WAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,SAAS,CAAA;AAAA,MAC5C,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEtD,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,OAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,2CAAA,EAA6C,SAAS,CAAA;AAAA,MACnE,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,MAAM,IAAA,GAAO,OAAA,GAAUiE,IAAAA,CAAK,IAAA,GAAO,KAAA;AAEnC,EAAA,uBACEjE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,aAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,4EAAA;AAAA,QACA,6EAAA;AAAA,QACA,wDAAA;AAAA,QACA,kDAAA;AAAA,QACA,kDAAA;AAAA,QACA,kDAAA;AAAA,QACA,8DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAA,CAAoB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACjF,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,cAAA,EAAa,eAAA,EAAgB,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE7F;AAEA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAA2D;AACzD,EAAA,MAAM,IAAA,GAAO,OAAA,GAAUiE,IAAAA,CAAK,IAAA,GAAO,QAAA;AAEnC,EAAA,uBACEjE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,cAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,6EAAA;AAAA,QACA,uEAAA;AAAA,QACA,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AACxE,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AAC5E,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAG,cAAA,EAAa,WAAA,EAAY,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAElG;AAaA,SAAS,iBAAA,CAAkB;AAAA,EACzB,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,IAAA,GAAO,OAAA,GAAWiE,IAAAA,CAAK,IAAA,GAA6B,QAAA;AAE1D,EAAA,MAAM,yBACJjE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,aAAA;AAAA,MACb,aAAA,EAAa,QAAA;AAAA,MACb,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA;AAAA,QAET,kGAAA;AAAA,QACA,wBAAA;AAAA,QACA,gDAAA;AAAA,QACA,sCAAA;AAAA,QACA,0DAAA;AAAA,QACA,iBAAA;AAAA,QACA,kDAAA;AAAA,QACA,iCAAA;AAAA;AAAA,QAEA,SAAS,IAAA,IAAQ,aAAA;AAAA,QACjB,SAAS,IAAA,IAAQ,MAAA;AAAA;AAAA,QAEjB,QAAA,IAAY;AAAA,UACV,wCAAA;AAAA,UACA;AAAA,SACF;AAAA;AAAA,QAEA,6DAAA;AAAA,QACA,qDAAA;AAAA,QACA,kDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,uBACEC,KAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,oBAChCA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA;AAAA,UAET;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AAWA,SAAS,iBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,WAAA,GAAc,KAAA;AAAA,EACd,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,IAAA,GAAO,OAAA,GAAWiE,IAAAA,CAAK,IAAA,GAA6B,QAAA;AAE1D,EAAA,uBACEjE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,aAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,8FAAA;AAAA,QACA,uEAAA;AAAA,QACA,uEAAA;AAAA,QACA,WAAA,IAAe;AAAA,UACb,8BAAA;AAAA,UACA,mCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,qDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC9E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,YAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,4EAAA;AAAA,QACA,yDAAA;AAAA,QACA,qDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,mBAAA,CAAoB;AAAA,EAC3B,SAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,EAAyD;AACvD,EAAA,MAAM,KAAA,GAAcgE,gBAAQ,MAAM;AAChC,IAAA,OAAO,CAAA,EAAG,KAAK,KAAA,CAAM,IAAA,CAAK,QAAO,GAAI,EAAE,IAAI,EAAE,CAAA,CAAA,CAAA;AAAA,EAC/C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE/D,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,eAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACrE,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAYD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDAAA,EAAoD,CAAA;AAAA,wBAChFA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,uEAAA;AAAA,YACV,KAAA,EAAO,EAAE,kBAAA,EAAoB,KAAA;AAAM;AAAA;AACrC;AAAA;AAAA,GACF;AAEJ;AAMA,SAAS,cAAA,CAAe,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,UAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,gEAAA;AAAA,QACA,qDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,kBAAA,CAAmB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AAC/E,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,eAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,8BAAA,EAAgC,SAAS,CAAA;AAAA,MACtD,GAAG;AAAA;AAAA,GACN;AAEJ;AAOA,SAAS,oBAAA,CAAqB;AAAA,EAC5B,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8B;AAC5B,EAAA,MAAM,IAAA,GAAO,OAAA,GAAWiE,IAAAA,CAAK,IAAA,GAA6B,GAAA;AAE1D,EAAA,uBACEjE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAa,iBAAA;AAAA,MACb,aAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,qEAAA;AAAA,QACA,yCAAA;AAAA,QACA,gCAAA;AAAA,QACA,sCAAA;AAAA,QACA,0DAAA;AAAA,QACA,kDAAA;AAAA,QACA,mCAAA;AAAA,QACA,QAAA,IAAY,6CAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AC1lBA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACtE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA;AAAA,GACN;AAEJ;ACLA,IAAM,UAAA,GAAmBkE,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BjE,IAAAA;AAAA,EAAC,MAAA,CAAO,IAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0DAAA,EAA4D,SAAS,CAAA;AAAA,IAClF,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,MAAA,CAAO,KAAA,EAAP,EAAa,SAAA,EAAU,kEAAA,EACtB,QAAA,kBAAAA,GAAAA,CAAC,MAAA,CAAO,KAAA,EAAP,EAAa,SAAA,EAAU,oCAAmC,CAAA,EAC7D,CAAA;AAAA,sBACAA,GAAAA,CAAC,MAAA,CAAO,KAAA,EAAP,EAAa,WAAU,uOAAA,EAAwO;AAAA;AAAA;AAClQ,CACD;AACD,UAAA,CAAW,WAAA,GAAc,QAAA;ACdzB,SAAS,OAAA,CAAQ,EAAE,GAAG,KAAA,EAAM,EAAiB;AAC3C,EAAA,uBACEA,GAAAA;AAAA,IAACmE,SAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,OAAA;AAAA,MACN,SAAA,EAAU,eAAA;AAAA,MACV,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,KAAA,EACE,6MAAA;AAAA,UACF,WAAA,EAAa,6DAAA;AAAA,UACb,YAAA,EACE,4IAAA;AAAA,UACF,YAAA,EACE,0IAAA;AAAA,UACF,OAAA,EAAS,6EAAA;AAAA,UACT,KAAA,EACE,6GAAA;AAAA,UACF,OAAA,EACE,yGAAA;AAAA,UACF,IAAA,EAAM;AAAA;AACR,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AC5BA,IAAM,eAAA,GAAkBhE,GAAAA;AAAA,EACtB,qFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,QAAA;AAAA,QACJ,EAAA,EAAI,QAAA;AAAA,QACJ,OAAA,EAAS,QAAA;AAAA,QACT,EAAA,EAAI,QAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAKA,SAAS,QAAQ,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAiB;AAC5D,EAAA,uBACEH,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,SAAA;AAAA,MACX,WAAW,EAAA,CAAG,eAAA,CAAgB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ;ACxBA,SAAS,WAAA,CAAY,EAAE,QAAA,EAAU,OAAA,GAAU,MAAM,QAAA,GAAW,IAAA,EAAM,WAAU,EAAqB;AAC/F,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,oCAAA;AAAA,QACA,QAAA,IAAY,qCAAA;AAAA,QACZ,OAAA,IAAW,wBAAA;AAAA,QACX;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AASA,SAAS,gBAAgB,EAAE,QAAA,EAAU,IAAA,EAAM,OAAA,EAAS,WAAU,EAAyB;AACrF,EAAA,MAAM,KAAA,mBAAQA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA,EAAI,QAAA,EAAS,CAAA;AAEtE,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,OAAE,IAAA,EAAY,SAAA,EAAU,wCAAA,EACtB,QAAA,EAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,mDAAA;AAAA,QACV,OAAA;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBAAOA,GAAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AACpB;AC9CA,SAAS,SAAS,EAAE,KAAA,EAAO,OAAO,KAAA,EAAO,IAAA,EAAM,WAAU,EAAkB;AACzE,EAAA,MAAM,UAAA,GAAa;AAAA,IACjB,EAAA,EAAI,4EAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAEA,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,OAAA,EAASuC;AAAA,GACX;AAEA,EAAA,uBACEtC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,6CAAA,EAA+C,SAAS,CAAA,EACzE,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6BAAA,EAA+B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACjD,wBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8FACZ,QAAA,EAAA,IAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAAA,oBACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mCAAmC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACrD,UACE,MAAM;AACL,MAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,SAAS,CAAA;AACtC,MAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,gCAAgC,UAAA,CAAW,KAAA,CAAM,SAAS,CAAC,CAAA,EAC5E,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,wBAChBA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAuB,gBAAM,KAAA,EAAM;AAAA,OAAA,EACrD,CAAA;AAAA,IAEJ,CAAA;AAAG,GAAA,EACP,CAAA;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AChCvB,SAAS,YAAA,CAAa,EAAE,KAAA,EAAO,SAAA,EAAU,EAA0C;AACjF,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,YAAA,EAAW,UAAA,EAAW,WACzB,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAG,IAAA,EAAK,QAAO,SAAA,EAAU,mBAAA,EACvB,gBAAM,GAAA,CAAI,CAAC,MAAM,CAAA,KAAM;AACtB,IAAA,MAAM,MAAA,GAAS,CAAA,KAAM,KAAA,CAAM,MAAA,GAAS,CAAA;AACpC,IAAA,uBACEC,KAAC,IAAA,EAAA,EAAsB,SAAA,EAAW,GAAG,UAAA,EAAY,CAAC,MAAA,IAAU,QAAQ,CAAA,EAEjE,QAAA,EAAA;AAAA,MAAA,CAAC,MAAA,oBACAD,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uCAAA,EAAwC,aAAA,EAAY,QACjE,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,QAAA;AAAA,YACA,IAAA,CAAK,MAAA,KAAW,UAAA,GAAa,kBAAA,GAAqB;AAAA;AACpD;AAAA,OACF,EACF,CAAA;AAAA,sBAGFC,IAAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,KAAK,IAAA,IAAQ,GAAA;AAAA,UACnB,OAAA,EAAS,CAAC,IAAA,CAAK,IAAA,GAAO,CAAC,CAAA,KAAM,CAAA,CAAE,gBAAe,GAAI,MAAA;AAAA,UAClD,SAAA,EAAU,iDAAA;AAAA,UAGV,QAAA,EAAA;AAAA,4BAAAD,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,sFAAA;AAAA,kBACA,IAAA,CAAK,WAAW,UAAA,IACd,kDAAA;AAAA,kBACF,IAAA,CAAK,WAAW,SAAA,IAAa,uCAAA;AAAA,kBAC7B,IAAA,CAAK,WAAW,UAAA,IACd;AAAA,iBACJ;AAAA,gBAEC,QAAA,EAAA,IAAA,CAAK,MAAA,KAAW,UAAA,mBACfA,GAAAA,CAACiB,KAAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,WAAA,EAAa,GAAA,EAAK,CAAA,GAC7D,IAAA,CAAK,MAAA,KAAW,SAAA,mBAClBjB,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC,CAAA,mBAEzDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2DAAA,EAA4D;AAAA;AAAA,aAEhF;AAAA,4BAGAC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAAA,EACd,QAAA,EAAA;AAAA,8BAAAD,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,uBAAA;AAAA,oBACA,IAAA,CAAK,MAAA,KAAW,UAAA,GAAa,uBAAA,GAA0B;AAAA,mBACzD;AAAA,kBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,cACC,IAAA,CAAK,+BACJA,GAAAA,CAAC,UAAK,SAAA,EAAU,+BAAA,EAAiC,eAAK,WAAA,EAAY;AAAA,aAAA,EAEtE;AAAA;AAAA;AAAA;AACF,KAAA,EAAA,EApDO,IAAA,CAAK,MAAM,CAqDpB,CAAA;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ;AAGA,SAAS,YAAA,CAAa,EAAE,KAAA,EAAO,SAAA,EAAU,EAA0C;AACjF,EAAA,MAAM,aAAa,KAAA,CAAM,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,SAAS,CAAA;AAEhE,EAAA,uBACEC,KAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,yBAAA,EAA2B,SAAS,CAAA,EAAG,YAAA,EAAW,UAAA,EACnE,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wCAAA,EAAyC,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,MAC9C,UAAA,GAAa,CAAA;AAAA,MAAE,MAAA;AAAA,MAAK,KAAA,CAAM;AAAA,KAAA,EAClC,CAAA;AAAA,oBACAD,GAAAA,CAAC,IAAA,EAAA,EAAG,IAAA,EAAK,QAAO,SAAA,EAAU,yBAAA,EACvB,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChBA,GAAAA,CAAC,QACC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,KAAK,IAAA,IAAQ,GAAA;AAAA,QACnB,OAAA,EAAS,CAAC,IAAA,CAAK,IAAA,GAAO,CAAC,CAAA,KAAM,CAAA,CAAE,gBAAe,GAAI,MAAA;AAAA,QAClD,SAAA,EAAU,OAAA;AAAA,QAET,QAAA,EAAA,IAAA,CAAK,MAAA,KAAW,UAAA,mBACfA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,0FAAA;AAAA,YACV,YAAA,EAAY,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,WAAA;AAAA;AAAA,SAC1B,GACE,IAAA,CAAK,MAAA,KAAW,SAAA,mBAClBC,IAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,kDAAA;AAAA,YACV,cAAA,EAAa,MAAA;AAAA,YACb,YAAA,EAAY,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,cAAA,CAAA;AAAA,YAExB,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EAAmD,CAAA;AAAA,8BACnEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EAAkD;AAAA;AAAA;AAAA,4BAGpEA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,uEAAA;AAAA,YACV,YAAA,EAAY,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,UAAA;AAAA;AAAA;AAC1B;AAAA,KAEJ,EAAA,EA1BO,IAAA,CAAK,EAAA,IAAM,CA2BpB,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAGA,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,SAAA,EAAU,EAA0C;AAClF,EAAA,MAAM,aAAA,GAAgB,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,UAAU,CAAA,CAAE,MAAA;AACnE,EAAA,MAAM,aAAa,KAAA,CAAM,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,SAAS,CAAA;AAChE,EAAA,MAAM,YAAa,aAAA,IAAiB,UAAA,IAAc,IAAI,GAAA,GAAM,CAAA,CAAA,IAAM,MAAM,MAAA,GAAU,GAAA;AAElF,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EAEpC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oDAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,kEAAA;AAAA,QACV,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAA;AAAI;AAAA,KACjC,EACF,CAAA;AAAA,oBAEAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EAAY,OAAO,EAAE,mBAAA,EAAqB,CAAA,OAAA,EAAU,KAAA,CAAM,MAAM,CAAA,MAAA,CAAA,EAAS,EACrF,gBAAM,GAAA,CAAI,CAAC,MAAM,CAAA,KAAM;AACtB,MAAA,MAAM,MAAA,GAAS,CAAA,KAAM,KAAA,CAAM,MAAA,GAAS,CAAA;AACpC,MAAA,uBACEA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAW,EAAA;AAAA,YACT,qBAAA;AAAA,YACA,CAAA,KAAM,CAAA,GAAI,WAAA,GAAc,MAAA,GAAS,YAAA,GAAe,aAAA;AAAA,YAChD,IAAA,CAAK,MAAA,KAAW,UAAA,GAAa,uBAAA,GAA0B;AAAA,WACzD;AAAA,UAEC,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QAPD,KAAK,EAAA,IAAM;AAAA,OAQlB;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAGA,SAAS,MAAM,EAAE,KAAA,EAAO,OAAA,GAAU,SAAA,EAAW,WAAU,EAAe;AACpE,EAAA,MAAM,gBAAgB,SAAA,KAAc,MAAA,GAAY,EAAE,SAAA,KAAc,EAAC;AACjE,EAAA,IAAI,OAAA,KAAY,WAAW,uBAAOA,IAAC,YAAA,EAAA,EAAa,KAAA,EAAe,GAAG,aAAA,EAAe,CAAA;AACjF,EAAA,IAAI,OAAA,KAAY,YAAY,uBAAOA,IAAC,aAAA,EAAA,EAAc,KAAA,EAAe,GAAG,aAAA,EAAe,CAAA;AACnF,EAAA,uBAAOA,GAAAA,CAAC,YAAA,EAAA,EAAa,KAAA,EAAe,GAAG,aAAA,EAAe,CAAA;AACxD;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AC7KpB,IAAM,UAAA,GAAmBoE,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BpE,GAAAA;AAAA,EAAC,MAAA,CAAO,IAAA;AAAA,EAAP;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,4EAAA;AAAA,MACA,+CAAA;AAAA,MACA,qFAAA;AAAA,MACA,iDAAA;AAAA,MACA,uEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA;AAAA,MAAC,MAAA,CAAO,KAAA;AAAA,MAAP;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,sEAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF;AACF,CACD;AACD,UAAA,CAAW,WAAA,GAAc,QAAA;ACxBzB,IAAM,QAAA,GAAiBqE,mBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrE,GAAAA,CAAC,KAAK,IAAA,EAAL,EAAU,KAAU,SAAA,EAAW,EAAA,CAAG,UAAU,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CACrE;AACD,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,IAAM,QAAA,GAAiBqE,mBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrE,GAAAA;AAAA,EAAC,IAAA,CAAK,IAAA;AAAA,EAAL;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8DAAA,EAAgE,SAAS,CAAA;AAAA,IACtF,GAAG;AAAA;AACN,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,WAAA,GAAoBqE,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrE,GAAAA;AAAA,EAAC,IAAA,CAAK,OAAA;AAAA,EAAL;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oDAAA;AAAA,MACA,sCAAA;AAAA,MACA,kCAAA;AAAA,MACA,iFAAA;AAAA,MACA,qFAAA;AAAA,MACA,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,WAAA,GAAoBqE,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrE,GAAAA,CAAC,KAAK,OAAA,EAAL,EAAa,KAAU,SAAA,EAAW,EAAA,CAAG,QAAQ,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CACtE;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;ACjD1B,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqC;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4EAAA;AAAA,QACA,wDAAA;AAAA,QACA,4CAAA;AAAA,QACA,wGAAA;AAAA,QACA,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACXA,IAAM,cAAA,GAAiBG,GAAAA;AAAA,EACrB;AAAA,IACE,wDAAA;AAAA,IACA,+CAAA;AAAA,IACA,0CAAA;AAAA,IACA,sFAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS;AAAA,UACP,sCAAA;AAAA,UACA,sCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,OAAA,EAAS;AAAA,UACP,mEAAA;AAAA,UACA,sCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,sCAAA;AAAA,UACA,sCAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,OAAA,EAAS,UAAA;AAAA,QACT,EAAA,EAAI,WAAA;AAAA,QACJ,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EAAW,QAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAKA,IAAM,UAAA,GAAmBmE,OAAA,CAAA,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,MAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBACvCtE,GAAAA;AAAA,IAAC,MAAA,CAAO,IAAA;AAAA,IAAP;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,QAAA;ACvDzB,IAAM,qBAA2BuE,OAAA,CAAA,aAAA,CAAmD;AAAA,EAClF,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC,CAAA;AAED,IAAM,eAAA,GAAwBA,OAAA,CAAA,UAAA,CAG5B,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnDvE,GAAAA;AAAA,EAAC,WAAA,CAAY,IAAA;AAAA,EAAZ;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,IACxD,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAO,EAAE,OAAA,EAAS,IAAA,EAAK,EAAI,QAAA,EAAS;AAAA;AACnE,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,aAAA;AAE9B,IAAM,eAAA,GAAwBuE,OAAA,CAAA,UAAA,CAG5B,CAAC,EAAE,SAAA,EAAW,SAAS,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACjD,EAAA,MAAM,OAAA,GAAgBA,mBAAW,kBAAkB,CAAA;AACnD,EAAA,uBACEvE,GAAAA;AAAA,IAAC,WAAA,CAAY,IAAA;AAAA,IAAZ;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,cAAA,CAAe;AAAA,UACb,OAAA,EAAS,WAAW,OAAA,CAAQ,OAAA;AAAA,UAC5B,IAAA,EAAM,QAAQ,OAAA,CAAQ;AAAA,SACvB,CAAA;AAAA,QACD;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Accordion } from \"radix-ui\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst AccordionRoot = React.forwardRef<\n React.ComponentRef<typeof Accordion.Root>,\n React.ComponentPropsWithoutRef<typeof Accordion.Root>\n>(({ className, ...props }, ref) => (\n <Accordion.Root ref={ref} className={cn(\"divide-y divide-border\", className)} {...props} />\n));\nAccordionRoot.displayName = \"Accordion\";\n\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof Accordion.Item>,\n React.ComponentPropsWithoutRef<typeof Accordion.Item>\n>(({ className, ...props }, ref) => (\n <Accordion.Item ref={ref} className={cn(\"\", className)} {...props} />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof Accordion.Trigger>,\n React.ComponentPropsWithoutRef<typeof Accordion.Trigger>\n>(({ className, children, ...props }, ref) => (\n <Accordion.Header className=\"flex\">\n <Accordion.Trigger\n ref={ref}\n className={cn(\n \"flex w-full items-center justify-between py-4\",\n \"body font-medium text-foreground transition-colors hover:text-muted-foreground\",\n \"[&[data-state=open]>svg]:rotate-180\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/20\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={16}\n className=\"text-muted-foreground transition-transform duration-200 shrink-0\"\n />\n </Accordion.Trigger>\n </Accordion.Header>\n));\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof Accordion.Content>,\n React.ComponentPropsWithoutRef<typeof Accordion.Content>\n>(({ className, children, ...props }, ref) => (\n <Accordion.Content\n ref={ref}\n className={cn(\n \"overflow-hidden body text-muted-foreground\",\n \"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\",\n className,\n )}\n {...props}\n >\n <div className=\"pb-4\">{children}</div>\n </Accordion.Content>\n));\nAccordionContent.displayName = \"AccordionContent\";\n\nexport { AccordionRoot as Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex shrink-0 items-center justify-center gap-2\",\n \"body font-medium whitespace-nowrap\",\n \"transition-all duration-150 outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80\",\n outline: \"bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl\",\n secondary: \"bg-muted text-muted-foreground hover:bg-muted\",\n brand:\n \"bg-brand-secondary text-foreground hover:bg-brand-secondary/90 active:bg-brand-secondary/80\",\n ghost: \"text-muted-foreground hover:bg-muted hover:text-foreground\",\n link: \"text-foreground underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 rounded-md\",\n xs: \"h-6 gap-1 px-2 caption rounded-md\",\n sm: \"h-8 gap-1.5 px-3 rounded-md\",\n lg: \"h-10 px-6 rounded-md\",\n icon: \"size-9 rounded-md\",\n \"icon-xs\": \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8 rounded-md\",\n \"icon-lg\": \"size-10 rounded-md\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\ninterface ButtonProps extends React.ComponentProps<\"button\">, VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nfunction Button({ className, variant, size, asChild = false, ...props }: ButtonProps) {\n const Comp = asChild ? Slot.Root : \"button\";\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface ActionPanelAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"destructive\" | \"outline\" | \"ghost\";\n}\n\ninterface ActionPanelLink {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\ninterface ActionPanelProps {\n title: string;\n description?: string;\n action?: ActionPanelAction;\n actions?: ActionPanelAction[];\n link?: ActionPanelLink;\n variant?: \"default\" | \"muted\";\n layout?: \"stacked\" | \"inline\";\n children?: React.ReactNode;\n className?: string;\n}\n\nfunction ActionPanel({\n title,\n description,\n action,\n actions,\n link,\n variant = \"default\",\n layout = \"stacked\",\n children,\n className,\n}: ActionPanelProps) {\n const allActions = actions ?? (action ? [action] : []);\n\n const renderActions = () => {\n if (allActions.length === 0 && !link) return null;\n return (\n <div className=\"flex items-center gap-2\">\n {link &&\n (link.href ? (\n <a\n href={link.href}\n className=\"body font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1\"\n >\n {link.label} <span aria-hidden>→</span>\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={link.onClick}\n className=\"body font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1\"\n >\n {link.label} <span aria-hidden>→</span>\n </button>\n ))}\n {allActions.map((a, i) =>\n a.href ? (\n <Button key={i} size=\"sm\" variant={a.variant ?? \"default\"} asChild>\n <a href={a.href}>{a.label}</a>\n </Button>\n ) : (\n <Button key={i} size=\"sm\" variant={a.variant ?? \"default\"} onClick={a.onClick}>\n {a.label}\n </Button>\n ),\n )}\n </div>\n );\n };\n\n return (\n <div\n className={cn(\n \"rounded-xl border px-5 py-5\",\n variant === \"muted\"\n ? \"border-border bg-muted\"\n : \"border-border bg-card shadow-natural\",\n layout === \"inline\" && \"flex items-center justify-between gap-6\",\n className,\n )}\n >\n <div className={cn(\"min-w-0\", layout === \"inline\" ? \"flex-1\" : \"\")}>\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && (\n <p className={cn(\"body text-muted-foreground\", layout === \"stacked\" ? \"mt-1\" : \"\")}>\n {description}\n </p>\n )}\n {children && layout === \"stacked\" && <div className=\"mt-4\">{children}</div>}\n </div>\n\n {layout === \"stacked\" ? (\n (allActions.length > 0 || link) && <div className=\"mt-4\">{renderActions()}</div>\n ) : (\n <div className=\"shrink-0 flex items-center gap-3\">\n {children}\n {renderActions()}\n </div>\n )}\n </div>\n );\n}\n\nActionPanel.displayName = \"ActionPanel\";\n\nexport { ActionPanel };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface FeedEvent {\n id?: string | number;\n content: React.ReactNode;\n date?: string;\n datetime?: string;\n icon?: React.ReactNode;\n iconBgClass?: string;\n}\n\ninterface ActivityFeedProps {\n events: FeedEvent[];\n className?: string;\n}\n\nfunction ActivityFeed({ events, className }: ActivityFeedProps) {\n return (\n <div className={cn(\"flow-root\", className)}>\n <ul role=\"list\" className=\"-mb-8\">\n {events.map((event, i) => {\n const isLast = i === events.length - 1;\n return (\n <li key={event.id ?? i}>\n <div className=\"relative pb-8\">\n {!isLast && (\n <span\n className=\"absolute top-4 left-4 -ml-px h-full w-0.5 bg-muted\"\n aria-hidden=\"true\"\n />\n )}\n <div className=\"relative flex gap-3\">\n {/* Icon */}\n <div>\n <span\n className={cn(\n \"flex size-8 items-center justify-center rounded-full ring-8 ring-background\",\n event.iconBgClass ?? \"bg-muted text-muted-foreground\",\n )}\n >\n {event.icon}\n </span>\n </div>\n\n {/* Content */}\n <div className=\"flex min-w-0 flex-1 items-baseline justify-between gap-4 pt-1\">\n <div className=\"body text-muted-foreground\">{event.content}</div>\n {event.date && (\n <time\n dateTime={event.datetime ?? event.date}\n className=\"caption whitespace-nowrap text-muted-foreground\"\n >\n {event.date}\n </time>\n )}\n </div>\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n\nActivityFeed.displayName = \"ActivityFeed\";\n\nexport { ActivityFeed };\nexport type { FeedEvent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AlertDialog } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst AlertDialogRoot = AlertDialog.Root;\nconst AlertDialogTrigger = AlertDialog.Trigger;\nconst AlertDialogPortal = AlertDialog.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/30 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = \"AlertDialogOverlay\";\n\nconst AlertDialogContent = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Content>\n>(({ className, children, ...props }, ref) => (\n <AlertDialog.Portal>\n <AlertDialogOverlay />\n <AlertDialog.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%]\",\n \"w-full max-w-md bg-card rounded-2xl shadow-elevated p-6\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n >\n {children}\n </AlertDialog.Content>\n </AlertDialog.Portal>\n));\nAlertDialogContent.displayName = \"AlertDialogContent\";\n\nfunction AlertDialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1.5 mb-5\", className)} {...props} />;\n}\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nfunction AlertDialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex items-center justify-end gap-2 mt-6\", className)} {...props} />;\n}\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Title\n ref={ref}\n className={cn(\"body-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = \"AlertDialogTitle\";\n\nconst AlertDialogDescription = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Description ref={ref} className={cn(\"body text-muted-foreground\", className)} {...props} />\n));\nAlertDialogDescription.displayName = \"AlertDialogDescription\";\n\nconst AlertDialogAction = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Action\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-md px-4\",\n \"body font-medium whitespace-nowrap transition-all duration-150\",\n \"bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogAction.displayName = \"AlertDialogAction\";\n\nconst AlertDialogCancel = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Cancel\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-md px-4\",\n \"body font-medium whitespace-nowrap transition-all duration-150\",\n \"bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = \"AlertDialogCancel\";\n\nexport {\n AlertDialogRoot as AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\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-xl px-4 py-3.5 body [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-3.5 [&>svg~*]:pl-6\",\n {\n variants: {\n variant: {\n default: \"bg-muted text-muted-foreground [&>svg]:text-muted-foreground\",\n info: \"bg-brand-secondary/40 text-muted-foreground [&>svg]:text-muted-foreground\",\n success: \"bg-brand-secondary/15 text-muted-foreground [&>svg]:text-muted-foreground\",\n warning: \"bg-brand-secondary/70 text-muted-foreground [&>svg]:text-muted-foreground\",\n destructive: \"bg-destructive/10 text-destructive [&>svg]:text-destructive/70\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\ninterface AlertProps extends React.ComponentProps<\"div\">, VariantProps<typeof alertVariants> {}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n ),\n);\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"mb-0.5 body font-semibold leading-tight\", className)} {...props} />\n ),\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"body opacity-90\", className)} {...props} />\n ),\n);\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AspectRatio } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst AspectRatioRoot = React.forwardRef<\n React.ComponentRef<typeof AspectRatio.Root>,\n React.ComponentPropsWithoutRef<typeof AspectRatio.Root>\n>(({ className, ...props }, ref) => (\n <AspectRatio.Root\n ref={ref}\n className={cn(\"relative w-full overflow-hidden\", className)}\n {...props}\n />\n));\nAspectRatioRoot.displayName = \"AspectRatio\";\n\nexport { AspectRatioRoot as AspectRatio };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nexport interface AvatarStackItem {\n src?: string;\n name: string;\n fallback?: string;\n colorClass?: string;\n}\n\ninterface AvatarStackProps {\n avatars: AvatarStackItem[];\n max?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizeMap = {\n sm: { wrapper: \"size-6 ring-[1.5px]\", text: \"caption-xs\" },\n md: { wrapper: \"size-8 ring-2\", text: \"caption\" },\n lg: { wrapper: \"size-10 ring-2\", text: \"body\" },\n};\n\nfunction AvatarStack({ avatars, max, size = \"md\", className }: AvatarStackProps) {\n const shown = max ? avatars.slice(0, max) : avatars;\n const overflow = max && avatars.length > max ? avatars.length - max : 0;\n const s = sizeMap[size];\n\n return (\n <div className={cn(\"flex -space-x-2\", className)}>\n {shown.map((avatar, i) => (\n <span\n key={i}\n title={avatar.name}\n className={cn(\n \"relative inline-flex shrink-0 overflow-hidden rounded-full ring-background\",\n s.wrapper,\n )}\n >\n {avatar.src ? (\n <img src={avatar.src} alt={avatar.name} className=\"size-full object-cover\" />\n ) : (\n <span\n className={cn(\n \"flex size-full items-center justify-center font-medium\",\n s.text,\n avatar.colorClass ?? \"bg-muted text-muted-foreground\",\n )}\n >\n {avatar.fallback ?? avatar.name.slice(0, 2).toUpperCase()}\n </span>\n )}\n </span>\n ))}\n {overflow > 0 && (\n <span\n className={cn(\n \"relative inline-flex shrink-0 items-center justify-center rounded-full ring-background bg-muted font-medium text-muted-foreground\",\n s.wrapper,\n s.text,\n )}\n >\n +{overflow}\n </span>\n )}\n </div>\n );\n}\n\nexport { AvatarStack };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst sizeMap = {\n xs: \"size-5 caption-xs\",\n sm: \"size-7 caption\",\n md: \"size-8 body\",\n lg: \"size-10 body-lg\",\n xl: \"size-12 subheading\",\n} as const;\n\ntype AvatarSize = keyof typeof sizeMap;\n\ninterface AvatarProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> {\n size?: AvatarSize;\n}\n\nconst Avatar = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Root>, AvatarProps>(\n ({ className, size = \"md\", ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex shrink-0 overflow-hidden rounded-full\",\n sizeMap[size],\n className,\n )}\n {...props}\n />\n ),\n);\nAvatar.displayName = \"Avatar\";\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<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 object-cover\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = \"AvatarImage\";\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<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-muted body font-semibold text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = \"AvatarFallback\";\n\nconst statusColorMap = {\n online: \"bg-brand-secondary\",\n offline: \"bg-muted\",\n busy: \"bg-destructive\",\n away: \"bg-brand-secondary\",\n};\n\nconst statusSizeMap = {\n xs: \"size-1.5 ring-1\",\n sm: \"size-2 ring-1\",\n md: \"size-2.5 ring-[1.5px]\",\n lg: \"size-3 ring-2\",\n xl: \"size-3.5 ring-2\",\n};\n\ninterface AvatarWithStatusProps extends AvatarProps {\n status?: keyof typeof statusColorMap;\n}\n\nconst AvatarWithStatus = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarWithStatusProps & { children?: React.ReactNode }\n>(({ status, size = \"md\", className, children, ...props }, ref) => (\n <div className=\"relative inline-flex shrink-0\">\n <Avatar ref={ref} size={size} className={className} {...props}>\n {children}\n </Avatar>\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 right-0 rounded-full ring-background\",\n statusColorMap[status],\n statusSizeMap[size],\n )}\n />\n )}\n </div>\n));\nAvatarWithStatus.displayName = \"AvatarWithStatus\";\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarWithStatus };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 caption font-medium transition-colors\",\n {\n variants: {\n variant: {\n default: \"bg-foreground text-background\",\n secondary: \"bg-muted text-muted-foreground\",\n outline: \"border border-border text-muted-foreground bg-transparent\",\n brand: \"bg-brand-primary text-background\",\n success: \"bg-brand-secondary/20 text-muted-foreground border border-brand-secondary/50\",\n warning: \"bg-brand-secondary/70 text-muted-foreground border border-brand-secondary\",\n destructive: \"bg-destructive/10 text-destructive border border-destructive/20\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\ninterface BadgeProps extends React.ComponentProps<\"span\">, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <span data-slot=\"badge\" className={cn(badgeVariants({ variant, className }))} {...props} />\n );\n}\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"nav\"> & { separator?: React.ReactNode }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentProps<\"ol\">>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\"flex flex-wrap items-center gap-1.5 body text-muted-foreground\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, React.ComponentProps<\"a\">>(\n ({ className, ...props }, ref) => (\n <a ref={ref} className={cn(\"transition-colors hover:text-foreground\", className)} {...props} />\n ),\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentProps<\"span\">>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-current=\"page\"\n className={cn(\"body font-medium text-foreground\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn(\"text-muted-foreground\", className)} {...props}>\n {children ?? <ChevronRight size={14} />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal size={14} className=\"text-muted-foreground\" />\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface ButtonGroupProps {\n children: React.ReactNode;\n className?: string;\n}\n\nfunction ButtonGroup({ children, className }: ButtonGroupProps) {\n return (\n <div\n className={cn(\n \"inline-flex divide-x divide-border overflow-hidden rounded-lg border border-border bg-card shadow-natural\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\ninterface ButtonGroupItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n active?: boolean;\n}\n\nfunction ButtonGroupItem({ active, className, children, ...props }: ButtonGroupItemProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"relative inline-flex items-center gap-1.5 px-3.5 py-2 body font-medium transition-colors\",\n \"focus:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:ring-inset\",\n active\n ? \"bg-foreground text-background\"\n : \"text-muted-foreground hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nButtonGroup.displayName = \"ButtonGroup\";\nButtonGroupItem.displayName = \"ButtonGroupItem\";\n\nexport { ButtonGroup, ButtonGroupItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DayPicker } from \"react-day-picker\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row gap-4\",\n month: \"flex flex-col gap-4\",\n month_caption: \"flex justify-center pt-1 relative items-center px-10\",\n caption_label: \"body font-semibold text-foreground\",\n nav: \"flex items-center justify-between absolute inset-x-0 top-1\",\n button_previous: cn(\n \"absolute left-0 h-7 w-7 flex items-center justify-center rounded-md\",\n \"text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors\",\n ),\n button_next: cn(\n \"absolute right-0 h-7 w-7 flex items-center justify-center rounded-md\",\n \"text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors\",\n ),\n month_grid: \"w-full border-collapse mt-1\",\n weekdays: \"flex\",\n weekday: \"w-9 h-9 flex items-center justify-center label text-muted-foreground font-normal\",\n week: \"flex w-full mt-1\",\n day: \"relative p-0 text-center\",\n day_button: cn(\n \"h-9 w-9 flex items-center justify-center rounded-full body font-normal\",\n \"text-foreground hover:bg-muted transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n ),\n selected:\n \"[&>button]:bg-brand-primary [&>button]:text-background [&>button]:hover:bg-brand-primary/90\",\n today: \"[&>button]:font-semibold [&>button]:text-brand-primary\",\n outside: \"opacity-40 [&>button]:text-muted-foreground\",\n disabled: \"opacity-30 [&>button]:cursor-not-allowed\",\n range_start: \"[&>button]:bg-brand-primary [&>button]:text-background [&>button]:rounded-full\",\n range_end: \"[&>button]:bg-brand-primary [&>button]:text-background [&>button]:rounded-full\",\n range_middle:\n \"[&>button]:bg-brand-primary/15 [&>button]:text-foreground [&>button]:rounded-none\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) =>\n orientation === \"left\" ? <ChevronLeft size={14} /> : <ChevronRight size={14} />,\n }}\n {...props}\n />\n );\n}\nCalendar.displayName = \"Calendar\";\n\nexport { Calendar };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface CardHeadingAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"outline\" | \"ghost\" | \"destructive\";\n}\n\ninterface CardHeadingProps {\n title: string;\n description?: string;\n actions?: CardHeadingAction[];\n children?: React.ReactNode; // e.g. avatar or icon on the left\n className?: string;\n}\n\nfunction CardHeading({ title, description, actions, children, className }: CardHeadingProps) {\n return (\n <div\n className={cn(\n \"flex items-start justify-between gap-4 border-b border-border px-5 py-4\",\n className,\n )}\n >\n <div className=\"flex min-w-0 items-center gap-3\">\n {children}\n <div className=\"min-w-0\">\n <p className=\"body font-semibold text-foreground truncate\">{title}</p>\n {description && <p className=\"caption text-muted-foreground mt-0.5\">{description}</p>}\n </div>\n </div>\n\n {actions && actions.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-2\">\n {actions.map((action, i) =>\n action.href ? (\n <Button key={i} size=\"sm\" variant={action.variant ?? \"default\"} asChild>\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button\n key={i}\n size=\"sm\"\n variant={action.variant ?? \"default\"}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport { CardHeading };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\n/* ------------------------------------------------------------------ */\n/* Card root */\n/* ------------------------------------------------------------------ */\n\nconst cardVariants = cva(\"rounded-xl\", {\n variants: {\n variant: {\n default: \"bg-card shadow-natural\",\n muted: \"bg-muted\",\n ghost: \"bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ninterface CardProps extends React.ComponentProps<\"div\">, VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card\"\n className={cn(cardVariants({ variant }), className)}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\n/* ------------------------------------------------------------------ */\n/* Card sub-components */\n/* ------------------------------------------------------------------ */\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-header\"\n className={cn(\"flex flex-col gap-1.5 p-5\", className)}\n {...props}\n />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.ComponentProps<\"h3\">>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n data-slot=\"card-title\"\n className={cn(\"subheading text-foreground\", className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"card-description\"\n className={cn(\"caption text-muted-foreground\", className)}\n {...props}\n />\n ),\n);\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"card-content\" className={cn(\"p-5 pt-0\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-footer\"\n className={cn(\"flex items-center p-5 pt-0\", className)}\n {...props}\n />\n ),\n);\nCardFooter.displayName = \"CardFooter\";\n\n/* ------------------------------------------------------------------ */\n/* CardMedia — full-bleed image/gradient header */\n/* ------------------------------------------------------------------ */\n\nconst CardMedia = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-media\"\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n />\n ),\n);\nCardMedia.displayName = \"CardMedia\";\n\nexport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardMedia,\n cardVariants,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n if (!context) throw new Error(\"useCarousel must be used within a <Carousel />\");\n return context;\n}\n\nfunction Carousel({\n opts,\n plugins,\n orientation = \"horizontal\",\n setApi,\n className,\n children,\n ...props\n}: CarouselProps & React.ComponentProps<\"div\">) {\n const [carouselRef, emblaApi] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"vertical\" ? \"y\" : \"x\",\n },\n plugins,\n );\n\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n emblaApi?.scrollPrev();\n }, [emblaApi]);\n\n const scrollNext = React.useCallback(() => {\n emblaApi?.scrollNext();\n }, [emblaApi]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!emblaApi) return;\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n return () => {\n emblaApi.off(\"reInit\", onSelect);\n emblaApi.off(\"select\", onSelect);\n };\n }, [emblaApi, onSelect]);\n\n React.useEffect(() => {\n if (!emblaApi || !setApi) return;\n setApi(emblaApi);\n }, [emblaApi, setApi]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: emblaApi,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n className={cn(\"flex\", orientation === \"vertical\" ? \"-mt-4 flex-col\" : \"-ml-4\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"vertical\" ? \"pt-4\" : \"pl-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-9 w-9 rounded-full\",\n orientation === \"vertical\"\n ? \"-top-12 left-1/2 -translate-x-1/2 rotate-90\"\n : \"-left-12 top-1/2 -translate-y-1/2\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"size-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-9 w-9 rounded-full\",\n orientation === \"vertical\"\n ? \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\"\n : \"-right-12 top-1/2 -translate-y-1/2\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"size-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ResponsiveContainer, type TooltipContentProps } from \"recharts\";\nimport { cn } from \"../lib/utils\";\nimport { tokens } from \"../tokens/tokens\";\n\nexport const CHART_COLORS = {\n primary: tokens.semantic.light.primary,\n secondary: tokens.semantic.light.success,\n tertiary: tokens.semantic.light.warning,\n muted: tokens.semantic.light.mutedForeground,\n subtle: tokens.semantic.light.border,\n dark: tokens.semantic.light.foreground,\n};\n\ninterface ChartContainerProps {\n children: React.ReactNode;\n className?: string;\n height?: number;\n}\n\nfunction ChartContainer({ children, className, height = 300 }: ChartContainerProps) {\n return (\n <div className={cn(\"w-full\", className)}>\n <ResponsiveContainer width=\"100%\" height={height}>\n {children as React.ReactElement}\n </ResponsiveContainer>\n </div>\n );\n}\nChartContainer.displayName = \"ChartContainer\";\n\n// Custom tooltip component styled to match the design system\ninterface ChartTooltipProps extends Partial<TooltipContentProps<number, string>> {\n labelClassName?: string;\n}\n\nfunction ChartTooltip({ active, payload, label, labelClassName }: ChartTooltipProps) {\n if (!active || !payload?.length) return null;\n return (\n <div className=\"rounded-xl border border-border bg-card px-3 py-2 shadow-elevated\">\n {label && <p className={cn(\"mb-1 label text-muted-foreground\", labelClassName)}>{label}</p>}\n {payload.map((entry, i) => (\n <div key={i} className=\"flex items-center gap-2\">\n <span\n className=\"inline-block h-2 w-2 rounded-full\"\n style={{ backgroundColor: entry.color }}\n />\n <span className=\"caption text-muted-foreground\">{entry.name}:</span>\n <span className=\"caption font-medium text-foreground\">{entry.value}</span>\n </div>\n ))}\n </div>\n );\n}\nChartTooltip.displayName = \"ChartTooltip\";\n\nexport { ChartContainer, ChartTooltip };\n\nexport {\n BarChart,\n Bar,\n LineChart,\n Line,\n AreaChart,\n Area,\n PieChart,\n Pie,\n Cell,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip as RechartsTooltip,\n Legend,\n type TooltipProps as RechartsTooltipProps,\n} from \"recharts\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Checkbox } from \"radix-ui\";\nimport { Check, Minus } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst CheckboxRoot = React.forwardRef<\n React.ComponentRef<typeof Checkbox.Root>,\n React.ComponentPropsWithoutRef<typeof Checkbox.Root>\n>(({ className, ...props }, ref) => (\n <Checkbox.Root\n ref={ref}\n className={cn(\n \"peer size-4 shrink-0 rounded border border-border bg-card transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-brand-primary data-[state=checked]:border-brand-primary\",\n \"data-[state=indeterminate]:bg-brand-primary data-[state=indeterminate]:border-brand-primary\",\n className,\n )}\n {...props}\n >\n <Checkbox.Indicator className=\"flex items-center justify-center text-background\">\n {props.checked === \"indeterminate\" ? (\n <Minus size={11} strokeWidth={3} />\n ) : (\n <Check size={11} strokeWidth={3} />\n )}\n </Checkbox.Indicator>\n </Checkbox.Root>\n));\nCheckboxRoot.displayName = \"Checkbox\";\n\nexport { CheckboxRoot as Checkbox };\n","\"use client\";\n\nimport { Collapsible } from \"radix-ui\";\n\nconst CollapsibleRoot = Collapsible.Root;\nconst CollapsibleTrigger = Collapsible.Trigger;\nconst CollapsibleContent = Collapsible.Content;\n\nexport { CollapsibleRoot as Collapsible, CollapsibleTrigger, CollapsibleContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Popover } from \"radix-ui\";\n\ninterface ColorPickerProps {\n value: string;\n onChange: (next: string) => void;\n className?: string;\n disabled?: boolean;\n /** Optional preset palette shown above the picker. */\n presets?: string[];\n /** Accessible label for the trigger. */\n ariaLabel?: string;\n}\n\nfunction isValidHex(s: string): boolean {\n return /^#([0-9a-fA-F]{3}){1,2}$/.test(s);\n}\n\nfunction ColorPicker({\n value,\n onChange,\n className,\n disabled,\n presets,\n ariaLabel = \"Color\",\n}: ColorPickerProps) {\n const [hex, setHex] = React.useState(value);\n\n React.useEffect(() => {\n setHex(value);\n }, [value]);\n\n const commit = (next: string) => {\n if (isValidHex(next)) onChange(next);\n };\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n aria-label={ariaLabel}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-md border border-border bg-card\",\n \"transition-colors hover:border-border\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n >\n <span\n aria-hidden\n className=\"h-5 w-5 rounded-sm border border-black/5\"\n style={{ backgroundColor: value }}\n />\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n align=\"start\"\n sideOffset={6}\n className=\"z-50 w-56 rounded-xl bg-card p-3 shadow-natural outline-none\"\n >\n <input\n type=\"color\"\n value={isValidHex(hex) ? hex : \"#000000\"}\n onChange={(e) => {\n setHex(e.target.value);\n onChange(e.target.value);\n }}\n className=\"h-10 w-full cursor-pointer rounded-md border border-border bg-card p-0.5\"\n />\n <div className=\"mt-2 flex items-center gap-2\">\n <span className=\"caption text-muted-foreground\">Hex</span>\n <input\n type=\"text\"\n value={hex}\n onChange={(e) => setHex(e.target.value)}\n onBlur={(e) => commit(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") commit((e.target as HTMLInputElement).value);\n }}\n className=\"flex-1 h-7 rounded-md border border-border bg-card px-2 caption text-foreground focus:outline-none focus:border-brand-primary\"\n />\n </div>\n {presets && presets.length > 0 && (\n <div className=\"mt-3 grid grid-cols-8 gap-1.5\">\n {presets.map((p) => (\n <button\n key={p}\n type=\"button\"\n onClick={() => onChange(p)}\n aria-label={p}\n className=\"h-5 w-5 rounded-sm border border-black/10 transition-transform hover:scale-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\"\n style={{ backgroundColor: p }}\n />\n ))}\n </div>\n )}\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n\nColorPicker.displayName = \"ColorPicker\";\n\nexport { ColorPicker };\nexport type { ColorPickerProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { ColorPicker } from \"./color-picker\";\n\ninterface ColorInputProps {\n value: string;\n onChange: (next: string) => void;\n /** Show an opacity slider (0–100). Pass `opacity` and `onOpacityChange`. */\n opacity?: number;\n onOpacityChange?: (next: number) => void;\n className?: string;\n disabled?: boolean;\n presets?: string[];\n}\n\n/**\n * Compact, inline color input designed for designer property panels.\n * Combines a swatch trigger (ColorPicker), a hex input, and an optional opacity field.\n */\nfunction ColorInput({\n value,\n onChange,\n opacity,\n onOpacityChange,\n className,\n disabled,\n presets,\n}: ColorInputProps) {\n const [hex, setHex] = React.useState(value);\n\n React.useEffect(() => {\n setHex(value);\n }, [value]);\n\n const commitHex = (next: string) => {\n if (/^#([0-9a-fA-F]{3}){1,2}$/.test(next)) onChange(next);\n else setHex(value);\n };\n\n return (\n <div\n className={cn(\n \"inline-flex h-8 items-stretch gap-0 rounded-md border border-border bg-card overflow-hidden\",\n \"focus-within:ring-2 focus-within:ring-brand-primary/20 focus-within:border-brand-primary\",\n disabled && \"opacity-50 pointer-events-none\",\n className,\n )}\n >\n <ColorPicker\n value={value}\n onChange={onChange}\n {...(presets !== undefined && { presets })}\n {...(disabled !== undefined && { disabled })}\n className=\"h-full w-8 border-0 rounded-none focus-visible:ring-0\"\n />\n <input\n type=\"text\"\n value={hex.replace(/^#/, \"\")}\n onChange={(e) => setHex(\"#\" + e.target.value.replace(/^#/, \"\"))}\n onBlur={(e) => commitHex(\"#\" + e.target.value.replace(/^#/, \"\"))}\n onKeyDown={(e) => {\n if (e.key === \"Enter\")\n commitHex(\"#\" + (e.target as HTMLInputElement).value.replace(/^#/, \"\"));\n }}\n spellCheck={false}\n className=\"w-[5.5rem] caption text-foreground px-2 bg-transparent border-l border-border focus:outline-none uppercase\"\n />\n {typeof opacity === \"number\" && onOpacityChange && (\n <div className=\"relative flex items-center border-l border-border\">\n <input\n type=\"number\"\n min={0}\n max={100}\n value={Math.round(opacity)}\n onChange={(e) => onOpacityChange(Number(e.target.value))}\n className=\"w-12 caption text-foreground px-2 bg-transparent focus:outline-none text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\"\n />\n <span aria-hidden className=\"caption-xs text-muted-foreground pr-2\">\n %\n </span>\n </div>\n )}\n </div>\n );\n}\n\nColorInput.displayName = \"ColorInput\";\n\nexport { ColorInput };\nexport type { ColorInputProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, ChevronsUpDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n description?: string;\n statusColor?: string;\n avatar?: string;\n}\n\ninterface ComboboxProps {\n options: ComboboxOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n}\n\nfunction Combobox({\n options,\n value,\n onValueChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Search...\",\n emptyText = \"No results found.\",\n className,\n}: ComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [query, setQuery] = React.useState(\"\");\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const listboxId = React.useId();\n\n const selectedOption = options.find((o) => o.value === value);\n\n const filtered =\n query === \"\"\n ? options\n : options.filter(\n (o) =>\n o.label.toLowerCase().includes(query.toLowerCase()) ||\n o.description?.toLowerCase().includes(query.toLowerCase()),\n );\n\n // Reset active index when the filtered list changes\n React.useEffect(() => {\n setActiveIndex(-1);\n }, [filtered.length, open]);\n\n // Close on outside click\n React.useEffect(() => {\n function onMouseDown(e: MouseEvent) {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setOpen(false);\n setQuery(\"\");\n }\n }\n document.addEventListener(\"mousedown\", onMouseDown);\n return () => document.removeEventListener(\"mousedown\", onMouseDown);\n }, []);\n\n function closeDropdown() {\n setOpen(false);\n setQuery(\"\");\n setActiveIndex(-1);\n }\n\n function selectOption(opt: ComboboxOption) {\n onValueChange?.(opt.value);\n closeDropdown();\n }\n\n function handleInputKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === \"Escape\") {\n closeDropdown();\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!open) { setOpen(true); return; }\n setActiveIndex((i) => Math.min(i + 1, filtered.length - 1));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (!open) { setOpen(true); return; }\n const target = activeIndex >= 0 ? filtered[activeIndex] : filtered[0];\n if (target) selectOption(target);\n } else if (e.key === \"Tab\") {\n closeDropdown();\n }\n }\n\n return (\n <div ref={containerRef} className={cn(\"relative\", className)}>\n {/* Trigger */}\n <div className=\"relative flex items-center\">\n {selectedOption?.avatar && !open && (\n <div className=\"pointer-events-none absolute left-2.5 flex size-5 items-center justify-center rounded-full bg-muted caption-xs font-semibold text-muted-foreground shrink-0\">\n {selectedOption.avatar}\n </div>\n )}\n {selectedOption?.statusColor && !open && (\n <div\n className=\"pointer-events-none absolute left-3 size-2 rounded-full shrink-0\"\n style={{ backgroundColor: selectedOption.statusColor }}\n />\n )}\n <input\n ref={inputRef}\n type=\"text\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={open ? listboxId : undefined}\n aria-activedescendant={open && activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : undefined}\n aria-autocomplete=\"list\"\n className={cn(\n \"flex h-9 w-full rounded-lg border border-border bg-card pr-8 body text-foreground\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:border-border\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n selectedOption?.avatar && !open\n ? \"pl-8\"\n : selectedOption?.statusColor && !open\n ? \"pl-7\"\n : \"pl-3\",\n )}\n placeholder={open ? searchPlaceholder : (selectedOption?.label ?? placeholder)}\n value={open ? query : (selectedOption?.label ?? \"\")}\n onChange={(e) => {\n setQuery(e.target.value);\n if (!open) setOpen(true);\n }}\n onFocus={() => {\n setOpen(true);\n setQuery(\"\");\n }}\n onKeyDown={handleInputKeyDown}\n />\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={open ? \"Close\" : \"Open\"}\n className=\"absolute inset-y-0 right-0 flex items-center px-2 text-muted-foreground hover:text-muted-foreground transition-colors\"\n onClick={() => {\n if (open) {\n closeDropdown();\n } else {\n setOpen(true);\n inputRef.current?.focus();\n }\n }}\n >\n <ChevronsUpDown size={14} />\n </button>\n </div>\n\n {/* Dropdown */}\n {open && (\n <div className=\"absolute z-50 mt-1 w-full overflow-hidden rounded-lg border border-border bg-card shadow-elevated\">\n <ul id={listboxId} role=\"listbox\" className=\"max-h-60 overflow-auto py-1\">\n {filtered.length === 0 ? (\n <li className=\"px-3 py-2 body text-muted-foreground\">{emptyText}</li>\n ) : (\n filtered.map((option, idx) => {\n const isSelected = option.value === value;\n const isActive = idx === activeIndex;\n return (\n <li\n key={option.value}\n id={`${listboxId}-option-${idx}`}\n role=\"option\"\n aria-selected={isSelected}\n className={cn(\n \"flex cursor-pointer select-none items-center gap-2.5 px-3 py-2 body transition-colors\",\n isSelected\n ? \"bg-brand-primary text-background\"\n : isActive\n ? \"bg-muted text-foreground\"\n : \"text-foreground hover:bg-muted\",\n )}\n onMouseDown={(e) => e.preventDefault()}\n onMouseEnter={() => setActiveIndex(idx)}\n onClick={() => selectOption(option)}\n >\n {/* Avatar */}\n {option.avatar && (\n <div\n className={cn(\n \"flex size-6 shrink-0 items-center justify-center rounded-full caption-xs font-semibold\",\n isSelected ? \"bg-card/20 text-background\" : \"bg-muted text-muted-foreground\",\n )}\n >\n {option.avatar}\n </div>\n )}\n {/* Status dot */}\n {option.statusColor && !option.avatar && (\n <div\n className=\"size-2 shrink-0 rounded-full\"\n style={{ backgroundColor: option.statusColor }}\n />\n )}\n <div className=\"min-w-0 flex-1\">\n <p className={cn(\"truncate\", isSelected && \"font-semibold\")}>\n {option.label}\n </p>\n {option.description && (\n <p\n className={cn(\n \"caption truncate\",\n isSelected ? \"text-background/70\" : \"text-muted-foreground\",\n )}\n >\n {option.description}\n </p>\n )}\n </div>\n {isSelected && <Check size={14} className=\"shrink-0\" />}\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n );\n}\n\nCombobox.displayName = \"Combobox\";\n\nexport { Combobox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog } from \"radix-ui\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst DialogRoot = Dialog.Root;\nconst DialogTrigger = Dialog.Trigger;\nconst DialogClose = Dialog.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof Dialog.Overlay>,\n React.ComponentPropsWithoutRef<typeof Dialog.Overlay>\n>(({ className, ...props }, ref) => (\n <Dialog.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/30 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = \"DialogOverlay\";\n\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof Dialog.Content>,\n React.ComponentPropsWithoutRef<typeof Dialog.Content>\n>(({ className, children, ...props }, ref) => (\n <Dialog.Portal>\n <DialogOverlay />\n <Dialog.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%]\",\n \"w-full max-w-lg bg-card rounded-2xl shadow-elevated p-6\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n >\n {children}\n <Dialog.Close className=\"absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring/20\">\n <X size={16} />\n <span className=\"sr-only\">Close</span>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n));\nDialogContent.displayName = \"DialogContent\";\n\nfunction DialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1.5 mb-4\", className)} {...props} />;\n}\nDialogHeader.displayName = \"DialogHeader\";\n\nfunction DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex items-center justify-end gap-2 mt-6\", className)} {...props} />;\n}\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof Dialog.Title>,\n React.ComponentPropsWithoutRef<typeof Dialog.Title>\n>(({ className, ...props }, ref) => (\n <Dialog.Title\n ref={ref}\n className={cn(\"body-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof Dialog.Description>,\n React.ComponentPropsWithoutRef<typeof Dialog.Description>\n>(({ className, ...props }, ref) => (\n <Dialog.Description ref={ref} className={cn(\"body text-muted-foreground\", className)} {...props} />\n));\nDialogDescription.displayName = \"DialogDescription\";\n\nexport {\n DialogRoot as Dialog,\n DialogTrigger,\n DialogOverlay,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n DialogClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Search, ArrowRight } from \"lucide-react\";\nimport { Dialog, DialogContent } from \"./dialog\";\n\nexport interface CommandPaletteItem {\n id?: string | number;\n label: string;\n description?: string;\n icon?: React.ReactNode;\n category?: string;\n href?: string;\n onSelect?: () => void;\n}\n\ninterface CommandPaletteProps {\n open: boolean;\n onClose: () => void;\n items: CommandPaletteItem[];\n placeholder?: string;\n emptyText?: string;\n}\n\nfunction CommandPalette({\n open,\n onClose,\n items,\n placeholder = \"Search...\",\n emptyText = \"No results found.\",\n}: CommandPaletteProps) {\n const [query, setQuery] = React.useState(\"\");\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n // Focus input when opened\n React.useEffect(() => {\n if (open) {\n setTimeout(() => inputRef.current?.focus(), 50);\n setQuery(\"\");\n }\n }, [open]);\n\n const filtered =\n query === \"\"\n ? items\n : items.filter(\n (item) =>\n item.label.toLowerCase().includes(query.toLowerCase()) ||\n item.description?.toLowerCase().includes(query.toLowerCase()) ||\n item.category?.toLowerCase().includes(query.toLowerCase()),\n );\n\n // Group by category\n const grouped = filtered.reduce<Record<string, CommandPaletteItem[]>>((acc, item) => {\n const cat = item.category ?? \"\";\n if (!acc[cat]) acc[cat] = [];\n acc[cat].push(item);\n return acc;\n }, {});\n\n const categories = Object.keys(grouped);\n\n function handleSelect(item: CommandPaletteItem) {\n if (item.href) {\n window.location.href = item.href;\n } else {\n item.onSelect?.();\n }\n onClose();\n }\n\n return (\n <Dialog open={open} onOpenChange={(v) => !v && onClose()}>\n <DialogContent className=\"gap-0 overflow-hidden p-0 sm:max-w-xl\">\n {/* Search input */}\n <div className=\"flex items-center gap-3 border-b border-border px-4\">\n <Search size={16} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={inputRef}\n type=\"text\"\n className=\"h-12 flex-1 bg-transparent body text-foreground placeholder:text-muted-foreground focus:outline-none\"\n placeholder={placeholder}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") onClose();\n if (e.key === \"Enter\" && filtered.length > 0) handleSelect(filtered[0]);\n }}\n />\n <kbd className=\"hidden items-center gap-0.5 sm:flex\">\n <span className=\"caption-xs font-medium text-muted-foreground rounded border border-border px-1.5 py-0.5\">\n esc\n </span>\n </kbd>\n </div>\n\n {/* Results */}\n <div className=\"max-h-80 overflow-y-auto\">\n {filtered.length === 0 ? (\n <p className=\"px-4 py-8 text-center body text-muted-foreground\">{emptyText}</p>\n ) : (\n <ul role=\"list\" className=\"py-2\">\n {categories.map((cat) => (\n <li key={cat}>\n {cat && <p className=\"label px-4 py-2 text-muted-foreground\">{cat}</p>}\n {grouped[cat].map((item, i) => (\n <button\n key={item.id ?? i}\n type=\"button\"\n className=\"flex w-full items-center gap-3 px-4 py-2.5 body text-left transition-colors hover:bg-muted focus-visible:bg-muted focus-visible:outline-none\"\n onClick={() => handleSelect(item)}\n >\n {item.icon && (\n <span className=\"flex size-8 shrink-0 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground\">\n {item.icon}\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-medium text-foreground truncate\">{item.label}</p>\n {item.description && (\n <p className=\"caption text-muted-foreground truncate\">{item.description}</p>\n )}\n </div>\n <ArrowRight size={13} className=\"shrink-0 text-muted-foreground\" />\n </button>\n ))}\n </li>\n ))}\n </ul>\n )}\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\nCommandPalette.displayName = \"CommandPalette\";\n\nexport { CommandPalette };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface CommandContextValue {\n query: string;\n setQuery: React.Dispatch<React.SetStateAction<string>>;\n onSelect?: (value: string) => void;\n reportVisible: (id: string, visible: boolean) => void;\n}\n\nconst CommandCtx = React.createContext<CommandContextValue>({\n query: \"\",\n setQuery: () => {},\n reportVisible: () => {},\n});\n\nconst CommandVisibleCtx = React.createContext(0);\n\ninterface CommandProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n onSelect?: (value: string) => void;\n}\n\nfunction Command({ className, children, onSelect, ...props }: CommandProps) {\n const [query, setQuery] = React.useState(\"\");\n const visibleIds = React.useRef(new Set<string>());\n const [visibleCount, setVisibleCount] = React.useState(0);\n\n const reportVisible = React.useCallback((id: string, visible: boolean) => {\n const had = visibleIds.current.has(id);\n if (visible && !had) {\n visibleIds.current.add(id);\n setVisibleCount(visibleIds.current.size);\n } else if (!visible && had) {\n visibleIds.current.delete(id);\n setVisibleCount(visibleIds.current.size);\n }\n }, []);\n\n return (\n <CommandCtx.Provider value={{ query, setQuery, ...(onSelect !== undefined && { onSelect }), reportVisible }}>\n <CommandVisibleCtx.Provider value={visibleCount}>\n <div\n className={cn(\n \"flex flex-col overflow-hidden rounded-xl border border-border bg-card\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </CommandVisibleCtx.Provider>\n </CommandCtx.Provider>\n );\n}\n\nconst CommandInput = React.forwardRef<\n HTMLInputElement,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"value\" | \"onChange\">\n>(({ className, ...props }, ref) => {\n const { query, setQuery } = React.useContext(CommandCtx);\n return (\n <div className=\"flex items-center gap-2 border-b border-border px-3\">\n <Search size={14} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={ref}\n type=\"text\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n className={cn(\n \"flex h-10 w-full bg-transparent body text-foreground\",\n \"placeholder:text-muted-foreground focus:outline-none\",\n className,\n )}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n {...props}\n />\n </div>\n );\n});\nCommandInput.displayName = \"CommandInput\";\n\nconst CommandList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const listRef = React.useRef<HTMLDivElement | null>(null);\n\n const combinedRef = React.useCallback(\n (el: HTMLDivElement | null) => {\n listRef.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = el;\n },\n [ref],\n );\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (![\"ArrowDown\", \"ArrowUp\"].includes(e.key)) return;\n e.preventDefault();\n const el = listRef.current;\n if (!el) return;\n const items = Array.from(\n el.querySelectorAll<HTMLElement>(\"[data-cmd-item]:not([aria-disabled='true'])\"),\n );\n if (!items.length) return;\n const focused = el.querySelector<HTMLElement>(\"[data-cmd-item]:focus\");\n const idx = focused ? items.indexOf(focused) : -1;\n const next =\n e.key === \"ArrowDown\"\n ? items[Math.min(idx + 1, items.length - 1)]\n : items[Math.max(idx - 1, 0)];\n next?.focus();\n };\n\n return (\n <div\n ref={combinedRef}\n role=\"listbox\"\n onKeyDown={handleKeyDown}\n className={cn(\"max-h-[300px] overflow-y-auto py-1\", className)}\n {...props}\n />\n );\n },\n);\nCommandList.displayName = \"CommandList\";\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children = \"No results found.\", ...props }, ref) => {\n const visibleCount = React.useContext(CommandVisibleCtx);\n if (visibleCount > 0) return null;\n return (\n <div\n ref={ref}\n className={cn(\"py-6 text-center caption text-muted-foreground\", className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nCommandEmpty.displayName = \"CommandEmpty\";\n\ninterface CommandGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n heading?: string;\n}\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n ({ className, heading, children, ...props }, ref) => (\n <div ref={ref} role=\"group\" className={cn(\"py-1\", className)} {...props}>\n {heading && <p className=\"px-3 pb-1 pt-0.5 label text-muted-foreground\">{heading}</p>}\n {children}\n </div>\n ),\n);\nCommandGroup.displayName = \"CommandGroup\";\n\ninterface CommandItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n value?: string;\n keywords?: string[];\n disabled?: boolean;\n onSelect?: (value: string) => void;\n}\n\nconst CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n ({ className, value = \"\", keywords, disabled, onSelect, children, ...props }, ref) => {\n const { query, onSelect: ctxOnSelect, reportVisible } = React.useContext(CommandCtx);\n const id = React.useId();\n\n const searchText = (keywords ?? [value]).join(\" \").toLowerCase();\n const isVisible = !query || searchText.includes(query.toLowerCase());\n\n React.useLayoutEffect(() => {\n reportVisible(id, isVisible && !disabled);\n return () => reportVisible(id, false);\n }, [id, isVisible, disabled, reportVisible]);\n\n if (!isVisible) return null;\n\n const handleSelect = () => {\n if (disabled) return;\n onSelect?.(value);\n ctxOnSelect?.(value);\n };\n\n return (\n <div\n ref={ref}\n role=\"option\"\n aria-selected={false}\n aria-disabled={disabled || undefined}\n data-cmd-item\n tabIndex={disabled ? undefined : 0}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5 mx-1\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"hover:bg-muted hover:text-foreground\",\n \"focus:bg-muted focus:text-foreground\",\n disabled && \"pointer-events-none opacity-40\",\n className,\n )}\n onClick={handleSelect}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n handleSelect();\n }\n }}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nCommandItem.displayName = \"CommandItem\";\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"my-1 h-px bg-muted\", className)} {...props} />\n ),\n);\nCommandSeparator.displayName = \"CommandSeparator\";\n\nfunction CommandShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\"ml-auto caption text-muted-foreground tracking-widest font-medium\", className)}\n {...props}\n />\n );\n}\nCommandShortcut.displayName = \"CommandShortcut\";\n\nCommand.displayName = \"Command\";\n\nexport {\n Command,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandSeparator,\n CommandShortcut,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ContextMenu } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst ContextMenuRoot = ContextMenu.Root;\nconst ContextMenuTrigger = ContextMenu.Trigger;\nconst ContextMenuGroup = ContextMenu.Group;\nconst ContextMenuPortal = ContextMenu.Portal;\nconst ContextMenuSub = ContextMenu.Sub;\nconst ContextMenuRadioGroup = ContextMenu.RadioGroup;\n\nconst ContextMenuContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenu.Portal>\n <ContextMenu.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-card p-1 text-card-foreground shadow-elevated outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </ContextMenu.Portal>\n));\nContextMenuContent.displayName = \"ContextMenuContent\";\n\nconst ContextMenuItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Item> & {\n inset?: boolean;\n destructive?: boolean;\n }\n>(({ className, inset, destructive, ...props }, ref) => (\n <ContextMenu.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body outline-none transition-colors\",\n destructive\n ? \"text-destructive focus:bg-destructive/10 focus:text-destructive\"\n : \"text-muted-foreground focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = \"ContextMenuItem\";\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenu.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenu.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </ContextMenu.ItemIndicator>\n </span>\n {children}\n </ContextMenu.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName = \"ContextMenuCheckboxItem\";\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenu.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenu.ItemIndicator>\n <Circle size={8} className=\"fill-foreground text-foreground\" />\n </ContextMenu.ItemIndicator>\n </span>\n {children}\n </ContextMenu.RadioItem>\n));\nContextMenuRadioItem.displayName = \"ContextMenuRadioItem\";\n\nconst ContextMenuLabel = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenu.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nContextMenuLabel.displayName = \"ContextMenuLabel\";\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenu.Separator\n ref={ref}\n className={cn(\"mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = \"ContextMenuSeparator\";\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenu.SubTrigger\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-muted-foreground\" />\n </ContextMenu.SubTrigger>\n));\nContextMenuSubTrigger.displayName = \"ContextMenuSubTrigger\";\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenu.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-card p-1 text-card-foreground shadow-elevated outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = \"ContextMenuSubContent\";\n\nfunction ContextMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return <span className={cn(\"ml-auto caption text-muted-foreground\", className)} {...props} />;\n}\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenuRoot as ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuRadioGroup,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement> & { containerClassName?: string }\n>(({ className, containerClassName, ...props }, ref) => (\n <div\n className={cn(\n \"w-full overflow-hidden rounded-xl border border-border bg-card\",\n containerClassName,\n )}\n >\n <table\n ref={ref}\n className={cn(\"min-w-full caption-bottom divide-y divide-border\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"bg-muted\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"divide-y divide-border bg-card\", className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"bg-muted font-medium\", className)} {...props} />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"px-6 py-3 text-left align-middle label text-muted-foreground\",\n \"[&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-6 py-4 align-middle body text-muted-foreground\",\n \"[&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 caption text-muted-foreground\", className)} {...props} />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"flex h-9 w-full rounded-md border border-border bg-card px-3 py-1\",\n \"body text-foreground placeholder:text-muted-foreground\",\n \"transition-colors duration-150\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary\",\n \"disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n flexRender,\n type ColumnDef,\n type SortingState,\n type ColumnFiltersState,\n} from \"@tanstack/react-table\";\nimport { ChevronUp, ChevronDown, ChevronsUpDown } from \"lucide-react\";\nimport { Table, TableHeader, TableBody, TableRow, TableHead, TableCell } from \"./table\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { cn } from \"../lib/utils\";\n\ninterface DataTableProps<TData> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n columns: ColumnDef<TData, any>[];\n data: TData[];\n searchKey?: string;\n searchPlaceholder?: string;\n pageSize?: number;\n showPagination?: boolean;\n}\n\nfunction DataTable<TData>({\n columns,\n data,\n searchKey,\n searchPlaceholder = \"Search...\",\n pageSize = 10,\n showPagination = true,\n}: DataTableProps<TData>) {\n const [sorting, setSorting] = React.useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([]);\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n state: { sorting, columnFilters },\n initialState: { pagination: { pageSize } },\n });\n\n return (\n <div className=\"flex flex-col gap-4\">\n {searchKey && (\n <Input\n placeholder={searchPlaceholder}\n value={(table.getColumn(searchKey)?.getFilterValue() as string) ?? \"\"}\n onChange={(e) => table.getColumn(searchKey)?.setFilterValue(e.target.value)}\n className=\"max-w-sm\"\n />\n )}\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n aria-sort={\n header.column.getCanSort()\n ? header.column.getIsSorted() === \"asc\"\n ? \"ascending\"\n : header.column.getIsSorted() === \"desc\"\n ? \"descending\"\n : \"none\"\n : undefined\n }\n >\n {header.isPlaceholder ? null : header.column.getCanSort() ? (\n <button\n className={cn(\n \"flex items-center gap-1 transition-colors hover:text-muted-foreground\",\n header.column.getIsSorted() && \"text-foreground\",\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n {header.column.getIsSorted() === \"asc\" ? (\n <ChevronUp size={12} className=\"text-brand-primary\" />\n ) : header.column.getIsSorted() === \"desc\" ? (\n <ChevronDown size={12} className=\"text-brand-primary\" />\n ) : (\n <ChevronsUpDown size={12} className=\"text-muted-foreground\" />\n )}\n </button>\n ) : (\n flexRender(header.column.columnDef.header, header.getContext())\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center text-muted-foreground\">\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n {showPagination && (\n <div className=\"flex items-center justify-between\">\n <p className=\"caption text-muted-foreground\">\n {table.getFilteredRowModel().rows.length} result\n {table.getFilteredRowModel().rows.length !== 1 ? \"s\" : \"\"}\n </p>\n <div className=\"flex items-center gap-2\">\n <span className=\"caption text-muted-foreground\">\n Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\n </span>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport { DataTable };\nexport { createColumnHelper } from \"@tanstack/react-table\";\nexport type { ColumnDef };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Popover } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst PopoverRoot = Popover.Root;\nconst PopoverTrigger = Popover.Trigger;\nconst PopoverClose = Popover.Close;\n\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof Popover.Content>,\n React.ComponentPropsWithoutRef<typeof Popover.Content>\n>(({ className, align = \"center\", sideOffset = 6, ...props }, ref) => (\n <Popover.Portal>\n <Popover.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-xl bg-card p-4 shadow-natural outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </Popover.Portal>\n));\nPopoverContent.displayName = \"PopoverContent\";\n\nexport { PopoverRoot as Popover, PopoverTrigger, PopoverContent, PopoverClose };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CalendarIcon } from \"lucide-react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\nimport { Calendar } from \"./calendar\";\nimport { Button } from \"./button\";\nimport { cn } from \"../lib/utils\";\n\nconst formatDate = (date: Date) =>\n date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\ninterface DatePickerProps {\n value?: Date | undefined;\n onChange?: (date: Date | undefined) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n}\n\nfunction DatePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n disabled,\n className,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n className={cn(\n \"w-[240px] justify-start gap-2 text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n disabled={disabled}\n >\n <CalendarIcon size={14} className=\"text-muted-foreground shrink-0\" />\n {value ? formatDate(value) : <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0 shadow-elevated\" align=\"start\">\n <Calendar\n mode=\"single\"\n {...(value !== undefined && { selected: value })}\n {...(onChange !== undefined && { onSelect: onChange })}\n autoFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker, formatDate };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface DescriptionItem {\n term: string;\n details: React.ReactNode;\n action?: React.ReactNode;\n}\n\ninterface DescriptionListProps {\n title?: string;\n description?: string;\n items: DescriptionItem[];\n columns?: 1 | 2;\n striped?: boolean;\n className?: string;\n}\n\nfunction DescriptionList({\n title,\n description,\n items,\n columns = 1,\n striped = false,\n className,\n}: DescriptionListProps) {\n return (\n <div className={className}>\n {(title || description) && (\n <div className=\"mb-4\">\n {title && <p className=\"body font-semibold text-foreground\">{title}</p>}\n {description && <p className=\"mt-1 caption text-muted-foreground\">{description}</p>}\n </div>\n )}\n\n <dl className={cn(\"border-t border-border\", columns === 2 && \"sm:grid sm:grid-cols-2\")}>\n {items.map((item, i) => (\n <div\n key={i}\n className={cn(\n \"py-3.5\",\n columns === 1\n ? \"grid grid-cols-3 gap-4 items-baseline\"\n : \"flex flex-col gap-1 border-b border-border\",\n columns === 1 && i !== items.length - 1 && \"border-b border-border\",\n striped && i % 2 === 0 && \"bg-muted -mx-4 px-4 rounded\",\n )}\n >\n <dt className=\"caption font-semibold text-muted-foreground uppercase tracking-wide\">\n {item.term}\n </dt>\n <dd className={cn(\"body text-foreground\", columns === 1 ? \"col-span-2\" : \"\")}>\n {item.action ? (\n <div className=\"flex items-center justify-between gap-4\">\n <span>{item.details}</span>\n {item.action}\n </div>\n ) : (\n item.details\n )}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n );\n}\n\nDescriptionList.displayName = \"DescriptionList\";\n\nexport { DescriptionList };\nexport type { DescriptionItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../lib/utils\";\n\nconst DrawerRoot = DrawerPrimitive.Root;\nconst DrawerTrigger = DrawerPrimitive.Trigger;\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-foreground/40 backdrop-blur-[1px]\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = \"DrawerOverlay\";\n\nconst DrawerContent = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-2xl border border-border bg-card\",\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-1 w-12 rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"grid gap-1 px-6 py-4 text-center sm:text-left\", className)} {...props} />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"mt-auto flex flex-col gap-2 px-6 pb-6\", className)} {...props} />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"subheading text-foreground\", className)}\n {...props}\n />\n));\nDrawerTitle.displayName = \"DrawerTitle\";\n\nconst DrawerDescription = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"body text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = \"DrawerDescription\";\n\nexport {\n DrawerRoot as Drawer,\n DrawerTrigger,\n DrawerPortal,\n DrawerClose,\n DrawerOverlay,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DropdownMenu } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst DropdownMenuRoot = DropdownMenu.Root;\nconst DropdownMenuTrigger = DropdownMenu.Trigger;\nconst DropdownMenuGroup = DropdownMenu.Group;\nconst DropdownMenuPortal = DropdownMenu.Portal;\nconst DropdownMenuSub = DropdownMenu.Sub;\nconst DropdownMenuRadioGroup = DropdownMenu.RadioGroup;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] bg-card rounded-xl shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenu.Portal>\n));\nDropdownMenuContent.displayName = \"DropdownMenuContent\";\n\nconst DropdownMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Item> & {\n inset?: boolean;\n destructive?: boolean;\n }\n>(({ className, inset, destructive, ...props }, ref) => (\n <DropdownMenu.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body outline-none transition-colors\",\n destructive\n ? \"text-destructive focus:bg-destructive/10 focus:text-destructive\"\n : \"text-muted-foreground focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenu.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenu.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </DropdownMenu.ItemIndicator>\n </span>\n {children}\n </DropdownMenu.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\";\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenu.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenu.ItemIndicator>\n <Circle size={8} className=\"fill-foreground text-foreground\" />\n </DropdownMenu.ItemIndicator>\n </span>\n {children}\n </DropdownMenu.RadioItem>\n));\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\";\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenu.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\";\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenu.Separator\n ref={ref}\n className={cn(\"mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\";\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenu.SubTrigger\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-muted-foreground\" />\n </DropdownMenu.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\";\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenu.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\";\n\nfunction DropdownMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return <span className={cn(\"ml-auto caption text-muted-foreground\", className)} {...props} />;\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenuRoot as DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuRadioGroup,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface EmptyStateProps {\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: {\n label: string;\n href?: string;\n onClick?: () => void;\n };\n className?: string;\n}\n\nfunction EmptyState({ icon, title, description, action, className }: EmptyStateProps) {\n return (\n <div className={cn(\"flex flex-col items-center gap-4 px-6 py-14 text-center\", className)}>\n {icon && (\n <div className=\"flex size-12 items-center justify-center rounded-xl bg-brand-secondary/20 text-muted-foreground\">\n {icon}\n </div>\n )}\n <div className=\"flex flex-col gap-1.5\">\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && <p className=\"body max-w-xs text-muted-foreground\">{description}</p>}\n </div>\n {action &&\n (action.href ? (\n <Button size=\"sm\" asChild>\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button size=\"sm\" onClick={action.onClick}>\n {action.label}\n </Button>\n ))}\n </div>\n );\n}\n\nEmptyState.displayName = \"EmptyState\";\n\nexport { EmptyState };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(\n \"body font-medium leading-none text-muted-foreground\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\n\ninterface FieldProps {\n label: string;\n htmlFor?: string;\n hint?: string;\n error?: string;\n required?: boolean;\n cornerHint?: string;\n className?: string;\n children: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nfunction Field({\n label,\n htmlFor,\n hint,\n error,\n required,\n cornerHint,\n className,\n children,\n ref,\n}: FieldProps) {\n // Predictable ID for the description/error paragraph so consumers can wire\n // aria-describedby on the child input: aria-describedby={`${id}-description`}\n const descriptionId = htmlFor ? `${htmlFor}-description` : undefined;\n\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-1.5\", className)}>\n <div className=\"flex items-center justify-between gap-2\">\n <Label htmlFor={htmlFor} aria-required={required}>\n {label}\n {required && <span className=\"ml-0.5 text-destructive\" aria-hidden=\"true\">*</span>}\n </Label>\n {cornerHint && <span className=\"caption text-muted-foreground\">{cornerHint}</span>}\n </div>\n {children}\n {error ? (\n <p id={descriptionId} role=\"alert\" className=\"caption text-destructive\">{error}</p>\n ) : hint ? (\n <p id={descriptionId} className=\"caption text-muted-foreground\">{hint}</p>\n ) : null}\n </div>\n );\n}\nField.displayName = \"Field\";\n\nexport { Field };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\n/* ------------------------------------------------------------------ */\n/* Generic grid container */\n/* ------------------------------------------------------------------ */\n\ninterface GridListProps {\n children: React.ReactNode;\n columns?: 2 | 3 | 4;\n gap?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst colMap = {\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};\n\nconst gapMap = {\n sm: \"gap-3\",\n md: \"gap-4\",\n lg: \"gap-6\",\n};\n\nfunction GridList({ children, columns = 3, gap = \"md\", className }: GridListProps) {\n return (\n <ul role=\"list\" className={cn(\"grid\", colMap[columns], gapMap[gap], className)}>\n {children}\n </ul>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Simple card item */\n/* ------------------------------------------------------------------ */\n\ninterface GridListCardProps {\n title: string;\n description?: string;\n meta?: string;\n href?: string;\n accent?: React.ReactNode;\n trailing?: React.ReactNode;\n className?: string;\n}\n\nfunction GridListCard({\n title,\n description,\n meta,\n href,\n accent,\n trailing,\n className,\n}: GridListCardProps) {\n const inner = (\n <div\n className={cn(\n \"flex h-full flex-col gap-1 rounded-xl border border-border bg-card p-4 shadow-natural transition-shadow\",\n href && \"hover:shadow-elevated\",\n className,\n )}\n >\n {accent && <div className=\"mb-2\">{accent}</div>}\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && <p className=\"caption text-muted-foreground\">{description}</p>}\n {(meta || trailing) && (\n <div className=\"mt-auto flex items-center justify-between pt-3\">\n {meta && <span className=\"caption text-muted-foreground\">{meta}</span>}\n {trailing && <span className=\"caption text-muted-foreground\">{trailing}</span>}\n </div>\n )}\n </div>\n );\n\n return (\n <li>\n {href ? (\n <a\n href={href}\n className=\"block h-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 rounded-xl\"\n >\n {inner}\n </a>\n ) : (\n inner\n )}\n </li>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Horizontal accent card (colored left strip + title + meta) */\n/* ------------------------------------------------------------------ */\n\ninterface GridListAccentCardProps {\n title: string;\n meta?: string;\n href?: string;\n accentClass?: string;\n initials?: string;\n trailing?: React.ReactNode;\n className?: string;\n}\n\nfunction GridListAccentCard({\n title,\n meta,\n href,\n accentClass = \"bg-foreground\",\n initials,\n trailing,\n className,\n}: GridListAccentCardProps) {\n const inner = (\n <div\n className={cn(\n \"flex overflow-hidden rounded-xl border border-border bg-card shadow-natural transition-shadow\",\n href && \"hover:shadow-elevated\",\n className,\n )}\n >\n <div\n className={cn(\n \"flex w-14 shrink-0 items-center justify-center body font-semibold text-background\",\n accentClass,\n )}\n >\n {initials}\n </div>\n <div className=\"flex flex-1 items-center justify-between truncate border-l border-border px-4 py-3\">\n <div className=\"min-w-0\">\n <p className=\"body font-semibold text-foreground truncate\">{title}</p>\n {meta && <p className=\"caption text-muted-foreground\">{meta}</p>}\n </div>\n {trailing && <div className=\"shrink-0 pl-2\">{trailing}</div>}\n </div>\n </div>\n );\n\n return (\n <li>\n {href ? (\n <a\n href={href}\n className=\"block focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 rounded-xl\"\n >\n {inner}\n </a>\n ) : (\n inner\n )}\n </li>\n );\n}\n\nGridList.displayName = \"GridList\";\nGridListCard.displayName = \"GridListCard\";\nGridListAccentCard.displayName = \"GridListAccentCard\";\n\nexport { GridList, GridListCard, GridListAccentCard };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { HoverCard } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst HoverCardRoot = HoverCard.Root;\nconst HoverCardTrigger = HoverCard.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ComponentRef<typeof HoverCard.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCard.Content>\n>(({ className, align = \"center\", sideOffset = 6, ...props }, ref) => (\n <HoverCard.Portal>\n <HoverCard.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 rounded-xl border border-border bg-card p-4 shadow-elevated outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </HoverCard.Portal>\n));\nHoverCardContent.displayName = \"HoverCardContent\";\n\nexport { HoverCardRoot as HoverCard, HoverCardTrigger, HoverCardContent };\n","import * as React from \"react\";\nimport { AlertCircle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface InputGroupProps extends React.InputHTMLAttributes<HTMLInputElement> {\n leadingAddon?: React.ReactNode;\n trailingAddon?: React.ReactNode;\n leadingIcon?: React.ReactNode;\n trailingIcon?: React.ReactNode;\n trailingButton?: React.ReactNode;\n error?: boolean;\n pill?: boolean;\n wrapperClassName?: string;\n}\n\nconst InputGroup = React.forwardRef<HTMLInputElement, InputGroupProps>(\n (\n {\n leadingAddon,\n trailingAddon,\n leadingIcon,\n trailingIcon,\n trailingButton,\n error,\n pill,\n className,\n wrapperClassName,\n ...props\n },\n ref,\n ) => {\n const radius = pill ? \"rounded-full\" : \"rounded-lg\";\n const hasLeading = leadingAddon || leadingIcon;\n const hasTrailing = trailingAddon || trailingIcon || trailingButton || error;\n\n const baseInput = cn(\n \"flex h-9 w-full border bg-card body text-foreground placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:disabled:cursor-not-allowed disabled:opacity-50\",\n error\n ? \"border-destructive focus-visible:ring-destructive/20 focus-visible:border-destructive\"\n : \"border-border focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary\",\n );\n\n if (!hasLeading && !hasTrailing) {\n return <input ref={ref} className={cn(baseInput, radius, \"px-3\", className)} {...props} />;\n }\n\n return (\n <div className={cn(\"flex\", wrapperClassName)}>\n {/* Leading addon (text) */}\n {leadingAddon && (\n <span\n className={cn(\n \"inline-flex items-center border border-r-0 bg-muted px-3 body text-muted-foreground select-none\",\n error ? \"border-destructive\" : \"border-border\",\n pill ? \"rounded-l-full\" : \"rounded-l-lg\",\n )}\n >\n {leadingAddon}\n </span>\n )}\n\n {/* Relative wrapper for icon-only inputs */}\n <div className=\"relative flex-1\">\n {leadingIcon && (\n <div className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-muted-foreground\">\n {leadingIcon}\n </div>\n )}\n\n <input\n ref={ref}\n className={cn(\n baseInput,\n // Border radius\n leadingAddon\n ? trailingAddon || trailingButton\n ? \"rounded-none px-3\"\n : pill\n ? \"rounded-none rounded-r-full px-3\"\n : \"rounded-none rounded-r-lg px-3\"\n : leadingIcon\n ? trailingAddon\n ? pill\n ? \"rounded-l-full rounded-r-none pl-9 pr-3\"\n : \"rounded-l-lg rounded-r-none pl-9 pr-3\"\n : trailingIcon || error\n ? cn(radius, \"pl-9 pr-9\")\n : cn(radius, \"pl-9 pr-3\")\n : trailingAddon\n ? pill\n ? \"rounded-l-full rounded-r-none px-3\"\n : \"rounded-l-lg rounded-r-none px-3\"\n : trailingIcon || error || trailingButton\n ? cn(radius, \"pl-3 pr-9\")\n : cn(radius, \"px-3\"),\n className,\n )}\n {...props}\n />\n\n {(trailingIcon || error) && (\n <div className=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\">\n {error ? (\n <AlertCircle size={15} className=\"text-destructive\" />\n ) : (\n <span className=\"text-muted-foreground\">{trailingIcon}</span>\n )}\n </div>\n )}\n </div>\n\n {/* Trailing addon (text) */}\n {trailingAddon && (\n <span\n className={cn(\n \"inline-flex items-center border border-l-0 bg-muted px-3 body text-muted-foreground select-none\",\n error ? \"border-destructive\" : \"border-border\",\n pill ? \"rounded-r-full\" : \"rounded-r-lg\",\n )}\n >\n {trailingAddon}\n </span>\n )}\n\n {/* Trailing button */}\n {trailingButton && <div className=\"flex\">{trailingButton}</div>}\n </div>\n );\n },\n);\nInputGroup.displayName = \"InputGroup\";\n\nexport { InputGroup };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface InputNumberProps extends Omit<\n React.ComponentProps<\"input\">,\n \"type\" | \"value\" | \"onChange\"\n> {\n value: number;\n onChange: (next: number) => void;\n min?: number;\n max?: number;\n step?: number;\n /** Suffix shown after the number (e.g. \"px\", \"mm\", \"°\", \"%\"). */\n unit?: string;\n /** Number of decimals to display. Default: 0. */\n precision?: number;\n /** Hides the up/down stepper buttons. */\n hideSteppers?: boolean;\n}\n\n/**\n * Numeric input with up/down steppers, unit suffix, and arrow-key step (Shift = 10×).\n * Designed for designer property panels — see PHASE_0_AUDIT.md §P0.2.\n */\nconst InputNumber = React.forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n value,\n onChange,\n min = -Infinity,\n max = Infinity,\n step = 1,\n unit,\n precision = 0,\n hideSteppers = false,\n className,\n disabled,\n ...rest\n },\n ref,\n ) => {\n const [text, setText] = React.useState<string>(value.toFixed(precision));\n\n React.useEffect(() => {\n setText(value.toFixed(precision));\n }, [value, precision]);\n\n const clamp = React.useCallback((n: number) => Math.min(max, Math.max(min, n)), [min, max]);\n\n const commit = (raw: string) => {\n const n = parseFloat(raw);\n if (Number.isFinite(n)) {\n const next = clamp(n);\n onChange(next);\n setText(next.toFixed(precision));\n } else {\n setText(value.toFixed(precision));\n }\n };\n\n const bump = (delta: number) => {\n const next = clamp(value + delta);\n onChange(next);\n setText(next.toFixed(precision));\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n bump(step * (e.shiftKey ? 10 : 1));\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n bump(-step * (e.shiftKey ? 10 : 1));\n } else if (e.key === \"Enter\") {\n commit((e.target as HTMLInputElement).value);\n }\n };\n\n return (\n <div\n className={cn(\n \"inline-flex h-8 items-stretch rounded-md border border-border bg-card overflow-hidden\",\n \"focus-within:ring-2 focus-within:ring-brand-primary/20 focus-within:border-brand-primary\",\n disabled && \"opacity-50 pointer-events-none\",\n className,\n )}\n >\n <input\n ref={ref}\n type=\"text\"\n inputMode=\"decimal\"\n spellCheck={false}\n value={text}\n onChange={(e) => setText(e.target.value)}\n onBlur={(e) => commit(e.target.value)}\n onKeyDown={onKeyDown}\n disabled={disabled}\n className=\"w-full caption text-foreground px-2 bg-transparent focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none text-right\"\n {...rest}\n />\n {unit && (\n <span aria-hidden className=\"caption-xs text-muted-foreground self-center pr-1.5 select-none\">\n {unit}\n </span>\n )}\n {!hideSteppers && (\n <div className=\"flex flex-col border-l border-border\">\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => bump(step)}\n aria-label=\"Increment\"\n className=\"flex-1 px-1 hover:bg-muted active:bg-muted transition-colors text-muted-foreground\"\n >\n <svg viewBox=\"0 0 8 5\" width=\"8\" height=\"5\" fill=\"currentColor\">\n <path d=\"M0 5 L4 0 L8 5 Z\" />\n </svg>\n </button>\n <div className=\"border-t border-border\" />\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => bump(-step)}\n aria-label=\"Decrement\"\n className=\"flex-1 px-1 hover:bg-muted active:bg-muted transition-colors text-muted-foreground\"\n >\n <svg viewBox=\"0 0 8 5\" width=\"8\" height=\"5\" fill=\"currentColor\">\n <path d=\"M0 0 L4 5 L8 0 Z\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n );\n },\n);\nInputNumber.displayName = \"InputNumber\";\n\nexport { InputNumber };\nexport type { InputNumberProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst InputOTP = React.forwardRef<\n React.ComponentRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\"flex items-center gap-2 has-disabled:opacity-50\", containerClassName)}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n));\nInputOTP.displayName = \"InputOTP\";\n\nconst InputOTPGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n ),\n);\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nconst InputOTPSlot = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-12 w-11 items-center justify-center\",\n \"border-y border-r border-border body font-medium text-foreground\",\n \"first:rounded-l-xl first:border-l last:rounded-r-xl\",\n \"transition-all\",\n isActive && \"z-10 ring-2 ring-brand-primary/40 border-brand-primary\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-5 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\nconst InputOTPSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus size={14} className=\"text-muted-foreground\" />\n </div>\n ),\n);\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nconst Kbd = React.forwardRef<HTMLElement, React.ComponentProps<\"kbd\">>(\n ({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n \"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono caption-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n ),\n);\nKbd.displayName = \"Kbd\";\n\nexport { Kbd };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface MediaObjectProps {\n media: React.ReactNode;\n children: React.ReactNode;\n mediaPosition?: \"left\" | \"right\";\n align?: \"top\" | \"center\" | \"bottom\";\n gap?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst alignMap = {\n top: \"items-start\",\n center: \"items-center\",\n bottom: \"items-end\",\n};\n\nconst gapMap = {\n sm: \"gap-3\",\n md: \"gap-4\",\n lg: \"gap-6\",\n};\n\nfunction MediaObject({\n media,\n children,\n mediaPosition = \"left\",\n align = \"top\",\n gap = \"md\",\n className,\n}: MediaObjectProps) {\n return (\n <div\n className={cn(\n \"flex\",\n mediaPosition === \"right\" && \"flex-row-reverse\",\n alignMap[align],\n gapMap[gap],\n className,\n )}\n >\n <div className=\"shrink-0\">{media}</div>\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nMediaObject.displayName = \"MediaObject\";\n\nexport { MediaObject };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Menubar } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst MenubarRoot = React.forwardRef<\n React.ComponentRef<typeof Menubar.Root>,\n React.ComponentPropsWithoutRef<typeof Menubar.Root>\n>(({ className, ...props }, ref) => (\n <Menubar.Root\n ref={ref}\n className={cn(\n \"flex h-9 items-center gap-0.5 rounded-lg border border-border bg-card px-1\",\n className,\n )}\n {...props}\n />\n));\nMenubarRoot.displayName = \"Menubar\";\n\nconst MenubarMenu = Menubar.Menu;\n\nconst MenubarGroup = Menubar.Group;\n\nconst MenubarSub = Menubar.Sub;\n\nconst MenubarRadioGroup = Menubar.RadioGroup;\n\nconst MenubarTrigger = React.forwardRef<\n React.ComponentRef<typeof Menubar.Trigger>,\n React.ComponentPropsWithoutRef<typeof Menubar.Trigger>\n>(({ className, ...props }, ref) => (\n <Menubar.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default items-center rounded-md px-3 py-1 body font-medium text-muted-foreground select-none outline-none\",\n \"hover:bg-muted\",\n \"data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n \"focus:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nMenubarTrigger.displayName = \"MenubarTrigger\";\n\nconst MenubarContent = React.forwardRef<\n React.ComponentRef<typeof Menubar.Content>,\n React.ComponentPropsWithoutRef<typeof Menubar.Content>\n>(({ className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <Menubar.Portal>\n <Menubar.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] bg-card rounded-xl shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </Menubar.Portal>\n));\nMenubarContent.displayName = \"MenubarContent\";\n\nconst MenubarItem = React.forwardRef<\n React.ComponentRef<typeof Menubar.Item>,\n React.ComponentPropsWithoutRef<typeof Menubar.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <Menubar.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nMenubarItem.displayName = \"MenubarItem\";\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof Menubar.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof Menubar.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <Menubar.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <Menubar.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </Menubar.ItemIndicator>\n </span>\n {children}\n </Menubar.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = \"MenubarCheckboxItem\";\n\nconst MenubarRadioItem = React.forwardRef<\n React.ComponentRef<typeof Menubar.RadioItem>,\n React.ComponentPropsWithoutRef<typeof Menubar.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <Menubar.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <Menubar.ItemIndicator>\n <Circle size={8} className=\"fill-foreground text-foreground\" />\n </Menubar.ItemIndicator>\n </span>\n {children}\n </Menubar.RadioItem>\n));\nMenubarRadioItem.displayName = \"MenubarRadioItem\";\n\nconst MenubarLabel = React.forwardRef<\n React.ComponentRef<typeof Menubar.Label>,\n React.ComponentPropsWithoutRef<typeof Menubar.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <Menubar.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nMenubarLabel.displayName = \"MenubarLabel\";\n\nconst MenubarSeparator = React.forwardRef<\n React.ComponentRef<typeof Menubar.Separator>,\n React.ComponentPropsWithoutRef<typeof Menubar.Separator>\n>(({ className, ...props }, ref) => (\n <Menubar.Separator\n ref={ref}\n className={cn(\"mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nMenubarSeparator.displayName = \"MenubarSeparator\";\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ComponentRef<typeof Menubar.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof Menubar.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <Menubar.SubTrigger\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-muted-foreground\" />\n </Menubar.SubTrigger>\n));\nMenubarSubTrigger.displayName = \"MenubarSubTrigger\";\n\nconst MenubarSubContent = React.forwardRef<\n React.ComponentRef<typeof Menubar.SubContent>,\n React.ComponentPropsWithoutRef<typeof Menubar.SubContent>\n>(({ className, ...props }, ref) => (\n <Menubar.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n));\nMenubarSubContent.displayName = \"MenubarSubContent\";\n\nfunction MenubarShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return <span className={cn(\"ml-auto caption text-muted-foreground\", className)} {...props} />;\n}\nMenubarShortcut.displayName = \"MenubarShortcut\";\n\nexport {\n MenubarRoot as Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarLabel,\n MenubarSeparator,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n MenubarShortcut,\n MenubarGroup,\n};\n","import * as React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst NativeSelect = React.forwardRef<\n HTMLSelectElement,\n React.SelectHTMLAttributes<HTMLSelectElement>\n>(({ className, children, ...props }, ref) => (\n <div className=\"relative\">\n <select\n ref={ref}\n className={cn(\n \"peer h-9 w-full appearance-none rounded-lg border border-border bg-card pl-3 pr-8\",\n \"body text-foreground\",\n \"focus:outline-none focus:ring-2 focus:ring-ring/30 focus:border-border\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:ring-destructive/20\",\n className,\n )}\n {...props}\n >\n {children}\n </select>\n <ChevronDown\n size={14}\n className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground peer-disabled:opacity-50\"\n />\n </div>\n));\nNativeSelect.displayName = \"NativeSelect\";\n\nconst NativeSelectOption = React.forwardRef<\n HTMLOptionElement,\n React.OptionHTMLAttributes<HTMLOptionElement>\n>((props, ref) => <option ref={ref} {...props} />);\nNativeSelectOption.displayName = \"NativeSelectOption\";\n\nconst NativeSelectOptGroup = React.forwardRef<\n HTMLOptGroupElement,\n React.OptgroupHTMLAttributes<HTMLOptGroupElement>\n>((props, ref) => <optgroup ref={ref} {...props} />);\nNativeSelectOptGroup.displayName = \"NativeSelectOptGroup\";\n\nexport { NativeSelect, NativeSelectOption, NativeSelectOptGroup };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { NavigationMenu } from \"radix-ui\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenu.Root\n ref={ref}\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n </NavigationMenu.Root>\n));\nNavigationMenuRoot.displayName = \"NavigationMenu\";\n\nconst NavigationMenuList = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.List\n ref={ref}\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = \"NavigationMenuList\";\n\nconst NavigationMenuItem = NavigationMenu.Item;\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenu.Trigger\n ref={ref}\n className={cn(\n \"group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md px-3 py-2\",\n \"body font-medium text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[active]:bg-muted data-[state=open]:bg-muted\",\n \"outline-none transition-colors\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={12}\n className=\"transition-transform duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenu.Trigger>\n));\nNavigationMenuTrigger.displayName = \"NavigationMenuTrigger\";\n\nconst NavigationMenuContent = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.Content\n ref={ref}\n className={cn(\n \"left-0 top-0 w-full\",\n \"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out\",\n \"data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out\",\n \"data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52\",\n \"data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52\",\n \"md:absolute md:w-auto\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = \"NavigationMenuContent\";\n\nconst NavigationMenuLink = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Link>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Link>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.Link\n ref={ref}\n className={cn(\n \"block select-none rounded-md px-3 py-2 body text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"outline-none transition-colors\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuLink.displayName = \"NavigationMenuLink\";\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Viewport>\n>(({ className, ...props }, ref) => (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <NavigationMenu.Viewport\n ref={ref}\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-xl border border-border bg-card shadow-elevated\",\n \"md:w-[var(--radix-navigation-menu-viewport-width)]\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90\",\n className,\n )}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName = \"NavigationMenuViewport\";\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden\",\n \"data-[state=visible]:animate-in data-[state=hidden]:animate-out\",\n \"data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-muted shadow-elevated\" />\n </NavigationMenu.Indicator>\n));\nNavigationMenuIndicator.displayName = \"NavigationMenuIndicator\";\n\nfunction navigationMenuTriggerStyle() {\n return cn(\n \"group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md px-3 py-2\",\n \"body font-medium text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[active]:bg-muted data-[state=open]:bg-muted\",\n \"outline-none transition-colors\",\n );\n}\n\nexport {\n NavigationMenuRoot as NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuContent,\n NavigationMenuLink,\n NavigationMenuViewport,\n NavigationMenuIndicator,\n navigationMenuTriggerStyle,\n};\n","import * as React from \"react\";\nimport { X, CheckCircle, AlertCircle, Info, AlertTriangle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface NotificationAction {\n label: string;\n onClick?: () => void;\n variant?: \"default\" | \"ghost\";\n}\n\ninterface NotificationProps {\n title: string;\n description?: string;\n icon?: React.ReactNode;\n variant?: \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\n actions?: NotificationAction[];\n onClose?: () => void;\n className?: string;\n}\n\nconst variantConfig = {\n default: { icon: null, iconClass: \"text-muted-foreground\" },\n success: {\n icon: CheckCircle,\n iconClass: \"bg-brand-secondary/25 text-muted-foreground rounded-full p-1\",\n },\n error: { icon: AlertCircle, iconClass: \"text-destructive\" },\n warning: {\n icon: AlertTriangle,\n iconClass: \"bg-brand-secondary/80 text-muted-foreground rounded-full p-1\",\n },\n info: { icon: Info, iconClass: \"text-muted-foreground\" },\n};\n\nfunction Notification({\n title,\n description,\n icon,\n variant = \"default\",\n actions,\n onClose,\n className,\n}: NotificationProps) {\n const config = variantConfig[variant];\n const DefaultIcon = config.icon;\n\n const resolvedIcon = icon ?? (DefaultIcon ? <DefaultIcon size={20} /> : null);\n\n return (\n <div\n className={cn(\n \"pointer-events-auto w-full max-w-sm overflow-hidden rounded-xl border border-border bg-card shadow-elevated\",\n className,\n )}\n >\n <div className=\"p-4\">\n <div className=\"flex items-start gap-3\">\n {/* Icon */}\n {resolvedIcon && (\n <div className={cn(\"shrink-0 mt-0.5\", config.iconClass)}>{resolvedIcon}</div>\n )}\n\n {/* Body */}\n <div className=\"min-w-0 flex-1\">\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && <p className=\"mt-0.5 body text-muted-foreground\">{description}</p>}\n\n {/* Actions */}\n {actions && actions.length > 0 && (\n <div className=\"mt-3 flex gap-3\">\n {actions.map((action, i) => (\n <button\n key={i}\n type=\"button\"\n onClick={action.onClick}\n className={cn(\n \"body font-semibold transition-colors\",\n action.variant === \"ghost\"\n ? \"text-muted-foreground hover:text-muted-foreground\"\n : \"text-foreground hover:text-muted-foreground\",\n )}\n >\n {action.label}\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Close */}\n {onClose && (\n <div className=\"shrink-0\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"rounded-md text-muted-foreground hover:text-muted-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30\"\n >\n <span className=\"sr-only\">Close</span>\n <X size={16} />\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nNotification.displayName = \"Notification\";\n\nexport { Notification };\n","import * as React from \"react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Badge } from \"./badge\";\n\ninterface BreadcrumbItem {\n label: string;\n href?: string;\n}\n\ninterface PageHeadingAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"outline\" | \"ghost\";\n primary?: boolean;\n}\n\ninterface PageHeadingMeta {\n icon?: React.ReactNode;\n text: string;\n}\n\ninterface PageHeadingProps {\n title: string;\n description?: string;\n breadcrumbs?: BreadcrumbItem[];\n actions?: PageHeadingAction[];\n meta?: PageHeadingMeta[];\n badge?: string | { label: string; variant?: \"default\" | \"secondary\" | \"outline\" | \"destructive\" };\n className?: string;\n}\n\nfunction PageHeading({\n title,\n description,\n breadcrumbs,\n actions,\n meta,\n badge,\n className,\n}: PageHeadingProps) {\n return (\n <div className={cn(\"border-b border-border pb-6\", className)}>\n {/* Breadcrumbs */}\n {breadcrumbs && breadcrumbs.length > 0 && (\n <nav className=\"mb-3 flex items-center gap-1.5\" aria-label=\"Breadcrumb\">\n {breadcrumbs.map((crumb, i) => (\n <React.Fragment key={i}>\n {i > 0 && <ChevronRight size={12} className=\"text-muted-foreground shrink-0\" />}\n {crumb.href ? (\n <a\n href={crumb.href}\n className=\"caption text-muted-foreground hover:text-muted-foreground transition-colors\"\n >\n {crumb.label}\n </a>\n ) : (\n <span className=\"caption font-semibold text-muted-foreground\">{crumb.label}</span>\n )}\n </React.Fragment>\n ))}\n </nav>\n )}\n\n {/* Title row */}\n <div className=\"flex flex-wrap items-start justify-between gap-4\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"display text-foreground truncate\">{title}</h1>\n {badge &&\n (typeof badge === \"string\" ? (\n <Badge variant=\"secondary\">{badge}</Badge>\n ) : (\n <Badge variant={badge.variant ?? \"secondary\"}>{badge.label}</Badge>\n ))}\n </div>\n {description && <p className=\"mt-1.5 body text-muted-foreground max-w-2xl\">{description}</p>}\n\n {/* Meta */}\n {meta && meta.length > 0 && (\n <div className=\"mt-3 flex flex-wrap items-center gap-4\">\n {meta.map((m, i) => (\n <div key={i} className=\"flex items-center gap-1.5 caption text-muted-foreground\">\n {m.icon && <span className=\"text-muted-foreground\">{m.icon}</span>}\n <span>{m.text}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Actions */}\n {actions && actions.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-2\">\n {actions.map((action, i) =>\n action.href ? (\n <Button\n key={i}\n size=\"sm\"\n variant={action.primary ? \"default\" : (action.variant ?? \"outline\")}\n asChild\n >\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button\n key={i}\n size=\"sm\"\n variant={action.primary ? \"default\" : (action.variant ?? \"outline\")}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport { PageHeading };\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants } from \"./button\";\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n);\nPagination.displayName = \"Pagination\";\n\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} className={cn(\"flex flex-row items-center gap-1\", className)} {...props} />\n ),\n);\nPaginationContent.displayName = \"PaginationContent\";\n\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => <li ref={ref} className={cn(\"\", className)} {...props} />,\n);\nPaginationItem.displayName = \"PaginationItem\";\n\ntype PaginationLinkProps = React.ComponentProps<\"a\"> & { isActive?: boolean };\n\nconst PaginationLink = ({ className, isActive, ...props }: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({ variant: isActive ? \"default\" : \"ghost\", size: \"icon\" }),\n \"size-8 rounded-md body\",\n className,\n )}\n {...props}\n />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn(\"gap-1 px-3 w-auto\", className)}\n {...props}\n >\n <ChevronLeft size={14} />\n <span className=\"body\">Prev</span>\n </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nconst PaginationNext = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn(\"gap-1 px-3 w-auto\", className)}\n {...props}\n >\n <span className=\"body\">Next</span>\n <ChevronRight size={14} />\n </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex size-8 items-center justify-center text-muted-foreground\", className)}\n {...props}\n >\n <MoreHorizontal size={14} />\n </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n","import * as React from \"react\";\nimport { Progress } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst ProgressRoot = React.forwardRef<\n React.ComponentRef<typeof Progress.Root>,\n React.ComponentPropsWithoutRef<typeof Progress.Root>\n>(({ className, value, ...props }, ref) => (\n <Progress.Root\n ref={ref}\n className={cn(\"relative h-2 w-full overflow-hidden rounded-full bg-muted\", className)}\n value={value}\n {...props}\n >\n <Progress.Indicator\n className=\"h-full w-full flex-1 bg-brand-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}\n />\n </Progress.Root>\n));\nProgressRoot.displayName = \"Progress\";\n\nexport { ProgressRoot as Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface PropertyRowProps extends React.ComponentProps<\"div\"> {\n /** Optional label rendered on the left. Pass a string or any React node (icon + label, etc.). */\n label?: React.ReactNode;\n /** Label layout. Default: \"stacked\". */\n layout?: \"stacked\" | \"inline\";\n /** Width of the label column when layout=\"inline\". Default: 96px. */\n labelWidth?: number | string;\n /** Aligns label vertically with controls when layout=\"inline\". Default: \"center\". */\n labelAlign?: \"start\" | \"center\";\n}\n\n/**\n * Property row used inside designer inspector panels:\n * label above controls by default, with an inline option for dense rows.\n * Different from <Field>, which is a vertical form field with hint/error.\n *\n * <PropertyRow label=\"Opacity\">\n * <Slider />\n * <InputNumber />\n * </PropertyRow>\n */\nfunction PropertyRow({\n label,\n layout = \"stacked\",\n labelWidth = 96,\n labelAlign = \"center\",\n className,\n children,\n ...rest\n}: PropertyRowProps) {\n const inline = layout === \"inline\";\n\n return (\n <div\n className={cn(\n \"flex w-full min-w-0 py-1\",\n inline\n ? cn(\"gap-3\", labelAlign === \"center\" ? \"items-center\" : \"items-start\")\n : \"flex-col items-stretch gap-1.5\",\n className,\n )}\n {...rest}\n >\n {label !== undefined && (\n <div\n className={cn(\n \"caption select-none text-muted-foreground\",\n inline ? \"shrink-0\" : \"w-full\",\n )}\n style={\n inline\n ? { width: typeof labelWidth === \"number\" ? `${labelWidth}px` : labelWidth }\n : undefined\n }\n >\n {label}\n </div>\n )}\n <div className=\"flex min-w-0 flex-1 items-center gap-2\">{children}</div>\n </div>\n );\n}\n\nPropertyRow.displayName = \"PropertyRow\";\n\nexport { PropertyRow };\nexport type { PropertyRowProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport interface RadioCardOption {\n value: string;\n label: string;\n description?: string;\n meta?: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\ninterface RadioCardsProps {\n options: RadioCardOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n columns?: 1 | 2 | 3 | 4;\n className?: string;\n}\n\nfunction RadioCards({ options, value, onValueChange, columns = 3, className }: RadioCardsProps) {\n const colMap = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-1 sm:grid-cols-2\",\n 3: \"grid-cols-1 sm:grid-cols-3\",\n 4: \"grid-cols-2 sm:grid-cols-4\",\n };\n\n return (\n <div className={cn(\"grid gap-3\", colMap[columns], className)}>\n {options.map((option) => {\n const isSelected = option.value === value;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n disabled={option.disabled}\n onClick={() => !option.disabled && onValueChange?.(option.value)}\n className={cn(\n \"relative flex cursor-pointer flex-col gap-1 rounded-xl border p-4 text-left transition-all\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n isSelected\n ? \"border-brand-primary bg-card shadow-natural\"\n : \"border-border bg-card hover:border-border\",\n )}\n >\n {/* Selected ring overlay */}\n {isSelected && (\n <span\n className=\"pointer-events-none absolute inset-0 rounded-xl ring-2 ring-brand-primary\"\n aria-hidden=\"true\"\n />\n )}\n\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\">\n {option.icon && <div className=\"mb-2 text-muted-foreground\">{option.icon}</div>}\n <p\n className={cn(\n \"body font-semibold\",\n isSelected ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {option.label}\n </p>\n {option.description && (\n <p className=\"mt-0.5 caption text-muted-foreground\">{option.description}</p>\n )}\n </div>\n <div\n className={cn(\n \"flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors\",\n isSelected\n ? \"border-brand-primary bg-brand-primary\"\n : \"border-border bg-card\",\n )}\n >\n {isSelected && <Check size={10} className=\"text-background\" strokeWidth={3} />}\n </div>\n </div>\n\n {option.meta && (\n <p\n className={cn(\n \"caption font-semibold mt-2\",\n isSelected ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {option.meta}\n </p>\n )}\n </button>\n );\n })}\n </div>\n );\n}\n\nRadioCards.displayName = \"RadioCards\";\n\nexport { RadioCards };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { RadioGroup } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst RadioGroupRoot = React.forwardRef<\n React.ComponentRef<typeof RadioGroup.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroup.Root>\n>(({ className, ...props }, ref) => (\n <RadioGroup.Root ref={ref} className={cn(\"grid gap-2\", className)} {...props} />\n));\nRadioGroupRoot.displayName = \"RadioGroup\";\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroup.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroup.Item>\n>(({ className, ...props }, ref) => (\n <RadioGroup.Item\n ref={ref}\n className={cn(\n \"aspect-square size-4 rounded-full border border-border text-foreground\",\n \"shadow-none transition-colors\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/20\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-foreground data-[state=checked]:border-foreground\",\n className,\n )}\n {...props}\n >\n <RadioGroup.Indicator className=\"flex items-center justify-center\">\n <div className=\"size-2 rounded-full bg-card\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n));\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport { RadioGroupRoot as RadioGroup, RadioGroupItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Group, Panel, Separator } from \"react-resizable-panels\";\nimport type { GroupProps, SeparatorProps } from \"react-resizable-panels\";\nimport { GripVertical } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\n// react-resizable-panels v4 uses `orientation` and `elementRef` instead of\n// the older `direction` prop + React.forwardRef pattern.\n\ntype ResizablePanelGroupProps = Omit<GroupProps, \"orientation\"> & {\n /** Alias for `orientation` — matches the common shadcn/ui API. */\n direction?: \"horizontal\" | \"vertical\";\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nfunction ResizablePanelGroup({\n className,\n direction,\n orientation,\n ...props\n}: ResizablePanelGroupProps) {\n const resolvedOrientation = orientation ?? direction ?? \"horizontal\";\n return (\n <Group\n orientation={resolvedOrientation}\n className={cn(\n \"flex h-full w-full\",\n resolvedOrientation === \"vertical\" && \"flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\nResizablePanelGroup.displayName = \"ResizablePanelGroup\";\n\nconst ResizablePanel = Panel;\n\ntype ResizableHandleProps = SeparatorProps & {\n withHandle?: boolean;\n};\n\nfunction ResizableHandle({ className, withHandle = true, ...props }: ResizableHandleProps) {\n return (\n <Separator\n className={cn(\n \"relative flex shrink-0 items-center justify-center bg-muted\",\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-brand-primary/50\",\n // Horizontal (default): vertical bar\n \"[&:not([aria-orientation=vertical])]:h-full [&:not([aria-orientation=vertical])]:w-px\",\n // Vertical: horizontal bar\n \"[aria-orientation=vertical]:h-px [aria-orientation=vertical]:w-full\",\n // Wider hit target via pseudo-element\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2\",\n \"[aria-orientation=vertical]:after:left-0 [aria-orientation=vertical]:after:h-1 [aria-orientation=vertical]:after:w-full [aria-orientation=vertical]:after:translate-x-0 [aria-orientation=vertical]:after:-translate-y-1/2\",\n // Active drag state\n \"active:bg-brand-primary/30\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-card shadow-natural\">\n <GripVertical size={10} className=\"text-muted-foreground\" />\n </div>\n )}\n </Separator>\n );\n}\nResizableHandle.displayName = \"ResizableHandle\";\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ScrollArea } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst ScrollAreaRoot = React.forwardRef<\n React.ComponentRef<typeof ScrollArea.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollArea.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollArea.Root ref={ref} className={cn(\"relative overflow-hidden\", className)} {...props}>\n <ScrollArea.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollArea.Viewport>\n <ScrollAreaScrollbar orientation=\"vertical\" />\n <ScrollAreaScrollbar orientation=\"horizontal\" />\n <ScrollArea.Corner />\n </ScrollArea.Root>\n));\nScrollAreaRoot.displayName = \"ScrollArea\";\n\nconst ScrollAreaScrollbar = React.forwardRef<\n React.ComponentRef<typeof ScrollArea.Scrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollArea.Scrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollArea.Scrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" && \"h-full w-2 border-l border-l-transparent p-px\",\n orientation === \"horizontal\" && \"h-2 flex-col border-t border-t-transparent p-px\",\n className,\n )}\n {...props}\n >\n <ScrollArea.Thumb className=\"relative flex-1 rounded-full bg-muted hover:bg-muted transition-colors\" />\n </ScrollArea.Scrollbar>\n));\nScrollAreaScrollbar.displayName = \"ScrollAreaScrollbar\";\n\nexport { ScrollAreaRoot as ScrollArea };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface SectionHeadingAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"outline\" | \"ghost\";\n}\n\ninterface SectionHeadingProps {\n title: string;\n description?: string;\n actions?: SectionHeadingAction[];\n border?: boolean;\n className?: string;\n}\n\nfunction SectionHeading({\n title,\n description,\n actions,\n border = true,\n className,\n}: SectionHeadingProps) {\n return (\n <div\n className={cn(\n \"flex flex-col gap-1 pb-4 sm:flex-row sm:items-start sm:justify-between\",\n border && \"border-b border-border\",\n className,\n )}\n >\n <div className=\"min-w-0 flex-1\">\n <h2 className=\"heading text-foreground truncate\">{title}</h2>\n {description && <p className=\"mt-1 body text-muted-foreground\">{description}</p>}\n </div>\n\n {actions && actions.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-2 pt-1\">\n {actions.map((action, i) =>\n action.href ? (\n <Button key={i} size=\"sm\" variant={action.variant ?? \"default\"} asChild>\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button\n key={i}\n size=\"sm\"\n variant={action.variant ?? \"default\"}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport { SectionHeading };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select } from \"radix-ui\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst SelectRoot = Select.Root;\nconst SelectGroup = Select.Group;\nconst SelectValue = Select.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof Select.Trigger>,\n React.ComponentPropsWithoutRef<typeof Select.Trigger>\n>(({ className, children, ...props }, ref) => (\n <Select.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between rounded-xl bg-card px-3 py-2\",\n \"body text-foreground shadow-natural\",\n \"focus:outline-none focus:ring-2 focus:ring-ring/20\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <Select.Icon asChild>\n <ChevronDown size={15} className=\"text-muted-foreground shrink-0\" />\n </Select.Icon>\n </Select.Trigger>\n));\nSelectTrigger.displayName = \"SelectTrigger\";\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof Select.Content>,\n React.ComponentPropsWithoutRef<typeof Select.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <Select.Portal>\n <Select.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden\",\n \"bg-card rounded-xl shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" && \"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <Select.ScrollUpButton className=\"flex cursor-default items-center justify-center py-1\">\n <ChevronUp size={14} className=\"text-muted-foreground\" />\n </Select.ScrollUpButton>\n <Select.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </Select.Viewport>\n <Select.ScrollDownButton className=\"flex cursor-default items-center justify-center py-1\">\n <ChevronDown size={14} className=\"text-muted-foreground\" />\n </Select.ScrollDownButton>\n </Select.Content>\n </Select.Portal>\n));\nSelectContent.displayName = \"SelectContent\";\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof Select.Item>,\n React.ComponentPropsWithoutRef<typeof Select.Item>\n>(({ className, children, ...props }, ref) => (\n <Select.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <Select.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </Select.ItemIndicator>\n </span>\n <Select.ItemText>{children}</Select.ItemText>\n </Select.Item>\n));\nSelectItem.displayName = \"SelectItem\";\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof Select.Label>,\n React.ComponentPropsWithoutRef<typeof Select.Label>\n>(({ className, ...props }, ref) => (\n <Select.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = \"SelectLabel\";\n\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof Select.Separator>,\n React.ComponentPropsWithoutRef<typeof Select.Separator>\n>(({ className, ...props }, ref) => (\n <Select.Separator ref={ref} className={cn(\"mx-1 my-1 h-px bg-muted\", className)} {...props} />\n));\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport {\n SelectRoot as Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-muted\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className,\n )}\n {...props}\n />\n));\nSeparator.displayName = \"Separator\";\n\nexport { Separator };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog } from \"radix-ui\";\nimport { X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst SheetRoot = Dialog.Root;\nconst SheetTrigger = Dialog.Trigger;\nconst SheetClose = Dialog.Close;\n\nconst SheetOverlay = React.forwardRef<\n React.ComponentRef<typeof Dialog.Overlay>,\n React.ComponentPropsWithoutRef<typeof Dialog.Overlay>\n>(({ className, ...props }, ref) => (\n <Dialog.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/30 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nSheetOverlay.displayName = \"SheetOverlay\";\n\nconst sheetContentVariants = cva(\n [\n \"fixed z-50 bg-card shadow-elevated p-6\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"transition ease-in-out duration-300\",\n ],\n {\n variants: {\n side: {\n right:\n \"right-0 top-0 h-full w-full max-w-sm data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right\",\n left: \"left-0 top-0 h-full w-full max-w-sm data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\",\n top: \"top-0 inset-x-0 h-auto data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"bottom-0 inset-x-0 h-auto data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof Dialog.Content>,\n VariantProps<typeof sheetContentVariants> {}\n\nconst SheetContent = React.forwardRef<React.ComponentRef<typeof Dialog.Content>, SheetContentProps>(\n ({ className, children, side = \"right\", ...props }, ref) => (\n <Dialog.Portal>\n <SheetOverlay />\n <Dialog.Content\n ref={ref}\n className={cn(sheetContentVariants({ side }), className)}\n {...props}\n >\n {children}\n <Dialog.Close className=\"absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring/20\">\n <X size={16} />\n <span className=\"sr-only\">Close</span>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n ),\n);\nSheetContent.displayName = \"SheetContent\";\n\nfunction SheetHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1.5 mb-4\", className)} {...props} />;\n}\nSheetHeader.displayName = \"SheetHeader\";\n\nfunction SheetFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex items-center justify-end gap-2 mt-6\", className)} {...props} />;\n}\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ComponentRef<typeof Dialog.Title>,\n React.ComponentPropsWithoutRef<typeof Dialog.Title>\n>(({ className, ...props }, ref) => (\n <Dialog.Title\n ref={ref}\n className={cn(\"body-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = \"SheetTitle\";\n\nconst SheetDescription = React.forwardRef<\n React.ComponentRef<typeof Dialog.Description>,\n React.ComponentPropsWithoutRef<typeof Dialog.Description>\n>(({ className, ...props }, ref) => (\n <Dialog.Description ref={ref} className={cn(\"body text-muted-foreground\", className)} {...props} />\n));\nSheetDescription.displayName = \"SheetDescription\";\n\nexport {\n SheetRoot as Sheet,\n SheetTrigger,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n SheetClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n children,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Tooltip.Provider>) {\n return (\n <Tooltip.Provider delayDuration={300} {...props}>\n {children}\n </Tooltip.Provider>\n );\n}\n\nconst TooltipRoot = Tooltip.Root;\nconst TooltipTrigger = Tooltip.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ComponentRef<typeof Tooltip.Content>,\n React.ComponentPropsWithoutRef<typeof Tooltip.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <Tooltip.Portal>\n <Tooltip.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 rounded-lg bg-foreground px-2.5 py-1.5 caption text-background\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1\",\n \"data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1\",\n className,\n )}\n {...props}\n />\n </Tooltip.Portal>\n));\nTooltipContent.displayName = \"TooltipContent\";\n\nexport { TooltipProvider, TooltipRoot as Tooltip, TooltipTrigger, TooltipContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { PanelLeft } from \"lucide-react\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Separator } from \"./separator\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"./tooltip\";\n\n/* ------------------------------------------------------------------ */\n/* Constants */\n/* ------------------------------------------------------------------ */\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.5rem\";\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarContextValue {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n toggleSidebar: () => void;\n}\n\nconst SidebarContext = React.createContext<SidebarContextValue | null>(null);\n\nfunction useSidebar() {\n const ctx = React.useContext(SidebarContext);\n if (!ctx) throw new Error(\"useSidebar must be used inside SidebarProvider\");\n return ctx;\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarProvider */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarProviderProps extends React.ComponentProps<\"div\"> {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) {\n const [_open, _setOpen] = React.useState(defaultOpen);\n\n const open = openProp !== undefined ? openProp : _open;\n\n const setOpen = React.useCallback(\n (value: boolean) => {\n if (onOpenChange) {\n onOpenChange(value);\n } else {\n _setOpen(value);\n }\n // Persist to cookie\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${value}; path=/; max-age=${60 * 60 * 24 * 7}`;\n },\n [onOpenChange],\n );\n\n const toggleSidebar = React.useCallback(() => {\n setOpen(!open);\n }, [open, setOpen]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextValue>(\n () => ({ state, open, setOpen, toggleSidebar }),\n [state, open, setOpen, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-sidebar=\"provider\"\n data-state={state}\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full\", className)}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Sidebar */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarProps extends React.ComponentProps<\"aside\"> {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"icon\",\n className,\n children,\n ...props\n}: SidebarProps) {\n const { state } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <aside\n data-side={side}\n data-variant={variant}\n data-collapsible=\"none\"\n className={cn(\n \"flex flex-col h-svh bg-card border-r border-border w-(--sidebar-width)\",\n side === \"right\" && \"border-r-0 border-l\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n if (collapsible === \"offcanvas\") {\n return (\n <aside\n data-state={state}\n data-side={side}\n data-variant={variant}\n data-collapsible=\"offcanvas\"\n className={cn(\n \"group peer flex flex-col h-svh bg-card border-r border-border\",\n \"transition-[width,transform] duration-200 ease-linear\",\n \"data-[state=expanded]:w-(--sidebar-width) data-[state=collapsed]:w-0 data-[state=collapsed]:-translate-x-full\",\n side === \"right\" && \"border-r-0 border-l data-[state=collapsed]:translate-x-full\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n // collapsible === \"icon\" (default)\n return (\n <aside\n data-state={state}\n data-side={side}\n data-variant={variant}\n data-collapsible=\"icon\"\n className={cn(\n \"group peer hidden md:flex flex-col h-svh bg-card border-r border-border\",\n \"transition-[width] duration-200 ease-linear overflow-hidden\",\n \"data-[state=expanded]:w-(--sidebar-width) data-[state=collapsed]:w-(--sidebar-width-icon)\",\n side === \"right\" && \"border-r-0 border-l\",\n variant === \"floating\" && \"m-2 h-[calc(100svh-1rem)] rounded-xl border shadow-natural\",\n variant === \"inset\" && \"border-r-0\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarTrigger */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(e) => {\n onClick?.(e);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft size={16} />\n <span className=\"sr-only\">Toggle sidebar</span>\n </Button>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarRail */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n aria-label=\"Toggle sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 cursor-col-resize transition-all ease-linear\",\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]\",\n \"hover:after:bg-brand-primary/30\",\n \"group-data-[side=left]:-right-4 group-data-[side=right]:left-0\",\n \"sm:flex\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarInset */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-sidebar=\"inset\"\n className={cn(\"relative flex min-h-svh flex-1 flex-col bg-card overflow-hidden\", className)}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Structure components */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-3 border-b border-border\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"content\"\n className={cn(\"flex min-h-0 flex-1 flex-col gap-2 overflow-auto p-3\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-3 border-t border-border\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-sidebar=\"separator\"\n className={cn(\"mx-2 my-1 bg-muted\", className)}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Group components */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"div\";\n\n return (\n <Comp\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 label text-muted-foreground\",\n \"outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear\",\n \"group-data-[state=collapsed]/sidebar-wrapper:opacity-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:h-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:m-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:p-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center\",\n \"rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Menu components */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuButton */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarMenuButtonProps extends React.ComponentProps<\"button\"> {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string;\n size?: \"default\" | \"sm\" | \"lg\";\n}\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n tooltip,\n size = \"default\",\n className,\n children,\n ...props\n}: SidebarMenuButtonProps) {\n const Comp = asChild ? (Slot.Root as React.ElementType) : \"button\";\n\n const button = (\n <Comp\n data-sidebar=\"menu-button\"\n data-active={isActive}\n data-size={size}\n className={cn(\n // Base\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 body-sm text-left\",\n \"outline-none ring-ring\",\n \"transition-[width,height,padding] duration-150\",\n \"hover:bg-muted hover:text-foreground\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"active:bg-muted\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&>svg]:size-4 [&>svg]:shrink-0\",\n // Size variants\n size === \"sm\" && \"h-7 text-xs\",\n size === \"lg\" && \"h-10\",\n // Active state\n isActive && [\n \"bg-brand-primary/10 text-brand-primary\",\n \"hover:bg-brand-primary/15 hover:text-brand-primary\",\n ],\n // Collapsed state\n \"group-data-[state=collapsed]/sidebar-wrapper:justify-center\",\n \"group-data-[state=collapsed]/sidebar-wrapper:size-9\",\n \"group-data-[state=collapsed]/sidebar-wrapper:p-0\",\n className,\n )}\n {...props}\n >\n {children}\n </Comp>\n );\n\n if (!tooltip) {\n return button;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n className={cn(\n // Only visible when collapsed\n \"hidden group-data-[state=collapsed]/sidebar-wrapper:block\",\n )}\n >\n {tooltip}\n </TooltipContent>\n </Tooltip>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuAction */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarMenuActionProps extends React.ComponentProps<\"button\"> {\n asChild?: boolean;\n showOnHover?: boolean;\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: SidebarMenuActionProps) {\n const Comp = asChild ? (Slot.Root as React.ElementType) : \"button\";\n\n return (\n <Comp\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1/2 -translate-y-1/2 flex aspect-square w-5 items-center justify-center\",\n \"rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n showOnHover && [\n \"opacity-0 transition-opacity\",\n \"group-hover/menu-item:opacity-100\",\n \"peer-data-[active=true]/menu-button:opacity-100\",\n ],\n \"group-data-[state=collapsed]/sidebar-wrapper:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuBadge */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"menu-badge\"\n className={cn(\n \"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-full\",\n \"caption font-medium bg-muted text-muted-foreground px-1\",\n \"group-data-[state=collapsed]/sidebar-wrapper:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuSkeleton */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & { showIcon?: boolean }) {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <div className=\"size-4 shrink-0 rounded-md bg-muted animate-pulse\" />}\n <div\n className=\"h-4 max-w-(--skeleton-width) flex-1 rounded-md bg-muted animate-pulse\"\n style={{ \"--skeleton-width\": width } as React.CSSProperties}\n />\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Sub menu */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border pl-3\",\n \"group-data-[state=collapsed]/sidebar-wrapper:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\ninterface SidebarMenuSubButtonProps extends React.ComponentProps<\"a\"> {\n asChild?: boolean;\n isActive?: boolean;\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n isActive = false,\n className,\n ...props\n}: SidebarMenuSubButtonProps) {\n const Comp = asChild ? (Slot.Root as React.ElementType) : \"a\";\n\n return (\n <Comp\n data-sidebar=\"menu-sub-button\"\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2\",\n \"body text-muted-foreground outline-none\",\n \"transition-colors duration-150\",\n \"hover:text-foreground hover:bg-muted\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&>svg]:size-3.5 [&>svg]:shrink-0\",\n isActive && \"text-brand-primary hover:text-brand-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n SidebarProvider,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slider } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst SliderRoot = React.forwardRef<\n React.ComponentRef<typeof Slider.Root>,\n React.ComponentPropsWithoutRef<typeof Slider.Root>\n>(({ className, ...props }, ref) => (\n <Slider.Root\n ref={ref}\n className={cn(\"relative flex w-full touch-none select-none items-center\", className)}\n {...props}\n >\n <Slider.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted\">\n <Slider.Range className=\"absolute h-full bg-brand-primary\" />\n </Slider.Track>\n <Slider.Thumb className=\"block size-4 rounded-full border-2 border-brand-primary bg-card shadow-natural transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30 disabled:pointer-events-none disabled:opacity-50\" />\n </Slider.Root>\n));\nSliderRoot.displayName = \"Slider\";\n\nexport { SliderRoot as Slider };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Toaster as SonnerToaster } from \"sonner\";\n\ntype ToasterProps = React.ComponentProps<typeof SonnerToaster>;\n\nfunction Toaster({ ...props }: ToasterProps) {\n return (\n <SonnerToaster\n theme=\"light\"\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast font-sans text-sm group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border group-[.toaster]:border-border group-[.toaster]:shadow-elevated group-[.toaster]:rounded-xl\",\n description: \"group-[.toast]:text-muted-foreground group-[.toast]:text-xs\",\n actionButton:\n \"group-[.toast]:bg-brand-primary group-[.toast]:text-background group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium\",\n success: \"group-[.toaster]:border-brand-secondary/40 group-[.toaster]:text-foreground\",\n error:\n \"group-[.toaster]:bg-destructive/10 group-[.toaster]:text-destructive group-[.toaster]:border-destructive/20\",\n warning:\n \"group-[.toaster]:bg-warning group-[.toaster]:text-warning-foreground group-[.toaster]:border-warning/40\",\n info: \"group-[.toaster]:border-border\",\n },\n }}\n {...props}\n />\n );\n}\n\nexport { Toaster };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst spinnerVariants = cva(\n \"inline-block animate-spin rounded-full border-2 border-current border-t-transparent\",\n {\n variants: {\n size: {\n xs: \"size-3\",\n sm: \"size-4\",\n default: \"size-5\",\n lg: \"size-6\",\n xl: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\ninterface SpinnerProps\n extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof spinnerVariants> {}\n\nfunction Spinner({ className, size, ...props }: SpinnerProps) {\n return (\n <span\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nexport { Spinner, spinnerVariants };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface StackedListProps {\n children: React.ReactNode;\n divided?: boolean;\n bordered?: boolean;\n className?: string;\n}\n\nfunction StackedList({ children, divided = true, bordered = true, className }: StackedListProps) {\n return (\n <ul\n role=\"list\"\n className={cn(\n \"overflow-hidden rounded-xl bg-card\",\n bordered && \"border border-border shadow-natural\",\n divided && \"divide-y divide-border\",\n className,\n )}\n >\n {children}\n </ul>\n );\n}\n\ninterface StackedListItemProps {\n children: React.ReactNode;\n href?: string;\n onClick?: () => void;\n className?: string;\n}\n\nfunction StackedListItem({ children, href, onClick, className }: StackedListItemProps) {\n const inner = <div className={cn(\"px-4 py-3.5\", className)}>{children}</div>;\n\n if (href) {\n return (\n <li>\n <a href={href} className=\"block hover:bg-muted transition-colors\">\n {inner}\n </a>\n </li>\n );\n }\n\n if (onClick) {\n return (\n <li>\n <button\n type=\"button\"\n className=\"w-full text-left hover:bg-muted transition-colors\"\n onClick={onClick}\n >\n {inner}\n </button>\n </li>\n );\n }\n\n return <li>{inner}</li>;\n}\n\nexport { StackedList, StackedListItem };\n","import * as React from \"react\";\nimport { TrendingUp, TrendingDown, Minus } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n trend?: {\n value: string;\n direction: \"up\" | \"down\" | \"neutral\";\n };\n icon?: React.ReactNode;\n className?: string;\n}\n\nfunction StatCard({ label, value, trend, icon, className }: StatCardProps) {\n const trendColor = {\n up: \"text-muted-foreground bg-brand-secondary/30 rounded-full px-2 py-0.5 w-fit\",\n down: \"text-destructive\",\n neutral: \"text-muted-foreground\",\n };\n\n const TrendIcon = {\n up: TrendingUp,\n down: TrendingDown,\n neutral: Minus,\n };\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n <div className=\"flex items-start justify-between gap-3\">\n <p className=\"label text-muted-foreground\">{label}</p>\n {icon && (\n <div className=\"flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n {icon}\n </div>\n )}\n </div>\n <p className=\"heading-xl mt-2 text-foreground\">{value}</p>\n {trend &&\n (() => {\n const Icon = TrendIcon[trend.direction];\n return (\n <div className={cn(\"mt-2 flex items-center gap-1\", trendColor[trend.direction])}>\n <Icon size={12} />\n <span className=\"caption font-medium\">{trend.value}</span>\n </div>\n );\n })()}\n </div>\n );\n}\n\nStatCard.displayName = \"StatCard\";\n\nexport { StatCard };\n","import * as React from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport type StepStatus = \"complete\" | \"current\" | \"upcoming\";\n\nexport interface Step {\n id?: string | number;\n name: string;\n description?: string;\n status: StepStatus;\n href?: string;\n}\n\ninterface StepsProps {\n steps: Step[];\n variant?: \"circles\" | \"bullets\" | \"progress\";\n className?: string;\n}\n\n/* ---------- Circles variant ---------- */\nfunction CirclesSteps({ steps, className }: { steps: Step[]; className?: string }) {\n return (\n <nav aria-label=\"Progress\" className={className}>\n <ol role=\"list\" className=\"flex items-center\">\n {steps.map((step, i) => {\n const isLast = i === steps.length - 1;\n return (\n <li key={step.id ?? i} className={cn(\"relative\", !isLast && \"flex-1\")}>\n {/* Connector line */}\n {!isLast && (\n <div className=\"absolute top-4 left-8 -right-px h-0.5\" aria-hidden=\"true\">\n <div\n className={cn(\n \"h-full\",\n step.status === \"complete\" ? \"bg-brand-primary\" : \"bg-muted\",\n )}\n />\n </div>\n )}\n\n <a\n href={step.href ?? \"#\"}\n onClick={!step.href ? (e) => e.preventDefault() : undefined}\n className=\"group relative flex flex-col items-center gap-2\"\n >\n {/* Circle */}\n <span\n className={cn(\n \"relative z-10 flex size-8 items-center justify-center rounded-full transition-colors\",\n step.status === \"complete\" &&\n \"bg-brand-primary group-hover:bg-brand-primary/80\",\n step.status === \"current\" && \"border-2 border-brand-primary bg-card\",\n step.status === \"upcoming\" &&\n \"border-2 border-border bg-card group-hover:border-border\",\n )}\n >\n {step.status === \"complete\" ? (\n <Check size={14} className=\"text-background\" strokeWidth={2.5} />\n ) : step.status === \"current\" ? (\n <span className=\"size-2.5 rounded-full bg-brand-primary\" />\n ) : (\n <span className=\"size-2.5 rounded-full bg-transparent group-hover:bg-muted\" />\n )}\n </span>\n\n {/* Labels */}\n <span className=\"flex flex-col items-center\">\n <span\n className={cn(\n \"caption font-semibold\",\n step.status === \"upcoming\" ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {step.name}\n </span>\n {step.description && (\n <span className=\"caption text-muted-foreground\">{step.description}</span>\n )}\n </span>\n </a>\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n\n/* ---------- Bullets variant ---------- */\nfunction BulletsSteps({ steps, className }: { steps: Step[]; className?: string }) {\n const currentIdx = steps.findIndex((s) => s.status === \"current\");\n\n return (\n <nav className={cn(\"flex items-center gap-4\", className)} aria-label=\"Progress\">\n <p className=\"body font-medium text-muted-foreground\">\n Step {currentIdx + 1} of {steps.length}\n </p>\n <ol role=\"list\" className=\"flex items-center gap-2\">\n {steps.map((step, i) => (\n <li key={step.id ?? i}>\n <a\n href={step.href ?? \"#\"}\n onClick={!step.href ? (e) => e.preventDefault() : undefined}\n className=\"block\"\n >\n {step.status === \"complete\" ? (\n <span\n className=\"block size-2.5 rounded-full bg-brand-primary hover:bg-brand-primary/80 transition-colors\"\n aria-label={`${step.name}: completed`}\n />\n ) : step.status === \"current\" ? (\n <span\n className=\"relative flex size-4 items-center justify-center\"\n aria-current=\"step\"\n aria-label={`${step.name}: current step`}\n >\n <span className=\"absolute size-4 rounded-full bg-brand-primary/20\" />\n <span className=\"relative size-2.5 rounded-full bg-brand-primary\" />\n </span>\n ) : (\n <span\n className=\"block size-2.5 rounded-full bg-muted hover:bg-muted transition-colors\"\n aria-label={`${step.name}: upcoming`}\n />\n )}\n </a>\n </li>\n ))}\n </ol>\n </nav>\n );\n}\n\n/* ---------- Progress bar variant ---------- */\nfunction ProgressSteps({ steps, className }: { steps: Step[]; className?: string }) {\n const completeCount = steps.filter((s) => s.status === \"complete\").length;\n const currentIdx = steps.findIndex((s) => s.status === \"current\");\n const progress = ((completeCount + (currentIdx >= 0 ? 0.5 : 0)) / steps.length) * 100;\n\n return (\n <div className={cn(\"w-full\", className)}>\n {/* Bar */}\n <div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n <div\n className=\"h-full rounded-full bg-brand-primary transition-all duration-500\"\n style={{ width: `${progress}%` }}\n />\n </div>\n {/* Labels */}\n <div className=\"mt-4 grid\" style={{ gridTemplateColumns: `repeat(${steps.length}, 1fr)` }}>\n {steps.map((step, i) => {\n const isLast = i === steps.length - 1;\n return (\n <div\n key={step.id ?? i}\n className={cn(\n \"caption font-medium\",\n i === 0 ? \"text-left\" : isLast ? \"text-right\" : \"text-center\",\n step.status === \"upcoming\" ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {step.name}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n/* ---------- Main component ---------- */\nfunction Steps({ steps, variant = \"circles\", className }: StepsProps) {\n const classNameProp = className !== undefined ? { className } : {};\n if (variant === \"bullets\") return <BulletsSteps steps={steps} {...classNameProp} />;\n if (variant === \"progress\") return <ProgressSteps steps={steps} {...classNameProp} />;\n return <CirclesSteps steps={steps} {...classNameProp} />;\n}\n\nSteps.displayName = \"Steps\";\n\nexport { Steps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Switch } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst SwitchRoot = React.forwardRef<\n React.ComponentRef<typeof Switch.Root>,\n React.ComponentPropsWithoutRef<typeof Switch.Root>\n>(({ className, ...props }, ref) => (\n <Switch.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full\",\n \"border-2 border-transparent transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=unchecked]:bg-muted data-[state=checked]:bg-brand-primary\",\n className,\n )}\n {...props}\n >\n <Switch.Thumb\n className={cn(\n \"pointer-events-none block size-4 rounded-full bg-card shadow-natural\",\n \"transition-transform data-[state=unchecked]:translate-x-0 data-[state=checked]:translate-x-4\",\n )}\n />\n </Switch.Root>\n));\nSwitchRoot.displayName = \"Switch\";\n\nexport { SwitchRoot as Switch };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tabs } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst TabsRoot = React.forwardRef<\n React.ComponentRef<typeof Tabs.Root>,\n React.ComponentPropsWithoutRef<typeof Tabs.Root>\n>(({ className, ...props }, ref) => (\n <Tabs.Root ref={ref} className={cn(\"w-full\", className)} {...props} />\n));\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof Tabs.List>,\n React.ComponentPropsWithoutRef<typeof Tabs.List>\n>(({ className, ...props }, ref) => (\n <Tabs.List\n ref={ref}\n className={cn(\"inline-flex items-center gap-1 border-b border-border w-full\", className)}\n {...props}\n />\n));\nTabsList.displayName = \"TabsList\";\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof Tabs.Trigger>,\n React.ComponentPropsWithoutRef<typeof Tabs.Trigger>\n>(({ className, ...props }, ref) => (\n <Tabs.Trigger\n ref={ref}\n className={cn(\n \"px-0 pb-2.5 body font-medium text-muted-foreground\",\n \"border-b-2 border-transparent -mb-px\",\n \"transition-colors cursor-pointer\",\n \"data-[state=active]:text-brand-primary data-[state=active]:border-brand-primary\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof Tabs.Content>,\n React.ComponentPropsWithoutRef<typeof Tabs.Content>\n>(({ className, ...props }, ref) => (\n <Tabs.Content ref={ref} className={cn(\"mt-4\", className)} {...props} />\n));\nTabsContent.displayName = \"TabsContent\";\n\nexport { TabsRoot as Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-border bg-card px-3 py-2\",\n \"body text-foreground placeholder:text-muted-foreground\",\n \"resize-none transition-colors duration-150\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/20 focus-visible:border-border\",\n \"disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Toggle } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst toggleVariants = cva(\n [\n \"inline-flex shrink-0 items-center justify-center gap-2\",\n \"body font-medium whitespace-nowrap rounded-md\",\n \"transition-all duration-150 outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n variant: {\n default: [\n \"bg-transparent text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[state=on]:bg-muted data-[state=on]:text-foreground\",\n ],\n outline: [\n \"border border-border bg-card text-muted-foreground shadow-natural\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[state=on]:bg-muted data-[state=on]:text-foreground data-[state=on]:border-border\",\n ],\n brand: [\n \"bg-transparent text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[state=on]:bg-brand-primary data-[state=on]:text-background\",\n ],\n },\n size: {\n sm: \"h-8 gap-1.5 px-3\",\n default: \"h-9 px-3\",\n lg: \"h-10 px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\ninterface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof Toggle.Root>, VariantProps<typeof toggleVariants> {}\n\nconst ToggleRoot = React.forwardRef<React.ComponentRef<typeof Toggle.Root>, ToggleProps>(\n ({ className, variant, size, ...props }, ref) => (\n <Toggle.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size }), className)}\n {...props}\n />\n ),\n);\nToggleRoot.displayName = \"Toggle\";\n\nexport { ToggleRoot as Toggle, toggleVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ToggleGroup } from \"radix-ui\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: \"default\",\n variant: \"default\",\n});\n\nconst ToggleGroupRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroup.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroup.Root> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroup.Root\n ref={ref}\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n </ToggleGroup.Root>\n));\nToggleGroupRoot.displayName = \"ToggleGroup\";\n\nconst ToggleGroupItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroup.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroup.Item> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext);\n return (\n <ToggleGroup.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: variant ?? context.variant,\n size: size ?? context.size,\n }),\n className,\n )}\n {...props}\n />\n );\n});\nToggleGroupItem.displayName = \"ToggleGroupItem\";\n\nexport { ToggleGroupRoot as ToggleGroup, ToggleGroupItem };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/dropdown-menu.tsx","../src/components/avatar.tsx","../src/components/account-menu.tsx","../src/components/accordion.tsx","../src/components/button.tsx","../src/components/action-panel.tsx","../src/components/activity-feed.tsx","../src/components/alert-dialog.tsx","../src/components/alert.tsx","../src/components/aspect-ratio.tsx","../src/components/avatar-stack.tsx","../src/components/badge.tsx","../src/components/breadcrumb.tsx","../src/components/button-group.tsx","../src/components/calendar.tsx","../src/components/card-heading.tsx","../src/components/card.tsx","../src/components/carousel.tsx","../src/components/chart.tsx","../src/components/checkbox.tsx","../src/components/collapsible.tsx","../src/components/color-picker.tsx","../src/components/color-input.tsx","../src/components/combobox.tsx","../src/components/dialog.tsx","../src/components/command-palette.tsx","../src/components/command.tsx","../src/components/context-menu.tsx","../src/components/table.tsx","../src/components/input.tsx","../src/components/data-table.tsx","../src/components/popover.tsx","../src/components/date-picker.tsx","../src/components/description-list.tsx","../src/components/drawer.tsx","../src/components/empty-state.tsx","../src/components/label.tsx","../src/components/field.tsx","../src/components/grid-list.tsx","../src/components/hover-card.tsx","../src/components/input-group.tsx","../src/components/input-number.tsx","../src/components/input-otp.tsx","../src/components/kbd.tsx","../src/components/media-object.tsx","../src/components/menubar.tsx","../src/components/native-select.tsx","../src/components/navigation-menu.tsx","../src/components/notification.tsx","../src/components/page-heading.tsx","../src/components/pagination.tsx","../src/components/progress.tsx","../src/components/property-row.tsx","../src/components/radio-card.tsx","../src/components/radio-group.tsx","../src/components/resizable.tsx","../src/components/scroll-area.tsx","../src/components/section-heading.tsx","../src/components/select.tsx","../src/components/separator.tsx","../src/components/sheet.tsx","../src/components/tooltip.tsx","../src/components/sidebar.tsx","../src/components/skeleton.tsx","../src/components/slider.tsx","../src/components/sonner.tsx","../src/components/spinner.tsx","../src/components/stacked-list.tsx","../src/components/stat-card.tsx","../src/components/steps.tsx","../src/components/switch.tsx","../src/components/tabs.tsx","../src/components/textarea.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx"],"names":["React","React2","jsx","AvatarPrimitive","jsxs","React3","React4","React5","cva","React6","React7","sizeMap","React8","ChevronRight","React9","React10","React11","Check","React12","React13","React14","React15","React16","ArrowRight","Search","React18","Circle","React19","React20","ChevronDown","ChevronsUpDown","Popover","React21","DrawerPrimitive","React22","React23","LabelPrimitive","React24","React25","React26","React27","Minus","React28","gapMap","React29","React30","React31","AlertCircle","X","React32","React33","ChevronLeft","MoreHorizontal","React34","colMap","React35","Separator","React36","React37","ChevronUp","React38","SeparatorPrimitive","Dialog","React39","Tooltip","React40","React41","Slot","React42","SonnerToaster","React43","React44","React45","React46"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DropdownMenu } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst DropdownMenuRoot = DropdownMenu.Root;\nconst DropdownMenuTrigger = DropdownMenu.Trigger;\nconst DropdownMenuGroup = DropdownMenu.Group;\nconst DropdownMenuPortal = DropdownMenu.Portal;\nconst DropdownMenuSub = DropdownMenu.Sub;\nconst DropdownMenuRadioGroup = DropdownMenu.RadioGroup;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] bg-card rounded-xl shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenu.Portal>\n));\nDropdownMenuContent.displayName = \"DropdownMenuContent\";\n\nconst DropdownMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Item> & {\n inset?: boolean;\n destructive?: boolean;\n }\n>(({ className, inset, destructive, ...props }, ref) => (\n <DropdownMenu.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body outline-none transition-colors\",\n destructive\n ? \"text-destructive focus:bg-destructive/10 focus:text-destructive\"\n : \"text-muted-foreground focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenu.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenu.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </DropdownMenu.ItemIndicator>\n </span>\n {children}\n </DropdownMenu.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\";\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenu.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenu.ItemIndicator>\n <Circle size={8} className=\"fill-foreground text-foreground\" />\n </DropdownMenu.ItemIndicator>\n </span>\n {children}\n </DropdownMenu.RadioItem>\n));\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\";\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenu.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\";\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenu.Separator\n ref={ref}\n className={cn(\"mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\";\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenu.SubTrigger\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-muted-foreground\" />\n </DropdownMenu.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\";\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenu.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenu.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenu.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\";\n\nfunction DropdownMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return <span className={cn(\"ml-auto caption text-muted-foreground\", className)} {...props} />;\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenuRoot as DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuRadioGroup,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst sizeMap = {\n xs: \"size-5 caption-xs\",\n sm: \"size-7 caption\",\n md: \"size-8 body\",\n lg: \"size-10 body-lg\",\n xl: \"size-12 subheading\",\n} as const;\n\ntype AvatarSize = keyof typeof sizeMap;\n\ninterface AvatarProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> {\n size?: AvatarSize;\n}\n\nconst Avatar = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Root>, AvatarProps>(\n ({ className, size = \"md\", ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex shrink-0 overflow-hidden rounded-full\",\n sizeMap[size],\n className,\n )}\n {...props}\n />\n ),\n);\nAvatar.displayName = \"Avatar\";\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<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 object-cover\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = \"AvatarImage\";\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<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-muted body font-semibold text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = \"AvatarFallback\";\n\nconst statusColorMap = {\n online: \"bg-brand-secondary\",\n offline: \"bg-muted\",\n busy: \"bg-destructive\",\n away: \"bg-brand-secondary\",\n};\n\nconst statusSizeMap = {\n xs: \"size-1.5 ring-1\",\n sm: \"size-2 ring-1\",\n md: \"size-2.5 ring-[1.5px]\",\n lg: \"size-3 ring-2\",\n xl: \"size-3.5 ring-2\",\n};\n\ninterface AvatarWithStatusProps extends AvatarProps {\n status?: keyof typeof statusColorMap;\n}\n\nconst AvatarWithStatus = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarWithStatusProps & { children?: React.ReactNode }\n>(({ status, size = \"md\", className, children, ...props }, ref) => (\n <div className=\"relative inline-flex shrink-0\">\n <Avatar ref={ref} size={size} className={className} {...props}>\n {children}\n </Avatar>\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 right-0 rounded-full ring-background\",\n statusColorMap[status],\n statusSizeMap[size],\n )}\n />\n )}\n </div>\n));\nAvatarWithStatus.displayName = \"AvatarWithStatus\";\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarWithStatus };\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n} from \"./dropdown-menu\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"./avatar\";\nimport { cn } from \"../lib/utils\";\n\nconst AccountMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuContent>\n>(({ className, sideOffset = 8, ...props }, ref) => (\n <DropdownMenuContent\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"w-80 overflow-hidden rounded-3xl bg-ground-900 p-0 text-ground-50 shadow-elevated\",\n \"ring-1 ring-ground-800\",\n className,\n )}\n {...props}\n />\n));\nAccountMenuContent.displayName = \"AccountMenuContent\";\n\ninterface AccountMenuHeaderProps extends React.ComponentProps<\"div\"> {\n name: React.ReactNode;\n email?: React.ReactNode;\n avatarSrc?: string | null;\n avatarAlt?: string;\n fallback?: React.ReactNode;\n}\n\nconst AccountMenuHeader = React.forwardRef<HTMLDivElement, AccountMenuHeaderProps>(\n ({ name, email, avatarSrc, avatarAlt, fallback, className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center px-6 py-8 text-center\", className)}\n {...props}\n >\n <Avatar size=\"xl\" className=\"mb-4 size-16\">\n {avatarSrc && <AvatarImage src={avatarSrc} alt={avatarAlt ?? \"\"} />}\n <AvatarFallback className=\"bg-brand-primary text-2xl text-primary-foreground\">\n {fallback}\n </AvatarFallback>\n </Avatar>\n <p className=\"body-lg font-medium leading-tight text-ground-50\">{name}</p>\n {email && <p className=\"body text-ground-400\">{email}</p>}\n </div>\n ),\n);\nAccountMenuHeader.displayName = \"AccountMenuHeader\";\n\nconst AccountMenuSection = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-3\", className)} {...props} />\n ),\n);\nAccountMenuSection.displayName = \"AccountMenuSection\";\n\ninterface AccountMenuItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuItem> {\n icon?: React.ReactNode;\n trailing?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst AccountMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuItem>,\n AccountMenuItemProps\n>(({ icon, trailing, description, children, className, ...props }, ref) => (\n <DropdownMenuItem\n ref={ref}\n className={cn(\n \"min-h-11 rounded-lg px-3 py-2.5 text-ground-50\",\n \"group\",\n \"focus:bg-primary focus:text-primary-foreground\",\n \"data-[disabled]:opacity-40\",\n \"[&_svg:not([class*='size-'])]:size-5\",\n className,\n )}\n {...props}\n >\n {icon && <span className=\"flex size-6 shrink-0 items-center justify-center\">{icon}</span>}\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"body-lg truncate font-medium leading-tight\">{children}</span>\n {description && (\n <span className=\"body truncate font-normal text-ground-400 group-focus:text-primary-foreground/80\">\n {description}\n </span>\n )}\n </span>\n {trailing && <span className=\"ml-3 shrink-0 text-ground-400\">{trailing}</span>}\n </DropdownMenuItem>\n));\nAccountMenuItem.displayName = \"AccountMenuItem\";\n\nconst AccountMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuSeparator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuSeparator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuSeparator ref={ref} className={cn(\"m-0 bg-ground-800\", className)} {...props} />\n));\nAccountMenuSeparator.displayName = \"AccountMenuSeparator\";\n\nexport {\n AccountMenuContent,\n AccountMenuHeader,\n AccountMenuSection,\n AccountMenuItem,\n AccountMenuSeparator,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Accordion } from \"radix-ui\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst AccordionRoot = React.forwardRef<\n React.ComponentRef<typeof Accordion.Root>,\n React.ComponentPropsWithoutRef<typeof Accordion.Root>\n>(({ className, ...props }, ref) => (\n <Accordion.Root ref={ref} className={cn(\"divide-y divide-border\", className)} {...props} />\n));\nAccordionRoot.displayName = \"Accordion\";\n\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof Accordion.Item>,\n React.ComponentPropsWithoutRef<typeof Accordion.Item>\n>(({ className, ...props }, ref) => (\n <Accordion.Item ref={ref} className={cn(\"\", className)} {...props} />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof Accordion.Trigger>,\n React.ComponentPropsWithoutRef<typeof Accordion.Trigger>\n>(({ className, children, ...props }, ref) => (\n <Accordion.Header className=\"flex\">\n <Accordion.Trigger\n ref={ref}\n className={cn(\n \"flex w-full items-center justify-between py-4\",\n \"body font-medium text-foreground transition-colors hover:text-muted-foreground\",\n \"[&[data-state=open]>svg]:rotate-180\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/20\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={16}\n className=\"text-muted-foreground transition-transform duration-200 shrink-0\"\n />\n </Accordion.Trigger>\n </Accordion.Header>\n));\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof Accordion.Content>,\n React.ComponentPropsWithoutRef<typeof Accordion.Content>\n>(({ className, children, ...props }, ref) => (\n <Accordion.Content\n ref={ref}\n className={cn(\n \"overflow-hidden body text-muted-foreground\",\n \"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\",\n className,\n )}\n {...props}\n >\n <div className=\"pb-4\">{children}</div>\n </Accordion.Content>\n));\nAccordionContent.displayName = \"AccordionContent\";\n\nexport { AccordionRoot as Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex shrink-0 items-center justify-center gap-2\",\n \"body font-medium whitespace-nowrap\",\n \"transition-all duration-150 outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80\",\n outline: \"bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl\",\n secondary: \"bg-muted text-muted-foreground hover:bg-muted\",\n brand:\n \"bg-brand-secondary text-foreground hover:bg-brand-secondary/90 active:bg-brand-secondary/80\",\n ghost: \"text-muted-foreground hover:bg-muted hover:text-foreground\",\n link: \"text-foreground underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 rounded-md\",\n xs: \"h-6 gap-1 px-2 caption rounded-md\",\n sm: \"h-8 gap-1.5 px-3 rounded-md\",\n lg: \"h-10 px-6 rounded-md\",\n icon: \"size-9 rounded-md\",\n \"icon-xs\": \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8 rounded-md\",\n \"icon-lg\": \"size-10 rounded-md\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\ninterface ButtonProps extends React.ComponentProps<\"button\">, VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nfunction Button({ className, variant, size, asChild = false, ...props }: ButtonProps) {\n const Comp = asChild ? Slot.Root : \"button\";\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface ActionPanelAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"destructive\" | \"outline\" | \"ghost\";\n}\n\ninterface ActionPanelLink {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\ninterface ActionPanelProps {\n title: string;\n description?: string;\n action?: ActionPanelAction;\n actions?: ActionPanelAction[];\n link?: ActionPanelLink;\n variant?: \"default\" | \"muted\";\n layout?: \"stacked\" | \"inline\";\n children?: React.ReactNode;\n className?: string;\n}\n\nfunction ActionPanel({\n title,\n description,\n action,\n actions,\n link,\n variant = \"default\",\n layout = \"stacked\",\n children,\n className,\n}: ActionPanelProps) {\n const allActions = actions ?? (action ? [action] : []);\n\n const renderActions = () => {\n if (allActions.length === 0 && !link) return null;\n return (\n <div className=\"flex items-center gap-2\">\n {link &&\n (link.href ? (\n <a\n href={link.href}\n className=\"body font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1\"\n >\n {link.label} <span aria-hidden>→</span>\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={link.onClick}\n className=\"body font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1\"\n >\n {link.label} <span aria-hidden>→</span>\n </button>\n ))}\n {allActions.map((a, i) =>\n a.href ? (\n <Button key={i} size=\"sm\" variant={a.variant ?? \"default\"} asChild>\n <a href={a.href}>{a.label}</a>\n </Button>\n ) : (\n <Button key={i} size=\"sm\" variant={a.variant ?? \"default\"} onClick={a.onClick}>\n {a.label}\n </Button>\n ),\n )}\n </div>\n );\n };\n\n return (\n <div\n className={cn(\n \"rounded-xl border px-5 py-5\",\n variant === \"muted\"\n ? \"border-border bg-muted\"\n : \"border-border bg-card shadow-natural\",\n layout === \"inline\" && \"flex items-center justify-between gap-6\",\n className,\n )}\n >\n <div className={cn(\"min-w-0\", layout === \"inline\" ? \"flex-1\" : \"\")}>\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && (\n <p className={cn(\"body text-muted-foreground\", layout === \"stacked\" ? \"mt-1\" : \"\")}>\n {description}\n </p>\n )}\n {children && layout === \"stacked\" && <div className=\"mt-4\">{children}</div>}\n </div>\n\n {layout === \"stacked\" ? (\n (allActions.length > 0 || link) && <div className=\"mt-4\">{renderActions()}</div>\n ) : (\n <div className=\"shrink-0 flex items-center gap-3\">\n {children}\n {renderActions()}\n </div>\n )}\n </div>\n );\n}\n\nActionPanel.displayName = \"ActionPanel\";\n\nexport { ActionPanel };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface FeedEvent {\n id?: string | number;\n content: React.ReactNode;\n date?: string;\n datetime?: string;\n icon?: React.ReactNode;\n iconBgClass?: string;\n}\n\ninterface ActivityFeedProps {\n events: FeedEvent[];\n className?: string;\n}\n\nfunction ActivityFeed({ events, className }: ActivityFeedProps) {\n return (\n <div className={cn(\"flow-root\", className)}>\n <ul role=\"list\" className=\"-mb-8\">\n {events.map((event, i) => {\n const isLast = i === events.length - 1;\n return (\n <li key={event.id ?? i}>\n <div className=\"relative pb-8\">\n {!isLast && (\n <span\n className=\"absolute top-4 left-4 -ml-px h-full w-0.5 bg-muted\"\n aria-hidden=\"true\"\n />\n )}\n <div className=\"relative flex gap-3\">\n {/* Icon */}\n <div>\n <span\n className={cn(\n \"flex size-8 items-center justify-center rounded-full ring-8 ring-background\",\n event.iconBgClass ?? \"bg-muted text-muted-foreground\",\n )}\n >\n {event.icon}\n </span>\n </div>\n\n {/* Content */}\n <div className=\"flex min-w-0 flex-1 items-baseline justify-between gap-4 pt-1\">\n <div className=\"body text-muted-foreground\">{event.content}</div>\n {event.date && (\n <time\n dateTime={event.datetime ?? event.date}\n className=\"caption whitespace-nowrap text-muted-foreground\"\n >\n {event.date}\n </time>\n )}\n </div>\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n\nActivityFeed.displayName = \"ActivityFeed\";\n\nexport { ActivityFeed };\nexport type { FeedEvent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AlertDialog } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst AlertDialogRoot = AlertDialog.Root;\nconst AlertDialogTrigger = AlertDialog.Trigger;\nconst AlertDialogPortal = AlertDialog.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/30 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = \"AlertDialogOverlay\";\n\nconst AlertDialogContent = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Content>\n>(({ className, children, ...props }, ref) => (\n <AlertDialog.Portal>\n <AlertDialogOverlay />\n <AlertDialog.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%]\",\n \"w-full max-w-md bg-card rounded-2xl shadow-elevated p-6\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n >\n {children}\n </AlertDialog.Content>\n </AlertDialog.Portal>\n));\nAlertDialogContent.displayName = \"AlertDialogContent\";\n\nfunction AlertDialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1.5 mb-5\", className)} {...props} />;\n}\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nfunction AlertDialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex items-center justify-end gap-2 mt-6\", className)} {...props} />;\n}\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Title\n ref={ref}\n className={cn(\"body-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = \"AlertDialogTitle\";\n\nconst AlertDialogDescription = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Description ref={ref} className={cn(\"body text-muted-foreground\", className)} {...props} />\n));\nAlertDialogDescription.displayName = \"AlertDialogDescription\";\n\nconst AlertDialogAction = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Action\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-md px-4\",\n \"body font-medium whitespace-nowrap transition-all duration-150\",\n \"bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogAction.displayName = \"AlertDialogAction\";\n\nconst AlertDialogCancel = React.forwardRef<\n React.ComponentRef<typeof AlertDialog.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialog.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialog.Cancel\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-md px-4\",\n \"body font-medium whitespace-nowrap transition-all duration-150\",\n \"bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = \"AlertDialogCancel\";\n\nexport {\n AlertDialogRoot as AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\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-xl px-4 py-3.5 body [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-3.5 [&>svg~*]:pl-6\",\n {\n variants: {\n variant: {\n default: \"bg-muted text-muted-foreground [&>svg]:text-muted-foreground\",\n info: \"bg-brand-secondary/40 text-muted-foreground [&>svg]:text-muted-foreground\",\n success: \"bg-brand-secondary/15 text-muted-foreground [&>svg]:text-muted-foreground\",\n warning: \"bg-brand-secondary/70 text-muted-foreground [&>svg]:text-muted-foreground\",\n destructive: \"bg-destructive/10 text-destructive [&>svg]:text-destructive/70\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\ninterface AlertProps extends React.ComponentProps<\"div\">, VariantProps<typeof alertVariants> {}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n ),\n);\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"mb-0.5 body font-semibold leading-tight\", className)} {...props} />\n ),\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"body opacity-90\", className)} {...props} />\n ),\n);\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AspectRatio } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst AspectRatioRoot = React.forwardRef<\n React.ComponentRef<typeof AspectRatio.Root>,\n React.ComponentPropsWithoutRef<typeof AspectRatio.Root>\n>(({ className, ...props }, ref) => (\n <AspectRatio.Root\n ref={ref}\n className={cn(\"relative w-full overflow-hidden\", className)}\n {...props}\n />\n));\nAspectRatioRoot.displayName = \"AspectRatio\";\n\nexport { AspectRatioRoot as AspectRatio };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nexport interface AvatarStackItem {\n src?: string;\n name: string;\n fallback?: string;\n colorClass?: string;\n}\n\ninterface AvatarStackProps {\n avatars: AvatarStackItem[];\n max?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizeMap = {\n sm: { wrapper: \"size-6 ring-[1.5px]\", text: \"caption-xs\" },\n md: { wrapper: \"size-8 ring-2\", text: \"caption\" },\n lg: { wrapper: \"size-10 ring-2\", text: \"body\" },\n};\n\nfunction AvatarStack({ avatars, max, size = \"md\", className }: AvatarStackProps) {\n const shown = max ? avatars.slice(0, max) : avatars;\n const overflow = max && avatars.length > max ? avatars.length - max : 0;\n const s = sizeMap[size];\n\n return (\n <div className={cn(\"flex -space-x-2\", className)}>\n {shown.map((avatar, i) => (\n <span\n key={i}\n title={avatar.name}\n className={cn(\n \"relative inline-flex shrink-0 overflow-hidden rounded-full ring-background\",\n s.wrapper,\n )}\n >\n {avatar.src ? (\n <img src={avatar.src} alt={avatar.name} className=\"size-full object-cover\" />\n ) : (\n <span\n className={cn(\n \"flex size-full items-center justify-center font-medium\",\n s.text,\n avatar.colorClass ?? \"bg-muted text-muted-foreground\",\n )}\n >\n {avatar.fallback ?? avatar.name.slice(0, 2).toUpperCase()}\n </span>\n )}\n </span>\n ))}\n {overflow > 0 && (\n <span\n className={cn(\n \"relative inline-flex shrink-0 items-center justify-center rounded-full ring-background bg-muted font-medium text-muted-foreground\",\n s.wrapper,\n s.text,\n )}\n >\n +{overflow}\n </span>\n )}\n </div>\n );\n}\n\nexport { AvatarStack };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 caption font-medium transition-colors\",\n {\n variants: {\n variant: {\n default: \"bg-foreground text-background\",\n secondary: \"bg-muted text-muted-foreground\",\n outline: \"border border-border text-muted-foreground bg-transparent\",\n brand: \"bg-brand-primary text-background\",\n success: \"bg-brand-secondary/20 text-muted-foreground border border-brand-secondary/50\",\n warning: \"bg-brand-secondary/70 text-muted-foreground border border-brand-secondary\",\n destructive: \"bg-destructive/10 text-destructive border border-destructive/20\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\ninterface BadgeProps extends React.ComponentProps<\"span\">, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <span data-slot=\"badge\" className={cn(badgeVariants({ variant, className }))} {...props} />\n );\n}\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"nav\"> & { separator?: React.ReactNode }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentProps<\"ol\">>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\"flex flex-wrap items-center gap-1.5 body text-muted-foreground\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, React.ComponentProps<\"a\">>(\n ({ className, ...props }, ref) => (\n <a ref={ref} className={cn(\"transition-colors hover:text-foreground\", className)} {...props} />\n ),\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentProps<\"span\">>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-current=\"page\"\n className={cn(\"body font-medium text-foreground\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn(\"text-muted-foreground\", className)} {...props}>\n {children ?? <ChevronRight size={14} />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal size={14} className=\"text-muted-foreground\" />\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface ButtonGroupProps {\n children: React.ReactNode;\n className?: string;\n}\n\nfunction ButtonGroup({ children, className }: ButtonGroupProps) {\n return (\n <div\n className={cn(\n \"inline-flex divide-x divide-border overflow-hidden rounded-lg border border-border bg-card shadow-natural\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\ninterface ButtonGroupItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n active?: boolean;\n}\n\nfunction ButtonGroupItem({ active, className, children, ...props }: ButtonGroupItemProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"relative inline-flex items-center gap-1.5 px-3.5 py-2 body font-medium transition-colors\",\n \"focus:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:ring-inset\",\n active\n ? \"bg-foreground text-background\"\n : \"text-muted-foreground hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nButtonGroup.displayName = \"ButtonGroup\";\nButtonGroupItem.displayName = \"ButtonGroupItem\";\n\nexport { ButtonGroup, ButtonGroupItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DayPicker } from \"react-day-picker\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row gap-4\",\n month: \"flex flex-col gap-4\",\n month_caption: \"flex justify-center pt-1 relative items-center px-10\",\n caption_label: \"body font-semibold text-foreground\",\n nav: \"flex items-center justify-between absolute inset-x-0 top-1\",\n button_previous: cn(\n \"absolute left-0 h-7 w-7 flex items-center justify-center rounded-md\",\n \"text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors\",\n ),\n button_next: cn(\n \"absolute right-0 h-7 w-7 flex items-center justify-center rounded-md\",\n \"text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors\",\n ),\n month_grid: \"w-full border-collapse mt-1\",\n weekdays: \"flex\",\n weekday: \"w-9 h-9 flex items-center justify-center label text-muted-foreground font-normal\",\n week: \"flex w-full mt-1\",\n day: \"relative p-0 text-center\",\n day_button: cn(\n \"h-9 w-9 flex items-center justify-center rounded-full body font-normal\",\n \"text-foreground hover:bg-muted transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n ),\n selected:\n \"[&>button]:bg-brand-primary [&>button]:text-background [&>button]:hover:bg-brand-primary/90\",\n today: \"[&>button]:font-semibold [&>button]:text-brand-primary\",\n outside: \"opacity-40 [&>button]:text-muted-foreground\",\n disabled: \"opacity-30 [&>button]:cursor-not-allowed\",\n range_start: \"[&>button]:bg-brand-primary [&>button]:text-background [&>button]:rounded-full\",\n range_end: \"[&>button]:bg-brand-primary [&>button]:text-background [&>button]:rounded-full\",\n range_middle:\n \"[&>button]:bg-brand-primary/15 [&>button]:text-foreground [&>button]:rounded-none\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) =>\n orientation === \"left\" ? <ChevronLeft size={14} /> : <ChevronRight size={14} />,\n }}\n {...props}\n />\n );\n}\nCalendar.displayName = \"Calendar\";\n\nexport { Calendar };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface CardHeadingAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"outline\" | \"ghost\" | \"destructive\";\n}\n\ninterface CardHeadingProps {\n title: string;\n description?: string;\n actions?: CardHeadingAction[];\n children?: React.ReactNode; // e.g. avatar or icon on the left\n className?: string;\n}\n\nfunction CardHeading({ title, description, actions, children, className }: CardHeadingProps) {\n return (\n <div\n className={cn(\n \"flex items-start justify-between gap-4 border-b border-border px-5 py-4\",\n className,\n )}\n >\n <div className=\"flex min-w-0 items-center gap-3\">\n {children}\n <div className=\"min-w-0\">\n <p className=\"body font-semibold text-foreground truncate\">{title}</p>\n {description && <p className=\"caption text-muted-foreground mt-0.5\">{description}</p>}\n </div>\n </div>\n\n {actions && actions.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-2\">\n {actions.map((action, i) =>\n action.href ? (\n <Button key={i} size=\"sm\" variant={action.variant ?? \"default\"} asChild>\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button\n key={i}\n size=\"sm\"\n variant={action.variant ?? \"default\"}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport { CardHeading };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\n/* ------------------------------------------------------------------ */\n/* Card root */\n/* ------------------------------------------------------------------ */\n\nconst cardVariants = cva(\"rounded-xl\", {\n variants: {\n variant: {\n default: \"bg-card shadow-natural\",\n muted: \"bg-muted\",\n ghost: \"bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ninterface CardProps extends React.ComponentProps<\"div\">, VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card\"\n className={cn(cardVariants({ variant }), className)}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\n/* ------------------------------------------------------------------ */\n/* Card sub-components */\n/* ------------------------------------------------------------------ */\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-header\"\n className={cn(\"flex flex-col gap-1.5 p-5\", className)}\n {...props}\n />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.ComponentProps<\"h3\">>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n data-slot=\"card-title\"\n className={cn(\"subheading text-foreground\", className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"card-description\"\n className={cn(\"caption text-muted-foreground\", className)}\n {...props}\n />\n ),\n);\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"card-content\" className={cn(\"p-5 pt-0\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-footer\"\n className={cn(\"flex items-center p-5 pt-0\", className)}\n {...props}\n />\n ),\n);\nCardFooter.displayName = \"CardFooter\";\n\n/* ------------------------------------------------------------------ */\n/* CardMedia — full-bleed image/gradient header */\n/* ------------------------------------------------------------------ */\n\nconst CardMedia = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-media\"\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n />\n ),\n);\nCardMedia.displayName = \"CardMedia\";\n\nexport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardMedia,\n cardVariants,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n if (!context) throw new Error(\"useCarousel must be used within a <Carousel />\");\n return context;\n}\n\nfunction Carousel({\n opts,\n plugins,\n orientation = \"horizontal\",\n setApi,\n className,\n children,\n ...props\n}: CarouselProps & React.ComponentProps<\"div\">) {\n const [carouselRef, emblaApi] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"vertical\" ? \"y\" : \"x\",\n },\n plugins,\n );\n\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n emblaApi?.scrollPrev();\n }, [emblaApi]);\n\n const scrollNext = React.useCallback(() => {\n emblaApi?.scrollNext();\n }, [emblaApi]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!emblaApi) return;\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n return () => {\n emblaApi.off(\"reInit\", onSelect);\n emblaApi.off(\"select\", onSelect);\n };\n }, [emblaApi, onSelect]);\n\n React.useEffect(() => {\n if (!emblaApi || !setApi) return;\n setApi(emblaApi);\n }, [emblaApi, setApi]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: emblaApi,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n className={cn(\"flex\", orientation === \"vertical\" ? \"-mt-4 flex-col\" : \"-ml-4\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"vertical\" ? \"pt-4\" : \"pl-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-9 w-9 rounded-full\",\n orientation === \"vertical\"\n ? \"-top-12 left-1/2 -translate-x-1/2 rotate-90\"\n : \"-left-12 top-1/2 -translate-y-1/2\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"size-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-9 w-9 rounded-full\",\n orientation === \"vertical\"\n ? \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\"\n : \"-right-12 top-1/2 -translate-y-1/2\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"size-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ResponsiveContainer, type TooltipContentProps } from \"recharts\";\nimport { cn } from \"../lib/utils\";\nimport { tokens } from \"../tokens/tokens\";\n\nexport const CHART_COLORS = {\n primary: tokens.semantic.light.primary,\n secondary: tokens.semantic.light.success,\n tertiary: tokens.semantic.light.warning,\n muted: tokens.semantic.light.mutedForeground,\n subtle: tokens.semantic.light.border,\n dark: tokens.semantic.light.foreground,\n};\n\ninterface ChartContainerProps {\n children: React.ReactNode;\n className?: string;\n height?: number;\n}\n\nfunction ChartContainer({ children, className, height = 300 }: ChartContainerProps) {\n return (\n <div className={cn(\"w-full\", className)}>\n <ResponsiveContainer width=\"100%\" height={height}>\n {children as React.ReactElement}\n </ResponsiveContainer>\n </div>\n );\n}\nChartContainer.displayName = \"ChartContainer\";\n\n// Custom tooltip component styled to match the design system\ninterface ChartTooltipProps extends Partial<TooltipContentProps<number, string>> {\n labelClassName?: string;\n}\n\nfunction ChartTooltip({ active, payload, label, labelClassName }: ChartTooltipProps) {\n if (!active || !payload?.length) return null;\n return (\n <div className=\"rounded-xl border border-border bg-card px-3 py-2 shadow-elevated\">\n {label && <p className={cn(\"mb-1 label text-muted-foreground\", labelClassName)}>{label}</p>}\n {payload.map((entry, i) => (\n <div key={i} className=\"flex items-center gap-2\">\n <span\n className=\"inline-block h-2 w-2 rounded-full\"\n style={{ backgroundColor: entry.color }}\n />\n <span className=\"caption text-muted-foreground\">{entry.name}:</span>\n <span className=\"caption font-medium text-foreground\">{entry.value}</span>\n </div>\n ))}\n </div>\n );\n}\nChartTooltip.displayName = \"ChartTooltip\";\n\nexport { ChartContainer, ChartTooltip };\n\nexport {\n BarChart,\n Bar,\n LineChart,\n Line,\n AreaChart,\n Area,\n PieChart,\n Pie,\n Cell,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip as RechartsTooltip,\n Legend,\n type TooltipProps as RechartsTooltipProps,\n} from \"recharts\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Checkbox } from \"radix-ui\";\nimport { Check, Minus } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst CheckboxRoot = React.forwardRef<\n React.ComponentRef<typeof Checkbox.Root>,\n React.ComponentPropsWithoutRef<typeof Checkbox.Root>\n>(({ className, ...props }, ref) => (\n <Checkbox.Root\n ref={ref}\n className={cn(\n \"peer size-4 shrink-0 rounded border border-border bg-card transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-brand-primary data-[state=checked]:border-brand-primary\",\n \"data-[state=indeterminate]:bg-brand-primary data-[state=indeterminate]:border-brand-primary\",\n className,\n )}\n {...props}\n >\n <Checkbox.Indicator className=\"flex items-center justify-center text-background\">\n {props.checked === \"indeterminate\" ? (\n <Minus size={11} strokeWidth={3} />\n ) : (\n <Check size={11} strokeWidth={3} />\n )}\n </Checkbox.Indicator>\n </Checkbox.Root>\n));\nCheckboxRoot.displayName = \"Checkbox\";\n\nexport { CheckboxRoot as Checkbox };\n","\"use client\";\n\nimport { Collapsible } from \"radix-ui\";\n\nconst CollapsibleRoot = Collapsible.Root;\nconst CollapsibleTrigger = Collapsible.Trigger;\nconst CollapsibleContent = Collapsible.Content;\n\nexport { CollapsibleRoot as Collapsible, CollapsibleTrigger, CollapsibleContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Popover } from \"radix-ui\";\n\ninterface ColorPickerProps {\n value: string;\n onChange: (next: string) => void;\n className?: string;\n disabled?: boolean;\n /** Optional preset palette shown above the picker. */\n presets?: string[];\n /** Accessible label for the trigger. */\n ariaLabel?: string;\n}\n\nfunction isValidHex(s: string): boolean {\n return /^#([0-9a-fA-F]{3}){1,2}$/.test(s);\n}\n\nfunction ColorPicker({\n value,\n onChange,\n className,\n disabled,\n presets,\n ariaLabel = \"Color\",\n}: ColorPickerProps) {\n const [hex, setHex] = React.useState(value);\n\n React.useEffect(() => {\n setHex(value);\n }, [value]);\n\n const commit = (next: string) => {\n if (isValidHex(next)) onChange(next);\n };\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n aria-label={ariaLabel}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-md border border-border bg-card\",\n \"transition-colors hover:border-border\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n >\n <span\n aria-hidden\n className=\"h-5 w-5 rounded-sm border border-black/5\"\n style={{ backgroundColor: value }}\n />\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n align=\"start\"\n sideOffset={6}\n className=\"z-50 w-56 rounded-xl bg-card p-3 shadow-natural outline-none\"\n >\n <input\n type=\"color\"\n value={isValidHex(hex) ? hex : \"#000000\"}\n onChange={(e) => {\n setHex(e.target.value);\n onChange(e.target.value);\n }}\n className=\"h-10 w-full cursor-pointer rounded-md border border-border bg-card p-0.5\"\n />\n <div className=\"mt-2 flex items-center gap-2\">\n <span className=\"caption text-muted-foreground\">Hex</span>\n <input\n type=\"text\"\n value={hex}\n onChange={(e) => setHex(e.target.value)}\n onBlur={(e) => commit(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") commit((e.target as HTMLInputElement).value);\n }}\n className=\"flex-1 h-7 rounded-md border border-border bg-card px-2 caption text-foreground focus:outline-none focus:border-brand-primary\"\n />\n </div>\n {presets && presets.length > 0 && (\n <div className=\"mt-3 grid grid-cols-8 gap-1.5\">\n {presets.map((p) => (\n <button\n key={p}\n type=\"button\"\n onClick={() => onChange(p)}\n aria-label={p}\n className=\"h-5 w-5 rounded-sm border border-black/10 transition-transform hover:scale-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\"\n style={{ backgroundColor: p }}\n />\n ))}\n </div>\n )}\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n\nColorPicker.displayName = \"ColorPicker\";\n\nexport { ColorPicker };\nexport type { ColorPickerProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { ColorPicker } from \"./color-picker\";\n\ninterface ColorInputProps {\n value: string;\n onChange: (next: string) => void;\n /** Show an opacity slider (0–100). Pass `opacity` and `onOpacityChange`. */\n opacity?: number;\n onOpacityChange?: (next: number) => void;\n className?: string;\n disabled?: boolean;\n presets?: string[];\n}\n\n/**\n * Compact, inline color input designed for designer property panels.\n * Combines a swatch trigger (ColorPicker), a hex input, and an optional opacity field.\n */\nfunction ColorInput({\n value,\n onChange,\n opacity,\n onOpacityChange,\n className,\n disabled,\n presets,\n}: ColorInputProps) {\n const [hex, setHex] = React.useState(value);\n\n React.useEffect(() => {\n setHex(value);\n }, [value]);\n\n const commitHex = (next: string) => {\n if (/^#([0-9a-fA-F]{3}){1,2}$/.test(next)) onChange(next);\n else setHex(value);\n };\n\n return (\n <div\n className={cn(\n \"inline-flex h-8 items-stretch gap-0 rounded-md border border-border bg-card overflow-hidden\",\n \"focus-within:ring-2 focus-within:ring-brand-primary/20 focus-within:border-brand-primary\",\n disabled && \"opacity-50 pointer-events-none\",\n className,\n )}\n >\n <ColorPicker\n value={value}\n onChange={onChange}\n {...(presets !== undefined && { presets })}\n {...(disabled !== undefined && { disabled })}\n className=\"h-full w-8 border-0 rounded-none focus-visible:ring-0\"\n />\n <input\n type=\"text\"\n value={hex.replace(/^#/, \"\")}\n onChange={(e) => setHex(\"#\" + e.target.value.replace(/^#/, \"\"))}\n onBlur={(e) => commitHex(\"#\" + e.target.value.replace(/^#/, \"\"))}\n onKeyDown={(e) => {\n if (e.key === \"Enter\")\n commitHex(\"#\" + (e.target as HTMLInputElement).value.replace(/^#/, \"\"));\n }}\n spellCheck={false}\n className=\"w-[5.5rem] caption text-foreground px-2 bg-transparent border-l border-border focus:outline-none uppercase\"\n />\n {typeof opacity === \"number\" && onOpacityChange && (\n <div className=\"relative flex items-center border-l border-border\">\n <input\n type=\"number\"\n min={0}\n max={100}\n value={Math.round(opacity)}\n onChange={(e) => onOpacityChange(Number(e.target.value))}\n className=\"w-12 caption text-foreground px-2 bg-transparent focus:outline-none text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\"\n />\n <span aria-hidden className=\"caption-xs text-muted-foreground pr-2\">\n %\n </span>\n </div>\n )}\n </div>\n );\n}\n\nColorInput.displayName = \"ColorInput\";\n\nexport { ColorInput };\nexport type { ColorInputProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, ChevronsUpDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n description?: string;\n statusColor?: string;\n avatar?: string;\n}\n\ninterface ComboboxProps {\n options: ComboboxOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n}\n\nfunction Combobox({\n options,\n value,\n onValueChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Search...\",\n emptyText = \"No results found.\",\n className,\n}: ComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [query, setQuery] = React.useState(\"\");\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const listboxId = React.useId();\n\n const selectedOption = options.find((o) => o.value === value);\n\n const filtered =\n query === \"\"\n ? options\n : options.filter(\n (o) =>\n o.label.toLowerCase().includes(query.toLowerCase()) ||\n o.description?.toLowerCase().includes(query.toLowerCase()),\n );\n\n // Reset active index when the filtered list changes\n React.useEffect(() => {\n setActiveIndex(-1);\n }, [filtered.length, open]);\n\n // Close on outside click\n React.useEffect(() => {\n function onMouseDown(e: MouseEvent) {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setOpen(false);\n setQuery(\"\");\n }\n }\n document.addEventListener(\"mousedown\", onMouseDown);\n return () => document.removeEventListener(\"mousedown\", onMouseDown);\n }, []);\n\n function closeDropdown() {\n setOpen(false);\n setQuery(\"\");\n setActiveIndex(-1);\n }\n\n function selectOption(opt: ComboboxOption) {\n onValueChange?.(opt.value);\n closeDropdown();\n }\n\n function handleInputKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === \"Escape\") {\n closeDropdown();\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!open) { setOpen(true); return; }\n setActiveIndex((i) => Math.min(i + 1, filtered.length - 1));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (!open) { setOpen(true); return; }\n const target = activeIndex >= 0 ? filtered[activeIndex] : filtered[0];\n if (target) selectOption(target);\n } else if (e.key === \"Tab\") {\n closeDropdown();\n }\n }\n\n return (\n <div ref={containerRef} className={cn(\"relative\", className)}>\n {/* Trigger */}\n <div className=\"relative flex items-center\">\n {selectedOption?.avatar && !open && (\n <div className=\"pointer-events-none absolute left-2.5 flex size-5 items-center justify-center rounded-full bg-muted caption-xs font-semibold text-muted-foreground shrink-0\">\n {selectedOption.avatar}\n </div>\n )}\n {selectedOption?.statusColor && !open && (\n <div\n className=\"pointer-events-none absolute left-3 size-2 rounded-full shrink-0\"\n style={{ backgroundColor: selectedOption.statusColor }}\n />\n )}\n <input\n ref={inputRef}\n type=\"text\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={open ? listboxId : undefined}\n aria-activedescendant={open && activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : undefined}\n aria-autocomplete=\"list\"\n className={cn(\n \"flex h-9 w-full rounded-lg border border-border bg-card pr-8 body text-foreground\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:border-border\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n selectedOption?.avatar && !open\n ? \"pl-8\"\n : selectedOption?.statusColor && !open\n ? \"pl-7\"\n : \"pl-3\",\n )}\n placeholder={open ? searchPlaceholder : (selectedOption?.label ?? placeholder)}\n value={open ? query : (selectedOption?.label ?? \"\")}\n onChange={(e) => {\n setQuery(e.target.value);\n if (!open) setOpen(true);\n }}\n onFocus={() => {\n setOpen(true);\n setQuery(\"\");\n }}\n onKeyDown={handleInputKeyDown}\n />\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={open ? \"Close\" : \"Open\"}\n className=\"absolute inset-y-0 right-0 flex items-center px-2 text-muted-foreground hover:text-muted-foreground transition-colors\"\n onClick={() => {\n if (open) {\n closeDropdown();\n } else {\n setOpen(true);\n inputRef.current?.focus();\n }\n }}\n >\n <ChevronsUpDown size={14} />\n </button>\n </div>\n\n {/* Dropdown */}\n {open && (\n <div className=\"absolute z-50 mt-1 w-full overflow-hidden rounded-lg border border-border bg-card shadow-elevated\">\n <ul id={listboxId} role=\"listbox\" className=\"max-h-60 overflow-auto py-1\">\n {filtered.length === 0 ? (\n <li className=\"px-3 py-2 body text-muted-foreground\">{emptyText}</li>\n ) : (\n filtered.map((option, idx) => {\n const isSelected = option.value === value;\n const isActive = idx === activeIndex;\n return (\n <li\n key={option.value}\n id={`${listboxId}-option-${idx}`}\n role=\"option\"\n aria-selected={isSelected}\n className={cn(\n \"flex cursor-pointer select-none items-center gap-2.5 px-3 py-2 body transition-colors\",\n isSelected\n ? \"bg-brand-primary text-background\"\n : isActive\n ? \"bg-muted text-foreground\"\n : \"text-foreground hover:bg-muted\",\n )}\n onMouseDown={(e) => e.preventDefault()}\n onMouseEnter={() => setActiveIndex(idx)}\n onClick={() => selectOption(option)}\n >\n {/* Avatar */}\n {option.avatar && (\n <div\n className={cn(\n \"flex size-6 shrink-0 items-center justify-center rounded-full caption-xs font-semibold\",\n isSelected ? \"bg-card/20 text-background\" : \"bg-muted text-muted-foreground\",\n )}\n >\n {option.avatar}\n </div>\n )}\n {/* Status dot */}\n {option.statusColor && !option.avatar && (\n <div\n className=\"size-2 shrink-0 rounded-full\"\n style={{ backgroundColor: option.statusColor }}\n />\n )}\n <div className=\"min-w-0 flex-1\">\n <p className={cn(\"truncate\", isSelected && \"font-semibold\")}>\n {option.label}\n </p>\n {option.description && (\n <p\n className={cn(\n \"caption truncate\",\n isSelected ? \"text-background/70\" : \"text-muted-foreground\",\n )}\n >\n {option.description}\n </p>\n )}\n </div>\n {isSelected && <Check size={14} className=\"shrink-0\" />}\n </li>\n );\n })\n )}\n </ul>\n </div>\n )}\n </div>\n );\n}\n\nCombobox.displayName = \"Combobox\";\n\nexport { Combobox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog } from \"radix-ui\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst DialogRoot = Dialog.Root;\nconst DialogTrigger = Dialog.Trigger;\nconst DialogClose = Dialog.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof Dialog.Overlay>,\n React.ComponentPropsWithoutRef<typeof Dialog.Overlay>\n>(({ className, ...props }, ref) => (\n <Dialog.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/30 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = \"DialogOverlay\";\n\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof Dialog.Content>,\n React.ComponentPropsWithoutRef<typeof Dialog.Content>\n>(({ className, children, ...props }, ref) => (\n <Dialog.Portal>\n <DialogOverlay />\n <Dialog.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%]\",\n \"w-full max-w-lg bg-card rounded-2xl shadow-elevated p-6\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n >\n {children}\n <Dialog.Close className=\"absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring/20\">\n <X size={16} />\n <span className=\"sr-only\">Close</span>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n));\nDialogContent.displayName = \"DialogContent\";\n\nfunction DialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1.5 mb-4\", className)} {...props} />;\n}\nDialogHeader.displayName = \"DialogHeader\";\n\nfunction DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex items-center justify-end gap-2 mt-6\", className)} {...props} />;\n}\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof Dialog.Title>,\n React.ComponentPropsWithoutRef<typeof Dialog.Title>\n>(({ className, ...props }, ref) => (\n <Dialog.Title\n ref={ref}\n className={cn(\"body-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof Dialog.Description>,\n React.ComponentPropsWithoutRef<typeof Dialog.Description>\n>(({ className, ...props }, ref) => (\n <Dialog.Description ref={ref} className={cn(\"body text-muted-foreground\", className)} {...props} />\n));\nDialogDescription.displayName = \"DialogDescription\";\n\nexport {\n DialogRoot as Dialog,\n DialogTrigger,\n DialogOverlay,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n DialogClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Search, ArrowRight } from \"lucide-react\";\nimport { Dialog, DialogContent } from \"./dialog\";\n\nexport interface CommandPaletteItem {\n id?: string | number;\n label: string;\n description?: string;\n icon?: React.ReactNode;\n category?: string;\n href?: string;\n onSelect?: () => void;\n}\n\ninterface CommandPaletteProps {\n open: boolean;\n onClose: () => void;\n items: CommandPaletteItem[];\n placeholder?: string;\n emptyText?: string;\n}\n\nfunction CommandPalette({\n open,\n onClose,\n items,\n placeholder = \"Search...\",\n emptyText = \"No results found.\",\n}: CommandPaletteProps) {\n const [query, setQuery] = React.useState(\"\");\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n // Focus input when opened\n React.useEffect(() => {\n if (open) {\n setTimeout(() => inputRef.current?.focus(), 50);\n setQuery(\"\");\n }\n }, [open]);\n\n const filtered =\n query === \"\"\n ? items\n : items.filter(\n (item) =>\n item.label.toLowerCase().includes(query.toLowerCase()) ||\n item.description?.toLowerCase().includes(query.toLowerCase()) ||\n item.category?.toLowerCase().includes(query.toLowerCase()),\n );\n\n // Group by category\n const grouped = filtered.reduce<Record<string, CommandPaletteItem[]>>((acc, item) => {\n const cat = item.category ?? \"\";\n if (!acc[cat]) acc[cat] = [];\n acc[cat].push(item);\n return acc;\n }, {});\n\n const categories = Object.keys(grouped);\n\n function handleSelect(item: CommandPaletteItem) {\n if (item.href) {\n window.location.href = item.href;\n } else {\n item.onSelect?.();\n }\n onClose();\n }\n\n return (\n <Dialog open={open} onOpenChange={(v) => !v && onClose()}>\n <DialogContent className=\"gap-0 overflow-hidden p-0 sm:max-w-xl\">\n {/* Search input */}\n <div className=\"flex items-center gap-3 border-b border-border px-4\">\n <Search size={16} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={inputRef}\n type=\"text\"\n className=\"h-12 flex-1 bg-transparent body text-foreground placeholder:text-muted-foreground focus:outline-none\"\n placeholder={placeholder}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") onClose();\n if (e.key === \"Enter\" && filtered.length > 0) handleSelect(filtered[0]);\n }}\n />\n <kbd className=\"hidden items-center gap-0.5 sm:flex\">\n <span className=\"caption-xs font-medium text-muted-foreground rounded border border-border px-1.5 py-0.5\">\n esc\n </span>\n </kbd>\n </div>\n\n {/* Results */}\n <div className=\"max-h-80 overflow-y-auto\">\n {filtered.length === 0 ? (\n <p className=\"px-4 py-8 text-center body text-muted-foreground\">{emptyText}</p>\n ) : (\n <ul role=\"list\" className=\"py-2\">\n {categories.map((cat) => (\n <li key={cat}>\n {cat && <p className=\"label px-4 py-2 text-muted-foreground\">{cat}</p>}\n {grouped[cat].map((item, i) => (\n <button\n key={item.id ?? i}\n type=\"button\"\n className=\"flex w-full items-center gap-3 px-4 py-2.5 body text-left transition-colors hover:bg-muted focus-visible:bg-muted focus-visible:outline-none\"\n onClick={() => handleSelect(item)}\n >\n {item.icon && (\n <span className=\"flex size-8 shrink-0 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground\">\n {item.icon}\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-medium text-foreground truncate\">{item.label}</p>\n {item.description && (\n <p className=\"caption text-muted-foreground truncate\">{item.description}</p>\n )}\n </div>\n <ArrowRight size={13} className=\"shrink-0 text-muted-foreground\" />\n </button>\n ))}\n </li>\n ))}\n </ul>\n )}\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\nCommandPalette.displayName = \"CommandPalette\";\n\nexport { CommandPalette };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface CommandContextValue {\n query: string;\n setQuery: React.Dispatch<React.SetStateAction<string>>;\n onSelect?: (value: string) => void;\n reportVisible: (id: string, visible: boolean) => void;\n}\n\nconst CommandCtx = React.createContext<CommandContextValue>({\n query: \"\",\n setQuery: () => {},\n reportVisible: () => {},\n});\n\nconst CommandVisibleCtx = React.createContext(0);\n\ninterface CommandProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n onSelect?: (value: string) => void;\n}\n\nfunction Command({ className, children, onSelect, ...props }: CommandProps) {\n const [query, setQuery] = React.useState(\"\");\n const visibleIds = React.useRef(new Set<string>());\n const [visibleCount, setVisibleCount] = React.useState(0);\n\n const reportVisible = React.useCallback((id: string, visible: boolean) => {\n const had = visibleIds.current.has(id);\n if (visible && !had) {\n visibleIds.current.add(id);\n setVisibleCount(visibleIds.current.size);\n } else if (!visible && had) {\n visibleIds.current.delete(id);\n setVisibleCount(visibleIds.current.size);\n }\n }, []);\n\n return (\n <CommandCtx.Provider value={{ query, setQuery, ...(onSelect !== undefined && { onSelect }), reportVisible }}>\n <CommandVisibleCtx.Provider value={visibleCount}>\n <div\n className={cn(\n \"flex flex-col overflow-hidden rounded-xl border border-border bg-card\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </CommandVisibleCtx.Provider>\n </CommandCtx.Provider>\n );\n}\n\nconst CommandInput = React.forwardRef<\n HTMLInputElement,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"value\" | \"onChange\">\n>(({ className, ...props }, ref) => {\n const { query, setQuery } = React.useContext(CommandCtx);\n return (\n <div className=\"flex items-center gap-2 border-b border-border px-3\">\n <Search size={14} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={ref}\n type=\"text\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n className={cn(\n \"flex h-10 w-full bg-transparent body text-foreground\",\n \"placeholder:text-muted-foreground focus:outline-none\",\n className,\n )}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n {...props}\n />\n </div>\n );\n});\nCommandInput.displayName = \"CommandInput\";\n\nconst CommandList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const listRef = React.useRef<HTMLDivElement | null>(null);\n\n const combinedRef = React.useCallback(\n (el: HTMLDivElement | null) => {\n listRef.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = el;\n },\n [ref],\n );\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (![\"ArrowDown\", \"ArrowUp\"].includes(e.key)) return;\n e.preventDefault();\n const el = listRef.current;\n if (!el) return;\n const items = Array.from(\n el.querySelectorAll<HTMLElement>(\"[data-cmd-item]:not([aria-disabled='true'])\"),\n );\n if (!items.length) return;\n const focused = el.querySelector<HTMLElement>(\"[data-cmd-item]:focus\");\n const idx = focused ? items.indexOf(focused) : -1;\n const next =\n e.key === \"ArrowDown\"\n ? items[Math.min(idx + 1, items.length - 1)]\n : items[Math.max(idx - 1, 0)];\n next?.focus();\n };\n\n return (\n <div\n ref={combinedRef}\n role=\"listbox\"\n onKeyDown={handleKeyDown}\n className={cn(\"max-h-[300px] overflow-y-auto py-1\", className)}\n {...props}\n />\n );\n },\n);\nCommandList.displayName = \"CommandList\";\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children = \"No results found.\", ...props }, ref) => {\n const visibleCount = React.useContext(CommandVisibleCtx);\n if (visibleCount > 0) return null;\n return (\n <div\n ref={ref}\n className={cn(\"py-6 text-center caption text-muted-foreground\", className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nCommandEmpty.displayName = \"CommandEmpty\";\n\ninterface CommandGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n heading?: string;\n}\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n ({ className, heading, children, ...props }, ref) => (\n <div ref={ref} role=\"group\" className={cn(\"py-1\", className)} {...props}>\n {heading && <p className=\"px-3 pb-1 pt-0.5 label text-muted-foreground\">{heading}</p>}\n {children}\n </div>\n ),\n);\nCommandGroup.displayName = \"CommandGroup\";\n\ninterface CommandItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n value?: string;\n keywords?: string[];\n disabled?: boolean;\n onSelect?: (value: string) => void;\n}\n\nconst CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n ({ className, value = \"\", keywords, disabled, onSelect, children, ...props }, ref) => {\n const { query, onSelect: ctxOnSelect, reportVisible } = React.useContext(CommandCtx);\n const id = React.useId();\n\n const searchText = (keywords ?? [value]).join(\" \").toLowerCase();\n const isVisible = !query || searchText.includes(query.toLowerCase());\n\n React.useLayoutEffect(() => {\n reportVisible(id, isVisible && !disabled);\n return () => reportVisible(id, false);\n }, [id, isVisible, disabled, reportVisible]);\n\n if (!isVisible) return null;\n\n const handleSelect = () => {\n if (disabled) return;\n onSelect?.(value);\n ctxOnSelect?.(value);\n };\n\n return (\n <div\n ref={ref}\n role=\"option\"\n aria-selected={false}\n aria-disabled={disabled || undefined}\n data-cmd-item\n tabIndex={disabled ? undefined : 0}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5 mx-1\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"hover:bg-muted hover:text-foreground\",\n \"focus:bg-muted focus:text-foreground\",\n disabled && \"pointer-events-none opacity-40\",\n className,\n )}\n onClick={handleSelect}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n handleSelect();\n }\n }}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nCommandItem.displayName = \"CommandItem\";\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"my-1 h-px bg-muted\", className)} {...props} />\n ),\n);\nCommandSeparator.displayName = \"CommandSeparator\";\n\nfunction CommandShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\"ml-auto caption text-muted-foreground tracking-widest font-medium\", className)}\n {...props}\n />\n );\n}\nCommandShortcut.displayName = \"CommandShortcut\";\n\nCommand.displayName = \"Command\";\n\nexport {\n Command,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandSeparator,\n CommandShortcut,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ContextMenu } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst ContextMenuRoot = ContextMenu.Root;\nconst ContextMenuTrigger = ContextMenu.Trigger;\nconst ContextMenuGroup = ContextMenu.Group;\nconst ContextMenuPortal = ContextMenu.Portal;\nconst ContextMenuSub = ContextMenu.Sub;\nconst ContextMenuRadioGroup = ContextMenu.RadioGroup;\n\nconst ContextMenuContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenu.Portal>\n <ContextMenu.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-card p-1 text-card-foreground shadow-elevated outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </ContextMenu.Portal>\n));\nContextMenuContent.displayName = \"ContextMenuContent\";\n\nconst ContextMenuItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Item> & {\n inset?: boolean;\n destructive?: boolean;\n }\n>(({ className, inset, destructive, ...props }, ref) => (\n <ContextMenu.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body outline-none transition-colors\",\n destructive\n ? \"text-destructive focus:bg-destructive/10 focus:text-destructive\"\n : \"text-muted-foreground focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = \"ContextMenuItem\";\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenu.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenu.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </ContextMenu.ItemIndicator>\n </span>\n {children}\n </ContextMenu.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName = \"ContextMenuCheckboxItem\";\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenu.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenu.ItemIndicator>\n <Circle size={8} className=\"fill-foreground text-foreground\" />\n </ContextMenu.ItemIndicator>\n </span>\n {children}\n </ContextMenu.RadioItem>\n));\nContextMenuRadioItem.displayName = \"ContextMenuRadioItem\";\n\nconst ContextMenuLabel = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenu.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nContextMenuLabel.displayName = \"ContextMenuLabel\";\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenu.Separator\n ref={ref}\n className={cn(\"mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = \"ContextMenuSeparator\";\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenu.SubTrigger\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-muted-foreground\" />\n </ContextMenu.SubTrigger>\n));\nContextMenuSubTrigger.displayName = \"ContextMenuSubTrigger\";\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenu.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenu.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenu.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-card p-1 text-card-foreground shadow-elevated outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = \"ContextMenuSubContent\";\n\nfunction ContextMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return <span className={cn(\"ml-auto caption text-muted-foreground\", className)} {...props} />;\n}\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenuRoot as ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuRadioGroup,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement> & { containerClassName?: string }\n>(({ className, containerClassName, ...props }, ref) => (\n <div\n className={cn(\n \"w-full overflow-hidden rounded-xl border border-border bg-card\",\n containerClassName,\n )}\n >\n <table\n ref={ref}\n className={cn(\"min-w-full caption-bottom divide-y divide-border\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"bg-muted\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"divide-y divide-border bg-card\", className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"bg-muted font-medium\", className)} {...props} />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"px-6 py-3 text-left align-middle label text-muted-foreground\",\n \"[&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-6 py-4 align-middle body text-muted-foreground\",\n \"[&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 caption text-muted-foreground\", className)} {...props} />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"flex h-9 w-full rounded-md border border-border bg-card px-3 py-1\",\n \"body text-foreground placeholder:text-muted-foreground\",\n \"transition-colors duration-150\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary\",\n \"disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n flexRender,\n type ColumnDef,\n type SortingState,\n type ColumnFiltersState,\n} from \"@tanstack/react-table\";\nimport { ChevronUp, ChevronDown, ChevronsUpDown } from \"lucide-react\";\nimport { Table, TableHeader, TableBody, TableRow, TableHead, TableCell } from \"./table\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { cn } from \"../lib/utils\";\n\ninterface DataTableProps<TData> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n columns: ColumnDef<TData, any>[];\n data: TData[];\n searchKey?: string;\n searchPlaceholder?: string;\n pageSize?: number;\n showPagination?: boolean;\n}\n\nfunction DataTable<TData>({\n columns,\n data,\n searchKey,\n searchPlaceholder = \"Search...\",\n pageSize = 10,\n showPagination = true,\n}: DataTableProps<TData>) {\n const [sorting, setSorting] = React.useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([]);\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n state: { sorting, columnFilters },\n initialState: { pagination: { pageSize } },\n });\n\n return (\n <div className=\"flex flex-col gap-4\">\n {searchKey && (\n <Input\n placeholder={searchPlaceholder}\n value={(table.getColumn(searchKey)?.getFilterValue() as string) ?? \"\"}\n onChange={(e) => table.getColumn(searchKey)?.setFilterValue(e.target.value)}\n className=\"max-w-sm\"\n />\n )}\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n aria-sort={\n header.column.getCanSort()\n ? header.column.getIsSorted() === \"asc\"\n ? \"ascending\"\n : header.column.getIsSorted() === \"desc\"\n ? \"descending\"\n : \"none\"\n : undefined\n }\n >\n {header.isPlaceholder ? null : header.column.getCanSort() ? (\n <button\n className={cn(\n \"flex items-center gap-1 transition-colors hover:text-muted-foreground\",\n header.column.getIsSorted() && \"text-foreground\",\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n {header.column.getIsSorted() === \"asc\" ? (\n <ChevronUp size={12} className=\"text-brand-primary\" />\n ) : header.column.getIsSorted() === \"desc\" ? (\n <ChevronDown size={12} className=\"text-brand-primary\" />\n ) : (\n <ChevronsUpDown size={12} className=\"text-muted-foreground\" />\n )}\n </button>\n ) : (\n flexRender(header.column.columnDef.header, header.getContext())\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center text-muted-foreground\">\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n {showPagination && (\n <div className=\"flex items-center justify-between\">\n <p className=\"caption text-muted-foreground\">\n {table.getFilteredRowModel().rows.length} result\n {table.getFilteredRowModel().rows.length !== 1 ? \"s\" : \"\"}\n </p>\n <div className=\"flex items-center gap-2\">\n <span className=\"caption text-muted-foreground\">\n Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}\n </span>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport { DataTable };\nexport { createColumnHelper } from \"@tanstack/react-table\";\nexport type { ColumnDef };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Popover } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst PopoverRoot = Popover.Root;\nconst PopoverTrigger = Popover.Trigger;\nconst PopoverClose = Popover.Close;\n\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof Popover.Content>,\n React.ComponentPropsWithoutRef<typeof Popover.Content>\n>(({ className, align = \"center\", sideOffset = 6, ...props }, ref) => (\n <Popover.Portal>\n <Popover.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-xl bg-card p-4 shadow-natural outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </Popover.Portal>\n));\nPopoverContent.displayName = \"PopoverContent\";\n\nexport { PopoverRoot as Popover, PopoverTrigger, PopoverContent, PopoverClose };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CalendarIcon } from \"lucide-react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\nimport { Calendar } from \"./calendar\";\nimport { Button } from \"./button\";\nimport { cn } from \"../lib/utils\";\n\nconst formatDate = (date: Date) =>\n date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\ninterface DatePickerProps {\n value?: Date | undefined;\n onChange?: (date: Date | undefined) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n}\n\nfunction DatePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n disabled,\n className,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n className={cn(\n \"w-[240px] justify-start gap-2 text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n disabled={disabled}\n >\n <CalendarIcon size={14} className=\"text-muted-foreground shrink-0\" />\n {value ? formatDate(value) : <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0 shadow-elevated\" align=\"start\">\n <Calendar\n mode=\"single\"\n {...(value !== undefined && { selected: value })}\n {...(onChange !== undefined && { onSelect: onChange })}\n autoFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker, formatDate };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface DescriptionItem {\n term: string;\n details: React.ReactNode;\n action?: React.ReactNode;\n}\n\ninterface DescriptionListProps {\n title?: string;\n description?: string;\n items: DescriptionItem[];\n columns?: 1 | 2;\n striped?: boolean;\n className?: string;\n}\n\nfunction DescriptionList({\n title,\n description,\n items,\n columns = 1,\n striped = false,\n className,\n}: DescriptionListProps) {\n return (\n <div className={className}>\n {(title || description) && (\n <div className=\"mb-4\">\n {title && <p className=\"body font-semibold text-foreground\">{title}</p>}\n {description && <p className=\"mt-1 caption text-muted-foreground\">{description}</p>}\n </div>\n )}\n\n <dl className={cn(\"border-t border-border\", columns === 2 && \"sm:grid sm:grid-cols-2\")}>\n {items.map((item, i) => (\n <div\n key={i}\n className={cn(\n \"py-3.5\",\n columns === 1\n ? \"grid grid-cols-3 gap-4 items-baseline\"\n : \"flex flex-col gap-1 border-b border-border\",\n columns === 1 && i !== items.length - 1 && \"border-b border-border\",\n striped && i % 2 === 0 && \"bg-muted -mx-4 px-4 rounded\",\n )}\n >\n <dt className=\"caption font-semibold text-muted-foreground uppercase tracking-wide\">\n {item.term}\n </dt>\n <dd className={cn(\"body text-foreground\", columns === 1 ? \"col-span-2\" : \"\")}>\n {item.action ? (\n <div className=\"flex items-center justify-between gap-4\">\n <span>{item.details}</span>\n {item.action}\n </div>\n ) : (\n item.details\n )}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n );\n}\n\nDescriptionList.displayName = \"DescriptionList\";\n\nexport { DescriptionList };\nexport type { DescriptionItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../lib/utils\";\n\nconst DrawerRoot = DrawerPrimitive.Root;\nconst DrawerTrigger = DrawerPrimitive.Trigger;\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-foreground/40 backdrop-blur-[1px]\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = \"DrawerOverlay\";\n\nconst DrawerContent = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-2xl border border-border bg-card\",\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-1 w-12 rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"grid gap-1 px-6 py-4 text-center sm:text-left\", className)} {...props} />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"mt-auto flex flex-col gap-2 px-6 pb-6\", className)} {...props} />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"subheading text-foreground\", className)}\n {...props}\n />\n));\nDrawerTitle.displayName = \"DrawerTitle\";\n\nconst DrawerDescription = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"body text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = \"DrawerDescription\";\n\nexport {\n DrawerRoot as Drawer,\n DrawerTrigger,\n DrawerPortal,\n DrawerClose,\n DrawerOverlay,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface EmptyStateProps {\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: {\n label: string;\n href?: string;\n onClick?: () => void;\n };\n className?: string;\n}\n\nfunction EmptyState({ icon, title, description, action, className }: EmptyStateProps) {\n return (\n <div className={cn(\"flex flex-col items-center gap-4 px-6 py-14 text-center\", className)}>\n {icon && (\n <div className=\"flex size-12 items-center justify-center rounded-xl bg-brand-secondary/20 text-muted-foreground\">\n {icon}\n </div>\n )}\n <div className=\"flex flex-col gap-1.5\">\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && <p className=\"body max-w-xs text-muted-foreground\">{description}</p>}\n </div>\n {action &&\n (action.href ? (\n <Button size=\"sm\" asChild>\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button size=\"sm\" onClick={action.onClick}>\n {action.label}\n </Button>\n ))}\n </div>\n );\n}\n\nEmptyState.displayName = \"EmptyState\";\n\nexport { EmptyState };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(\n \"body font-medium leading-none text-muted-foreground\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\n\ninterface FieldProps {\n label: string;\n htmlFor?: string;\n hint?: string;\n error?: string;\n required?: boolean;\n cornerHint?: string;\n className?: string;\n children: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nfunction Field({\n label,\n htmlFor,\n hint,\n error,\n required,\n cornerHint,\n className,\n children,\n ref,\n}: FieldProps) {\n // Predictable ID for the description/error paragraph so consumers can wire\n // aria-describedby on the child input: aria-describedby={`${id}-description`}\n const descriptionId = htmlFor ? `${htmlFor}-description` : undefined;\n\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-1.5\", className)}>\n <div className=\"flex items-center justify-between gap-2\">\n <Label htmlFor={htmlFor} aria-required={required}>\n {label}\n {required && <span className=\"ml-0.5 text-destructive\" aria-hidden=\"true\">*</span>}\n </Label>\n {cornerHint && <span className=\"caption text-muted-foreground\">{cornerHint}</span>}\n </div>\n {children}\n {error ? (\n <p id={descriptionId} role=\"alert\" className=\"caption text-destructive\">{error}</p>\n ) : hint ? (\n <p id={descriptionId} className=\"caption text-muted-foreground\">{hint}</p>\n ) : null}\n </div>\n );\n}\nField.displayName = \"Field\";\n\nexport { Field };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\n/* ------------------------------------------------------------------ */\n/* Generic grid container */\n/* ------------------------------------------------------------------ */\n\ninterface GridListProps {\n children: React.ReactNode;\n columns?: 2 | 3 | 4;\n gap?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst colMap = {\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};\n\nconst gapMap = {\n sm: \"gap-3\",\n md: \"gap-4\",\n lg: \"gap-6\",\n};\n\nfunction GridList({ children, columns = 3, gap = \"md\", className }: GridListProps) {\n return (\n <ul role=\"list\" className={cn(\"grid\", colMap[columns], gapMap[gap], className)}>\n {children}\n </ul>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Simple card item */\n/* ------------------------------------------------------------------ */\n\ninterface GridListCardProps {\n title: string;\n description?: string;\n meta?: string;\n href?: string;\n accent?: React.ReactNode;\n trailing?: React.ReactNode;\n className?: string;\n}\n\nfunction GridListCard({\n title,\n description,\n meta,\n href,\n accent,\n trailing,\n className,\n}: GridListCardProps) {\n const inner = (\n <div\n className={cn(\n \"flex h-full flex-col gap-1 rounded-xl border border-border bg-card p-4 shadow-natural transition-shadow\",\n href && \"hover:shadow-elevated\",\n className,\n )}\n >\n {accent && <div className=\"mb-2\">{accent}</div>}\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && <p className=\"caption text-muted-foreground\">{description}</p>}\n {(meta || trailing) && (\n <div className=\"mt-auto flex items-center justify-between pt-3\">\n {meta && <span className=\"caption text-muted-foreground\">{meta}</span>}\n {trailing && <span className=\"caption text-muted-foreground\">{trailing}</span>}\n </div>\n )}\n </div>\n );\n\n return (\n <li>\n {href ? (\n <a\n href={href}\n className=\"block h-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 rounded-xl\"\n >\n {inner}\n </a>\n ) : (\n inner\n )}\n </li>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Horizontal accent card (colored left strip + title + meta) */\n/* ------------------------------------------------------------------ */\n\ninterface GridListAccentCardProps {\n title: string;\n meta?: string;\n href?: string;\n accentClass?: string;\n initials?: string;\n trailing?: React.ReactNode;\n className?: string;\n}\n\nfunction GridListAccentCard({\n title,\n meta,\n href,\n accentClass = \"bg-foreground\",\n initials,\n trailing,\n className,\n}: GridListAccentCardProps) {\n const inner = (\n <div\n className={cn(\n \"flex overflow-hidden rounded-xl border border-border bg-card shadow-natural transition-shadow\",\n href && \"hover:shadow-elevated\",\n className,\n )}\n >\n <div\n className={cn(\n \"flex w-14 shrink-0 items-center justify-center body font-semibold text-background\",\n accentClass,\n )}\n >\n {initials}\n </div>\n <div className=\"flex flex-1 items-center justify-between truncate border-l border-border px-4 py-3\">\n <div className=\"min-w-0\">\n <p className=\"body font-semibold text-foreground truncate\">{title}</p>\n {meta && <p className=\"caption text-muted-foreground\">{meta}</p>}\n </div>\n {trailing && <div className=\"shrink-0 pl-2\">{trailing}</div>}\n </div>\n </div>\n );\n\n return (\n <li>\n {href ? (\n <a\n href={href}\n className=\"block focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 rounded-xl\"\n >\n {inner}\n </a>\n ) : (\n inner\n )}\n </li>\n );\n}\n\nGridList.displayName = \"GridList\";\nGridListCard.displayName = \"GridListCard\";\nGridListAccentCard.displayName = \"GridListAccentCard\";\n\nexport { GridList, GridListCard, GridListAccentCard };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { HoverCard } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst HoverCardRoot = HoverCard.Root;\nconst HoverCardTrigger = HoverCard.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ComponentRef<typeof HoverCard.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCard.Content>\n>(({ className, align = \"center\", sideOffset = 6, ...props }, ref) => (\n <HoverCard.Portal>\n <HoverCard.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 rounded-xl border border-border bg-card p-4 shadow-elevated outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </HoverCard.Portal>\n));\nHoverCardContent.displayName = \"HoverCardContent\";\n\nexport { HoverCardRoot as HoverCard, HoverCardTrigger, HoverCardContent };\n","import * as React from \"react\";\nimport { AlertCircle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface InputGroupProps extends React.InputHTMLAttributes<HTMLInputElement> {\n leadingAddon?: React.ReactNode;\n trailingAddon?: React.ReactNode;\n leadingIcon?: React.ReactNode;\n trailingIcon?: React.ReactNode;\n trailingButton?: React.ReactNode;\n error?: boolean;\n pill?: boolean;\n wrapperClassName?: string;\n}\n\nconst InputGroup = React.forwardRef<HTMLInputElement, InputGroupProps>(\n (\n {\n leadingAddon,\n trailingAddon,\n leadingIcon,\n trailingIcon,\n trailingButton,\n error,\n pill,\n className,\n wrapperClassName,\n ...props\n },\n ref,\n ) => {\n const radius = pill ? \"rounded-full\" : \"rounded-lg\";\n const hasLeading = leadingAddon || leadingIcon;\n const hasTrailing = trailingAddon || trailingIcon || trailingButton || error;\n\n const baseInput = cn(\n \"flex h-9 w-full border bg-card body text-foreground placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:disabled:cursor-not-allowed disabled:opacity-50\",\n error\n ? \"border-destructive focus-visible:ring-destructive/20 focus-visible:border-destructive\"\n : \"border-border focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary\",\n );\n\n if (!hasLeading && !hasTrailing) {\n return <input ref={ref} className={cn(baseInput, radius, \"px-3\", className)} {...props} />;\n }\n\n return (\n <div className={cn(\"flex\", wrapperClassName)}>\n {/* Leading addon (text) */}\n {leadingAddon && (\n <span\n className={cn(\n \"inline-flex items-center border border-r-0 bg-muted px-3 body text-muted-foreground select-none\",\n error ? \"border-destructive\" : \"border-border\",\n pill ? \"rounded-l-full\" : \"rounded-l-lg\",\n )}\n >\n {leadingAddon}\n </span>\n )}\n\n {/* Relative wrapper for icon-only inputs */}\n <div className=\"relative flex-1\">\n {leadingIcon && (\n <div className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-muted-foreground\">\n {leadingIcon}\n </div>\n )}\n\n <input\n ref={ref}\n className={cn(\n baseInput,\n // Border radius\n leadingAddon\n ? trailingAddon || trailingButton\n ? \"rounded-none px-3\"\n : pill\n ? \"rounded-none rounded-r-full px-3\"\n : \"rounded-none rounded-r-lg px-3\"\n : leadingIcon\n ? trailingAddon\n ? pill\n ? \"rounded-l-full rounded-r-none pl-9 pr-3\"\n : \"rounded-l-lg rounded-r-none pl-9 pr-3\"\n : trailingIcon || error\n ? cn(radius, \"pl-9 pr-9\")\n : cn(radius, \"pl-9 pr-3\")\n : trailingAddon\n ? pill\n ? \"rounded-l-full rounded-r-none px-3\"\n : \"rounded-l-lg rounded-r-none px-3\"\n : trailingIcon || error || trailingButton\n ? cn(radius, \"pl-3 pr-9\")\n : cn(radius, \"px-3\"),\n className,\n )}\n {...props}\n />\n\n {(trailingIcon || error) && (\n <div className=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\">\n {error ? (\n <AlertCircle size={15} className=\"text-destructive\" />\n ) : (\n <span className=\"text-muted-foreground\">{trailingIcon}</span>\n )}\n </div>\n )}\n </div>\n\n {/* Trailing addon (text) */}\n {trailingAddon && (\n <span\n className={cn(\n \"inline-flex items-center border border-l-0 bg-muted px-3 body text-muted-foreground select-none\",\n error ? \"border-destructive\" : \"border-border\",\n pill ? \"rounded-r-full\" : \"rounded-r-lg\",\n )}\n >\n {trailingAddon}\n </span>\n )}\n\n {/* Trailing button */}\n {trailingButton && <div className=\"flex\">{trailingButton}</div>}\n </div>\n );\n },\n);\nInputGroup.displayName = \"InputGroup\";\n\nexport { InputGroup };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface InputNumberProps extends Omit<\n React.ComponentProps<\"input\">,\n \"type\" | \"value\" | \"onChange\"\n> {\n value: number;\n onChange: (next: number) => void;\n min?: number;\n max?: number;\n step?: number;\n /** Suffix shown after the number (e.g. \"px\", \"mm\", \"°\", \"%\"). */\n unit?: string;\n /** Number of decimals to display. Default: 0. */\n precision?: number;\n /** Hides the up/down stepper buttons. */\n hideSteppers?: boolean;\n}\n\n/**\n * Numeric input with up/down steppers, unit suffix, and arrow-key step (Shift = 10×).\n * Designed for designer property panels — see PHASE_0_AUDIT.md §P0.2.\n */\nconst InputNumber = React.forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n value,\n onChange,\n min = -Infinity,\n max = Infinity,\n step = 1,\n unit,\n precision = 0,\n hideSteppers = false,\n className,\n disabled,\n ...rest\n },\n ref,\n ) => {\n const [text, setText] = React.useState<string>(value.toFixed(precision));\n\n React.useEffect(() => {\n setText(value.toFixed(precision));\n }, [value, precision]);\n\n const clamp = React.useCallback((n: number) => Math.min(max, Math.max(min, n)), [min, max]);\n\n const commit = (raw: string) => {\n const n = parseFloat(raw);\n if (Number.isFinite(n)) {\n const next = clamp(n);\n onChange(next);\n setText(next.toFixed(precision));\n } else {\n setText(value.toFixed(precision));\n }\n };\n\n const bump = (delta: number) => {\n const next = clamp(value + delta);\n onChange(next);\n setText(next.toFixed(precision));\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n bump(step * (e.shiftKey ? 10 : 1));\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n bump(-step * (e.shiftKey ? 10 : 1));\n } else if (e.key === \"Enter\") {\n commit((e.target as HTMLInputElement).value);\n }\n };\n\n return (\n <div\n className={cn(\n \"inline-flex h-8 items-stretch rounded-md border border-border bg-card overflow-hidden\",\n \"focus-within:ring-2 focus-within:ring-brand-primary/20 focus-within:border-brand-primary\",\n disabled && \"opacity-50 pointer-events-none\",\n className,\n )}\n >\n <input\n ref={ref}\n type=\"text\"\n inputMode=\"decimal\"\n spellCheck={false}\n value={text}\n onChange={(e) => setText(e.target.value)}\n onBlur={(e) => commit(e.target.value)}\n onKeyDown={onKeyDown}\n disabled={disabled}\n className=\"w-full caption text-foreground px-2 bg-transparent focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none text-right\"\n {...rest}\n />\n {unit && (\n <span aria-hidden className=\"caption-xs text-muted-foreground self-center pr-1.5 select-none\">\n {unit}\n </span>\n )}\n {!hideSteppers && (\n <div className=\"flex flex-col border-l border-border\">\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => bump(step)}\n aria-label=\"Increment\"\n className=\"flex-1 px-1 hover:bg-muted active:bg-muted transition-colors text-muted-foreground\"\n >\n <svg viewBox=\"0 0 8 5\" width=\"8\" height=\"5\" fill=\"currentColor\">\n <path d=\"M0 5 L4 0 L8 5 Z\" />\n </svg>\n </button>\n <div className=\"border-t border-border\" />\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => bump(-step)}\n aria-label=\"Decrement\"\n className=\"flex-1 px-1 hover:bg-muted active:bg-muted transition-colors text-muted-foreground\"\n >\n <svg viewBox=\"0 0 8 5\" width=\"8\" height=\"5\" fill=\"currentColor\">\n <path d=\"M0 0 L4 5 L8 0 Z\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n );\n },\n);\nInputNumber.displayName = \"InputNumber\";\n\nexport { InputNumber };\nexport type { InputNumberProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst InputOTP = React.forwardRef<\n React.ComponentRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\"flex items-center gap-2 has-disabled:opacity-50\", containerClassName)}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n));\nInputOTP.displayName = \"InputOTP\";\n\nconst InputOTPGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n ),\n);\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nconst InputOTPSlot = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-12 w-11 items-center justify-center\",\n \"border-y border-r border-border body font-medium text-foreground\",\n \"first:rounded-l-xl first:border-l last:rounded-r-xl\",\n \"transition-all\",\n isActive && \"z-10 ring-2 ring-brand-primary/40 border-brand-primary\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-5 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\nconst InputOTPSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus size={14} className=\"text-muted-foreground\" />\n </div>\n ),\n);\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nconst Kbd = React.forwardRef<HTMLElement, React.ComponentProps<\"kbd\">>(\n ({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n \"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono caption-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n ),\n);\nKbd.displayName = \"Kbd\";\n\nexport { Kbd };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface MediaObjectProps {\n media: React.ReactNode;\n children: React.ReactNode;\n mediaPosition?: \"left\" | \"right\";\n align?: \"top\" | \"center\" | \"bottom\";\n gap?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst alignMap = {\n top: \"items-start\",\n center: \"items-center\",\n bottom: \"items-end\",\n};\n\nconst gapMap = {\n sm: \"gap-3\",\n md: \"gap-4\",\n lg: \"gap-6\",\n};\n\nfunction MediaObject({\n media,\n children,\n mediaPosition = \"left\",\n align = \"top\",\n gap = \"md\",\n className,\n}: MediaObjectProps) {\n return (\n <div\n className={cn(\n \"flex\",\n mediaPosition === \"right\" && \"flex-row-reverse\",\n alignMap[align],\n gapMap[gap],\n className,\n )}\n >\n <div className=\"shrink-0\">{media}</div>\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nMediaObject.displayName = \"MediaObject\";\n\nexport { MediaObject };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Menubar } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst MenubarRoot = React.forwardRef<\n React.ComponentRef<typeof Menubar.Root>,\n React.ComponentPropsWithoutRef<typeof Menubar.Root>\n>(({ className, ...props }, ref) => (\n <Menubar.Root\n ref={ref}\n className={cn(\n \"flex h-9 items-center gap-0.5 rounded-lg border border-border bg-card px-1\",\n className,\n )}\n {...props}\n />\n));\nMenubarRoot.displayName = \"Menubar\";\n\nconst MenubarMenu = Menubar.Menu;\n\nconst MenubarGroup = Menubar.Group;\n\nconst MenubarSub = Menubar.Sub;\n\nconst MenubarRadioGroup = Menubar.RadioGroup;\n\nconst MenubarTrigger = React.forwardRef<\n React.ComponentRef<typeof Menubar.Trigger>,\n React.ComponentPropsWithoutRef<typeof Menubar.Trigger>\n>(({ className, ...props }, ref) => (\n <Menubar.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default items-center rounded-md px-3 py-1 body font-medium text-muted-foreground select-none outline-none\",\n \"hover:bg-muted\",\n \"data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n \"focus:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nMenubarTrigger.displayName = \"MenubarTrigger\";\n\nconst MenubarContent = React.forwardRef<\n React.ComponentRef<typeof Menubar.Content>,\n React.ComponentPropsWithoutRef<typeof Menubar.Content>\n>(({ className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <Menubar.Portal>\n <Menubar.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] bg-card rounded-xl shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n </Menubar.Portal>\n));\nMenubarContent.displayName = \"MenubarContent\";\n\nconst MenubarItem = React.forwardRef<\n React.ComponentRef<typeof Menubar.Item>,\n React.ComponentPropsWithoutRef<typeof Menubar.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <Menubar.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nMenubarItem.displayName = \"MenubarItem\";\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof Menubar.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof Menubar.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <Menubar.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <Menubar.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </Menubar.ItemIndicator>\n </span>\n {children}\n </Menubar.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = \"MenubarCheckboxItem\";\n\nconst MenubarRadioItem = React.forwardRef<\n React.ComponentRef<typeof Menubar.RadioItem>,\n React.ComponentPropsWithoutRef<typeof Menubar.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <Menubar.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <Menubar.ItemIndicator>\n <Circle size={8} className=\"fill-foreground text-foreground\" />\n </Menubar.ItemIndicator>\n </span>\n {children}\n </Menubar.RadioItem>\n));\nMenubarRadioItem.displayName = \"MenubarRadioItem\";\n\nconst MenubarLabel = React.forwardRef<\n React.ComponentRef<typeof Menubar.Label>,\n React.ComponentPropsWithoutRef<typeof Menubar.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <Menubar.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nMenubarLabel.displayName = \"MenubarLabel\";\n\nconst MenubarSeparator = React.forwardRef<\n React.ComponentRef<typeof Menubar.Separator>,\n React.ComponentPropsWithoutRef<typeof Menubar.Separator>\n>(({ className, ...props }, ref) => (\n <Menubar.Separator\n ref={ref}\n className={cn(\"mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nMenubarSeparator.displayName = \"MenubarSeparator\";\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ComponentRef<typeof Menubar.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof Menubar.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <Menubar.SubTrigger\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none transition-colors\",\n \"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-muted-foreground\" />\n </Menubar.SubTrigger>\n));\nMenubarSubTrigger.displayName = \"MenubarSubTrigger\";\n\nconst MenubarSubContent = React.forwardRef<\n React.ComponentRef<typeof Menubar.SubContent>,\n React.ComponentPropsWithoutRef<typeof Menubar.SubContent>\n>(({ className, ...props }, ref) => (\n <Menubar.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className,\n )}\n {...props}\n />\n));\nMenubarSubContent.displayName = \"MenubarSubContent\";\n\nfunction MenubarShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n return <span className={cn(\"ml-auto caption text-muted-foreground\", className)} {...props} />;\n}\nMenubarShortcut.displayName = \"MenubarShortcut\";\n\nexport {\n MenubarRoot as Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarLabel,\n MenubarSeparator,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n MenubarShortcut,\n MenubarGroup,\n};\n","import * as React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst NativeSelect = React.forwardRef<\n HTMLSelectElement,\n React.SelectHTMLAttributes<HTMLSelectElement>\n>(({ className, children, ...props }, ref) => (\n <div className=\"relative\">\n <select\n ref={ref}\n className={cn(\n \"peer h-9 w-full appearance-none rounded-lg border border-border bg-card pl-3 pr-8\",\n \"body text-foreground\",\n \"focus:outline-none focus:ring-2 focus:ring-ring/30 focus:border-border\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:ring-destructive/20\",\n className,\n )}\n {...props}\n >\n {children}\n </select>\n <ChevronDown\n size={14}\n className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground peer-disabled:opacity-50\"\n />\n </div>\n));\nNativeSelect.displayName = \"NativeSelect\";\n\nconst NativeSelectOption = React.forwardRef<\n HTMLOptionElement,\n React.OptionHTMLAttributes<HTMLOptionElement>\n>((props, ref) => <option ref={ref} {...props} />);\nNativeSelectOption.displayName = \"NativeSelectOption\";\n\nconst NativeSelectOptGroup = React.forwardRef<\n HTMLOptGroupElement,\n React.OptgroupHTMLAttributes<HTMLOptGroupElement>\n>((props, ref) => <optgroup ref={ref} {...props} />);\nNativeSelectOptGroup.displayName = \"NativeSelectOptGroup\";\n\nexport { NativeSelect, NativeSelectOption, NativeSelectOptGroup };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { NavigationMenu } from \"radix-ui\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenu.Root\n ref={ref}\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n </NavigationMenu.Root>\n));\nNavigationMenuRoot.displayName = \"NavigationMenu\";\n\nconst NavigationMenuList = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.List\n ref={ref}\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = \"NavigationMenuList\";\n\nconst NavigationMenuItem = NavigationMenu.Item;\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenu.Trigger\n ref={ref}\n className={cn(\n \"group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md px-3 py-2\",\n \"body font-medium text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[active]:bg-muted data-[state=open]:bg-muted\",\n \"outline-none transition-colors\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={12}\n className=\"transition-transform duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenu.Trigger>\n));\nNavigationMenuTrigger.displayName = \"NavigationMenuTrigger\";\n\nconst NavigationMenuContent = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.Content\n ref={ref}\n className={cn(\n \"left-0 top-0 w-full\",\n \"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out\",\n \"data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out\",\n \"data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52\",\n \"data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52\",\n \"md:absolute md:w-auto\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = \"NavigationMenuContent\";\n\nconst NavigationMenuLink = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Link>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Link>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.Link\n ref={ref}\n className={cn(\n \"block select-none rounded-md px-3 py-2 body text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"outline-none transition-colors\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuLink.displayName = \"NavigationMenuLink\";\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Viewport>\n>(({ className, ...props }, ref) => (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <NavigationMenu.Viewport\n ref={ref}\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-xl border border-border bg-card shadow-elevated\",\n \"md:w-[var(--radix-navigation-menu-viewport-width)]\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90\",\n className,\n )}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName = \"NavigationMenuViewport\";\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ComponentRef<typeof NavigationMenu.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenu.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenu.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden\",\n \"data-[state=visible]:animate-in data-[state=hidden]:animate-out\",\n \"data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-muted shadow-elevated\" />\n </NavigationMenu.Indicator>\n));\nNavigationMenuIndicator.displayName = \"NavigationMenuIndicator\";\n\nfunction navigationMenuTriggerStyle() {\n return cn(\n \"group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md px-3 py-2\",\n \"body font-medium text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[active]:bg-muted data-[state=open]:bg-muted\",\n \"outline-none transition-colors\",\n );\n}\n\nexport {\n NavigationMenuRoot as NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuContent,\n NavigationMenuLink,\n NavigationMenuViewport,\n NavigationMenuIndicator,\n navigationMenuTriggerStyle,\n};\n","import * as React from \"react\";\nimport { X, CheckCircle, AlertCircle, Info, AlertTriangle } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface NotificationAction {\n label: string;\n onClick?: () => void;\n variant?: \"default\" | \"ghost\";\n}\n\ninterface NotificationProps {\n title: string;\n description?: string;\n icon?: React.ReactNode;\n variant?: \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\n actions?: NotificationAction[];\n onClose?: () => void;\n className?: string;\n}\n\nconst variantConfig = {\n default: { icon: null, iconClass: \"text-muted-foreground\" },\n success: {\n icon: CheckCircle,\n iconClass: \"bg-brand-secondary/25 text-muted-foreground rounded-full p-1\",\n },\n error: { icon: AlertCircle, iconClass: \"text-destructive\" },\n warning: {\n icon: AlertTriangle,\n iconClass: \"bg-brand-secondary/80 text-muted-foreground rounded-full p-1\",\n },\n info: { icon: Info, iconClass: \"text-muted-foreground\" },\n};\n\nfunction Notification({\n title,\n description,\n icon,\n variant = \"default\",\n actions,\n onClose,\n className,\n}: NotificationProps) {\n const config = variantConfig[variant];\n const DefaultIcon = config.icon;\n\n const resolvedIcon = icon ?? (DefaultIcon ? <DefaultIcon size={20} /> : null);\n\n return (\n <div\n className={cn(\n \"pointer-events-auto w-full max-w-sm overflow-hidden rounded-xl border border-border bg-card shadow-elevated\",\n className,\n )}\n >\n <div className=\"p-4\">\n <div className=\"flex items-start gap-3\">\n {/* Icon */}\n {resolvedIcon && (\n <div className={cn(\"shrink-0 mt-0.5\", config.iconClass)}>{resolvedIcon}</div>\n )}\n\n {/* Body */}\n <div className=\"min-w-0 flex-1\">\n <p className=\"body font-semibold text-foreground\">{title}</p>\n {description && <p className=\"mt-0.5 body text-muted-foreground\">{description}</p>}\n\n {/* Actions */}\n {actions && actions.length > 0 && (\n <div className=\"mt-3 flex gap-3\">\n {actions.map((action, i) => (\n <button\n key={i}\n type=\"button\"\n onClick={action.onClick}\n className={cn(\n \"body font-semibold transition-colors\",\n action.variant === \"ghost\"\n ? \"text-muted-foreground hover:text-muted-foreground\"\n : \"text-foreground hover:text-muted-foreground\",\n )}\n >\n {action.label}\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Close */}\n {onClose && (\n <div className=\"shrink-0\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"rounded-md text-muted-foreground hover:text-muted-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30\"\n >\n <span className=\"sr-only\">Close</span>\n <X size={16} />\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nNotification.displayName = \"Notification\";\n\nexport { Notification };\n","import * as React from \"react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Badge } from \"./badge\";\n\ninterface BreadcrumbItem {\n label: string;\n href?: string;\n}\n\ninterface PageHeadingAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"outline\" | \"ghost\";\n primary?: boolean;\n}\n\ninterface PageHeadingMeta {\n icon?: React.ReactNode;\n text: string;\n}\n\ninterface PageHeadingProps {\n title: string;\n description?: string;\n breadcrumbs?: BreadcrumbItem[];\n actions?: PageHeadingAction[];\n meta?: PageHeadingMeta[];\n badge?: string | { label: string; variant?: \"default\" | \"secondary\" | \"outline\" | \"destructive\" };\n className?: string;\n}\n\nfunction PageHeading({\n title,\n description,\n breadcrumbs,\n actions,\n meta,\n badge,\n className,\n}: PageHeadingProps) {\n return (\n <div className={cn(\"border-b border-border pb-6\", className)}>\n {/* Breadcrumbs */}\n {breadcrumbs && breadcrumbs.length > 0 && (\n <nav className=\"mb-3 flex items-center gap-1.5\" aria-label=\"Breadcrumb\">\n {breadcrumbs.map((crumb, i) => (\n <React.Fragment key={i}>\n {i > 0 && <ChevronRight size={12} className=\"text-muted-foreground shrink-0\" />}\n {crumb.href ? (\n <a\n href={crumb.href}\n className=\"caption text-muted-foreground hover:text-muted-foreground transition-colors\"\n >\n {crumb.label}\n </a>\n ) : (\n <span className=\"caption font-semibold text-muted-foreground\">{crumb.label}</span>\n )}\n </React.Fragment>\n ))}\n </nav>\n )}\n\n {/* Title row */}\n <div className=\"flex flex-wrap items-start justify-between gap-4\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"display text-foreground truncate\">{title}</h1>\n {badge &&\n (typeof badge === \"string\" ? (\n <Badge variant=\"secondary\">{badge}</Badge>\n ) : (\n <Badge variant={badge.variant ?? \"secondary\"}>{badge.label}</Badge>\n ))}\n </div>\n {description && <p className=\"mt-1.5 body text-muted-foreground max-w-2xl\">{description}</p>}\n\n {/* Meta */}\n {meta && meta.length > 0 && (\n <div className=\"mt-3 flex flex-wrap items-center gap-4\">\n {meta.map((m, i) => (\n <div key={i} className=\"flex items-center gap-1.5 caption text-muted-foreground\">\n {m.icon && <span className=\"text-muted-foreground\">{m.icon}</span>}\n <span>{m.text}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Actions */}\n {actions && actions.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-2\">\n {actions.map((action, i) =>\n action.href ? (\n <Button\n key={i}\n size=\"sm\"\n variant={action.primary ? \"default\" : (action.variant ?? \"outline\")}\n asChild\n >\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button\n key={i}\n size=\"sm\"\n variant={action.primary ? \"default\" : (action.variant ?? \"outline\")}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport { PageHeading };\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants } from \"./button\";\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n);\nPagination.displayName = \"Pagination\";\n\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} className={cn(\"flex flex-row items-center gap-1\", className)} {...props} />\n ),\n);\nPaginationContent.displayName = \"PaginationContent\";\n\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => <li ref={ref} className={cn(\"\", className)} {...props} />,\n);\nPaginationItem.displayName = \"PaginationItem\";\n\ntype PaginationLinkProps = React.ComponentProps<\"a\"> & { isActive?: boolean };\n\nconst PaginationLink = ({ className, isActive, ...props }: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({ variant: isActive ? \"default\" : \"ghost\", size: \"icon\" }),\n \"size-8 rounded-md body\",\n className,\n )}\n {...props}\n />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn(\"gap-1 px-3 w-auto\", className)}\n {...props}\n >\n <ChevronLeft size={14} />\n <span className=\"body\">Prev</span>\n </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nconst PaginationNext = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn(\"gap-1 px-3 w-auto\", className)}\n {...props}\n >\n <span className=\"body\">Next</span>\n <ChevronRight size={14} />\n </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex size-8 items-center justify-center text-muted-foreground\", className)}\n {...props}\n >\n <MoreHorizontal size={14} />\n </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n","import * as React from \"react\";\nimport { Progress } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst ProgressRoot = React.forwardRef<\n React.ComponentRef<typeof Progress.Root>,\n React.ComponentPropsWithoutRef<typeof Progress.Root>\n>(({ className, value, ...props }, ref) => (\n <Progress.Root\n ref={ref}\n className={cn(\"relative h-2 w-full overflow-hidden rounded-full bg-muted\", className)}\n value={value}\n {...props}\n >\n <Progress.Indicator\n className=\"h-full w-full flex-1 bg-brand-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}\n />\n </Progress.Root>\n));\nProgressRoot.displayName = \"Progress\";\n\nexport { ProgressRoot as Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface PropertyRowProps extends React.ComponentProps<\"div\"> {\n /** Optional label rendered on the left. Pass a string or any React node (icon + label, etc.). */\n label?: React.ReactNode;\n /** Label layout. Default: \"stacked\". */\n layout?: \"stacked\" | \"inline\";\n /** Width of the label column when layout=\"inline\". Default: 96px. */\n labelWidth?: number | string;\n /** Aligns label vertically with controls when layout=\"inline\". Default: \"center\". */\n labelAlign?: \"start\" | \"center\";\n}\n\n/**\n * Property row used inside designer inspector panels:\n * label above controls by default, with an inline option for dense rows.\n * Different from <Field>, which is a vertical form field with hint/error.\n *\n * <PropertyRow label=\"Opacity\">\n * <Slider />\n * <InputNumber />\n * </PropertyRow>\n */\nfunction PropertyRow({\n label,\n layout = \"stacked\",\n labelWidth = 96,\n labelAlign = \"center\",\n className,\n children,\n ...rest\n}: PropertyRowProps) {\n const inline = layout === \"inline\";\n\n return (\n <div\n className={cn(\n \"flex w-full min-w-0 py-1\",\n inline\n ? cn(\"gap-3\", labelAlign === \"center\" ? \"items-center\" : \"items-start\")\n : \"flex-col items-stretch gap-1.5\",\n className,\n )}\n {...rest}\n >\n {label !== undefined && (\n <div\n className={cn(\n \"caption select-none text-muted-foreground\",\n inline ? \"shrink-0\" : \"w-full\",\n )}\n style={\n inline\n ? { width: typeof labelWidth === \"number\" ? `${labelWidth}px` : labelWidth }\n : undefined\n }\n >\n {label}\n </div>\n )}\n <div className=\"flex min-w-0 flex-1 items-center gap-2\">{children}</div>\n </div>\n );\n}\n\nPropertyRow.displayName = \"PropertyRow\";\n\nexport { PropertyRow };\nexport type { PropertyRowProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport interface RadioCardOption {\n value: string;\n label: string;\n description?: string;\n meta?: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\ninterface RadioCardsProps {\n options: RadioCardOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n columns?: 1 | 2 | 3 | 4;\n className?: string;\n}\n\nfunction RadioCards({ options, value, onValueChange, columns = 3, className }: RadioCardsProps) {\n const colMap = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-1 sm:grid-cols-2\",\n 3: \"grid-cols-1 sm:grid-cols-3\",\n 4: \"grid-cols-2 sm:grid-cols-4\",\n };\n\n return (\n <div className={cn(\"grid gap-3\", colMap[columns], className)}>\n {options.map((option) => {\n const isSelected = option.value === value;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n disabled={option.disabled}\n onClick={() => !option.disabled && onValueChange?.(option.value)}\n className={cn(\n \"relative flex cursor-pointer flex-col gap-1 rounded-xl border p-4 text-left transition-all\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n isSelected\n ? \"border-brand-primary bg-card shadow-natural\"\n : \"border-border bg-card hover:border-border\",\n )}\n >\n {/* Selected ring overlay */}\n {isSelected && (\n <span\n className=\"pointer-events-none absolute inset-0 rounded-xl ring-2 ring-brand-primary\"\n aria-hidden=\"true\"\n />\n )}\n\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\">\n {option.icon && <div className=\"mb-2 text-muted-foreground\">{option.icon}</div>}\n <p\n className={cn(\n \"body font-semibold\",\n isSelected ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {option.label}\n </p>\n {option.description && (\n <p className=\"mt-0.5 caption text-muted-foreground\">{option.description}</p>\n )}\n </div>\n <div\n className={cn(\n \"flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors\",\n isSelected\n ? \"border-brand-primary bg-brand-primary\"\n : \"border-border bg-card\",\n )}\n >\n {isSelected && <Check size={10} className=\"text-background\" strokeWidth={3} />}\n </div>\n </div>\n\n {option.meta && (\n <p\n className={cn(\n \"caption font-semibold mt-2\",\n isSelected ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {option.meta}\n </p>\n )}\n </button>\n );\n })}\n </div>\n );\n}\n\nRadioCards.displayName = \"RadioCards\";\n\nexport { RadioCards };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { RadioGroup } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst RadioGroupRoot = React.forwardRef<\n React.ComponentRef<typeof RadioGroup.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroup.Root>\n>(({ className, ...props }, ref) => (\n <RadioGroup.Root ref={ref} className={cn(\"grid gap-2\", className)} {...props} />\n));\nRadioGroupRoot.displayName = \"RadioGroup\";\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroup.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroup.Item>\n>(({ className, ...props }, ref) => (\n <RadioGroup.Item\n ref={ref}\n className={cn(\n \"aspect-square size-4 rounded-full border border-border text-foreground\",\n \"shadow-none transition-colors\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/20\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-foreground data-[state=checked]:border-foreground\",\n className,\n )}\n {...props}\n >\n <RadioGroup.Indicator className=\"flex items-center justify-center\">\n <div className=\"size-2 rounded-full bg-card\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n));\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport { RadioGroupRoot as RadioGroup, RadioGroupItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Group, Panel, Separator } from \"react-resizable-panels\";\nimport type { GroupProps, SeparatorProps } from \"react-resizable-panels\";\nimport { GripVertical } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\n// react-resizable-panels v4 uses `orientation` and `elementRef` instead of\n// the older `direction` prop + React.forwardRef pattern.\n\ntype ResizablePanelGroupProps = Omit<GroupProps, \"orientation\"> & {\n /** Alias for `orientation` — matches the common shadcn/ui API. */\n direction?: \"horizontal\" | \"vertical\";\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nfunction ResizablePanelGroup({\n className,\n direction,\n orientation,\n ...props\n}: ResizablePanelGroupProps) {\n const resolvedOrientation = orientation ?? direction ?? \"horizontal\";\n return (\n <Group\n orientation={resolvedOrientation}\n className={cn(\n \"flex h-full w-full\",\n resolvedOrientation === \"vertical\" && \"flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\nResizablePanelGroup.displayName = \"ResizablePanelGroup\";\n\nconst ResizablePanel = Panel;\n\ntype ResizableHandleProps = SeparatorProps & {\n withHandle?: boolean;\n};\n\nfunction ResizableHandle({ className, withHandle = true, ...props }: ResizableHandleProps) {\n return (\n <Separator\n className={cn(\n \"relative flex shrink-0 items-center justify-center bg-muted\",\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-brand-primary/50\",\n // Horizontal (default): vertical bar\n \"[&:not([aria-orientation=vertical])]:h-full [&:not([aria-orientation=vertical])]:w-px\",\n // Vertical: horizontal bar\n \"[aria-orientation=vertical]:h-px [aria-orientation=vertical]:w-full\",\n // Wider hit target via pseudo-element\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2\",\n \"[aria-orientation=vertical]:after:left-0 [aria-orientation=vertical]:after:h-1 [aria-orientation=vertical]:after:w-full [aria-orientation=vertical]:after:translate-x-0 [aria-orientation=vertical]:after:-translate-y-1/2\",\n // Active drag state\n \"active:bg-brand-primary/30\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-card shadow-natural\">\n <GripVertical size={10} className=\"text-muted-foreground\" />\n </div>\n )}\n </Separator>\n );\n}\nResizableHandle.displayName = \"ResizableHandle\";\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ScrollArea } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst ScrollAreaRoot = React.forwardRef<\n React.ComponentRef<typeof ScrollArea.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollArea.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollArea.Root ref={ref} className={cn(\"relative overflow-hidden\", className)} {...props}>\n <ScrollArea.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollArea.Viewport>\n <ScrollAreaScrollbar orientation=\"vertical\" />\n <ScrollAreaScrollbar orientation=\"horizontal\" />\n <ScrollArea.Corner />\n </ScrollArea.Root>\n));\nScrollAreaRoot.displayName = \"ScrollArea\";\n\nconst ScrollAreaScrollbar = React.forwardRef<\n React.ComponentRef<typeof ScrollArea.Scrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollArea.Scrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollArea.Scrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" && \"h-full w-2 border-l border-l-transparent p-px\",\n orientation === \"horizontal\" && \"h-2 flex-col border-t border-t-transparent p-px\",\n className,\n )}\n {...props}\n >\n <ScrollArea.Thumb className=\"relative flex-1 rounded-full bg-muted hover:bg-muted transition-colors\" />\n </ScrollArea.Scrollbar>\n));\nScrollAreaScrollbar.displayName = \"ScrollAreaScrollbar\";\n\nexport { ScrollAreaRoot as ScrollArea };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ninterface SectionHeadingAction {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: \"default\" | \"outline\" | \"ghost\";\n}\n\ninterface SectionHeadingProps {\n title: string;\n description?: string;\n actions?: SectionHeadingAction[];\n border?: boolean;\n className?: string;\n}\n\nfunction SectionHeading({\n title,\n description,\n actions,\n border = true,\n className,\n}: SectionHeadingProps) {\n return (\n <div\n className={cn(\n \"flex flex-col gap-1 pb-4 sm:flex-row sm:items-start sm:justify-between\",\n border && \"border-b border-border\",\n className,\n )}\n >\n <div className=\"min-w-0 flex-1\">\n <h2 className=\"heading text-foreground truncate\">{title}</h2>\n {description && <p className=\"mt-1 body text-muted-foreground\">{description}</p>}\n </div>\n\n {actions && actions.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-2 pt-1\">\n {actions.map((action, i) =>\n action.href ? (\n <Button key={i} size=\"sm\" variant={action.variant ?? \"default\"} asChild>\n <a href={action.href}>{action.label}</a>\n </Button>\n ) : (\n <Button\n key={i}\n size=\"sm\"\n variant={action.variant ?? \"default\"}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport { SectionHeading };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select } from \"radix-ui\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nconst SelectRoot = Select.Root;\nconst SelectGroup = Select.Group;\nconst SelectValue = Select.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof Select.Trigger>,\n React.ComponentPropsWithoutRef<typeof Select.Trigger>\n>(({ className, children, ...props }, ref) => (\n <Select.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between rounded-xl bg-card px-3 py-2\",\n \"body text-foreground shadow-natural\",\n \"focus:outline-none focus:ring-2 focus:ring-ring/20\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <Select.Icon asChild>\n <ChevronDown size={15} className=\"text-muted-foreground shrink-0\" />\n </Select.Icon>\n </Select.Trigger>\n));\nSelectTrigger.displayName = \"SelectTrigger\";\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof Select.Content>,\n React.ComponentPropsWithoutRef<typeof Select.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <Select.Portal>\n <Select.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden\",\n \"bg-card rounded-xl shadow-natural p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" && \"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <Select.ScrollUpButton className=\"flex cursor-default items-center justify-center py-1\">\n <ChevronUp size={14} className=\"text-muted-foreground\" />\n </Select.ScrollUpButton>\n <Select.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </Select.Viewport>\n <Select.ScrollDownButton className=\"flex cursor-default items-center justify-center py-1\">\n <ChevronDown size={14} className=\"text-muted-foreground\" />\n </Select.ScrollDownButton>\n </Select.Content>\n </Select.Portal>\n));\nSelectContent.displayName = \"SelectContent\";\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof Select.Item>,\n React.ComponentPropsWithoutRef<typeof Select.Item>\n>(({ className, children, ...props }, ref) => (\n <Select.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-md px-2.5 py-1.5\",\n \"body text-muted-foreground outline-none\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <Select.ItemIndicator>\n <Check size={13} className=\"text-foreground\" />\n </Select.ItemIndicator>\n </span>\n <Select.ItemText>{children}</Select.ItemText>\n </Select.Item>\n));\nSelectItem.displayName = \"SelectItem\";\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof Select.Label>,\n React.ComponentPropsWithoutRef<typeof Select.Label>\n>(({ className, ...props }, ref) => (\n <Select.Label\n ref={ref}\n className={cn(\"px-2.5 py-1 label text-muted-foreground\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = \"SelectLabel\";\n\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof Select.Separator>,\n React.ComponentPropsWithoutRef<typeof Select.Separator>\n>(({ className, ...props }, ref) => (\n <Select.Separator ref={ref} className={cn(\"mx-1 my-1 h-px bg-muted\", className)} {...props} />\n));\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport {\n SelectRoot as Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-muted\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className,\n )}\n {...props}\n />\n));\nSeparator.displayName = \"Separator\";\n\nexport { Separator };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog } from \"radix-ui\";\nimport { X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst SheetRoot = Dialog.Root;\nconst SheetTrigger = Dialog.Trigger;\nconst SheetClose = Dialog.Close;\n\nconst SheetOverlay = React.forwardRef<\n React.ComponentRef<typeof Dialog.Overlay>,\n React.ComponentPropsWithoutRef<typeof Dialog.Overlay>\n>(({ className, ...props }, ref) => (\n <Dialog.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/30 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nSheetOverlay.displayName = \"SheetOverlay\";\n\nconst sheetContentVariants = cva(\n [\n \"fixed z-50 bg-card shadow-elevated p-6\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"transition ease-in-out duration-300\",\n ],\n {\n variants: {\n side: {\n right:\n \"right-0 top-0 h-full w-full max-w-sm data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right\",\n left: \"left-0 top-0 h-full w-full max-w-sm data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\",\n top: \"top-0 inset-x-0 h-auto data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"bottom-0 inset-x-0 h-auto data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof Dialog.Content>,\n VariantProps<typeof sheetContentVariants> {}\n\nconst SheetContent = React.forwardRef<React.ComponentRef<typeof Dialog.Content>, SheetContentProps>(\n ({ className, children, side = \"right\", ...props }, ref) => (\n <Dialog.Portal>\n <SheetOverlay />\n <Dialog.Content\n ref={ref}\n className={cn(sheetContentVariants({ side }), className)}\n {...props}\n >\n {children}\n <Dialog.Close className=\"absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring/20\">\n <X size={16} />\n <span className=\"sr-only\">Close</span>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n ),\n);\nSheetContent.displayName = \"SheetContent\";\n\nfunction SheetHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1.5 mb-4\", className)} {...props} />;\n}\nSheetHeader.displayName = \"SheetHeader\";\n\nfunction SheetFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex items-center justify-end gap-2 mt-6\", className)} {...props} />;\n}\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ComponentRef<typeof Dialog.Title>,\n React.ComponentPropsWithoutRef<typeof Dialog.Title>\n>(({ className, ...props }, ref) => (\n <Dialog.Title\n ref={ref}\n className={cn(\"body-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = \"SheetTitle\";\n\nconst SheetDescription = React.forwardRef<\n React.ComponentRef<typeof Dialog.Description>,\n React.ComponentPropsWithoutRef<typeof Dialog.Description>\n>(({ className, ...props }, ref) => (\n <Dialog.Description ref={ref} className={cn(\"body text-muted-foreground\", className)} {...props} />\n));\nSheetDescription.displayName = \"SheetDescription\";\n\nexport {\n SheetRoot as Sheet,\n SheetTrigger,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n SheetClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n children,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Tooltip.Provider>) {\n return (\n <Tooltip.Provider delayDuration={300} {...props}>\n {children}\n </Tooltip.Provider>\n );\n}\n\nconst TooltipRoot = Tooltip.Root;\nconst TooltipTrigger = Tooltip.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ComponentRef<typeof Tooltip.Content>,\n React.ComponentPropsWithoutRef<typeof Tooltip.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <Tooltip.Portal>\n <Tooltip.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 rounded-lg bg-foreground px-2.5 py-1.5 caption text-background\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1\",\n \"data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1\",\n className,\n )}\n {...props}\n />\n </Tooltip.Portal>\n));\nTooltipContent.displayName = \"TooltipContent\";\n\nexport { TooltipProvider, TooltipRoot as Tooltip, TooltipTrigger, TooltipContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { PanelLeft } from \"lucide-react\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Separator } from \"./separator\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"./tooltip\";\n\n/* ------------------------------------------------------------------ */\n/* Constants */\n/* ------------------------------------------------------------------ */\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.5rem\";\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarContextValue {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n toggleSidebar: () => void;\n}\n\nconst SidebarContext = React.createContext<SidebarContextValue | null>(null);\n\nfunction useSidebar() {\n const ctx = React.useContext(SidebarContext);\n if (!ctx) throw new Error(\"useSidebar must be used inside SidebarProvider\");\n return ctx;\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarProvider */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarProviderProps extends React.ComponentProps<\"div\"> {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) {\n const [_open, _setOpen] = React.useState(defaultOpen);\n\n const open = openProp !== undefined ? openProp : _open;\n\n const setOpen = React.useCallback(\n (value: boolean) => {\n if (onOpenChange) {\n onOpenChange(value);\n } else {\n _setOpen(value);\n }\n // Persist to cookie\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${value}; path=/; max-age=${60 * 60 * 24 * 7}`;\n },\n [onOpenChange],\n );\n\n const toggleSidebar = React.useCallback(() => {\n setOpen(!open);\n }, [open, setOpen]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextValue>(\n () => ({ state, open, setOpen, toggleSidebar }),\n [state, open, setOpen, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-sidebar=\"provider\"\n data-state={state}\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full\", className)}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Sidebar */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarProps extends React.ComponentProps<\"aside\"> {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"icon\",\n className,\n children,\n ...props\n}: SidebarProps) {\n const { state } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <aside\n data-side={side}\n data-variant={variant}\n data-collapsible=\"none\"\n className={cn(\n \"flex flex-col h-svh bg-card border-r border-border w-(--sidebar-width)\",\n side === \"right\" && \"border-r-0 border-l\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n if (collapsible === \"offcanvas\") {\n return (\n <aside\n data-state={state}\n data-side={side}\n data-variant={variant}\n data-collapsible=\"offcanvas\"\n className={cn(\n \"group peer flex flex-col h-svh bg-card border-r border-border\",\n \"transition-[width,transform] duration-200 ease-linear\",\n \"data-[state=expanded]:w-(--sidebar-width) data-[state=collapsed]:w-0 data-[state=collapsed]:-translate-x-full\",\n side === \"right\" && \"border-r-0 border-l data-[state=collapsed]:translate-x-full\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n // collapsible === \"icon\" (default)\n return (\n <aside\n data-state={state}\n data-side={side}\n data-variant={variant}\n data-collapsible=\"icon\"\n className={cn(\n \"group peer hidden md:flex flex-col h-svh bg-card border-r border-border\",\n \"transition-[width] duration-200 ease-linear overflow-hidden\",\n \"data-[state=expanded]:w-(--sidebar-width) data-[state=collapsed]:w-(--sidebar-width-icon)\",\n side === \"right\" && \"border-r-0 border-l\",\n variant === \"floating\" && \"m-2 h-[calc(100svh-1rem)] rounded-xl border shadow-natural\",\n variant === \"inset\" && \"border-r-0\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarTrigger */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(e) => {\n onClick?.(e);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft size={16} />\n <span className=\"sr-only\">Toggle sidebar</span>\n </Button>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarRail */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n aria-label=\"Toggle sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 cursor-col-resize transition-all ease-linear\",\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]\",\n \"hover:after:bg-brand-primary/30\",\n \"group-data-[side=left]:-right-4 group-data-[side=right]:left-0\",\n \"sm:flex\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarInset */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-sidebar=\"inset\"\n className={cn(\"relative flex min-h-svh flex-1 flex-col bg-card overflow-hidden\", className)}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Structure components */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-3 border-b border-border\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"content\"\n className={cn(\"flex min-h-0 flex-1 flex-col gap-2 overflow-auto p-3\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-3 border-t border-border\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-sidebar=\"separator\"\n className={cn(\"mx-2 my-1 bg-muted\", className)}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Group components */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"div\";\n\n return (\n <Comp\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 label text-muted-foreground\",\n \"outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear\",\n \"group-data-[state=collapsed]/sidebar-wrapper:opacity-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:h-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:m-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:p-0\",\n \"group-data-[state=collapsed]/sidebar-wrapper:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center\",\n \"rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Menu components */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuButton */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarMenuButtonProps extends React.ComponentProps<\"button\"> {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string;\n size?: \"default\" | \"sm\" | \"lg\";\n}\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n tooltip,\n size = \"default\",\n className,\n children,\n ...props\n}: SidebarMenuButtonProps) {\n const Comp = asChild ? (Slot.Root as React.ElementType) : \"button\";\n\n const button = (\n <Comp\n data-sidebar=\"menu-button\"\n data-active={isActive}\n data-size={size}\n className={cn(\n // Base\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 body-sm text-left\",\n \"outline-none ring-ring\",\n \"transition-[width,height,padding] duration-150\",\n \"hover:bg-muted hover:text-foreground\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"active:bg-muted\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&>svg]:size-4 [&>svg]:shrink-0\",\n // Size variants\n size === \"sm\" && \"h-7 text-xs\",\n size === \"lg\" && \"h-10\",\n // Active state\n isActive && [\n \"bg-brand-primary/10 text-brand-primary\",\n \"hover:bg-brand-primary/15 hover:text-brand-primary\",\n ],\n // Collapsed state\n \"group-data-[state=collapsed]/sidebar-wrapper:justify-center\",\n \"group-data-[state=collapsed]/sidebar-wrapper:size-9\",\n \"group-data-[state=collapsed]/sidebar-wrapper:p-0\",\n className,\n )}\n {...props}\n >\n {children}\n </Comp>\n );\n\n if (!tooltip) {\n return button;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n className={cn(\n // Only visible when collapsed\n \"hidden group-data-[state=collapsed]/sidebar-wrapper:block\",\n )}\n >\n {tooltip}\n </TooltipContent>\n </Tooltip>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuAction */\n/* ------------------------------------------------------------------ */\n\ninterface SidebarMenuActionProps extends React.ComponentProps<\"button\"> {\n asChild?: boolean;\n showOnHover?: boolean;\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: SidebarMenuActionProps) {\n const Comp = asChild ? (Slot.Root as React.ElementType) : \"button\";\n\n return (\n <Comp\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1/2 -translate-y-1/2 flex aspect-square w-5 items-center justify-center\",\n \"rounded-md text-muted-foreground hover:bg-muted hover:text-foreground\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n showOnHover && [\n \"opacity-0 transition-opacity\",\n \"group-hover/menu-item:opacity-100\",\n \"peer-data-[active=true]/menu-button:opacity-100\",\n ],\n \"group-data-[state=collapsed]/sidebar-wrapper:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuBadge */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-sidebar=\"menu-badge\"\n className={cn(\n \"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-full\",\n \"caption font-medium bg-muted text-muted-foreground px-1\",\n \"group-data-[state=collapsed]/sidebar-wrapper:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* SidebarMenuSkeleton */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & { showIcon?: boolean }) {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <div className=\"size-4 shrink-0 rounded-md bg-muted animate-pulse\" />}\n <div\n className=\"h-4 max-w-(--skeleton-width) flex-1 rounded-md bg-muted animate-pulse\"\n style={{ \"--skeleton-width\": width } as React.CSSProperties}\n />\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Sub menu */\n/* ------------------------------------------------------------------ */\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border pl-3\",\n \"group-data-[state=collapsed]/sidebar-wrapper:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\ninterface SidebarMenuSubButtonProps extends React.ComponentProps<\"a\"> {\n asChild?: boolean;\n isActive?: boolean;\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n isActive = false,\n className,\n ...props\n}: SidebarMenuSubButtonProps) {\n const Comp = asChild ? (Slot.Root as React.ElementType) : \"a\";\n\n return (\n <Comp\n data-sidebar=\"menu-sub-button\"\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2\",\n \"body text-muted-foreground outline-none\",\n \"transition-colors duration-150\",\n \"hover:text-foreground hover:bg-muted\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&>svg]:size-3.5 [&>svg]:shrink-0\",\n isActive && \"text-brand-primary hover:text-brand-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n SidebarProvider,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slider } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst SliderRoot = React.forwardRef<\n React.ComponentRef<typeof Slider.Root>,\n React.ComponentPropsWithoutRef<typeof Slider.Root>\n>(({ className, ...props }, ref) => (\n <Slider.Root\n ref={ref}\n className={cn(\"relative flex w-full touch-none select-none items-center\", className)}\n {...props}\n >\n <Slider.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted\">\n <Slider.Range className=\"absolute h-full bg-brand-primary\" />\n </Slider.Track>\n <Slider.Thumb className=\"block size-4 rounded-full border-2 border-brand-primary bg-card shadow-natural transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30 disabled:pointer-events-none disabled:opacity-50\" />\n </Slider.Root>\n));\nSliderRoot.displayName = \"Slider\";\n\nexport { SliderRoot as Slider };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Toaster as SonnerToaster } from \"sonner\";\n\ntype ToasterProps = React.ComponentProps<typeof SonnerToaster>;\n\nfunction Toaster({ ...props }: ToasterProps) {\n return (\n <SonnerToaster\n theme=\"light\"\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast font-sans text-sm group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border group-[.toaster]:border-border group-[.toaster]:shadow-elevated group-[.toaster]:rounded-xl\",\n description: \"group-[.toast]:text-muted-foreground group-[.toast]:text-xs\",\n actionButton:\n \"group-[.toast]:bg-brand-primary group-[.toast]:text-background group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium\",\n success: \"group-[.toaster]:border-brand-secondary/40 group-[.toaster]:text-foreground\",\n error:\n \"group-[.toaster]:bg-destructive/10 group-[.toaster]:text-destructive group-[.toaster]:border-destructive/20\",\n warning:\n \"group-[.toaster]:bg-warning group-[.toaster]:text-warning-foreground group-[.toaster]:border-warning/40\",\n info: \"group-[.toaster]:border-border\",\n },\n }}\n {...props}\n />\n );\n}\n\nexport { Toaster };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst spinnerVariants = cva(\n \"inline-block animate-spin rounded-full border-2 border-current border-t-transparent\",\n {\n variants: {\n size: {\n xs: \"size-3\",\n sm: \"size-4\",\n default: \"size-5\",\n lg: \"size-6\",\n xl: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\ninterface SpinnerProps\n extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof spinnerVariants> {}\n\nfunction Spinner({ className, size, ...props }: SpinnerProps) {\n return (\n <span\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nexport { Spinner, spinnerVariants };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ninterface StackedListProps {\n children: React.ReactNode;\n divided?: boolean;\n bordered?: boolean;\n className?: string;\n}\n\nfunction StackedList({ children, divided = true, bordered = true, className }: StackedListProps) {\n return (\n <ul\n role=\"list\"\n className={cn(\n \"overflow-hidden rounded-xl bg-card\",\n bordered && \"border border-border shadow-natural\",\n divided && \"divide-y divide-border\",\n className,\n )}\n >\n {children}\n </ul>\n );\n}\n\ninterface StackedListItemProps {\n children: React.ReactNode;\n href?: string;\n onClick?: () => void;\n className?: string;\n}\n\nfunction StackedListItem({ children, href, onClick, className }: StackedListItemProps) {\n const inner = <div className={cn(\"px-4 py-3.5\", className)}>{children}</div>;\n\n if (href) {\n return (\n <li>\n <a href={href} className=\"block hover:bg-muted transition-colors\">\n {inner}\n </a>\n </li>\n );\n }\n\n if (onClick) {\n return (\n <li>\n <button\n type=\"button\"\n className=\"w-full text-left hover:bg-muted transition-colors\"\n onClick={onClick}\n >\n {inner}\n </button>\n </li>\n );\n }\n\n return <li>{inner}</li>;\n}\n\nexport { StackedList, StackedListItem };\n","import * as React from \"react\";\nimport { TrendingUp, TrendingDown, Minus } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n trend?: {\n value: string;\n direction: \"up\" | \"down\" | \"neutral\";\n };\n icon?: React.ReactNode;\n className?: string;\n}\n\nfunction StatCard({ label, value, trend, icon, className }: StatCardProps) {\n const trendColor = {\n up: \"text-muted-foreground bg-brand-secondary/30 rounded-full px-2 py-0.5 w-fit\",\n down: \"text-destructive\",\n neutral: \"text-muted-foreground\",\n };\n\n const TrendIcon = {\n up: TrendingUp,\n down: TrendingDown,\n neutral: Minus,\n };\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n <div className=\"flex items-start justify-between gap-3\">\n <p className=\"label text-muted-foreground\">{label}</p>\n {icon && (\n <div className=\"flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground\">\n {icon}\n </div>\n )}\n </div>\n <p className=\"heading-xl mt-2 text-foreground\">{value}</p>\n {trend &&\n (() => {\n const Icon = TrendIcon[trend.direction];\n return (\n <div className={cn(\"mt-2 flex items-center gap-1\", trendColor[trend.direction])}>\n <Icon size={12} />\n <span className=\"caption font-medium\">{trend.value}</span>\n </div>\n );\n })()}\n </div>\n );\n}\n\nStatCard.displayName = \"StatCard\";\n\nexport { StatCard };\n","import * as React from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport type StepStatus = \"complete\" | \"current\" | \"upcoming\";\n\nexport interface Step {\n id?: string | number;\n name: string;\n description?: string;\n status: StepStatus;\n href?: string;\n}\n\ninterface StepsProps {\n steps: Step[];\n variant?: \"circles\" | \"bullets\" | \"progress\";\n className?: string;\n}\n\n/* ---------- Circles variant ---------- */\nfunction CirclesSteps({ steps, className }: { steps: Step[]; className?: string }) {\n return (\n <nav aria-label=\"Progress\" className={className}>\n <ol role=\"list\" className=\"flex items-center\">\n {steps.map((step, i) => {\n const isLast = i === steps.length - 1;\n return (\n <li key={step.id ?? i} className={cn(\"relative\", !isLast && \"flex-1\")}>\n {/* Connector line */}\n {!isLast && (\n <div className=\"absolute top-4 left-8 -right-px h-0.5\" aria-hidden=\"true\">\n <div\n className={cn(\n \"h-full\",\n step.status === \"complete\" ? \"bg-brand-primary\" : \"bg-muted\",\n )}\n />\n </div>\n )}\n\n <a\n href={step.href ?? \"#\"}\n onClick={!step.href ? (e) => e.preventDefault() : undefined}\n className=\"group relative flex flex-col items-center gap-2\"\n >\n {/* Circle */}\n <span\n className={cn(\n \"relative z-10 flex size-8 items-center justify-center rounded-full transition-colors\",\n step.status === \"complete\" &&\n \"bg-brand-primary group-hover:bg-brand-primary/80\",\n step.status === \"current\" && \"border-2 border-brand-primary bg-card\",\n step.status === \"upcoming\" &&\n \"border-2 border-border bg-card group-hover:border-border\",\n )}\n >\n {step.status === \"complete\" ? (\n <Check size={14} className=\"text-background\" strokeWidth={2.5} />\n ) : step.status === \"current\" ? (\n <span className=\"size-2.5 rounded-full bg-brand-primary\" />\n ) : (\n <span className=\"size-2.5 rounded-full bg-transparent group-hover:bg-muted\" />\n )}\n </span>\n\n {/* Labels */}\n <span className=\"flex flex-col items-center\">\n <span\n className={cn(\n \"caption font-semibold\",\n step.status === \"upcoming\" ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {step.name}\n </span>\n {step.description && (\n <span className=\"caption text-muted-foreground\">{step.description}</span>\n )}\n </span>\n </a>\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n\n/* ---------- Bullets variant ---------- */\nfunction BulletsSteps({ steps, className }: { steps: Step[]; className?: string }) {\n const currentIdx = steps.findIndex((s) => s.status === \"current\");\n\n return (\n <nav className={cn(\"flex items-center gap-4\", className)} aria-label=\"Progress\">\n <p className=\"body font-medium text-muted-foreground\">\n Step {currentIdx + 1} of {steps.length}\n </p>\n <ol role=\"list\" className=\"flex items-center gap-2\">\n {steps.map((step, i) => (\n <li key={step.id ?? i}>\n <a\n href={step.href ?? \"#\"}\n onClick={!step.href ? (e) => e.preventDefault() : undefined}\n className=\"block\"\n >\n {step.status === \"complete\" ? (\n <span\n className=\"block size-2.5 rounded-full bg-brand-primary hover:bg-brand-primary/80 transition-colors\"\n aria-label={`${step.name}: completed`}\n />\n ) : step.status === \"current\" ? (\n <span\n className=\"relative flex size-4 items-center justify-center\"\n aria-current=\"step\"\n aria-label={`${step.name}: current step`}\n >\n <span className=\"absolute size-4 rounded-full bg-brand-primary/20\" />\n <span className=\"relative size-2.5 rounded-full bg-brand-primary\" />\n </span>\n ) : (\n <span\n className=\"block size-2.5 rounded-full bg-muted hover:bg-muted transition-colors\"\n aria-label={`${step.name}: upcoming`}\n />\n )}\n </a>\n </li>\n ))}\n </ol>\n </nav>\n );\n}\n\n/* ---------- Progress bar variant ---------- */\nfunction ProgressSteps({ steps, className }: { steps: Step[]; className?: string }) {\n const completeCount = steps.filter((s) => s.status === \"complete\").length;\n const currentIdx = steps.findIndex((s) => s.status === \"current\");\n const progress = ((completeCount + (currentIdx >= 0 ? 0.5 : 0)) / steps.length) * 100;\n\n return (\n <div className={cn(\"w-full\", className)}>\n {/* Bar */}\n <div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n <div\n className=\"h-full rounded-full bg-brand-primary transition-all duration-500\"\n style={{ width: `${progress}%` }}\n />\n </div>\n {/* Labels */}\n <div className=\"mt-4 grid\" style={{ gridTemplateColumns: `repeat(${steps.length}, 1fr)` }}>\n {steps.map((step, i) => {\n const isLast = i === steps.length - 1;\n return (\n <div\n key={step.id ?? i}\n className={cn(\n \"caption font-medium\",\n i === 0 ? \"text-left\" : isLast ? \"text-right\" : \"text-center\",\n step.status === \"upcoming\" ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {step.name}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n/* ---------- Main component ---------- */\nfunction Steps({ steps, variant = \"circles\", className }: StepsProps) {\n const classNameProp = className !== undefined ? { className } : {};\n if (variant === \"bullets\") return <BulletsSteps steps={steps} {...classNameProp} />;\n if (variant === \"progress\") return <ProgressSteps steps={steps} {...classNameProp} />;\n return <CirclesSteps steps={steps} {...classNameProp} />;\n}\n\nSteps.displayName = \"Steps\";\n\nexport { Steps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Switch } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst SwitchRoot = React.forwardRef<\n React.ComponentRef<typeof Switch.Root>,\n React.ComponentPropsWithoutRef<typeof Switch.Root>\n>(({ className, ...props }, ref) => (\n <Switch.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full\",\n \"border-2 border-transparent transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=unchecked]:bg-muted data-[state=checked]:bg-brand-primary\",\n className,\n )}\n {...props}\n >\n <Switch.Thumb\n className={cn(\n \"pointer-events-none block size-4 rounded-full bg-card shadow-natural\",\n \"transition-transform data-[state=unchecked]:translate-x-0 data-[state=checked]:translate-x-4\",\n )}\n />\n </Switch.Root>\n));\nSwitchRoot.displayName = \"Switch\";\n\nexport { SwitchRoot as Switch };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tabs } from \"radix-ui\";\nimport { cn } from \"../lib/utils\";\n\nconst TabsRoot = React.forwardRef<\n React.ComponentRef<typeof Tabs.Root>,\n React.ComponentPropsWithoutRef<typeof Tabs.Root>\n>(({ className, ...props }, ref) => (\n <Tabs.Root ref={ref} className={cn(\"w-full\", className)} {...props} />\n));\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof Tabs.List>,\n React.ComponentPropsWithoutRef<typeof Tabs.List>\n>(({ className, ...props }, ref) => (\n <Tabs.List\n ref={ref}\n className={cn(\"inline-flex items-center gap-1 border-b border-border w-full\", className)}\n {...props}\n />\n));\nTabsList.displayName = \"TabsList\";\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof Tabs.Trigger>,\n React.ComponentPropsWithoutRef<typeof Tabs.Trigger>\n>(({ className, ...props }, ref) => (\n <Tabs.Trigger\n ref={ref}\n className={cn(\n \"px-0 pb-2.5 body font-medium text-muted-foreground\",\n \"border-b-2 border-transparent -mb-px\",\n \"transition-colors cursor-pointer\",\n \"data-[state=active]:text-brand-primary data-[state=active]:border-brand-primary\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof Tabs.Content>,\n React.ComponentPropsWithoutRef<typeof Tabs.Content>\n>(({ className, ...props }, ref) => (\n <Tabs.Content ref={ref} className={cn(\"mt-4\", className)} {...props} />\n));\nTabsContent.displayName = \"TabsContent\";\n\nexport { TabsRoot as Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-border bg-card px-3 py-2\",\n \"body text-foreground placeholder:text-muted-foreground\",\n \"resize-none transition-colors duration-150\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/20 focus-visible:border-border\",\n \"disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Toggle } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst toggleVariants = cva(\n [\n \"inline-flex shrink-0 items-center justify-center gap-2\",\n \"body font-medium whitespace-nowrap rounded-md\",\n \"transition-all duration-150 outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n variant: {\n default: [\n \"bg-transparent text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[state=on]:bg-muted data-[state=on]:text-foreground\",\n ],\n outline: [\n \"border border-border bg-card text-muted-foreground shadow-natural\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[state=on]:bg-muted data-[state=on]:text-foreground data-[state=on]:border-border\",\n ],\n brand: [\n \"bg-transparent text-muted-foreground\",\n \"hover:bg-muted hover:text-foreground\",\n \"data-[state=on]:bg-brand-primary data-[state=on]:text-background\",\n ],\n },\n size: {\n sm: \"h-8 gap-1.5 px-3\",\n default: \"h-9 px-3\",\n lg: \"h-10 px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\ninterface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof Toggle.Root>, VariantProps<typeof toggleVariants> {}\n\nconst ToggleRoot = React.forwardRef<React.ComponentRef<typeof Toggle.Root>, ToggleProps>(\n ({ className, variant, size, ...props }, ref) => (\n <Toggle.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size }), className)}\n {...props}\n />\n ),\n);\nToggleRoot.displayName = \"Toggle\";\n\nexport { ToggleRoot as Toggle, toggleVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ToggleGroup } from \"radix-ui\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: \"default\",\n variant: \"default\",\n});\n\nconst ToggleGroupRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroup.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroup.Root> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroup.Root\n ref={ref}\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n </ToggleGroup.Root>\n));\nToggleGroupRoot.displayName = \"ToggleGroup\";\n\nconst ToggleGroupItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroup.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroup.Item> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext);\n return (\n <ToggleGroup.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: variant ?? context.variant,\n size: size ?? context.size,\n }),\n className,\n )}\n {...props}\n />\n );\n});\nToggleGroupItem.displayName = \"ToggleGroupItem\";\n\nexport { ToggleGroupRoot as ToggleGroup, ToggleGroupItem };\n"]}
|