@tydavidson/design-system 1.1.9 → 1.1.10
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.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +72 -87
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -81
- package/dist/index.mjs.map +1 -1
- package/dist/themes/index.d.mts +11 -17
- package/dist/themes/index.d.ts +11 -17
- package/dist/themes/index.js +71 -86
- package/dist/themes/index.js.map +1 -1
- package/dist/themes/index.mjs +70 -80
- package/dist/themes/index.mjs.map +1 -1
- package/docs/setup-guide.md +15 -15
- package/docs/troubleshooting.md +7 -7
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/themes/theme-provider.tsx","../src/lib/theme-utils.ts","../src/themes/theme-context.tsx","../src/components/ui/theme-toggle/theme-toggle.tsx","../src/components/ui/theme-toggle/index.ts","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu/dropdown-menu.tsx","../src/components/typography/heading/heading.tsx","../src/components/typography/text/text.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/slider.tsx","../src/components/ui/popover.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/sheet.tsx","../src/components/ui/command.tsx","../src/components/ui/dialog.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/context-menu.tsx","../src/components/email/button.tsx","../src/components/email/typography.tsx","../src/components/email/layout.tsx","../src/index.ts","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/radius.ts","../src/tokens/shadows.ts","../src/tokens/index.ts","../src/themes/index.ts","../src/themes/dynamic-imports.tsx"],"names":["twMerge","clsx","React14","jsx","Fragment","mapColorToShadcnVariant","mapVariantToShadcnVariant","getColorVariantClasses","isDarkTheme","React15","React16","IconSun","IconMoon","jsxs","init_theme_toggle","cva","React","Slot","DropdownMenuPrimitive","React2","IconCheck","IconPointFilled","IconChevronRight","React3","React4","React5","TogglePrimitive","React6","ToggleGroupPrimitive","React7","SliderPrimitive","PopoverPrimitive","React8","HoverCardPrimitive","React9","SheetPrimitive","React10","IconX","DialogPrimitive","React11","React12","CommandPrimitive","IconSearch","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","ContextMenuPrimitive","React13","dynamic"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AASO,SAAS,UAAA,CAAW,SAAS,IAAA,EAAc;AAChD,EAAA,MAAM,QAAA,GAAW,KAAK,MAAA,EAAO,CAAE,SAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAA,EAAG,CAAC,CAAA;AAC1D,EAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA;AAC9B;AAQO,SAAS,qBAAwB,KAAA,EAAyC;AAC/E,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;AAUO,SAAS,cAAA,CACd,OACA,SAAA,EACY;AACZ,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,KAAA,EAAM;AAC1B,EAAA,SAAA,CAAU,OAAA,CAAQ,CAAA,IAAA,KAAQ,OAAO,MAAA,CAAO,IAAI,CAAC,CAAA;AAC7C,EAAA,OAAO,MAAA;AACT;AAnDA,IAAA,UAAA,GAAA,KAAA,CAAA;AAAA,EAAA,kBAAA,GAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACAA,IAAA,sBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,sBAAA,EAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,kBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAcO,SAAS,aAAA,CAAc;AAAA,EAC5B,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAUC,2BAAc,IAAI,CAAA;AAC5E,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,2BAAS,KAAK,CAAA;AAElD,EAAMA,4BAAU,MAAM;AAEpB,IAAA,OAAO,aAAa,CAAA,CAAE,IAAA,CAAK,CAAC,EAAE,aAAA,EAAe,UAAS,KAAM;AAC1D,MAAA,qBAAA,CAAsB,MAAM,QAAQ,CAAA;AACpC,MAAA,UAAA,CAAW,IAAI,CAAA;AAAA,IACjB,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAGL,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,kBAAA,EAAoB;AACnC,IAAA,uBAAOC,cAAAA,CAAAC,mBAAAA,EAAA,EAAG,QAAA,EAAS,CAAA;AAAA,EACrB;AAEA,EAAA,uBACED,cAAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,OAAA;AAAA,MACV,YAAA,EAAa,QAAA;AAAA,MACb,YAAA,EAAY,IAAA;AAAA,MACZ,yBAAA,EAAyB,IAAA;AAAA,MACxB,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAMO,SAAS,kBAAA,CAAmB;AAAA,EACjC,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUD,2BAAS,KAAK,CAAA;AAElD,EAAMA,4BAAU,MAAM;AACpB,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,uBAAOC,cAAAA,CAAAC,mBAAAA,EAAA,EAAG,QAAA,EAAS,CAAA;AAAA,EACrB;AAEA,EAAA,uBACED,cAAAA,CAAC,aAAA,EAAA,EAAe,GAAG,OAChB,QAAA,EACH,CAAA;AAEJ;AAtEA,IAAA,mBAAA,GAAA,KAAA,CAAA;AAAA,EAAA,+BAAA,GAAA;AAAA,IAAA,YAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACoBaE,wCAAA,CAAA,CAiBAC,4CAgBAC,uCAAA,CAAA,CAmCAC;AAxFb,IAAA,gBAAA,GAAA,KAAA,CAAA;AAAA,EAAA,wBAAA,GAAA;AAoBO,IAAMH,+BAAA,GAA0B,CAAC,KAAA,KAAsB;AAC5D,MAAA,QAAQ,KAAA;AAAO,QACb,KAAK,OAAA;AAAS,UAAA,OAAO,SAAA;AAAA,QACrB,KAAK,OAAA;AAAS,UAAA,OAAO,aAAA;AAAA,QACrB,KAAK,SAAA;AAAA,QACL,KAAK,SAAA;AACH,UAAA,OAAO,WAAA;AAAA;AAAA,QACT;AAAS,UAAA,OAAO,SAAA;AAAA;AAClB,IACF,CAAA;AAQO,IAAMC,iCAAA,GAA4B,CAAC,OAAA,KAA8B;AACtE,MAAA,QAAQ,OAAA;AAAS,QACf,KAAK,SAAA;AAAW,UAAA,OAAO,SAAA;AAAA,QACvB,KAAK,WAAA;AAAa,UAAA,OAAO,SAAA;AAAA,QACzB,KAAK,UAAA;AAAY,UAAA,OAAO,OAAA;AAAA,QACxB;AAAS,UAAA,OAAO,SAAA;AAAA;AAClB,IACF,CAAA;AASO,IAAMC,8BAAA,GAAyB,CACpC,KAAA,EACA,OAAA,KACW;AACX,MAAA,MAAM,eAAA,GAAwE;AAAA,QAC5E,OAAA,EAAS;AAAA,UACP,KAAA,EAAO,yEAAA;AAAA,UACP,KAAA,EAAO,yEAAA;AAAA,UACP,OAAA,EAAS,+EAAA;AAAA,UACT,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,gFAAA;AAAA,UACP,KAAA,EAAO,gFAAA;AAAA,UACP,OAAA,EAAS,wFAAA;AAAA,UACT,OAAA,EAAS;AAAA,SACX;AAAA,QACA,QAAA,EAAU;AAAA,UACR,KAAA,EAAO,+DAAA;AAAA,UACP,KAAA,EAAO,+DAAA;AAAA,UACP,OAAA,EAAS,qEAAA;AAAA,UACT,OAAA,EAAS;AAAA;AACX,OACF;AAEA,MAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,GAAI,KAAK,CAAA,IAAK,EAAA;AAAA,IAC9C,CAAA;AASO,IAAMC,mBAAA,GAAc,CAAC,KAAA,EAA2B,WAAA,KAA6C;AAClG,MAAA,IAAI,UAAU,QAAA,EAAU;AACtB,QAAA,OAAO,WAAA,KAAgB,MAAA;AAAA,MACzB;AACA,MAAA,OAAO,KAAA,KAAU,MAAA;AAAA,IACnB,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;AC/EO,SAAS,QAAA,GAAW;AACzB,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAUC,iBAAA,CAAA,QAAA,CAAS;AAAA,IAC/C,KAAA,EAAO,QAAA;AAAA,IACP,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA,IAAC,CAAA;AAAA,IAC9B,aAAA,EAAe,OAAA;AAAA,IACf,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,2BAAS,KAAK,CAAA;AAElD,EAAMA,4BAAU,MAAM;AAEpB,IAAA,OAAO,aAAa,CAAA,CAAE,IAAA,CAAK,CAAC,EAAE,QAAA,EAAU,cAAa,KAAM;AACzD,MAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,WAAA,KAAgB,YAAA,EAAa;AACrE,MAAA,MAAM,MAAA,GAASD,mBAAA,CAAY,KAAA,EAAO,WAAW,CAAA;AAE7C,MAAA,YAAA,CAAa;AAAA,QACX,OAAO,KAAA,IAAS,QAAA;AAAA,QAChB,QAAA;AAAA,QACA,eAAe,aAAA,IAAiB,OAAA;AAAA,QAChC;AAAA,OACD,CAAA;AACD,MAAA,UAAA,CAAW,IAAI,CAAA;AAAA,IACjB,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAGL,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA,MAAC,CAAA;AAAA,MAC9B,aAAA,EAAe,OAAA;AAAA,MACf,MAAA,EAAQ;AAAA,KACV;AAAA,EACF;AAEA,EAAA,OAAO,SAAA;AACT;AAMO,SAAS,cAAA,GAAiB;AAC/B,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,QAAA;AAAA,IACP,QAAA,EAAU,CAAC,KAAA,KAAkB;AAAA,IAAC,CAAA;AAAA,IAC9B,aAAA,EAAe,OAAA;AAAA,IACf,MAAA,EAAQ;AAAA,GACV;AACF;AAMO,SAAS,oBAAA,CAAqB;AAAA,EACnC;AACF,CAAA,EAEG;AAED,EAAA,uBAAOL,cAAAA,CAAAC,mBAAAA,EAAA,EAAG,QAAA,EAAS,CAAA;AACrB;AA5EA,IAAA,kBAAA,GAAA,KAAA,CAAA;AAAA,EAAA,8BAAA,GAAA;AAAA,IAAA,YAAA;AAGA,IAAA,gBAAA,EAAA;AAAA,EAAA;AAAA,CAAA,CAAA;ACwBO,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,OAAA,GAAU,MAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,aAAA,KAAkB,QAAA,EAAS;AACpD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUM,2BAAS,KAAK,CAAA;AAGlD,EAAMA,4BAAU,MAAM;AACpB,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAGL,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAGrB,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAM,CAAA;AAAA,EACtD,CAAA;AAGA,EAAA,MAAM,QAAA,GAAW;AAAA,IACf,EAAA,EAAI,EAAA;AAAA,IACJ,EAAA,EAAI,EAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAGA,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,WAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAGA,EAAA,MAAM,eAAA,GAAkB;AAAA,IACtB,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAGA,EAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,IAAA,uBACEP,cAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,EAAA;AAAA,UACT,mIAAA;AAAA,UACA,YAAY,IAAI,CAAA;AAAA,UAChB;AAAA,SACF;AAAA,QACA,YAAA,EAAY,aAAA,KAAkB,MAAA,GAAS,uBAAA,GAA0B,sBAAA;AAAA,QAChE,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,aAAA,KAAkB,yBACjBA,cAAAA,CAACQ,sBAAQ,IAAA,EAAM,QAAA,CAAS,IAAI,CAAA,EAAG,MAAA,EAAQ,KAAK,CAAA,mBAE5CR,eAACS,mBAAA,EAAA,EAAS,IAAA,EAAM,SAAS,IAAI,CAAA,EAAG,QAAQ,GAAA,EAAK;AAAA;AAAA,KAEjD;AAAA,EAEJ;AAGA,EAAA,IAAI,YAAY,QAAA,EAAU;AACxB,IAAA,uBACET,cAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,EAAA;AAAA,UACT,gGAAA;AAAA,UACA,gBAAgB,IAAI,CAAA;AAAA,UACpB,8CAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,aAAA,KAAkB,SAAS,YAAA,GAAe;AAAA;AAAA,KAC7C;AAAA,EAEJ;AAGA,EAAA,uBACEA,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,EAAA;AAAA,QACT,oKAAA;AAAA,QACA,gBAAgB,IAAI,CAAA;AAAA,QACpB,aAAA,KAAkB,SACd,qDAAA,GACA,kDAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACA,YAAA,EAAY,aAAA,KAAkB,MAAA,GAAS,uBAAA,GAA0B,sBAAA;AAAA,MAChE,GAAG,KAAA;AAAA,MAEH,4BAAkB,MAAA,mBACjBU,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mBAAA,EACd,QAAA,EAAA;AAAA,wBAAAV,cAAAA,CAACQ,sBAAQ,IAAA,EAAM,QAAA,CAAS,IAAI,CAAA,EAAG,MAAA,EAAQ,GAAA,EAAK,SAAA,EAAU,MAAA,EAAO,CAAA;AAAA,QAAE;AAAA,OAAA,EAEjE,CAAA,mBAEAE,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mBAAA,EACd,QAAA,EAAA;AAAA,wBAAAV,cAAAA,CAACS,uBAAS,IAAA,EAAM,QAAA,CAAS,IAAI,CAAA,EAAG,MAAA,EAAQ,GAAA,EAAK,SAAA,EAAU,MAAA,EAAO,CAAA;AAAA,QAAE;AAAA,OAAA,EAElE;AAAA;AAAA,GAEJ;AAEJ;AA7IA,IAAA,iBAAA,GAAA,KAAA,CAAA;AAAA,EAAA,iDAAA,GAAA;AAAA,IAAA,YAAA;AAGA,IAAA,kBAAA,EAAA;AACA,IAAA,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACJA,IAAA,oBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,oBAAA,EAAA;AAAA,EAAA,WAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAAA,IAAAE,kBAAAA,GAAA,KAAA,CAAA;AAAA,EAAA,yCAAA,GAAA;AAAA,IAAA,iBAAA,EAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACIA,UAAA,EAAA;AAIA,IAAM,cAAA,GAAiBC,0BAAA;AAAA,EACrB,2VAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iPAAA;AAAA,QACT,SAAA,EAAW,6PAAA;AAAA,QACX,KAAA,EAAO,qHAAA;AAAA,QACP,OAAA,EAAS,2NAAA;AAAA,QACT,IAAA,EAAM,6GAAA;AAAA,QACN,WAAA,EAAa,yQAAA;AAAA;AAAA,QAEb,OAAA,EAAS,iPAAA;AAAA,QACT,QAAA,EAAU,qHAAA;AAAA,QACV,YAAA,EAAc;AAAA,OAChB;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,qCAAA;AAAA,QACJ,MAAA,EAAQ,kCAAA;AAAA,QACR,MAAA,EAAQ,kCAAA;AAAA,QACR,MAAA,EAAQ,oCAAA;AAAA;AAAA,QAER,IAAA,EAAM;AAAA;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAoCA,IAAM,MAAA,GAAeC,iBAAA,CAAA,UAAA;AAAA,EACnB,CAAC;AAAA,IACC,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,KAAA;AAAA,IACV,QAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,KAAA,GAAQ,OAAA;AAAA,IACR,SAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,QAAA;AAAA,IACA,GAAG;AAAA,KACF,GAAA,KAAQ;AAET,IAAA,IAAI,kBAAkB,SAAA,IAAa,OAAA;AACnC,IAAA,IAAI,eAAA,KAAoB,WAAW,eAAA,GAAkB,SAAA;AACrD,IAAA,IAAI,eAAA,KAAoB,YAAY,eAAA,GAAkB,OAAA;AACtD,IAAA,IAAI,eAAA,KAAoB,gBAAgB,eAAA,GAAkB,aAAA;AAE1D,IAAA,MAAM,UAAA,GAAa,MAAM,QAAA,IAAY,SAAA;AAGrC,IAAA,IAAI,WAAA,GAAc,IAAA;AAClB,IAAA,IAAI,QAAA,EAAU;AAEZ,MAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,CAAC,IAAA,CAAK,UAAA,CAAW,MAAM,CAAA,EAAG;AACxD,QAAA,IAAI,IAAA,KAAS,MAAM,WAAA,GAAc,QAAA;AAAA,aAAA,IACxB,IAAA,KAAS,MAAM,WAAA,GAAc,QAAA;AAAA,aACjC,WAAA,GAAc,QAAA;AAAA,MACrB;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAU,EAAA;AAAA,MACd,cAAA,CAAe;AAAA,QACb,OAAA,EAAS,eAAA;AAAA,QACT,IAAA,EAAM,WAAA;AAAA,QACN;AAAA,OACD;AAAA,KACH;AAEA,IAAA,MAAM,0BACJH,eAAA,CAAAT,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,QAAA,IAAY,CAAC,OAAA,oBACZD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCACb,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,MAED,aAAa,CAAC,OAAA,mBACbU,eAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mBAAA,EACd,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EAA0B,KAAA,EAAM,8BAA6B,IAAA,EAAK,MAAA,EAAO,SAAQ,WAAA,EAC9F,QAAA,EAAA;AAAA,0BAAAV,cAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,YAAA,EAAa,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,CAAA;AAAA,yCAC3F,MAAA,EAAA,EAAK,SAAA,EAAU,cAAa,IAAA,EAAK,cAAA,EAAe,GAAE,iHAAA,EAAkH;AAAA,SAAA,EACvK,CAAA;AAAA,wBACAA,cAAA,CAAC,UAAK,QAAA,EAAA,YAAA,EAAU;AAAA,OAAA,EAClB,CAAA,GAEA,QAAA;AAAA,MAED,aAAa,CAAC,OAAA,mCACZ,MAAA,EAAA,EAAK,SAAA,EAAU,oCACb,QAAA,EAAA,SAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAGF,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,cAAA;AAAA,QAACc,cAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,OAAA;AAAA,UACX,GAAA;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEd,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,OAAA;AAAA,QACX,QAAA,EAAU,UAAA;AAAA,QACV,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;;;ACrKrB,UAAA,EAAA;AAGA,IAAM,gBAAA,GAAyCe,gCAAA,CAAA,IAAA;AAG/C,IAAM,mBAAA,GAA4BC,iBAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpChB,cAAAA;AAAA,EAAuBe,gCAAA,CAAA,OAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG,KAAA;AAAA,IAEH;AAAA;AACH,CACD,CAAA;AAED,mBAAA,CAAoB,cAAoCA,gCAAA,CAAA,OAAA,CAAQ,WAAA;AAGhE,IAAM,mBAAA,GAA4BC,iBAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,aAAa,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAClD,EAAA,uBACEhB,cAAAA,CAAuBe,gCAAA,CAAA,MAAA,EAAtB,EACC,QAAA,kBAAAf,cAAAA;AAAA,IAAuBe,gCAAA,CAAA,OAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,kGAAA;AAAA,QACA,qFAAA;AAAA,QACA,iCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,mBAAA,CAAoB,cAAoCA,gCAAA,CAAA,OAAA,CAAQ,WAAA;AAGhE,IAAM,gBAAA,GAAyBC,iBAAA,CAAA,UAAA,CAQ7B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC/E,EAAA,MAAM,WAAA,GAAc,EAAA;AAAA,IAClB,oLAAA;AAAA,IACA,kCAAA;AAAA,IACA,uFAAA;AAAA,IACA,uFAAA;AAAA,IACA,KAAA,IAAS;AAAA,GACX;AAEA,EAAA,MAAM,mBAAA,GAAsB;AAAA,IAC1B,KAAA,EAAO,qMAAA;AAAA,IACP,KAAA,EAAO,qMAAA;AAAA,IACP,OAAA,EAAS,6MAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAEA,EAAA,uBACEN,eAAAA;AAAA,IAAuBK,gCAAA,CAAA,IAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,WAAA;AAAA,QACA,KAAA,IAAS,oBAAoB,KAAK,CAAA;AAAA,QAClC;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAYf,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,2EAAA,EAA6E,EAAC,SAAA,EAAW,CAAC,QAAA,IAAY,SAAA,EAAU,GAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,QAC7J,QAAA;AAAA,QACA,6BAAaA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qEAAqE,QAAA,EAAA,SAAA,EAAU;AAAA;AAAA;AAAA,GAC/G;AAEJ,CAAC,CAAA;AAED,gBAAA,CAAiB,cAAoCe,gCAAA,CAAA,IAAA,CAAK,WAAA;AAG1D,IAAM,iBAAA,GAA0BC,iBAAA,CAAA,UAAA,CAG9B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjChB,cAAAA;AAAA,EAAuBe,gCAAA,CAAA,KAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,kEAAA;AAAA,MACA,QAAQ,MAAA,GAAS,MAAA;AAAA,MACjB;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD,CAAA;AAED,iBAAA,CAAkB,cAAoCA,gCAAA,CAAA,KAAA,CAAM,WAAA;AAG5D,IAAM,wBAAA,GAAiCC,iBAAA,CAAA,UAAA,CAGrC,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC7CN,eAAAA;AAAA,EAAuBK,gCAAA,CAAA,YAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,yLAAA;AAAA,MACA,8MAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAf,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,QAAA,kBAAAA,eAAuBe,gCAAA,CAAA,aAAA,EAAtB,EACC,QAAA,kBAAAf,cAAAA,CAACiB,wBAAU,SAAA,EAAU,qCAAA,EAAsC,WAAA,EAAa,CAAA,EAAE,GAC5E,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD,CAAA;AAED,wBAAA,CAAyB,cAAoCF,gCAAA,CAAA,YAAA,CAAa,WAAA;AAG1E,IAAM,sBAAA,GAA+CA,gCAAA,CAAA,UAAA;AAGrD,IAAM,qBAAA,GAA8BC,iBAAA,CAAA,UAAA,CAGlC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCN,eAAAA;AAAA,EAAuBK,gCAAA,CAAA,SAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,yLAAA;AAAA,MACA,8MAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAf,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,cAAAA,CAAuBe,gCAAA,CAAA,aAAA,EAAtB,EACC,QAAA,kBAAAf,cAAAA,CAACkB,0BAAA,EAAA,EAAgB,SAAA,EAAU,kDAAA,EAAmD,GAChF,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD,CAAA;AAED,qBAAA,CAAsB,cAAoCH,gCAAA,CAAA,SAAA,CAAU,WAAA;AAGpE,IAAM,qBAAA,GAA8BC,6BAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,cAAAA;AAAA,EAAuBe,gCAAA,CAAA,SAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,mDAAA,EAAqD,SAAS,CAAA;AAAA,IAC3E,GAAG;AAAA;AACN,CACD,CAAA;AAED,qBAAA,CAAsB,cAAoCA,gCAAA,CAAA,SAAA,CAAU,WAAA;AAGpE,IAAM,uBAAuB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA6C;AAC3C,EAAA,uBACEf,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,wEAAA,EAA0E,SAAS,CAAA;AAAA,MAChG,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAGnC,IAAM,eAAA,GAAwCe,gCAAA,CAAA,GAAA;AAC9C,IAAM,sBAAA,GAA+BC,iBAAA,CAAA,UAAA,CAGnC,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3CN,eAAAA;AAAA,EAAuBK,gCAAA,CAAA,UAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8MAAA;AAAA,MACA,8MAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDf,cAAAA,CAACmB,2BAAA,EAAA,EAAiB,SAAA,EAAU,6CAAA,EAA8C;AAAA;AAAA;AAC5E,CACD,CAAA;AAED,sBAAA,CAAuB,cAAoCJ,gCAAA,CAAA,UAAA,CAAW,WAAA;AAEtE,IAAM,sBAAA,GAA+BC,6BAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,cAAAA;AAAA,EAAuBe,gCAAA,CAAA,UAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,gPAAA;AAAA,MACA,qHAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD,CAAA;AAED,sBAAA,CAAuB,cAAoCA,gCAAA,CAAA,UAAA,CAAW,WAAA;AAG/D,IAAM,YAAA,GAAe;AAAA,EAC1B,IAAA,EAAM,gBAAA;AAAA,EACN,OAAA,EAAS,mBAAA;AAAA,EACT,OAAA,EAAS,mBAAA;AAAA,EACT,IAAA,EAAM,gBAAA;AAAA,EACN,YAAA,EAAc,wBAAA;AAAA,EACd,UAAA,EAAY,sBAAA;AAAA,EACZ,SAAA,EAAW,qBAAA;AAAA,EACX,KAAA,EAAO,iBAAA;AAAA,EACP,SAAA,EAAW,qBAAA;AAAA,EACX,QAAA,EAAU,oBAAA;AAAA,EACV,KAAA,EAA6BA,gCAAA,CAAA,KAAA;AAAA,EAC7B,MAAA,EAA8BA,gCAAA,CAAA,MAAA;AAAA,EAC9B,GAAA,EAAK,eAAA;AAAA,EACL,UAAA,EAAY,sBAAA;AAAA,EACZ,UAAA,EAAY;AACd;;;AC1PA,UAAA,EAAA;AAuDO,IAAM,OAAA,GAAgBK,iBAAA,CAAA,UAAA;AAAA,EAC3B,CAAC;AAAA,IACC,KAAA,GAAQ,CAAA;AAAA,IACR,IAAA;AAAA,IACA,MAAA,GAAS,MAAA;AAAA,IACT,MAAA,GAAS,KAAA;AAAA,IACT,SAAA,GAAY,KAAA;AAAA,IACZ,KAAA,GAAQ,SAAA;AAAA,IACR,SAAA,GAAY,EAAA;AAAA,IACZ,EAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KACF,GAAA,KAAQ;AAET,IAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA,CAAA;AAG5B,IAAA,MAAM,YAAY,EAAA,IAAM,UAAA;AAGxB,IAAA,MAAM,YAAA,GAAuC;AAAA,MAC3C,CAAA,EAAG,IAAA;AAAA,MACH,CAAA,EAAG,IAAA;AAAA,MACH,CAAA,EAAG,IAAA;AAAA,MACH,CAAA,EAAG,SAAA;AAAA,MACH,CAAA,EAAG,SAAA;AAAA,MACH,CAAA,EAAG;AAAA,KACL;AAGA,IAAA,MAAM,SAAA,GAAY,IAAA,IAAQ,YAAA,CAAa,KAAK,CAAA;AAG5C,IAAA,MAAM,WAAA,GAAsC;AAAA,MAC1C,KAAA,EAAO,uCAAA;AAAA,MACP,IAAA,EAAM,uCAAA;AAAA,MACN,IAAA,EAAM,uCAAA;AAAA,MACN,IAAA,EAAM,uCAAA;AAAA,MACN,IAAA,EAAM,sCAAA;AAAA,MACN,IAAA,EAAM,sCAAA;AAAA,MACN,SAAA,EAAW,uBAAA;AAAA,MACX,SAAA,EAAW,uBAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACb;AAGA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,OAAA,EAAS,aAAA;AAAA,MACT,MAAA,EAAQ,aAAA;AAAA,MACR,QAAA,EAAU,eAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAGA,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,OAAA,EAAS,iBAAA;AAAA,MACT,KAAA,EAAO,uBAAA;AAAA,MACP,KAAA,EAAO,oCAAA;AAAA,MACP,KAAA,EAAO,oCAAA;AAAA,MACP,OAAA,EAAS,wCAAA;AAAA,MACT,OAAA,EAAS;AAAA,KACX;AAEA,IAAA,uBACEpB,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,YAAY,SAAS,CAAA;AAAA,UACrB,cAAc,MAAM,CAAA;AAAA,UACpB,aAAa,KAAK,CAAA;AAAA,UAClB,MAAA,IAAU,QAAA;AAAA,UACV,SAAA,IAAa,WAAA;AAAA,UACb;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;;;ACzItB,UAAA,EAAA;AAiDO,IAAM,IAAA,GAAaqB,iBAAA,CAAA,UAAA;AAAA,EACxB,CAAC;AAAA,IACC,IAAA,GAAO,IAAA;AAAA,IACP,MAAA,GAAS,SAAA;AAAA,IACT,MAAA,GAAS,KAAA;AAAA,IACT,SAAA,GAAY,KAAA;AAAA,IACZ,KAAA,GAAQ,SAAA;AAAA,IACR,SAAA,GAAY,EAAA;AAAA,IACZ,IAAI,SAAA,GAAY,GAAA;AAAA,IAChB,QAAA;AAAA,IACA,GAAG;AAAA,KACF,GAAA,KAAQ;AAET,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI,2BAAA;AAAA,MACJ,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAGA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,OAAA,EAAS,aAAA;AAAA,MACT,MAAA,EAAQ,aAAA;AAAA,MACR,QAAA,EAAU,eAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAGA,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,OAAA,EAAS,iBAAA;AAAA,MACT,KAAA,EAAO,uBAAA;AAAA,MACP,KAAA,EAAO,oCAAA;AAAA,MACP,KAAA,EAAO,oCAAA;AAAA,MACP,OAAA,EAAS,wCAAA;AAAA,MACT,OAAA,EAAS;AAAA,KACX;AAEA,IAAA,uBACErB,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,YAAY,IAAI,CAAA;AAAA,UAChB,cAAc,MAAM,CAAA;AAAA,UACpB,aAAa,KAAK,CAAA;AAAA,UAClB,MAAA,IAAU,QAAA;AAAA,UACV,SAAA,IAAa,WAAA;AAAA,UACb;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;;;AC1GnB,UAAA,EAAA;AAEA,IAAM,MAAA,GAAesB,6BAGnB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtB,cAAAA;AAAA,EAAiBuB,0BAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,igBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,MAAA,CAAO,cAA8BA,0BAAA,CAAA,IAAA,CAAK,WAAA;;;AChB1C,UAAA,EAAA;AAEA,IAAM,WAAA,GAAoBC,iBAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCxB,cAAAA;AAAA,EAAsByB,+BAAA,CAAA,IAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,IACjD,GAAG,KAAA;AAAA,IAEH;AAAA;AACH,CACD;AAED,WAAA,CAAY,cAAmCA,+BAAA,CAAA,IAAA,CAAK,WAAA;AAEpD,IAAM,eAAA,GAAwBD,6BAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxB,cAAAA;AAAA,EAAsByB,+BAAA,CAAA,IAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,igBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,eAAA,CAAgB,cAAmCA,+BAAA,CAAA,IAAA,CAAK,WAAA;;;AC9BxD,UAAA,EAAA;AAEA,IAAM,MAAA,GAAeC,6BAGnB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BhB,eAAAA;AAAA,EAAiBiB,0BAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA3B,cAAAA,CAAiB2B,0BAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,uEAAA,EAC/B,QAAA,kBAAA3B,cAAAA,CAAiB2B,0BAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,4BAAA,EAA6B,CAAA,EAChE,CAAA;AAAA,sBACA3B,cAAAA,CAAiB2B,0BAAA,CAAA,KAAA,EAAhB,EAAsB,WAAU,qNAAA,EAAsN;AAAA;AAAA;AACzP,CACD;AACD,MAAA,CAAO,cAA8BA,0BAAA,CAAA,IAAA,CAAK,WAAA;;;ACpB1C,UAAA,EAAA;AAEA,IAAM,OAAA,GAA2BC,2BAAA,CAAA;AAEjC,IAAM,cAAA,GAAkCA,2BAAA,CAAA;AAExC,IAAM,aAAA,GAAiCA,2BAAA,CAAA;AAEvC,IAAM,iBAAuBC,iBAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,QAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,GAAG,OAAM,EAAG,GAAA,qBAC5D7B,cAAAA,CAAkB4B,2BAAA,CAAA,MAAA,EAAjB,EACC,QAAA,kBAAA5B,cAAAA;AAAA,EAAkB4B,2BAAA,CAAA,OAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,6dAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,cAAA,CAAe,cAA+BA,2BAAA,CAAA,OAAA,CAAQ,WAAA;;;ACzBtD,UAAA,EAAA;AAEA,IAAM,SAAA,GAA+BE,6BAAA,CAAA;AAErC,IAAM,gBAAA,GAAsCA,6BAAA,CAAA;AAE5C,IAAM,gBAAA,GAAyBC,iBAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,wBAC5D/B,cAAAA;AAAA,EAAoB8B,6BAAA,CAAA,OAAA;AAAA,EAAnB;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,6dAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAAiCA,6BAAA,CAAA,OAAA,CAAQ,WAAA;;;ACrB1D,UAAA,EAAA;AAEA,IAAM,KAAA,GAAuBE,yBAAA,CAAA;AAE7B,IAAM,YAAA,GAA8BA,yBAAA,CAAA;AAEpC,IAAM,UAAA,GAA4BA,yBAAA,CAAA;AAElC,IAAM,WAAA,GAA6BA,yBAAA,CAAA;AAEnC,IAAM,YAAA,GAAqBC,6BAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BjC,cAAAA;AAAA,EAAgBgC,yBAAA,CAAA,OAAA;AAAA,EAAf;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,sKAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IACJ;AAAA;AACF,CACD;AACD,YAAA,CAAa,cAA6BA,yBAAA,CAAA,OAAA,CAAQ,WAAA;AAElD,IAAM,YAAA,GAAqBC,iBAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,IAAA,GAAO,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,GAAA,EAAK,mGAAA;AAAA,IACL,MAAA,EAAQ,4GAAA;AAAA,IACR,IAAA,EAAM,+HAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACT;AACA,EAAA,uBACEvB,gBAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAV,eAAC,YAAA,EAAA,EAAa,CAAA;AAAA,oBACdU,eAAAA;AAAA,MAAgBsB,yBAAA,CAAA,OAAA;AAAA,MAAf;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,sQAAA;AAAA,UACA,YAAY,IAAI,CAAA;AAAA,UAChB;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,0BACDtB,eAAAA,CAAgBsB,yBAAA,CAAA,KAAA,EAAf,EAAqB,WAAU,8TAAA,EAC9B,QAAA,EAAA;AAAA,4BAAAhC,cAAAA,CAACkC,gBAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,QAAQ,GAAA,EAAK,CAAA;AAAA,4BAC9BlC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,WAAA,EACjC;AAAA;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAC;AACD,YAAA,CAAa,cAA6BgC,yBAAA,CAAA,OAAA,CAAQ,WAAA;AAElD,IAAM,cAAc,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEhC,cAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,cAAc,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,cAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBiC,6BAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BjC,cAAAA;AAAA,EAAgBgC,yBAAA,CAAA,KAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,kDAAA,EAAoD,SAAS,CAAA;AAAA,IAC1E,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,cAA6BA,yBAAA,CAAA,KAAA,CAAM,WAAA;AAE9C,IAAM,gBAAA,GAAyBC,6BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BjC,cAAAA;AAAA,EAAgBgC,yBAAA,CAAA,WAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,qCAAA,EAAuC,SAAS,CAAA;AAAA,IAC7D,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAA6BA,yBAAA,CAAA,WAAA,CAAY,WAAA;;;AC1G1D,UAAA,EAAA;;;ACDA,UAAA,EAAA;AAEA,IAAM,MAAA,GAAyBG,yBAAA,CAAA,IAAA;AAI/B,IAAM,YAAA,GAA+BA,yBAAA,CAAA,MAAA;AAIrC,IAAM,aAAA,GAAsBC,6BAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BpC,cAAAA;AAAA,EAAiBmC,yBAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sKAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD,CAAA;AACD,aAAA,CAAc,cAA8BA,yBAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,aAAA,GAAsBC,iBAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC1B,eAAAA,CAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAV,eAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACfU,eAAAA;AAAA,IAAiByB,yBAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,ikBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDzB,eAAAA,CAAiByB,yBAAA,CAAA,KAAA,EAAhB,EAAsB,WAAU,8TAAA,EAC/B,QAAA,EAAA;AAAA,0BAAAnC,eAACkC,gBAAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,QAAQ,GAAA,EAAK,CAAA;AAAA,0BACxClC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,SAAA,EACjC;AAAA;AAAA;AAAA;AACF,CAAA,EACF,CACD,CAAA;AACD,aAAA,CAAc,cAA8BmC,yBAAA,CAAA,OAAA,CAAQ,WAAA;AA8BpD,IAAM,WAAA,GAAoBC,6BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BpC,cAAAA;AAAA,EAAiBmC,yBAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD,CAAA;AACD,WAAA,CAAY,cAA8BA,yBAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,iBAAA,GAA0BC,6BAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BpC,cAAAA;AAAA,EAAiBmC,yBAAA,CAAA,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,qCAAA,EAAuC,SAAS,CAAA;AAAA,IAC7D,GAAG;AAAA;AACN,CACD,CAAA;AACD,iBAAA,CAAkB,cAA8BA,yBAAA,CAAA,WAAA,CAAY,WAAA;ADlG5D,IAAM,OAAA,GAAgBE,6BAGpB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrC,cAAAA;AAAA,EAACsC,YAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,OAAA,CAAQ,cAAcA,YAAA,CAAiB,WAAA;AAIvC,IAAM,gBAAgB,CAAC,EAAE,QAAA,EAAU,GAAG,OAAM,KAA0B;AACpE,EAAA,uBACEtC,cAAAA,CAAC,MAAA,EAAA,EAAQ,GAAG,KAAA,EACV,0BAAAA,cAAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,qBAAA,EACvB,0BAAAA,cAAAA,CAAC,OAAA,EAAA,EAAQ,WAAU,6WAAA,EAChB,QAAA,EACH,GACF,CAAA,EACF,CAAA;AAEJ;AAEA,IAAM,YAAA,GAAqBqC,iBAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B3B,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAkC,sBAAmB,EAAA,EAClE,QAAA,EAAA;AAAA,kBAAAV,eAACuC,qBAAA,EAAA,EAAW,IAAA,EAAM,IAAI,MAAA,EAAQ,GAAA,EAAK,WAAU,0BAAA,EAA2B,CAAA;AAAA,kBACxEvC,cAAAA;AAAA,IAACsC,YAAA,CAAiB,KAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AACN,CAAA,EACF,CACD;AAED,YAAA,CAAa,WAAA,GAAcA,aAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,WAAA,GAAoBD,6BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrC,cAAAA;AAAA,EAACsC,YAAA,CAAiB,IAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,IACzE,GAAG;AAAA;AACN,CACD;AAED,WAAA,CAAY,WAAA,GAAcA,aAAiB,IAAA,CAAK,WAAA;AAEhD,IAAM,YAAA,GAAqBD,iBAAA,CAAA,UAAA,CAGzB,CAAC,KAAA,EAAO,wBACRrC,cAAAA;AAAA,EAACsC,YAAA,CAAiB,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAU,0BAAA;AAAA,IACT,GAAG;AAAA;AACN,CACD;AAED,YAAA,CAAa,WAAA,GAAcA,aAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,YAAA,GAAqBD,6BAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrC,cAAAA;AAAA,EAACsC,YAAA,CAAiB,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,wNAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,YAAA,CAAa,WAAA,GAAcA,aAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,gBAAA,GAAyBD,6BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrC,cAAAA;AAAA,EAACsC,YAAA,CAAiB,SAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA;AAAA,IAC9C,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAcA,aAAiB,SAAA,CAAU,WAAA;AAE1D,IAAM,WAAA,GAAoBD,6BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrC,cAAAA;AAAA,EAACsC,YAAA,CAAiB,IAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+NAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,WAAA,CAAY,WAAA,GAAcA,aAAiB,IAAA,CAAK,WAAA;AAEhD,IAAM,kBAAkB,CAAC;AAAA,EACvB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA6C;AAC3C,EAAA,uBACEtC,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AEzI9B,IAAM,WAAA,GAAmCwC,+BAAA,CAAA;AAEzC,IAAMC,mBAAAA,GAA0CD,+BAAA,CAAA;AAEhD,IAAME,mBAAAA,GAA0CF,+BAAA,CAAA;;;ACJhD,UAAA,EAAA;AAEA,IAAM,WAAA,GAAmCG,+BAAA,CAAA;AACzC,IAAM,kBAAA,GAA0CA,+BAAA,CAAA;AAChD,IAAM,gBAAA,GAAwCA,+BAAA,CAAA;AAC9C,IAAM,iBAAA,GAAyCA,+BAAA,CAAA;AAC/C,IAAM,cAAA,GAAsCA,+BAAA,CAAA;AAC5C,IAAM,qBAAA,GAA6CA,+BAAA,CAAA;AAEnD,IAAM,qBAAA,GAA8BC,iBAAA,CAAA,UAAA,CAKlC,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3ClC,eAAAA;AAAA,EAAsBiC,+BAAA,CAAA,UAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8MAAA;AAAA,MACA,8MAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD3C,cAAAA,CAACmB,2BAAAA,EAAA,EAAiB,WAAU,6CAAA,EAA8C;AAAA;AAAA;AAC5E,CACD;AACD,qBAAA,CAAsB,cAAmCwB,+BAAA,CAAA,UAAA,CAAW,WAAA;AAEpE,IAAM,qBAAA,GAA8BC,6BAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,cAAAA;AAAA,EAAsB2C,+BAAA,CAAA,UAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,gPAAA;AAAA,MACA,qHAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,cAAmCA,+BAAA,CAAA,UAAA,CAAW,WAAA;AAEpE,IAAM,kBAAA,GAA2BC,iBAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,cAAAA,CAAsB2C,+BAAA,CAAA,MAAA,EAArB,EACC,QAAA,kBAAA3C,cAAAA;AAAA,EAAsB2C,+BAAA,CAAA,OAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0FAAA;AAAA,MACA,qFAAA;AAAA,MACA,iCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,kBAAA,CAAmB,cAAmCA,+BAAA,CAAA,OAAA,CAAQ,WAAA;AAE9D,IAAM,eAAA,GAAwBC,iBAAA,CAAA,UAAA,CAQ5B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC/E,EAAA,MAAM,WAAA,GAAc,EAAA;AAAA,IAClB,oLAAA;AAAA,IACA,kCAAA;AAAA,IACA,uFAAA;AAAA,IACA,uFAAA;AAAA,IACA,KAAA,IAAS;AAAA,GACX;AAEA,EAAA,MAAM,mBAAA,GAAsB;AAAA,IAC1B,KAAA,EAAO,qMAAA;AAAA,IACP,KAAA,EAAO,qMAAA;AAAA,IACP,OAAA,EAAS,6MAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAEA,EAAA,uBACElC,eAAAA;AAAA,IAAsBiC,+BAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,WAAA;AAAA,QACA,KAAA,IAAS,oBAAoB,KAAK,CAAA;AAAA,QAClC;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAY3C,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,2EAAA,EAA6E,EAAC,SAAA,EAAW,CAAC,QAAA,IAAY,SAAA,EAAU,GAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,QAC7J,QAAA;AAAA,QACA,6BAAaA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qEAAqE,QAAA,EAAA,SAAA,EAAU;AAAA;AAAA;AAAA,GAC/G;AAEJ,CAAC;AACD,eAAA,CAAgB,cAAmC2C,+BAAA,CAAA,IAAA,CAAK,WAAA;AAExD,IAAM,uBAAA,GAAgCC,iBAAA,CAAA,UAAA,CAGpC,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC7ClC,eAAAA;AAAA,EAAsBiC,+BAAA,CAAA,YAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,yLAAA;AAAA,MACA,8MAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA3C,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,QAAA,kBAAAA,eAAsB2C,+BAAA,CAAA,aAAA,EAArB,EACC,QAAA,kBAAA3C,cAAAA,CAACiB,sBAAA,EAAU,SAAA,EAAU,uCAAsC,WAAA,EAAa,CAAA,EAAE,GAC5E,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,uBAAA,CAAwB,cAAmC0B,+BAAA,CAAA,YAAA,CAAa,WAAA;AAExE,IAAM,oBAAA,GAA6BC,iBAAA,CAAA,UAAA,CAGjC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpClC,eAAAA;AAAA,EAAsBiC,+BAAA,CAAA,SAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,yLAAA;AAAA,MACA,8MAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA3C,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,cAAAA,CAAsB2C,+BAAA,CAAA,aAAA,EAArB,EACC,QAAA,kBAAA3C,eAACkB,0BAAAA,EAAA,EAAgB,SAAA,EAAU,kDAAA,EAAmD,GAChF,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,oBAAA,CAAqB,cAAmCyB,+BAAA,CAAA,SAAA,CAAU,WAAA;AAElE,IAAM,gBAAA,GAAyBC,iBAAA,CAAA,UAAA,CAK7B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC5C,cAAAA;AAAA,EAAsB2C,+BAAA,CAAA,KAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,kEAAA;AAAA,MACA,QAAQ,MAAA,GAAS,MAAA;AAAA,MACjB;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAAmCA,+BAAA,CAAA,KAAA,CAAM,WAAA;AAE1D,IAAM,oBAAA,GAA6BC,6BAGjC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B5C,cAAAA;AAAA,EAAsB2C,+BAAA,CAAA,SAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,mDAAA,EAAqD,SAAS,CAAA;AAAA,IAC3E,GAAG;AAAA;AACN,CACD;AACD,oBAAA,CAAqB,cAAmCA,+BAAA,CAAA,SAAA,CAAU,WAAA;AAElE,IAAM,sBAAsB,CAAC;AAAA,EAC3B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA6C;AAC3C,EAAA,uBACE3C,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,wEAAA,EAA0E,SAAS,CAAA;AAAA,MAChG,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AC5L3B,IAAM,cAA0C,CAAC;AAAA,EACtD,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AAEJ,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,QAAQ,OAAA;AAAS,MACf,KAAK,SAAA;AACH,QAAA,OAAO;AAAA,UACL,eAAA,EAAiB,SAAA;AAAA,UACjB,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAO;AAAA,UACL,eAAA,EAAiB,SAAA;AAAA,UACjB,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,MACF,KAAK,OAAA;AACH,QAAA,OAAO;AAAA,UACL,eAAA,EAAiB,aAAA;AAAA,UACjB,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,MACF,KAAK,SAAA;AACH,QAAA,OAAO;AAAA,UACL,eAAA,EAAiB,aAAA;AAAA,UACjB,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,MACF,KAAK,aAAA;AACH,QAAA,OAAO;AAAA,UACL,eAAA,EAAiB,SAAA;AAAA,UACjB,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,MACF;AACE,QAAA,OAAO;AAAA,UACL,eAAA,EAAiB,SAAA;AAAA,UACjB,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA;AACJ,EACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,IAAA;AACH,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,UAAA;AAAA,UACT,QAAA,EAAU,MAAA;AAAA,UACV,YAAA,EAAc;AAAA,SAChB;AAAA,MACF,KAAK,IAAA;AACH,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,WAAA;AAAA,UACT,QAAA,EAAU,MAAA;AAAA,UACV,YAAA,EAAc;AAAA,SAChB;AAAA,MACF;AACE,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,UAAA;AAAA,UACT,QAAA,EAAU,MAAA;AAAA,UACV,YAAA,EAAc;AAAA,SAChB;AAAA;AACJ,EACF,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa;AAAA,IACjB,OAAA,EAAS,cAAA;AAAA,IACT,cAAA,EAAgB,MAAA;AAAA,IAChB,SAAA,EAAW,QAAA;AAAA,IACX,UAAA,EAAY,KAAA;AAAA,IACZ,MAAA,EAAQ,SAAA;AAAA,IACR,KAAA,EAAO,YAAY,MAAA,GAAS,MAAA;AAAA,IAC5B,GAAG,gBAAA,EAAiB;AAAA,IACpB,GAAG,aAAA,EAAc;AAAA,IACjB,GAAG;AAAA,GACL;AAEA,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,uBACEA,eAAC,GAAA,EAAA,EAAE,IAAA,EAAY,OAAO,UAAA,EAAa,GAAG,OACnC,QAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,cAAAA,CAAC,QAAA,EAAA,EAAO,OAAO,UAAA,EAAa,GAAG,OAC5B,QAAA,EACH,CAAA;AAEJ;ACtGO,IAAM,YAAsC,CAAC;AAAA,EAClD,QAAA;AAAA,EACA,OAAA,GAAU,MAAA;AAAA,EACV;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,QAAQ,OAAA;AAAS,MACf,KAAK,SAAA;AACH,QAAA,OAAO;AAAA,UACL,QAAA,EAAU,MAAA;AAAA,UACV,UAAA,EAAY,MAAA;AAAA,UACZ,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ,YAAA;AAAA,UACR,UAAA,EAAY;AAAA,SACd;AAAA,MACF,KAAK,MAAA;AACH,QAAA,OAAO;AAAA,UACL,QAAA,EAAU,MAAA;AAAA,UACV,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ,YAAA;AAAA,UACR,UAAA,EAAY;AAAA,SACd;AAAA,MACF,KAAK,SAAA;AACH,QAAA,OAAO;AAAA,UACL,QAAA,EAAU,MAAA;AAAA,UACV,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ,WAAA;AAAA,UACR,UAAA,EAAY;AAAA,SACd;AAAA,MACF,KAAK,OAAA;AACH,QAAA,OAAO;AAAA,UACL,QAAA,EAAU,MAAA;AAAA,UACV,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ,YAAA;AAAA,UACR,UAAA,EAAY;AAAA,SACd;AAAA,MACF;AACE,QAAA,OAAO;AAAA,UACL,QAAA,EAAU,MAAA;AAAA,UACV,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ,YAAA;AAAA,UACR,UAAA,EAAY;AAAA,SACd;AAAA;AACJ,EACF,CAAA;AAEA,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAG,gBAAA,EAAiB,EAAG,GAAG,KAAA,EAAM,EAC3C,QAAA,EACH,CAAA;AAEJ;AAEO,IAAM,YAAA,GAAyC,CAAC,KAAA,qBACrDA,eAAC,SAAA,EAAA,EAAU,OAAA,EAAQ,SAAA,EAAW,GAAG,KAAA,EAAO;AAGnC,IAAM,YAAA,GAAyC,CAAC,KAAA,qBACrDA,eAAC,SAAA,EAAA,EAAU,OAAA,EAAQ,SAAA,EAAW,GAAG,KAAA,EAAO;AAGnC,IAAM,UAAA,GAAuC,CAAC,KAAA,qBACnDA,eAAC,SAAA,EAAA,EAAU,OAAA,EAAQ,OAAA,EAAS,GAAG,KAAA,EAAO;AC/DjC,IAAM,cAA0C,CAAC;AAAA,EACtD,QAAA;AAAA,EACA;AACF,CAAA,qBACEU,eAAAA,CAAAT,mBAAAA,EAAA,EACG,QAAA,EAAA;AAAA,EAAA,SAAA,oBACCD,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,GAAA;AAAA,IACR,SAAA,EAAW,GAAA;AAAA,IACX,QAAA,EAAU,GAAA;AAAA,IACV,OAAA,EAAS,GAAA;AAAA,IACT,QAAA,EAAU,QAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,KAAA,EAAO;AAAA,KAEN,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,kBAEFA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,IACV,eAAA,EAAiB,SAAA;AAAA,IACjB,UAAA,EAAY,8CAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,MAAA,EAAQ,GAAA;AAAA,IACR,OAAA,EAAS;AAAA,KAER,QAAA,EACH;AAAA,CAAA,EACF;AAQK,IAAM,iBAAgD,CAAC;AAAA,EAC5D,QAAA;AAAA,EACA;AACF,CAAA,qBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,EACV,QAAA,EAAU,OAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,MAAA;AAAA,EACT,eAAA,EAAiB,SAAA;AAAA,EACjB,MAAA,EAAQ,mBAAA;AAAA,EACR,YAAA,EAAc,MAAA;AAAA,EACd,GAAG;AACL,CAAA,EACG,QAAA,EACH;AAUK,IAAM,cAA0C,CAAC;AAAA,EACtD,OAAA,GAAU,mHAAA;AAAA,EACV,OAAA,GAAU,OAAA;AAAA,EACV,SAAA,GAAY,OAAA;AAAA,EACZ,UAAA,GAAa;AACf,CAAA,KAAM;AACJ,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,IACV,KAAA,EAAO,OAAA;AAAA,IACP,SAAA,EAAW,QAAA;AAAA,IACX,YAAA,EAAc;AAAA,KAEd,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,sBAAqB,KAAA,EAAO;AAAA,IAClC,KAAA,EAAO,SAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,KAEhB,QAAA,kBAAAA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,OAAA;AAAA,MACL,GAAA,EAAK,OAAA;AAAA,MACL,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ,UAAA;AAAA,MACR,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,OAAA;AAAA,QACT,MAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,MAAA;AAAA,QACT,cAAA,EAAgB,MAAA;AAAA,QAChB,MAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAU,OAAA;AAAA,QACV,KAAA,EAAO;AAAA;AACT;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ;AAMO,IAAM,WAAA,GAA0C,CAAC,EAAE,QAAA,uBACxDA,cAAAA,CAAC,SAAI,KAAA,EAAO;AAAA,EACV,KAAA,EAAO,MAAA;AAAA,EACP,UAAA,EAAY,MAAA;AAAA,EACZ,SAAA,EAAW,QAAA;AAAA,EACX,KAAA,EAAO;AACT,CAAA,EACG,QAAA,EAAA,QAAA,oBACCU,eAAAA,CAAAT,mBAAAA,EAAA,EACE,QAAA,EAAA;AAAA,kBAAAS,eAAAA,CAAC,OAAE,KAAA,EAAO;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,UAAA,EAAY,8CAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,MAAA,EAAQ,GAAA;AAAA,IACR,YAAA,EAAc,MAAA;AAAA,IACd,aAAA,EAAe,KAAA;AAAA,IACf,SAAA,EAAW;AAAA,GACb,EAAG,QAAA,EAAA;AAAA,IAAA,iJAAA;AAAA,IAC+I,GAAA;AAAA,oBAChJV,cAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,sBAAqB,KAAA,EAAO;AAAA,MAClC,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,MAAA;AAAA,MACV,UAAA,EAAY,MAAA;AAAA,MACZ,aAAA,EAAe,KAAA;AAAA,MACf,SAAA,EAAW,QAAA;AAAA,MACX,cAAA,EAAgB;AAAA,OACf,QAAA,EAAA,YAAA,EAEH,CAAA;AAAA,IAAI;AAAA,GAAA,EACN,CAAA;AAAA,kBACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,sBAAqB,KAAA,EAAO;AAAA,IAClC,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,MAAA;AAAA,IACZ,aAAA,EAAe,KAAA;AAAA,IACf,SAAA,EAAW,QAAA;AAAA,IACX,cAAA,EAAgB;AAAA,KAEhB,QAAA,kBAAAA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAAI,GAAA,EAAI,kHAAA;AAAA,MACJ,GAAA,EAAI,YAAA;AAAA,MACJ,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,cAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAChB;AAAA,GAAG,EACV,CAAA;AAAA,kBACAU,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,IACV,KAAA,EAAO,SAAA;AAAA,IACP,UAAA,EAAY,8CAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB,EACE,QAAA,EAAA;AAAA,oBAAAV,cAAAA,CAAC,SAAI,QAAA,EAAA,yBAAA,EAAuB,CAAA;AAAA,oBAC5BA,cAAAA,CAAC,KAAA,EAAA,EAAI,QAAA,EAAA,gBAAA,EAAc;AAAA,GAAA,EACrB;AAAA,CAAA,EACF,CAAA,EAEJ;;;ACtKF,UAAA,EAAA;;;ACAO,IAAM,MAAA,GAAS;AAAA;AAAA,EAEpB,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,sBAAA;AAAA,IACJ,EAAA,EAAI,sBAAA;AAAA,IACJ,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA,EACA,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,sBAAA;AAAA,IACJ,EAAA,EAAI,sBAAA;AAAA,IACJ,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK,uBAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA,EACA,OAAA,EAAS;AAAA,IACP,EAAA,EAAI,wBAAA;AAAA,IACJ,EAAA,EAAI,wBAAA;AAAA,IACJ,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA,EACA,OAAA,EAAS;AAAA,IACP,EAAA,EAAI,wBAAA;AAAA,IACJ,EAAA,EAAI,wBAAA;AAAA,IACJ,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK,yBAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,qBAAA;AAAA,IACJ,EAAA,EAAI,qBAAA;AAAA,IACJ,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK,sBAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA;AAAA,EAGA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,wBAAA;AAAA,IACT,SAAA,EAAW,8BAAA;AAAA,IACX,QAAA,EAAU,8BAAA;AAAA,IACV,QAAA,EAAU,8BAAA;AAAA,IACV,KAAA,EAAO,uBAAA;AAAA,IACP,UAAA,EAAY,sBAAA;AAAA,IACZ,KAAA,EAAO,uBAAA;AAAA,IACP,OAAA,EAAS,yBAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,wBAAA;AAAA,IACT,SAAA,EAAW,uBAAA;AAAA,IACX,QAAA,EAAU,mBAAA;AAAA,IACV,KAAA,EAAO,sBAAA;AAAA,IACP,KAAA,EAAO,sBAAA;AAAA,IACP,OAAA,EAAS,wBAAA;AAAA,IACT,OAAA,EAAS,wBAAA;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,oBAAA;AAAA,IACT,SAAA,EAAW,mBAAA;AAAA,IACX,QAAA,EAAU,oBAAA;AAAA,IACV,KAAA,EAAO,uBAAA;AAAA,IACP,KAAA,EAAO,uBAAA;AAAA,IACP,OAAA,EAAS,yBAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,kBAAA;AAAA,IACN,KAAA,EAAO,uBAAA;AAAA,IACP,KAAA,EAAO,uBAAA;AAAA,IACP,OAAA,EAAS,yBAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAGA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS;AAAA,MACP,EAAA,EAAI,uBAAA;AAAA,MACJ,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,uBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,EAAA,EAAI,aAAA;AAAA,MACJ,IAAA,EAAM,uBAAA;AAAA,MACN,MAAA,EAAQ,uBAAA;AAAA,MACR,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,QAAA,EAAU;AAAA,MACR,EAAA,EAAI,aAAA;AAAA,MACJ,IAAA,EAAM,uBAAA;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT;AAEJ;;;ACtIO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,CAAC,mBAAA,EAAqB,YAAY;AAAA,GAC1C;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,KAAA;AAAA,IACT,MAAA,EAAQ,KAAA;AAAA,IACR,QAAA,EAAU,KAAA;AAAA,IACV,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA;AAAA,IAER,aAAA,EAAe,CAAC,QAAA,EAAU,EAAE,YAAY,UAAA,EAAY,aAAA,EAAe,WAAW,CAAA;AAAA,IAC9E,YAAA,EAAc,CAAC,SAAA,EAAW,EAAE,YAAY,QAAA,EAAU,aAAA,EAAe,WAAW,CAAA;AAAA,IAC5E,YAAA,EAAc,CAAC,MAAA,EAAQ,EAAE,YAAY,SAAA,EAAW,aAAA,EAAe,WAAW,CAAA;AAAA,IAC1E,YAAA,EAAc,CAAC,SAAA,EAAW,EAAE,YAAY,SAAA,EAAW,aAAA,EAAe,WAAW,CAAA;AAAA,IAC7E,YAAA,EAAc,CAAC,UAAA,EAAY,EAAE,YAAY,UAAA,EAAY,aAAA,EAAe,WAAW,CAAA;AAAA,IAC/E,YAAA,EAAc,CAAC,QAAA,EAAU,EAAE,YAAY,MAAA,EAAQ,aAAA,EAAe,WAAW,CAAA;AAAA;AAAA,IAGzE,WAAW,CAAC,SAAA,EAAW,EAAE,UAAA,EAAY,YAAY,CAAA;AAAA,IACjD,WAAW,CAAC,UAAA,EAAY,EAAE,UAAA,EAAY,WAAW,CAAA;AAAA,IACjD,WAAW,CAAC,MAAA,EAAQ,EAAE,UAAA,EAAY,UAAU,CAAA;AAAA,IAC5C,WAAW,CAAC,UAAA,EAAY,EAAE,UAAA,EAAY,WAAW,CAAA;AAAA,IACjD,WAAW,CAAC,SAAA,EAAW,EAAE,UAAA,EAAY,YAAY;AAAA,GACnD;AAAA;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,2BAAA;AAAA,IACJ,EAAA,EAAI,2BAAA;AAAA,IACJ,EAAA,EAAI,2BAAA;AAAA,IACJ,EAAA,EAAI,4BAAA;AAAA,IACJ,EAAA,EAAI,4BAAA;AAAA,IACJ,EAAA,EAAI,4BAAA;AAAA;AAAA,IAGJ,IAAA,EAAM,2BAAA;AAAA,IACN,YAAA,EAAc,2BAAA;AAAA,IACd,YAAA,EAAc,2BAAA;AAAA;AAAA,IAGd,OAAA,EAAS,0BAAA;AAAA,IACT,QAAA,EAAU,mDAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA;AAAA,EAEA,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;;;AC/CO,IAAM,OAAA,GAAU;AAAA;AAAA;AAAA;AAAA,EAKrB,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,GAAA;AAAA;AAAA,IACN,OAAA,EAAS,GAAA;AAAA;AAAA,IACT,UAAA,EAAY,GAAA;AAAA;AAAA,IACZ,MAAA,EAAQ;AAAA;AAAA,GACV;AAAA;AAAA,EAGA,SAAA,EAAW;AAAA,IACT,GAAA,EAAK,GAAA;AAAA;AAAA,IACL,EAAA,EAAI,GAAA;AAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA;AAAA,IACJ,GAAA,EAAK;AAAA;AAAA,GACP;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA;AAAA;AAGV;;;AC3BO,IAAM,MAAA,GAAS;AAAA;AAAA,EAEpB,OAAA,EAAS,eAAA;AAAA,EACT,IAAA,EAAM,eAAA;AAAA,EACN,MAAA,EAAQ,eAAA;AAAA,EACR,KAAA,EAAO,eAAA;AAAA,EACP,KAAA,EAAO,eAAA;AAAA;AAAA,EAGP,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ,KAAA;AAAA;AAAA;AAAA,EAIR,MAAA,EAAQ;AAAA;AAAA;AAGV;;;ACrBO,IAAM,OAAA,GAAU;AAAA;AAAA,EAErB,IAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAI,+BAAA;AAAA,EACJ,EAAA,EAAI,+DAAA;AAAA,EACJ,EAAA,EAAI,kEAAA;AAAA,EACJ,EAAA,EAAI,oEAAA;AAAA,EACJ,EAAA,EAAI,qEAAA;AAAA,EACJ,KAAA,EAAO,qCAAA;AAAA,EACP,KAAA,EAAO,qCAAA;AAAA;AAAA,EAGP,eAAA,EAAiB,+DAAA;AAAA,EACjB,kBAAA,EAAoB,kEAAA;AAAA,EACpB,gBAAA,EAAkB,oEAAA;AAAA;AAAA,EAGlB,IAAA,EAAM,+DAAA;AAAA,EACN,QAAA,EAAU,oEAAA;AAAA,EACV,KAAA,EAAO;AACT;;;ACPO,IAAM,MAAA,GAAS;AAAA,EACpB,MAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;ACtBA,mBAAA,EAAA;AACA,kBAAA,EAAA;AACAW,kBAAAA,EAAAA;ACQO,IAAM,oBAAA,GAAuBkC,wBAAA;AAAA,EAClC,MAAM,8EAA2B,IAAA,CAAK,CAAA,GAAA,MAAQ,EAAE,OAAA,EAAS,GAAA,CAAI,eAAc,CAAE,CAAA;AAAA,EAC7E;AAAA,IACE,GAAA,EAAK,KAAA;AAAA,IACL,OAAA,EAAS,sBAAM7C,cAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,EAAS,EAAG;AAAA;AAEzD;AAGO,IAAM,yBAAA,GAA4B6C,wBAAA;AAAA,EACvC,MAAM,8EAA2B,IAAA,CAAK,CAAA,GAAA,MAAQ,EAAE,OAAA,EAAS,GAAA,CAAI,oBAAmB,CAAE,CAAA;AAAA,EAClF;AAAA,IACE,GAAA,EAAK,KAAA;AAAA,IACL,OAAA,EAAS,sBAAM7C,cAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,EAAS,EAAG;AAAA;AAEzD;AAGO,IAAM,kBAAA,GAAqB6C,wBAAA;AAAA,EAChC,MAAM,2EAAwC,IAAA,CAAK,CAAA,GAAA,MAAQ,EAAE,OAAA,EAAS,GAAA,CAAI,aAAY,CAAE,CAAA;AAAA,EACxF;AAAA,IACE,GAAA,EAAK,KAAA;AAAA,IACL,OAAA,EAAS,sBAAM7C,cAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,EAAS,EAAG;AAAA;AAEzD;AAMO,SAAS,iBAAA,CAAkB;AAAA,EAChC,QAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,GAAG;AACL,CAAA,EAIG;AACD,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,uBAAOA,cAAAA,CAAC,yBAAA,EAAA,EAA2B,GAAG,OAAQ,QAAA,EAAS,CAAA;AAAA,EACzD;AAEA,EAAA,uBAAOA,cAAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,OAAQ,QAAA,EAAS,CAAA;AACpD;;;ADzCA,gBAAA,EAAA","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Combines multiple class values into a single className string\n * with proper Tailwind CSS class merging.\n * \n * @param inputs - Class values to merge\n * @returns Merged className string\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n/**\n * Utility function to generate a unique ID.\n * Useful for ensuring unique IDs for form elements.\n * \n * @param prefix - Optional prefix for the ID\n * @returns A unique ID string\n */\nexport function generateId(prefix = 'id'): string {\n const randomId = Math.random().toString(36).substring(2, 9);\n return `${prefix}-${randomId}`;\n}\n\n/**\n * Type guard to check if a value is not null or undefined\n * \n * @param value - Value to check\n * @returns True if value is not null or undefined\n */\nexport function isNotNullOrUndefined<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\n/**\n * Returns only the props that are safe to spread onto a DOM element\n * by filtering out custom props\n * \n * @param props - The props object\n * @param propNames - Names of custom props to filter out\n * @returns Object with only DOM-safe props\n */\nexport function filterDOMProps<T extends Record<string, any>, K extends keyof T>(\n props: T, \n propNames: K[]\n): Omit<T, K> {\n const result = { ...props };\n propNames.forEach(name => delete result[name]);\n return result;\n}","\"use client\"\n\nimport * as React from \"react\"\nimport type { ThemeProviderProps } from \"next-themes/dist/types\"\n\n/**\n * ThemeProvider component for handling theme state\n * \n * This wraps the next-themes provider with sensible defaults\n * for handling light/dark themes and system preferences\n * \n * IMPORTANT: This component must be used in a Client Component context.\n * For Server Components, use the NoSSR wrapper or dynamic imports.\n */\nexport function ThemeProvider({ \n children, \n ...props \n}: ThemeProviderProps) {\n const [NextThemesProvider, setNextThemesProvider] = React.useState<any>(null);\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n // Only import next-themes on the client side\n import('next-themes').then(({ ThemeProvider: Provider }) => {\n setNextThemesProvider(() => Provider);\n setMounted(true);\n });\n }, []);\n\n // Return children without theme provider during SSR or before mounting\n if (!mounted || !NextThemesProvider) {\n return <>{children}</>;\n }\n\n return (\n <NextThemesProvider\n attribute=\"class\"\n defaultTheme=\"system\"\n enableSystem\n disableTransitionOnChange\n {...props}\n >\n {children}\n </NextThemesProvider>\n )\n}\n\n/**\n * NoSSR wrapper for theme provider to prevent SSR issues\n * Use this when you need to ensure the theme provider only renders on the client\n */\nexport function ThemeProviderNoSSR({ \n children, \n ...props \n}: ThemeProviderProps) {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) {\n return <>{children}</>;\n }\n\n return (\n <ThemeProvider {...props}>\n {children}\n </ThemeProvider>\n );\n}","/**\n * Utility functions for theme handling\n */\n\n/**\n * Supported color theme values\n */\nexport type ThemeColor = 'brand' | 'error' | 'warning' | 'success';\n\n/**\n * Supported component variant types\n */\nexport type ComponentVariant = 'primary' | 'secondary' | 'tertiary';\n\n/**\n * Map design system colors to shadcn variants\n * \n * @param color - The design system color\n * @returns The corresponding shadcn variant\n */\nexport const mapColorToShadcnVariant = (color: ThemeColor) => {\n switch (color) {\n case 'brand': return 'default';\n case 'error': return 'destructive';\n case 'warning':\n case 'success':\n return 'secondary'; // Will need additional classes\n default: return 'default';\n }\n};\n\n/**\n * Map design system variants to shadcn variants\n * \n * @param variant - The design system variant\n * @returns The corresponding shadcn variant\n */\nexport const mapVariantToShadcnVariant = (variant: ComponentVariant) => {\n switch (variant) {\n case 'primary': return 'default';\n case 'secondary': return 'outline';\n case 'tertiary': return 'ghost';\n default: return 'default';\n }\n};\n\n/**\n * Generate Tailwind classes for color/variant combinations\n * \n * @param color - The design system color\n * @param variant - The design system variant\n * @returns String of Tailwind classes\n */\nexport const getColorVariantClasses = (\n color: ThemeColor, \n variant: ComponentVariant\n): string => {\n const colorVariantMap: Record<ComponentVariant, Record<ThemeColor, string>> = {\n primary: {\n brand: 'bg-brand-600 hover:bg-brand-700 text-white focus-visible:ring-brand-500',\n error: 'bg-error-600 hover:bg-error-700 text-white focus-visible:ring-error-500',\n warning: 'bg-warning-600 hover:bg-warning-700 text-white focus-visible:ring-warning-500',\n success: 'bg-success-600 hover:bg-success-700 text-white focus-visible:ring-success-500',\n },\n secondary: {\n brand: 'border-brand-300 text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500',\n error: 'border-error-300 text-error-700 hover:bg-error-50 focus-visible:ring-error-500',\n warning: 'border-warning-300 text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500',\n success: 'border-success-300 text-success-700 hover:bg-success-50 focus-visible:ring-success-500',\n },\n tertiary: {\n brand: 'text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500',\n error: 'text-error-700 hover:bg-error-50 focus-visible:ring-error-500',\n warning: 'text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500',\n success: 'text-success-700 hover:bg-success-50 focus-visible:ring-success-500',\n }\n };\n\n return colorVariantMap[variant]?.[color] || '';\n};\n\n/**\n * Determine if the current theme is dark\n * \n * @param theme - The current theme\n * @param systemTheme - The system theme\n * @returns True if the theme is dark\n */\nexport const isDarkTheme = (theme: string | undefined, systemTheme: string | undefined): boolean => {\n if (theme === 'system') {\n return systemTheme === 'dark';\n }\n return theme === 'dark';\n};","\"use client\"\n\nimport * as React from \"react\"\nimport { isDarkTheme } from \"../lib/theme-utils\"\n\n/**\n * Enhanced useTheme hook that works directly with next-themes\n * \n * This hook provides a simplified interface to next-themes with additional\n * utility properties for better compatibility with Next.js App Router\n * \n * IMPORTANT: This hook must be used within a Client Component.\n * For Server Components, use the useThemeServer hook instead.\n */\nexport function useTheme() {\n const [themeData, setThemeData] = React.useState({\n theme: \"system\",\n setTheme: (theme: string) => {},\n resolvedTheme: \"light\",\n isDark: false,\n });\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n // Only import next-themes on the client side\n import('next-themes').then(({ useTheme: useNextTheme }) => {\n const { theme, setTheme, resolvedTheme, systemTheme } = useNextTheme();\n const isDark = isDarkTheme(theme, systemTheme);\n \n setThemeData({\n theme: theme || \"system\",\n setTheme,\n resolvedTheme: resolvedTheme || \"light\",\n isDark,\n });\n setMounted(true);\n });\n }, []);\n\n // Return default values during SSR or before mounting\n if (!mounted) {\n return {\n theme: \"system\",\n setTheme: (theme: string) => {},\n resolvedTheme: \"light\",\n isDark: false,\n };\n }\n\n return themeData;\n}\n\n/**\n * Server-safe theme hook that can be used in Server Components\n * Returns default theme values without accessing client-side APIs\n */\nexport function useThemeServer() {\n return {\n theme: \"system\",\n setTheme: (theme: string) => {},\n resolvedTheme: \"light\",\n isDark: false,\n };\n}\n\n/**\n * @deprecated Use ThemeProvider from './theme-provider' instead\n * This component is kept for backward compatibility but is no longer needed\n */\nexport function ThemeContextProvider({ \n children \n}: { \n children: React.ReactNode \n}) {\n // This is now a no-op wrapper for backward compatibility\n return <>{children}</>;\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { useTheme } from \"../../../themes/theme-context\"\nimport { cn } from \"../../../lib/utils\"\nimport { IconMoon, IconSun } from \"@tabler/icons-react\"\n\n/**\n * Props for the ThemeToggle component\n */\nexport interface ThemeToggleProps extends React.HTMLAttributes<HTMLButtonElement> {\n /**\n * Variant of the toggle\n * @default 'icon'\n */\n variant?: 'icon' | 'switch' | 'button';\n \n /**\n * Size of the toggle\n * @default 'md'\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\n/**\n * ThemeToggle component to switch between light and dark themes\n */\nexport function ThemeToggle({ \n className, \n variant = 'icon', \n size = 'md',\n ...props \n}: ThemeToggleProps) {\n const { theme, setTheme, resolvedTheme } = useTheme()\n const [mounted, setMounted] = React.useState(false)\n\n // Handle hydration mismatch\n React.useEffect(() => {\n setMounted(true)\n }, [])\n\n // Only render on client to prevent hydration mismatch\n if (!mounted) return null;\n\n // Toggle between light and dark\n const toggleTheme = () => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")\n }\n\n // Size mapping for Tabler icons\n const iconSize = {\n sm: 16,\n md: 20,\n lg: 24,\n }\n\n // Size classes for button\n const sizeClasses = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n }\n\n // Text size classes\n const textSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n }\n\n // Variant specific rendering\n if (variant === 'icon') {\n return (\n <button\n type=\"button\"\n onClick={toggleTheme}\n className={cn(\n \"inline-flex items-center justify-center rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n sizeClasses[size],\n className\n )}\n aria-label={resolvedTheme === \"dark\" ? \"Switch to light theme\" : \"Switch to dark theme\"}\n {...props}\n >\n {resolvedTheme === \"dark\" ? (\n <IconSun size={iconSize[size]} stroke={1.5} />\n ) : (\n <IconMoon size={iconSize[size]} stroke={1.5} />\n )}\n </button>\n )\n }\n \n // Button variant\n if (variant === 'button') {\n return (\n <button\n type=\"button\"\n onClick={toggleTheme}\n className={cn(\n \"inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2\",\n textSizeClasses[size],\n \"hover:bg-accent hover:text-accent-foreground\",\n className\n )}\n {...props}\n >\n {resolvedTheme === \"dark\" ? \"Light Mode\" : \"Dark Mode\"}\n </button>\n )\n }\n \n // Switch variant\n return (\n <button\n type=\"button\"\n onClick={toggleTheme}\n className={cn(\n \"inline-flex items-center justify-center rounded-md px-3 py-2 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n textSizeClasses[size],\n resolvedTheme === \"dark\" \n ? \"bg-accent text-accent-foreground hover:bg-accent/80\" \n : \"bg-muted text-muted-foreground hover:bg-muted/80\",\n className\n )}\n aria-label={resolvedTheme === \"dark\" ? \"Switch to light theme\" : \"Switch to dark theme\"}\n {...props}\n >\n {resolvedTheme === \"dark\" ? (\n <span className=\"flex items-center\">\n <IconSun size={iconSize[size]} stroke={1.5} className=\"mr-2\" />\n Light\n </span>\n ) : (\n <span className=\"flex items-center\">\n <IconMoon size={iconSize[size]} stroke={1.5} className=\"mr-2\" />\n Dark\n </span>\n )}\n </button>\n )\n}","export * from './theme-toggle';","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ThemeColor, ComponentVariant } from \"../../lib/theme-utils\"\nimport { BUTTON_COLORS, type ButtonVariant } from \"../../styles/constants/button-colors\"\n\nconst buttonVariants = cva(\n \"float-button inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[4px] text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n primary: \"bg-[var(--button-bg-primary)] text-[var(--button-text-primary)] hover:bg-[var(--button-bg-primary-hover)] hover:text-[var(--button-text-primary-hover)] border-[var(--button-border-primary)] hover:border-[var(--button-border-primary-hover)]\",\n secondary: \"bg-[var(--button-bg-secondary)] text-[var(--button-text-secondary)] hover:bg-[var(--button-bg-secondary-hover)] hover:text-[var(--button-text-secondary-hover)] border-[var(--button-border-secondary)] hover:border-[var(--button-border-secondary-hover)]\",\n ghost: \"text-[var(--button-text-ghost)] hover:bg-[var(--button-bg-ghost-hover)] hover:text-[var(--button-text-ghost-hover)]\",\n outline: \"border text-[var(--button-text-outline)] hover:bg-[var(--button-bg-outline-hover)] hover:text-[var(--button-text-outline-hover)] border-[var(--button-border-outline)] hover:border-[var(--button-border-outline-hover)]\",\n link: \"text-[var(--button-text-link)] hover:text-[var(--button-text-link-hover)] bg-transparent border-transparent\",\n destructive: \"bg-[var(--button-bg-destructive)] text-[var(--button-text-destructive)] hover:bg-[var(--button-bg-destructive-hover)] hover:text-[var(--button-text-destructive-hover)] border-[var(--button-border-destructive)] hover:border-[var(--button-border-destructive-hover)]\",\n // Backward compatibility\n default: \"bg-[var(--button-bg-primary)] text-[var(--button-text-primary)] hover:bg-[var(--button-bg-primary-hover)] hover:text-[var(--button-text-primary-hover)] border-[var(--button-border-primary)] hover:border-[var(--button-border-primary-hover)]\",\n tertiary: \"text-[var(--button-text-ghost)] hover:bg-[var(--button-bg-ghost-hover)] hover:text-[var(--button-text-ghost-hover)]\",\n primaryError: \"bg-[var(--button-bg-destructive)] text-[var(--button-text-destructive)] hover:bg-[var(--button-bg-destructive-hover)] hover:text-[var(--button-text-destructive-hover)] border-[var(--button-border-destructive)] hover:border-[var(--button-border-destructive-hover)]\",\n },\n size: {\n sm: \"h-6 px-2 text-xs float-button-sm\",\n md: \"h-8 px-3 text-sm float-button-md\",\n lg: \"h-10 px-5 text-base float-button-lg\",\n iconSm: \"h-6 w-6 p-0 float-button-icon-sm\",\n iconMd: \"h-8 w-8 p-0 float-button-icon-md\",\n iconLg: \"h-10 w-10 p-0 float-button-icon-lg\",\n // For backward compatibility\n icon: \"h-8 w-8 p-0 float-button-icon-md\", // Map \"icon\" to be equivalent to iconMd\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n Omit<VariantProps<typeof buttonVariants>, 'variant'> {\n asChild?: boolean;\n /**\n * Icon to display before the button text\n */\n leftIcon?: React.ReactNode;\n /**\n * Icon to display after the button text\n */\n rightIcon?: React.ReactNode;\n /**\n * Whether the button is in a loading state\n */\n isLoading?: boolean;\n /**\n * Theme color to apply to the button (uses design system colors)\n */\n color?: ThemeColor;\n /**\n * Semantic design system variant - use this instead of variant for design system consistency\n */\n dsVariant?: 'primary' | 'secondary' | 'ghost' | 'outline' | 'link' | 'destructive' | 'default' | 'tertiary' | 'primaryError';\n /**\n * Whether the button should only show an icon\n */\n iconOnly?: boolean;\n /**\n * Button visual style variant\n */\n variant?: 'primary' | 'secondary' | 'ghost' | 'outline' | 'link' | 'destructive' | 'default' | 'tertiary' | 'primaryError';\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ \n className, \n variant, \n size = \"md\", \n asChild = false, \n leftIcon, \n rightIcon, \n isLoading = false,\n color = \"brand\",\n dsVariant,\n iconOnly = false,\n children,\n ...props \n }, ref) => {\n // Map deprecated variants to canonical ones\n let resolvedVariant = dsVariant || variant;\n if (resolvedVariant === \"default\") resolvedVariant = \"primary\";\n if (resolvedVariant === \"tertiary\") resolvedVariant = \"ghost\";\n if (resolvedVariant === \"primaryError\") resolvedVariant = \"destructive\";\n\n const isDisabled = props.disabled || isLoading;\n \n // Choose icon size variant for iconOnly buttons\n let sizeVariant = size;\n if (iconOnly) {\n // If already an icon size, keep it; otherwise convert regular size to icon size\n if (typeof size === 'string' && !size.startsWith('icon')) {\n if (size === \"sm\") sizeVariant = \"iconSm\";\n else if (size === \"lg\") sizeVariant = \"iconLg\";\n else sizeVariant = \"iconMd\";\n }\n }\n\n const classes = cn(\n buttonVariants({ \n variant: resolvedVariant, \n size: sizeVariant, \n className \n })\n );\n\n const content = (\n <>\n {leftIcon && !asChild && (\n <span className=\"flex items-center justify-center\">\n {leftIcon}\n </span>\n )}\n {isLoading && !asChild ? (\n <span className=\"flex items-center\">\n <svg className=\"animate-spin -ml-1 mr-2\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1\"></circle>\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n <span>Loading...</span>\n </span>\n ) : (\n children\n )}\n {rightIcon && !asChild && (\n <span className=\"flex items-center justify-center\">\n {rightIcon}\n </span>\n )}\n </>\n );\n\n if (asChild) {\n return (\n <Slot \n className={classes} \n ref={ref as any}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n className={classes}\n disabled={isDisabled}\n ref={ref}\n {...props}\n >\n {content}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","// src/components/ui/dropdown-menu/dropdown-menu.tsx\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { IconCheck, IconChevronRight, IconPointFilled } from \"@tabler/icons-react\";\nimport { cn } from \"../../../lib/utils\";\n\n// Root component\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\n\n// Trigger component\nconst DropdownMenuTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.Trigger\n ref={ref}\n className={cn(\"outline-none select-none\", className)}\n {...props}\n >\n {children}\n </DropdownMenuPrimitive.Trigger>\n));\n\nDropdownMenuTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;\n\n// Content component\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border text-sm shadow-md animate-in fade-in-80 px-1\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)]\",\n \"shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n});\n\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\n// Item component\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n color?: 'brand' | 'error' | 'warning' | 'success';\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n inset?: boolean;\n }\n>(({ className, color, leftIcon, rightIcon, children, inset, ...props }, ref) => {\n const baseClasses = cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)]\",\n \"focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)]\",\n \"hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\"\n );\n\n const colorVariantClasses = {\n brand: \"focus:bg-[var(--dropdown-item-bg-brand-focus)] focus:text-[var(--dropdown-item-text-brand-focus)] hover:bg-[var(--dropdown-item-bg-brand-hover)] hover:text-[var(--dropdown-item-text-brand-hover)]\",\n error: \"focus:bg-[var(--dropdown-item-bg-error-focus)] focus:text-[var(--dropdown-item-text-error-focus)] hover:bg-[var(--dropdown-item-bg-error-hover)] hover:text-[var(--dropdown-item-text-error-hover)]\",\n warning: \"focus:bg-[var(--dropdown-item-bg-warning-focus)] focus:text-[var(--dropdown-item-text-warning-focus)] hover:bg-[var(--dropdown-item-bg-warning-hover)] hover:text-[var(--dropdown-item-text-warning-hover)]\",\n success: \"focus:bg-[var(--dropdown-item-bg-success-focus)] focus:text-[var(--dropdown-item-text-success-focus)] hover:bg-[var(--dropdown-item-bg-success-hover)] hover:text-[var(--dropdown-item-text-success-hover)]\",\n };\n\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n baseClasses,\n color && colorVariantClasses[color],\n className\n )}\n {...props}\n >\n {leftIcon && <span className={cn(\"mr-2 h-4 w-4 flex items-center justify-center text-[var(--text-tertiary)]\", {\"ml-auto\": !children && rightIcon})}>{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"ml-auto pl-2 text-[var(--text-tertiary)] group-hover:text-current\">{rightIcon}</span>}\n </DropdownMenuPrimitive.Item>\n );\n});\n\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\n// Label component (New Wrapper)\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"py-1.5 pr-2 text-sm font-normal text-[var(--text-tertiary)] mb-1\",\n inset ? \"pl-8\" : \"pl-2\",\n className\n )}\n {...props}\n />\n));\n\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\n// CheckboxItem component\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <IconCheck className=\"h-4 w-4 text-[var(--text-tertiary)]\" strokeWidth={2}/>\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\n\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\n// RadioGroup component\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\n// RadioItem component\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <IconPointFilled className=\"h-3 w-3 fill-current text-[var(--text-tertiary)]\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\n\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\n// Separator component\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-[var(--dropdown-separator-bg)]\", className)}\n {...props}\n />\n));\n\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\n// Shortcut component\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60 text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n )\n};\n\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\n// Sub components\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none data-[state=open]:bg-[var(--dropdown-item-bg-hover)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <IconChevronRight className=\"ml-auto h-4 w-4 text-[var(--text-tertiary)]\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\n\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-lg animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 py-1 px-2\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)] shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n));\n\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\n// Export the component with all its parts\nexport const DropdownMenu = {\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Content: DropdownMenuContent,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Label: DropdownMenuLabel,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n Group: DropdownMenuPrimitive.Group,\n Portal: DropdownMenuPrimitive.Portal,\n Sub: DropdownMenuSub,\n SubContent: DropdownMenuSubContent,\n SubTrigger: DropdownMenuSubTrigger,\n};","import * as React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\n// Define the possible element types\ntype ElementType = React.ElementType;\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /**\n * The level of the heading (1-6)\n * @default 1\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n\n /**\n * The size variant of the heading\n * If not provided, defaults based on the heading level\n */\n size?: \"2xl\" | \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\";\n\n /**\n * The font weight of the heading\n * @default 'bold'\n */\n weight?: \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n\n /**\n * Whether the heading should be italic\n * @default false\n */\n italic?: boolean;\n\n /**\n * Whether the heading should be underlined\n * @default false\n */\n underline?: boolean;\n\n /**\n * The color of the heading\n * @default 'default'\n */\n color?: \"default\" | \"muted\" | \"brand\" | \"error\" | \"warning\" | \"success\";\n\n /**\n * The HTML element to render\n * If not provided, uses h{level} based on the level prop\n */\n as?: ElementType;\n}\n\n/**\n * Heading component that follows the design system guidelines.\n * \n * This component renders headings following the design system's typography\n * scale, with support for different levels, sizes, weights, styles, and colors.\n */\nexport const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ \n level = 1,\n size,\n weight = \"bold\",\n italic = false,\n underline = false,\n color = \"default\",\n className = \"\",\n as,\n children,\n ...props\n }, ref) => {\n // Default heading tag based on level\n const defaultTag = `h${level}` as ElementType;\n \n // Use provided \"as\" prop or default based on level\n const Component = as || defaultTag;\n \n // Default sizes based on heading level if not explicitly provided\n const defaultSizes: Record<number, string> = {\n 1: \"md\",\n 2: \"sm\",\n 3: \"xs\",\n 4: \"text-xl\",\n 5: \"text-lg\",\n 6: \"text-md\",\n };\n\n // Determine the final size\n const finalSize = size || defaultSizes[level];\n\n // Map to standard Tailwind classes with appropriate sizing\n const sizeClasses: Record<string, string> = {\n \"2xl\": \"text-5xl leading-tight tracking-tight\",\n \"xl\": \"text-4xl leading-tight tracking-tight\",\n \"lg\": \"text-3xl leading-tight tracking-tight\",\n \"md\": \"text-2xl leading-tight tracking-tight\",\n \"sm\": \"text-xl leading-tight tracking-tight\",\n \"xs\": \"text-lg leading-tight tracking-tight\",\n \"text-xl\": \"text-xl leading-tight\",\n \"text-lg\": \"text-lg leading-tight\",\n \"text-md\": \"text-base leading-tight\",\n };\n\n // Map to standard Tailwind weight classes\n const weightClasses = {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n };\n\n // Keep the existing color classes since they're semantic\n const colorClasses = {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n brand: \"text-brand-700 dark:text-brand-400\",\n error: \"text-error-700 dark:text-error-400\",\n warning: \"text-warning-700 dark:text-warning-400\",\n success: \"text-success-700 dark:text-success-400\",\n };\n\n return (\n <Component\n ref={ref}\n className={cn(\n sizeClasses[finalSize],\n weightClasses[weight],\n colorClasses[color],\n italic && \"italic\",\n underline && \"underline\",\n className\n )}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nHeading.displayName = \"Heading\";","import * as React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\n// Define the possible element types\ntype ElementType = React.ElementType;\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * The size variant of the text\n * @default 'md'\n */\n size?: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\";\n\n /**\n * The font weight of the text\n * @default 'regular'\n */\n weight?: \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n\n /**\n * Whether the text should be italic\n * @default false\n */\n italic?: boolean;\n\n /**\n * Whether the text should be underlined\n * @default false\n */\n underline?: boolean;\n\n /**\n * The color of the text\n * @default 'default'\n */\n color?: \"default\" | \"muted\" | \"brand\" | \"error\" | \"warning\" | \"success\";\n\n /**\n * The HTML element to render\n * @default 'p'\n */\n as?: ElementType;\n}\n\n/**\n * Text component that follows the design system guidelines.\n * \n * This component renders text following the design system's typography\n * scale, with support for different sizes, weights, styles, and colors.\n */\nexport const Text = React.forwardRef<HTMLParagraphElement, TextProps>(\n ({\n size = \"md\",\n weight = \"regular\",\n italic = false,\n underline = false,\n color = \"default\",\n className = \"\",\n as: Component = \"p\",\n children,\n ...props\n }, ref) => {\n // Map to standard Tailwind size classes\n const sizeClasses = {\n xl: \"text-xl leading-relaxed\",\n lg: \"text-lg leading-relaxed\",\n md: \"text-base leading-relaxed\",\n sm: \"text-sm leading-relaxed\",\n xs: \"text-xs leading-relaxed\",\n };\n\n // Map to standard Tailwind weight classes\n const weightClasses = {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n };\n\n // Keep the existing color classes since they're semantic\n const colorClasses = {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n brand: \"text-brand-700 dark:text-brand-400\",\n error: \"text-error-700 dark:text-error-400\",\n warning: \"text-warning-700 dark:text-warning-400\",\n success: \"text-success-700 dark:text-success-400\",\n };\n\n return (\n <Component\n ref={ref}\n className={cn(\n sizeClasses[size],\n weightClasses[weight],\n colorClasses[color],\n italic && \"italic\",\n underline && \"underline\",\n className\n )}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cn } from \"../../lib/utils\"\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>\n>(({ className, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors px-3 h-10 border border-[var(--border-tertiary)] bg-[var(--bg-secondary)] text-[var(--text-tertiary)] hover:bg-[var(--bg-tertiary)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-brand)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[var(--bg-brand-solid)] data-[state=on]:text-[var(--text-brand-primary)]\",\n className\n )}\n {...props}\n />\n))\n\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle } ","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { cn } from \"../../lib/utils\"\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Root>\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors px-3 h-10 border border-[var(--border-tertiary)] bg-[var(--bg-secondary)] text-[var(--text-tertiary)] hover:bg-[var(--bg-tertiary)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-brand)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[var(--bg-brand-solid)] data-[state=on]:text-[var(--text-brand-primary)]\",\n className\n )}\n {...props}\n />\n))\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem } ","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider } ","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border border-[var(--border-tertiary)] bg-[var(--bg-tertiary)] p-4 text-[var(--text-tertiary)] shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } ","import * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst HoverCard = HoverCardPrimitive.Root\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 rounded-md border border-[var(--border-tertiary)] bg-[var(--bg-tertiary)] p-4 text-[var(--text-tertiary)] shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent } ","import * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { IconX } from \"@tabler/icons-react\"\nimport { cn } from \"../../lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-[var(--bg-overlay)]/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content> & { side?: \"top\" | \"bottom\" | \"left\" | \"right\" }\n>(({ side = \"right\", className, children, ...props }, ref) => {\n const sideClasses = {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n }\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed z-50 gap-4 bg-[var(--bg-primary)] text-[var(--text-primary)] border-[var(--border-tertiary)] p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n sideClasses[side],\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--bg-primary)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-brand)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)] data-[state=open]:text-[var(--text-tertiary)]\">\n <IconX size={16} stroke={1.5} />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n})\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-[var(--text-primary)]\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n} ","import * as React from \"react\"\nimport { DialogProps } from \"@radix-ui/react-dialog\"\nimport { IconCommand, IconSearch } from \"@tabler/icons-react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Dialog, DialogContent } from \"./dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <IconSearch size={16} stroke={1.5} className=\"mr-2 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n} ","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { IconX } from \"@tabler/icons-react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-[var(--bg-overlay)]/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-[var(--bg-primary)] text-[var(--text-primary)] border-[var(--border-tertiary)] shadow-lg p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--bg-primary)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-brand)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)] data-[state=open]:text-[var(--text-tertiary)]\">\n <IconX className=\"h-4 w-4\" stroke={1.5} />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight text-[var(--text-primary)]\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} ","import * as React from \"react\"\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent } ","import * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { IconCheck, IconChevronRight, IconPointFilled } from \"@tabler/icons-react\"\nimport { cn } from \"../../lib/utils\"\n\nconst ContextMenu = ContextMenuPrimitive.Root\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\nconst ContextMenuGroup = ContextMenuPrimitive.Group\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\nconst ContextMenuSub = ContextMenuPrimitive.Sub\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none data-[state=open]:bg-[var(--dropdown-item-bg-hover)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <IconChevronRight className=\"ml-auto h-4 w-4 text-[var(--text-tertiary)]\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-lg animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 py-1 px-2\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)] shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-md animate-in fade-in-80 px-1\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)]\",\n \"shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n color?: 'brand' | 'error' | 'warning' | 'success';\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n }\n>(({ className, inset, color, leftIcon, rightIcon, children, ...props }, ref) => {\n const baseClasses = cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)]\",\n \"focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)]\",\n \"hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\"\n );\n\n const colorVariantClasses = {\n brand: \"focus:bg-[var(--dropdown-item-bg-brand-focus)] focus:text-[var(--dropdown-item-text-brand-focus)] hover:bg-[var(--dropdown-item-bg-brand-hover)] hover:text-[var(--dropdown-item-text-brand-hover)]\",\n error: \"focus:bg-[var(--dropdown-item-bg-error-focus)] focus:text-[var(--dropdown-item-text-error-focus)] hover:bg-[var(--dropdown-item-bg-error-hover)] hover:text-[var(--dropdown-item-text-error-hover)]\",\n warning: \"focus:bg-[var(--dropdown-item-bg-warning-focus)] focus:text-[var(--dropdown-item-text-warning-focus)] hover:bg-[var(--dropdown-item-bg-warning-hover)] hover:text-[var(--dropdown-item-text-warning-hover)]\",\n success: \"focus:bg-[var(--dropdown-item-bg-success-focus)] focus:text-[var(--dropdown-item-text-success-focus)] hover:bg-[var(--dropdown-item-bg-success-hover)] hover:text-[var(--dropdown-item-text-success-hover)]\",\n };\n\n return (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n baseClasses,\n color && colorVariantClasses[color],\n className\n )}\n {...props}\n >\n {leftIcon && <span className={cn(\"mr-2 h-4 w-4 flex items-center justify-center text-[var(--text-tertiary)]\", {\"ml-auto\": !children && rightIcon})}>{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"ml-auto pl-2 text-[var(--text-tertiary)] group-hover:text-current\">{rightIcon}</span>}\n </ContextMenuPrimitive.Item>\n );\n})\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <IconCheck className=\"h-4 w-4 text-[var(--text-tertiary)]\" strokeWidth={2}/>\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <IconPointFilled className=\"h-3 w-3 fill-current text-[var(--text-tertiary)]\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"py-1.5 pr-2 text-sm font-normal text-[var(--text-tertiary)] mb-1\",\n inset ? \"pl-8\" : \"pl-2\",\n className\n )}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-[var(--dropdown-separator-bg)]\", className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60 text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n )\n}\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n} ","import React from 'react';\n\nexport interface EmailButtonProps {\n variant?: 'primary' | 'secondary' | 'ghost' | 'outline' | 'link' | 'destructive';\n size?: 'sm' | 'md' | 'lg';\n children: React.ReactNode;\n href?: string;\n style?: React.CSSProperties;\n fullWidth?: boolean;\n}\n\nexport const EmailButton: React.FC<EmailButtonProps> = ({\n variant = 'primary',\n size = 'md',\n children,\n href,\n style,\n fullWidth = false,\n ...props\n}) => {\n // Convert design system colors to inline styles\n const getVariantStyles = () => {\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: '#4A49A6',\n color: '#ffffff',\n border: '1px solid #4A49A6',\n };\n case 'secondary':\n return {\n backgroundColor: '#f8f9fa',\n color: '#4A49A6',\n border: '1px solid #dee2e6',\n };\n case 'ghost':\n return {\n backgroundColor: 'transparent',\n color: '#4A49A6',\n border: '1px solid transparent',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n color: '#4A49A6',\n border: '1px solid #4A49A6',\n };\n case 'destructive':\n return {\n backgroundColor: '#dc3545',\n color: '#ffffff',\n border: '1px solid #dc3545',\n };\n default:\n return {\n backgroundColor: '#4A49A6',\n color: '#ffffff',\n border: '1px solid #4A49A6',\n };\n }\n };\n\n const getSizeStyles = () => {\n switch (size) {\n case 'sm':\n return {\n padding: '6px 12px',\n fontSize: '12px',\n borderRadius: '4px',\n };\n case 'lg':\n return {\n padding: '12px 24px',\n fontSize: '16px',\n borderRadius: '6px',\n };\n default:\n return {\n padding: '8px 16px',\n fontSize: '14px',\n borderRadius: '4px',\n };\n }\n };\n\n const baseStyles = {\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center' as const,\n fontWeight: '500',\n cursor: 'pointer',\n width: fullWidth ? '100%' : 'auto',\n ...getVariantStyles(),\n ...getSizeStyles(),\n ...style,\n };\n\n if (href) {\n return (\n <a href={href} style={baseStyles} {...props}>\n {children}\n </a>\n );\n }\n\n return (\n <button style={baseStyles} {...props}>\n {children}\n </button>\n );\n}; ","import React from 'react';\n\nexport interface EmailTextProps {\n children: React.ReactNode;\n variant?: 'body' | 'heading' | 'caption' | 'lead' | 'muted';\n style?: React.CSSProperties;\n}\n\nexport const EmailText: React.FC<EmailTextProps> = ({ \n children, \n variant = 'body', \n style \n}) => {\n const getVariantStyles = () => {\n switch (variant) {\n case 'heading':\n return {\n fontSize: '24px',\n fontWeight: 'bold',\n color: '#1A1A1E',\n margin: '0 0 16px 0',\n lineHeight: '1.2',\n };\n case 'lead':\n return {\n fontSize: '16px',\n color: '#1A1A1E',\n margin: '0 0 12px 0',\n lineHeight: '1.5',\n };\n case 'caption':\n return {\n fontSize: '12px',\n color: '#6B7280',\n margin: '0 0 8px 0',\n lineHeight: '1.4',\n };\n case 'muted':\n return {\n fontSize: '14px',\n color: '#6B7280',\n margin: '0 0 12px 0',\n lineHeight: '1.5',\n };\n default:\n return {\n fontSize: '14px',\n color: '#1A1A1E',\n margin: '0 0 12px 0',\n lineHeight: '1.5',\n };\n }\n };\n\n return (\n <div style={{ ...getVariantStyles(), ...style }}>\n {children}\n </div>\n );\n};\n\nexport const EmailHeading: React.FC<EmailTextProps> = (props) => (\n <EmailText variant=\"heading\" {...props} />\n);\n\nexport const EmailCaption: React.FC<EmailTextProps> = (props) => (\n <EmailText variant=\"caption\" {...props} />\n);\n\nexport const EmailMuted: React.FC<EmailTextProps> = (props) => (\n <EmailText variant=\"muted\" {...props} />\n); ","import React from 'react';\n\nexport interface EmailLayoutProps {\n children: React.ReactNode;\n preheader?: string;\n}\n\nexport const EmailLayout: React.FC<EmailLayoutProps> = ({ \n children, \n preheader \n}) => (\n <>\n {preheader && (\n <div style={{\n color: 'transparent',\n display: 'none',\n height: '0',\n maxHeight: '0',\n maxWidth: '0',\n opacity: '0',\n overflow: 'hidden',\n visibility: 'hidden',\n width: '0',\n }}>\n {preheader}\n </div>\n )}\n <div style={{\n backgroundColor: '#F4F4F5',\n fontFamily: 'Helvetica-Neue, Helvetica, Arial, sans-serif',\n fontSize: '16px',\n lineHeight: '1.3',\n margin: '0',\n padding: '0',\n }}>\n {children}\n </div>\n </>\n);\n\nexport interface EmailContainerProps {\n children: React.ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const EmailContainer: React.FC<EmailContainerProps> = ({\n children,\n style\n}) => (\n <div style={{\n maxWidth: '600px',\n margin: '0 auto',\n padding: '24px',\n backgroundColor: '#ffffff',\n border: '1px solid #eaebed',\n borderRadius: '16px',\n ...style\n }}>\n {children}\n </div>\n);\n\nexport interface EmailHeaderProps {\n logoUrl?: string;\n logoAlt?: string;\n logoWidth?: string;\n logoHeight?: string;\n}\n\nexport const EmailHeader: React.FC<EmailHeaderProps> = ({\n logoUrl = \"http://cdn.mcauto-images-production.sendgrid.net/a704493bc4576a45/e4e1b526-0ef3-4511-a7a8-bc94353e9b3b/201x67.png\",\n logoAlt = \"Float\",\n logoWidth = \"100px\",\n logoHeight = \"auto\"\n}) => {\n return (\n <div style={{\n width: '100px',\n textAlign: 'center',\n marginBottom: '24px',\n }}>\n <a href=\"https://float.tech\" style={{ \n color: '#4A49A6', \n fontWeight: 'bold', \n textDecoration: 'none'\n }}>\n <img\n src={logoUrl}\n alt={logoAlt}\n width={logoWidth}\n height={logoHeight}\n style={{\n display: 'block',\n margin: '0 auto',\n border: '0',\n outline: 'none',\n textDecoration: 'none',\n height: 'auto',\n maxWidth: '200px',\n width: '100%',\n }}\n />\n </a>\n </div>\n );\n};\n\nexport interface EmailFooterProps {\n children?: React.ReactNode;\n}\n\nexport const EmailFooter: React.FC<EmailFooterProps> = ({ children }) => (\n <div style={{\n clear: 'both',\n paddingTop: '24px',\n textAlign: 'center',\n width: '100%',\n }}>\n {children || (\n <>\n <p style={{\n color: '#9a9ea6',\n fontFamily: 'Helvetica-Neue, Helvetica, Arial, sans-serif',\n fontSize: '14px',\n fontWeight: 'normal',\n margin: '0',\n marginBottom: '16px',\n paddingBottom: '0px',\n textAlign: 'center',\n }}>\n Float helps financial institutions interact seamlessly through shared digital workflows and standardized APIs across the transaction lifecycle.{' '}\n <a href=\"https://float.tech\" style={{\n color: '#4A49A6',\n fontSize: '14px',\n fontWeight: 'bold',\n paddingBottom: '0px',\n textAlign: 'center',\n textDecoration: 'underline',\n }}>\n Learn more\n </a>.\n </p>\n <a href=\"https://float.tech\" style={{\n color: '#4A49A6',\n fontSize: '14px',\n fontWeight: 'bold',\n paddingBottom: '0px',\n textAlign: 'center',\n textDecoration: 'underline',\n }}>\n <img src=\"http://cdn.mcauto-images-production.sendgrid.net/a704493bc4576a45/6a3db2b3-d35b-423f-8aac-830de81fb114/32x32.png\" \n alt=\"Float Logo\" \n width=\"32\" \n height=\"32\" \n style={{\n display: 'inline-block',\n marginBottom: '16px',\n }} />\n </a>\n <div style={{\n color: '#9a9ea6',\n fontFamily: 'Helvetica-Neue, Helvetica, Arial, sans-serif',\n fontSize: '14px',\n paddingBottom: '0px',\n }}>\n <div>Float Technologies Inc.</div>\n <div>SoHo, New York</div>\n </div>\n </>\n )}\n </div>\n); ","// Main design system exports\nexport * from './components/ui';\nexport * from './components/email';\nexport * from './components/typography';\nexport * from './lib/utils';\nexport * from './tokens';\nexport * from './themes'; ","/**\n * Color token definitions based on the design system\n */\n\nexport const colors = {\n // Base colors\n brand: {\n 25: 'hsl(var(--brand-25))',\n 50: 'hsl(var(--brand-50))',\n 100: 'hsl(var(--brand-100))',\n 200: 'hsl(var(--brand-200))',\n 300: 'hsl(var(--brand-300))',\n 400: 'hsl(var(--brand-400))',\n 500: 'hsl(var(--brand-500))',\n 600: 'hsl(var(--brand-600))',\n 700: 'hsl(var(--brand-700))',\n 800: 'hsl(var(--brand-800))',\n 900: 'hsl(var(--brand-900))',\n 950: 'hsl(var(--brand-950))',\n },\n error: {\n 25: 'hsl(var(--error-25))',\n 50: 'hsl(var(--error-50))',\n 100: 'hsl(var(--error-100))',\n 200: 'hsl(var(--error-200))',\n 300: 'hsl(var(--error-300))',\n 400: 'hsl(var(--error-400))',\n 500: 'hsl(var(--error-500))',\n 600: 'hsl(var(--error-600))',\n 700: 'hsl(var(--error-700))',\n 800: 'hsl(var(--error-800))',\n 900: 'hsl(var(--error-900))',\n 950: 'hsl(var(--error-950))',\n },\n warning: {\n 25: 'hsl(var(--warning-25))',\n 50: 'hsl(var(--warning-50))',\n 100: 'hsl(var(--warning-100))',\n 200: 'hsl(var(--warning-200))',\n 300: 'hsl(var(--warning-300))',\n 400: 'hsl(var(--warning-400))',\n 500: 'hsl(var(--warning-500))',\n 600: 'hsl(var(--warning-600))',\n 700: 'hsl(var(--warning-700))',\n 800: 'hsl(var(--warning-800))',\n 900: 'hsl(var(--warning-900))',\n 950: 'hsl(var(--warning-950))',\n },\n success: {\n 25: 'hsl(var(--success-25))',\n 50: 'hsl(var(--success-50))',\n 100: 'hsl(var(--success-100))',\n 200: 'hsl(var(--success-200))',\n 300: 'hsl(var(--success-300))',\n 400: 'hsl(var(--success-400))',\n 500: 'hsl(var(--success-500))',\n 600: 'hsl(var(--success-600))',\n 700: 'hsl(var(--success-700))',\n 800: 'hsl(var(--success-800))',\n 900: 'hsl(var(--success-900))',\n 950: 'hsl(var(--success-950))',\n },\n gray: {\n 25: 'hsl(var(--gray-25))',\n 50: 'hsl(var(--gray-50))',\n 100: 'hsl(var(--gray-100))',\n 200: 'hsl(var(--gray-200))',\n 300: 'hsl(var(--gray-300))',\n 400: 'hsl(var(--gray-400))',\n 500: 'hsl(var(--gray-500))',\n 600: 'hsl(var(--gray-600))',\n 700: 'hsl(var(--gray-700))',\n 800: 'hsl(var(--gray-800))',\n 900: 'hsl(var(--gray-900))',\n 950: 'hsl(var(--gray-950))',\n },\n \n // Semantic tokens\n text: {\n primary: 'hsl(var(--foreground))',\n secondary: 'hsl(var(--muted-foreground))',\n tertiary: 'hsl(var(--muted-foreground))',\n disabled: 'hsl(var(--muted-foreground))',\n brand: 'hsl(var(--brand-700))',\n 'on-brand': 'hsl(var(--brand-50))',\n error: 'hsl(var(--error-600))',\n warning: 'hsl(var(--warning-600))',\n success: 'hsl(var(--success-600))',\n },\n background: {\n primary: 'hsl(var(--background))',\n secondary: 'hsl(var(--secondary))',\n tertiary: 'hsl(var(--muted))',\n brand: 'hsl(var(--brand-50))',\n error: 'hsl(var(--error-50))',\n warning: 'hsl(var(--warning-50))',\n success: 'hsl(var(--success-50))',\n card: 'hsl(var(--card))',\n },\n border: {\n primary: 'hsl(var(--border))',\n secondary: 'hsl(var(--input))',\n tertiary: 'hsl(var(--accent))',\n brand: 'hsl(var(--brand-300))',\n error: 'hsl(var(--error-300))',\n warning: 'hsl(var(--warning-300))',\n success: 'hsl(var(--success-300))',\n },\n focus: {\n ring: 'hsl(var(--ring))',\n brand: 'hsl(var(--brand-500))',\n error: 'hsl(var(--error-500))',\n warning: 'hsl(var(--warning-500))',\n success: 'hsl(var(--success-500))',\n },\n \n // Component-specific\n button: {\n primary: {\n bg: 'hsl(var(--brand-600))',\n text: 'white',\n hover: 'hsl(var(--brand-700))',\n focus: 'hsl(var(--brand-500))',\n },\n secondary: {\n bg: 'transparent',\n text: 'hsl(var(--brand-700))',\n border: 'hsl(var(--brand-300))',\n hover: 'hsl(var(--brand-50))',\n focus: 'hsl(var(--brand-500))',\n },\n tertiary: {\n bg: 'transparent',\n text: 'hsl(var(--brand-700))',\n hover: 'hsl(var(--brand-50))',\n focus: 'hsl(var(--brand-500))',\n },\n },\n};\n\nexport type Colors = typeof colors;","/**\n * Typography token definitions based on the design system\n */\n\nexport const typography = {\n fontFamily: {\n sans: ['var(--font-inter)', 'sans-serif'],\n },\n fontWeight: {\n regular: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n fontSize: {\n // Display sizes\n 'display-2xl': ['4.5rem', { lineHeight: '5.625rem', letterSpacing: '-0.02em' }],\n 'display-xl': ['3.75rem', { lineHeight: '4.5rem', letterSpacing: '-0.02em' }],\n 'display-lg': ['3rem', { lineHeight: '3.75rem', letterSpacing: '-0.02em' }],\n 'display-md': ['2.25rem', { lineHeight: '2.75rem', letterSpacing: '-0.02em' }],\n 'display-sm': ['1.875rem', { lineHeight: '2.375rem', letterSpacing: '-0.02em' }],\n 'display-xs': ['1.5rem', { lineHeight: '2rem', letterSpacing: '-0.02em' }],\n \n // Text sizes\n 'text-xl': ['1.25rem', { lineHeight: '1.875rem' }],\n 'text-lg': ['1.125rem', { lineHeight: '1.75rem' }],\n 'text-md': ['1rem', { lineHeight: '1.5rem' }],\n 'text-sm': ['0.875rem', { lineHeight: '1.25rem' }],\n 'text-xs': ['0.75rem', { lineHeight: '1.125rem' }],\n },\n // Predefined style combinations\n styles: {\n h1: 'text-display-md font-bold',\n h2: 'text-display-sm font-bold',\n h3: 'text-display-xs font-bold',\n h4: 'text-text-xl font-semibold',\n h5: 'text-text-lg font-semibold',\n h6: 'text-text-md font-semibold',\n \n // Body text\n body: 'text-text-md font-regular',\n 'body-large': 'text-text-lg font-regular',\n 'body-small': 'text-text-sm font-regular',\n \n // Special styles\n caption: 'text-text-xs font-medium',\n overline: 'text-text-xs font-medium uppercase tracking-wider',\n label: 'text-text-sm font-medium',\n },\n // For semantic variants\n variants: {\n italic: 'italic',\n underline: 'underline',\n },\n};\n\nexport type Typography = typeof typography;","/**\n * Spacing tokens used throughout the application\n * \n * Note: This extends Tailwind's default spacing values rather than replacing them.\n * We only define semantic values here that map to Tailwind's spacing scale.\n */\n\nexport const spacing = {\n // We don't need to redefine the base spacing scale\n // as we'll use Tailwind's defaults\n \n // Semantic spacing that maps to Tailwind's scale\n layout: {\n page: '6', // maps to Tailwind's spacing-6 (1.5rem, 24px)\n section: '8', // maps to Tailwind's spacing-8 (2rem, 32px)\n subsection: '4', // maps to Tailwind's spacing-4 (1rem, 16px)\n inline: '2', // maps to Tailwind's spacing-2 (0.5rem, 8px)\n },\n \n // Component-specific spacing that maps to Tailwind's scale\n component: {\n xxs: '1', // maps to Tailwind's spacing-1 (0.25rem, 4px)\n xs: '2', // maps to Tailwind's spacing-2 (0.5rem, 8px)\n sm: '3', // maps to Tailwind's spacing-3 (0.75rem, 12px)\n md: '4', // maps to Tailwind's spacing-4 (1rem, 16px)\n lg: '6', // maps to Tailwind's spacing-6 (1.5rem, 24px)\n xl: '8', // maps to Tailwind's spacing-8 (2rem, 32px)\n xxl: '12', // maps to Tailwind's spacing-12 (3rem, 48px)\n },\n \n // Any custom spacing values not in Tailwind's default scale\n // would be defined here for extending in the Tailwind config\n custom: {\n // Example: '4.5': '1.125rem', // 18px\n }\n};\n\nexport type Spacing = typeof spacing;","/**\n * Border radius tokens used throughout the application\n * \n * Note: This uses Tailwind's default radius naming but maps to our semantic values\n * defined by CSS variables. We don't override Tailwind's defaults but use\n * the semantic mappings for component consistency.\n */\n\nexport const radius = {\n // Semantic radius values using CSS variables\n default: 'var(--radius)',\n card: 'var(--radius)',\n button: 'var(--radius)',\n input: 'var(--radius)',\n badge: 'var(--radius)',\n \n // Shape variants\n pill: '9999px',\n circle: '50%',\n \n // Any custom radius values to extend Tailwind's defaults\n // would be defined here\n custom: {\n // Example: 'medium': '0.375rem', // 6px\n }\n};\n\nexport type Radius = typeof radius;","/**\n * Shadow tokens used throughout the application\n */\n\nexport const shadows = {\n // Base shadow values\n none: 'none',\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n \n // Semantic shadow values\n 'elevation-low': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'elevation-medium': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'elevation-high': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n \n // Component specific\n card: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n dropdown: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n modal: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n};\n\nexport type Shadows = typeof shadows;","/**\n * Re-exports all token definitions for easy consumption\n */\n\nexport * from './colors';\nexport * from './typography';\nexport * from './spacing';\nexport * from './radius';\nexport * from './shadows';\n\n// Export a consolidated tokens object\nimport { colors } from './colors';\nimport { typography } from './typography';\nimport { spacing } from './spacing';\nimport { radius } from './radius';\nimport { shadows } from './shadows';\n\nexport const tokens = {\n colors,\n typography,\n spacing,\n radius,\n shadows,\n};\n\nexport type Tokens = typeof tokens;","// Theme system exports\nexport { ThemeProvider, ThemeProviderNoSSR } from './theme-provider';\nexport { ThemeContextProvider, useTheme, useThemeServer } from './theme-context';\nexport { ThemeToggle } from '../components/ui/theme-toggle/index';\n\n// Dynamic imports for Server Component compatibility\nexport { \n DynamicThemeProvider, \n DynamicThemeProviderNoSSR, \n DynamicThemeToggle,\n SafeThemeProvider \n} from './dynamic-imports';\n\n// Re-export theme utilities\nexport { isDarkTheme, mapColorToShadcnVariant, mapVariantToShadcnVariant, getColorVariantClasses } from '../lib/theme-utils';\n\n// Export types\nexport type { ThemeColor, ComponentVariant } from '../lib/theme-utils';\n","\"use client\"\n\nimport dynamic from 'next/dynamic'\nimport type { ComponentType } from 'react'\n\n/**\n * Dynamically import theme components to prevent SSR issues\n * Use these imports when you need to use theme components in Server Components\n */\n\n// Dynamic import for ThemeProvider\nexport const DynamicThemeProvider = dynamic(\n () => import('./theme-provider').then(mod => ({ default: mod.ThemeProvider })),\n {\n ssr: false,\n loading: () => <div style={{ visibility: 'hidden' }} />,\n }\n) as ComponentType<any>\n\n// Dynamic import for ThemeProviderNoSSR\nexport const DynamicThemeProviderNoSSR = dynamic(\n () => import('./theme-provider').then(mod => ({ default: mod.ThemeProviderNoSSR })),\n {\n ssr: false,\n loading: () => <div style={{ visibility: 'hidden' }} />,\n }\n) as ComponentType<any>\n\n// Dynamic import for ThemeToggle\nexport const DynamicThemeToggle = dynamic(\n () => import('../components/ui/theme-toggle').then(mod => ({ default: mod.ThemeToggle })),\n {\n ssr: false,\n loading: () => <div style={{ visibility: 'hidden' }} />,\n }\n) as ComponentType<any>\n\n/**\n * Safe theme provider for Next.js App Router\n * Automatically handles Server Component compatibility\n */\nexport function SafeThemeProvider({ \n children, \n noSSR = false,\n ...props \n}: {\n children: React.ReactNode\n noSSR?: boolean\n [key: string]: any\n}) {\n if (noSSR) {\n return <DynamicThemeProviderNoSSR {...props}>{children}</DynamicThemeProviderNoSSR>\n }\n \n return <DynamicThemeProvider {...props}>{children}</DynamicThemeProvider>\n} "]}
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/theme-utils.ts","../src/themes/theme-context.tsx","../src/components/ui/theme-toggle/theme-toggle.tsx","../src/components/ui/theme-toggle/index.ts","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu/dropdown-menu.tsx","../src/components/typography/heading/heading.tsx","../src/components/typography/text/text.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/slider.tsx","../src/components/ui/popover.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/sheet.tsx","../src/components/ui/command.tsx","../src/components/ui/dialog.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/context-menu.tsx","../src/components/email/button.tsx","../src/components/email/typography.tsx","../src/components/email/layout.tsx","../src/index.ts","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/radius.ts","../src/tokens/shadows.ts","../src/tokens/index.ts","../src/themes/theme-provider.tsx","../src/themes/index.ts","../src/themes/client-wrapper.tsx"],"names":["twMerge","clsx","mapColorToShadcnVariant","mapVariantToShadcnVariant","getColorVariantClasses","isDarkTheme","React15","jsx","Fragment","React16","IconSun","IconMoon","jsxs","init_theme_toggle","cva","React","Slot","DropdownMenuPrimitive","React2","IconCheck","IconPointFilled","IconChevronRight","React3","React4","React5","TogglePrimitive","React6","ToggleGroupPrimitive","React7","SliderPrimitive","PopoverPrimitive","React8","HoverCardPrimitive","React9","SheetPrimitive","React10","IconX","DialogPrimitive","React11","React12","CommandPrimitive","IconSearch","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","ContextMenuPrimitive","React13","React14","React17","ThemeToggle"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Combines multiple class values into a single className string\n * with proper Tailwind CSS class merging.\n * \n * @param inputs - Class values to merge\n * @returns Merged className string\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n/**\n * Utility function to generate a unique ID.\n * Useful for ensuring unique IDs for form elements.\n * \n * @param prefix - Optional prefix for the ID\n * @returns A unique ID string\n */\nexport function generateId(prefix = 'id'): string {\n const randomId = Math.random().toString(36).substring(2, 9);\n return `${prefix}-${randomId}`;\n}\n\n/**\n * Type guard to check if a value is not null or undefined\n * \n * @param value - Value to check\n * @returns True if value is not null or undefined\n */\nexport function isNotNullOrUndefined<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\n/**\n * Returns only the props that are safe to spread onto a DOM element\n * by filtering out custom props\n * \n * @param props - The props object\n * @param propNames - Names of custom props to filter out\n * @returns Object with only DOM-safe props\n */\nexport function filterDOMProps<T extends Record<string, any>, K extends keyof T>(\n props: T, \n propNames: K[]\n): Omit<T, K> {\n const result = { ...props };\n propNames.forEach(name => delete result[name]);\n return result;\n}","/**\n * Utility functions for theme handling\n */\n\n/**\n * Supported color theme values\n */\nexport type ThemeColor = 'brand' | 'error' | 'warning' | 'success';\n\n/**\n * Supported component variant types\n */\nexport type ComponentVariant = 'primary' | 'secondary' | 'tertiary';\n\n/**\n * Map design system colors to shadcn variants\n * \n * @param color - The design system color\n * @returns The corresponding shadcn variant\n */\nexport const mapColorToShadcnVariant = (color: ThemeColor) => {\n switch (color) {\n case 'brand': return 'default';\n case 'error': return 'destructive';\n case 'warning':\n case 'success':\n return 'secondary'; // Will need additional classes\n default: return 'default';\n }\n};\n\n/**\n * Map design system variants to shadcn variants\n * \n * @param variant - The design system variant\n * @returns The corresponding shadcn variant\n */\nexport const mapVariantToShadcnVariant = (variant: ComponentVariant) => {\n switch (variant) {\n case 'primary': return 'default';\n case 'secondary': return 'outline';\n case 'tertiary': return 'ghost';\n default: return 'default';\n }\n};\n\n/**\n * Generate Tailwind classes for color/variant combinations\n * \n * @param color - The design system color\n * @param variant - The design system variant\n * @returns String of Tailwind classes\n */\nexport const getColorVariantClasses = (\n color: ThemeColor, \n variant: ComponentVariant\n): string => {\n const colorVariantMap: Record<ComponentVariant, Record<ThemeColor, string>> = {\n primary: {\n brand: 'bg-brand-600 hover:bg-brand-700 text-white focus-visible:ring-brand-500',\n error: 'bg-error-600 hover:bg-error-700 text-white focus-visible:ring-error-500',\n warning: 'bg-warning-600 hover:bg-warning-700 text-white focus-visible:ring-warning-500',\n success: 'bg-success-600 hover:bg-success-700 text-white focus-visible:ring-success-500',\n },\n secondary: {\n brand: 'border-brand-300 text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500',\n error: 'border-error-300 text-error-700 hover:bg-error-50 focus-visible:ring-error-500',\n warning: 'border-warning-300 text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500',\n success: 'border-success-300 text-success-700 hover:bg-success-50 focus-visible:ring-success-500',\n },\n tertiary: {\n brand: 'text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500',\n error: 'text-error-700 hover:bg-error-50 focus-visible:ring-error-500',\n warning: 'text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500',\n success: 'text-success-700 hover:bg-success-50 focus-visible:ring-success-500',\n }\n };\n\n return colorVariantMap[variant]?.[color] || '';\n};\n\n/**\n * Determine if the current theme is dark\n * \n * @param theme - The current theme\n * @param systemTheme - The system theme\n * @returns True if the theme is dark\n */\nexport const isDarkTheme = (theme: string | undefined, systemTheme: string | undefined): boolean => {\n if (theme === 'system') {\n return systemTheme === 'dark';\n }\n return theme === 'dark';\n};","\"use client\"\n\nimport * as React from \"react\"\nimport { isDarkTheme } from \"../lib/theme-utils\"\n\n/**\n * Enhanced useTheme hook that works directly with next-themes\n * \n * This hook provides a simplified interface to next-themes with additional\n * utility properties for better compatibility with Next.js App Router\n * \n * IMPORTANT: This hook must be used within a Client Component.\n * For Server Components, use the useThemeServer hook instead.\n */\nexport function useTheme() {\n const [themeData, setThemeData] = React.useState({\n theme: \"system\",\n setTheme: (theme: string) => {},\n resolvedTheme: \"light\",\n isDark: false,\n });\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n // Only import next-themes on the client side\n import('next-themes').then(({ useTheme: useNextTheme }) => {\n const { theme, setTheme, resolvedTheme, systemTheme } = useNextTheme();\n const isDark = isDarkTheme(theme, systemTheme);\n \n setThemeData({\n theme: theme || \"system\",\n setTheme,\n resolvedTheme: resolvedTheme || \"light\",\n isDark,\n });\n setMounted(true);\n });\n }, []);\n\n // Return default values during SSR or before mounting\n if (!mounted) {\n return {\n theme: \"system\",\n setTheme: (theme: string) => {},\n resolvedTheme: \"light\",\n isDark: false,\n };\n }\n\n return themeData;\n}\n\n/**\n * Server-safe theme hook that can be used in Server Components\n * Returns default theme values without accessing client-side APIs\n */\nexport function useThemeServer() {\n return {\n theme: \"system\",\n setTheme: (theme: string) => {},\n resolvedTheme: \"light\",\n isDark: false,\n };\n}\n\n/**\n * @deprecated Use ThemeProvider from './theme-provider' instead\n * This component is kept for backward compatibility but is no longer needed\n */\nexport function ThemeContextProvider({ \n children \n}: { \n children: React.ReactNode \n}) {\n // This is now a no-op wrapper for backward compatibility\n return <>{children}</>;\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { useTheme } from \"../../../themes/theme-context\"\nimport { cn } from \"../../../lib/utils\"\nimport { IconMoon, IconSun } from \"@tabler/icons-react\"\n\n/**\n * Props for the ThemeToggle component\n */\nexport interface ThemeToggleProps extends React.HTMLAttributes<HTMLButtonElement> {\n /**\n * Variant of the toggle\n * @default 'icon'\n */\n variant?: 'icon' | 'switch' | 'button';\n \n /**\n * Size of the toggle\n * @default 'md'\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\n/**\n * ThemeToggle component to switch between light and dark themes\n */\nexport function ThemeToggle({ \n className, \n variant = 'icon', \n size = 'md',\n ...props \n}: ThemeToggleProps) {\n const { theme, setTheme, resolvedTheme } = useTheme()\n const [mounted, setMounted] = React.useState(false)\n\n // Handle hydration mismatch\n React.useEffect(() => {\n setMounted(true)\n }, [])\n\n // Only render on client to prevent hydration mismatch\n if (!mounted) return null;\n\n // Toggle between light and dark\n const toggleTheme = () => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")\n }\n\n // Size mapping for Tabler icons\n const iconSize = {\n sm: 16,\n md: 20,\n lg: 24,\n }\n\n // Size classes for button\n const sizeClasses = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n }\n\n // Text size classes\n const textSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n }\n\n // Variant specific rendering\n if (variant === 'icon') {\n return (\n <button\n type=\"button\"\n onClick={toggleTheme}\n className={cn(\n \"inline-flex items-center justify-center rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n sizeClasses[size],\n className\n )}\n aria-label={resolvedTheme === \"dark\" ? \"Switch to light theme\" : \"Switch to dark theme\"}\n {...props}\n >\n {resolvedTheme === \"dark\" ? (\n <IconSun size={iconSize[size]} stroke={1.5} />\n ) : (\n <IconMoon size={iconSize[size]} stroke={1.5} />\n )}\n </button>\n )\n }\n \n // Button variant\n if (variant === 'button') {\n return (\n <button\n type=\"button\"\n onClick={toggleTheme}\n className={cn(\n \"inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2\",\n textSizeClasses[size],\n \"hover:bg-accent hover:text-accent-foreground\",\n className\n )}\n {...props}\n >\n {resolvedTheme === \"dark\" ? \"Light Mode\" : \"Dark Mode\"}\n </button>\n )\n }\n \n // Switch variant\n return (\n <button\n type=\"button\"\n onClick={toggleTheme}\n className={cn(\n \"inline-flex items-center justify-center rounded-md px-3 py-2 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n textSizeClasses[size],\n resolvedTheme === \"dark\" \n ? \"bg-accent text-accent-foreground hover:bg-accent/80\" \n : \"bg-muted text-muted-foreground hover:bg-muted/80\",\n className\n )}\n aria-label={resolvedTheme === \"dark\" ? \"Switch to light theme\" : \"Switch to dark theme\"}\n {...props}\n >\n {resolvedTheme === \"dark\" ? (\n <span className=\"flex items-center\">\n <IconSun size={iconSize[size]} stroke={1.5} className=\"mr-2\" />\n Light\n </span>\n ) : (\n <span className=\"flex items-center\">\n <IconMoon size={iconSize[size]} stroke={1.5} className=\"mr-2\" />\n Dark\n </span>\n )}\n </button>\n )\n}","export * from './theme-toggle';","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ThemeColor, ComponentVariant } from \"../../lib/theme-utils\"\nimport { BUTTON_COLORS, type ButtonVariant } from \"../../styles/constants/button-colors\"\n\nconst buttonVariants = cva(\n \"float-button inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[4px] text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n primary: \"bg-[var(--button-bg-primary)] text-[var(--button-text-primary)] hover:bg-[var(--button-bg-primary-hover)] hover:text-[var(--button-text-primary-hover)] border-[var(--button-border-primary)] hover:border-[var(--button-border-primary-hover)]\",\n secondary: \"bg-[var(--button-bg-secondary)] text-[var(--button-text-secondary)] hover:bg-[var(--button-bg-secondary-hover)] hover:text-[var(--button-text-secondary-hover)] border-[var(--button-border-secondary)] hover:border-[var(--button-border-secondary-hover)]\",\n ghost: \"text-[var(--button-text-ghost)] hover:bg-[var(--button-bg-ghost-hover)] hover:text-[var(--button-text-ghost-hover)]\",\n outline: \"border text-[var(--button-text-outline)] hover:bg-[var(--button-bg-outline-hover)] hover:text-[var(--button-text-outline-hover)] border-[var(--button-border-outline)] hover:border-[var(--button-border-outline-hover)]\",\n link: \"text-[var(--button-text-link)] hover:text-[var(--button-text-link-hover)] bg-transparent border-transparent\",\n destructive: \"bg-[var(--button-bg-destructive)] text-[var(--button-text-destructive)] hover:bg-[var(--button-bg-destructive-hover)] hover:text-[var(--button-text-destructive-hover)] border-[var(--button-border-destructive)] hover:border-[var(--button-border-destructive-hover)]\",\n // Backward compatibility\n default: \"bg-[var(--button-bg-primary)] text-[var(--button-text-primary)] hover:bg-[var(--button-bg-primary-hover)] hover:text-[var(--button-text-primary-hover)] border-[var(--button-border-primary)] hover:border-[var(--button-border-primary-hover)]\",\n tertiary: \"text-[var(--button-text-ghost)] hover:bg-[var(--button-bg-ghost-hover)] hover:text-[var(--button-text-ghost-hover)]\",\n primaryError: \"bg-[var(--button-bg-destructive)] text-[var(--button-text-destructive)] hover:bg-[var(--button-bg-destructive-hover)] hover:text-[var(--button-text-destructive-hover)] border-[var(--button-border-destructive)] hover:border-[var(--button-border-destructive-hover)]\",\n },\n size: {\n sm: \"h-6 px-2 text-xs float-button-sm\",\n md: \"h-8 px-3 text-sm float-button-md\",\n lg: \"h-10 px-5 text-base float-button-lg\",\n iconSm: \"h-6 w-6 p-0 float-button-icon-sm\",\n iconMd: \"h-8 w-8 p-0 float-button-icon-md\",\n iconLg: \"h-10 w-10 p-0 float-button-icon-lg\",\n // For backward compatibility\n icon: \"h-8 w-8 p-0 float-button-icon-md\", // Map \"icon\" to be equivalent to iconMd\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n Omit<VariantProps<typeof buttonVariants>, 'variant'> {\n asChild?: boolean;\n /**\n * Icon to display before the button text\n */\n leftIcon?: React.ReactNode;\n /**\n * Icon to display after the button text\n */\n rightIcon?: React.ReactNode;\n /**\n * Whether the button is in a loading state\n */\n isLoading?: boolean;\n /**\n * Theme color to apply to the button (uses design system colors)\n */\n color?: ThemeColor;\n /**\n * Semantic design system variant - use this instead of variant for design system consistency\n */\n dsVariant?: 'primary' | 'secondary' | 'ghost' | 'outline' | 'link' | 'destructive' | 'default' | 'tertiary' | 'primaryError';\n /**\n * Whether the button should only show an icon\n */\n iconOnly?: boolean;\n /**\n * Button visual style variant\n */\n variant?: 'primary' | 'secondary' | 'ghost' | 'outline' | 'link' | 'destructive' | 'default' | 'tertiary' | 'primaryError';\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ \n className, \n variant, \n size = \"md\", \n asChild = false, \n leftIcon, \n rightIcon, \n isLoading = false,\n color = \"brand\",\n dsVariant,\n iconOnly = false,\n children,\n ...props \n }, ref) => {\n // Map deprecated variants to canonical ones\n let resolvedVariant = dsVariant || variant;\n if (resolvedVariant === \"default\") resolvedVariant = \"primary\";\n if (resolvedVariant === \"tertiary\") resolvedVariant = \"ghost\";\n if (resolvedVariant === \"primaryError\") resolvedVariant = \"destructive\";\n\n const isDisabled = props.disabled || isLoading;\n \n // Choose icon size variant for iconOnly buttons\n let sizeVariant = size;\n if (iconOnly) {\n // If already an icon size, keep it; otherwise convert regular size to icon size\n if (typeof size === 'string' && !size.startsWith('icon')) {\n if (size === \"sm\") sizeVariant = \"iconSm\";\n else if (size === \"lg\") sizeVariant = \"iconLg\";\n else sizeVariant = \"iconMd\";\n }\n }\n\n const classes = cn(\n buttonVariants({ \n variant: resolvedVariant, \n size: sizeVariant, \n className \n })\n );\n\n const content = (\n <>\n {leftIcon && !asChild && (\n <span className=\"flex items-center justify-center\">\n {leftIcon}\n </span>\n )}\n {isLoading && !asChild ? (\n <span className=\"flex items-center\">\n <svg className=\"animate-spin -ml-1 mr-2\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1\"></circle>\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n <span>Loading...</span>\n </span>\n ) : (\n children\n )}\n {rightIcon && !asChild && (\n <span className=\"flex items-center justify-center\">\n {rightIcon}\n </span>\n )}\n </>\n );\n\n if (asChild) {\n return (\n <Slot \n className={classes} \n ref={ref as any}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n className={classes}\n disabled={isDisabled}\n ref={ref}\n {...props}\n >\n {content}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","// src/components/ui/dropdown-menu/dropdown-menu.tsx\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { IconCheck, IconChevronRight, IconPointFilled } from \"@tabler/icons-react\";\nimport { cn } from \"../../../lib/utils\";\n\n// Root component\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\n\n// Trigger component\nconst DropdownMenuTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.Trigger\n ref={ref}\n className={cn(\"outline-none select-none\", className)}\n {...props}\n >\n {children}\n </DropdownMenuPrimitive.Trigger>\n));\n\nDropdownMenuTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;\n\n// Content component\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border text-sm shadow-md animate-in fade-in-80 px-1\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)]\",\n \"shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n});\n\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\n// Item component\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n color?: 'brand' | 'error' | 'warning' | 'success';\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n inset?: boolean;\n }\n>(({ className, color, leftIcon, rightIcon, children, inset, ...props }, ref) => {\n const baseClasses = cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)]\",\n \"focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)]\",\n \"hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\"\n );\n\n const colorVariantClasses = {\n brand: \"focus:bg-[var(--dropdown-item-bg-brand-focus)] focus:text-[var(--dropdown-item-text-brand-focus)] hover:bg-[var(--dropdown-item-bg-brand-hover)] hover:text-[var(--dropdown-item-text-brand-hover)]\",\n error: \"focus:bg-[var(--dropdown-item-bg-error-focus)] focus:text-[var(--dropdown-item-text-error-focus)] hover:bg-[var(--dropdown-item-bg-error-hover)] hover:text-[var(--dropdown-item-text-error-hover)]\",\n warning: \"focus:bg-[var(--dropdown-item-bg-warning-focus)] focus:text-[var(--dropdown-item-text-warning-focus)] hover:bg-[var(--dropdown-item-bg-warning-hover)] hover:text-[var(--dropdown-item-text-warning-hover)]\",\n success: \"focus:bg-[var(--dropdown-item-bg-success-focus)] focus:text-[var(--dropdown-item-text-success-focus)] hover:bg-[var(--dropdown-item-bg-success-hover)] hover:text-[var(--dropdown-item-text-success-hover)]\",\n };\n\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n baseClasses,\n color && colorVariantClasses[color],\n className\n )}\n {...props}\n >\n {leftIcon && <span className={cn(\"mr-2 h-4 w-4 flex items-center justify-center text-[var(--text-tertiary)]\", {\"ml-auto\": !children && rightIcon})}>{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"ml-auto pl-2 text-[var(--text-tertiary)] group-hover:text-current\">{rightIcon}</span>}\n </DropdownMenuPrimitive.Item>\n );\n});\n\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\n// Label component (New Wrapper)\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"py-1.5 pr-2 text-sm font-normal text-[var(--text-tertiary)] mb-1\",\n inset ? \"pl-8\" : \"pl-2\",\n className\n )}\n {...props}\n />\n));\n\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\n// CheckboxItem component\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <IconCheck className=\"h-4 w-4 text-[var(--text-tertiary)]\" strokeWidth={2}/>\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\n\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\n// RadioGroup component\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\n// RadioItem component\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <IconPointFilled className=\"h-3 w-3 fill-current text-[var(--text-tertiary)]\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\n\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\n// Separator component\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-[var(--dropdown-separator-bg)]\", className)}\n {...props}\n />\n));\n\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\n// Shortcut component\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60 text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n )\n};\n\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\n// Sub components\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none data-[state=open]:bg-[var(--dropdown-item-bg-hover)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <IconChevronRight className=\"ml-auto h-4 w-4 text-[var(--text-tertiary)]\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\n\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-lg animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 py-1 px-2\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)] shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n));\n\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\n// Export the component with all its parts\nexport const DropdownMenu = {\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Content: DropdownMenuContent,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Label: DropdownMenuLabel,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n Group: DropdownMenuPrimitive.Group,\n Portal: DropdownMenuPrimitive.Portal,\n Sub: DropdownMenuSub,\n SubContent: DropdownMenuSubContent,\n SubTrigger: DropdownMenuSubTrigger,\n};","import * as React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\n// Define the possible element types\ntype ElementType = React.ElementType;\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /**\n * The level of the heading (1-6)\n * @default 1\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n\n /**\n * The size variant of the heading\n * If not provided, defaults based on the heading level\n */\n size?: \"2xl\" | \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\";\n\n /**\n * The font weight of the heading\n * @default 'bold'\n */\n weight?: \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n\n /**\n * Whether the heading should be italic\n * @default false\n */\n italic?: boolean;\n\n /**\n * Whether the heading should be underlined\n * @default false\n */\n underline?: boolean;\n\n /**\n * The color of the heading\n * @default 'default'\n */\n color?: \"default\" | \"muted\" | \"brand\" | \"error\" | \"warning\" | \"success\";\n\n /**\n * The HTML element to render\n * If not provided, uses h{level} based on the level prop\n */\n as?: ElementType;\n}\n\n/**\n * Heading component that follows the design system guidelines.\n * \n * This component renders headings following the design system's typography\n * scale, with support for different levels, sizes, weights, styles, and colors.\n */\nexport const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ \n level = 1,\n size,\n weight = \"bold\",\n italic = false,\n underline = false,\n color = \"default\",\n className = \"\",\n as,\n children,\n ...props\n }, ref) => {\n // Default heading tag based on level\n const defaultTag = `h${level}` as ElementType;\n \n // Use provided \"as\" prop or default based on level\n const Component = as || defaultTag;\n \n // Default sizes based on heading level if not explicitly provided\n const defaultSizes: Record<number, string> = {\n 1: \"md\",\n 2: \"sm\",\n 3: \"xs\",\n 4: \"text-xl\",\n 5: \"text-lg\",\n 6: \"text-md\",\n };\n\n // Determine the final size\n const finalSize = size || defaultSizes[level];\n\n // Map to standard Tailwind classes with appropriate sizing\n const sizeClasses: Record<string, string> = {\n \"2xl\": \"text-5xl leading-tight tracking-tight\",\n \"xl\": \"text-4xl leading-tight tracking-tight\",\n \"lg\": \"text-3xl leading-tight tracking-tight\",\n \"md\": \"text-2xl leading-tight tracking-tight\",\n \"sm\": \"text-xl leading-tight tracking-tight\",\n \"xs\": \"text-lg leading-tight tracking-tight\",\n \"text-xl\": \"text-xl leading-tight\",\n \"text-lg\": \"text-lg leading-tight\",\n \"text-md\": \"text-base leading-tight\",\n };\n\n // Map to standard Tailwind weight classes\n const weightClasses = {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n };\n\n // Keep the existing color classes since they're semantic\n const colorClasses = {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n brand: \"text-brand-700 dark:text-brand-400\",\n error: \"text-error-700 dark:text-error-400\",\n warning: \"text-warning-700 dark:text-warning-400\",\n success: \"text-success-700 dark:text-success-400\",\n };\n\n return (\n <Component\n ref={ref}\n className={cn(\n sizeClasses[finalSize],\n weightClasses[weight],\n colorClasses[color],\n italic && \"italic\",\n underline && \"underline\",\n className\n )}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nHeading.displayName = \"Heading\";","import * as React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\n// Define the possible element types\ntype ElementType = React.ElementType;\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * The size variant of the text\n * @default 'md'\n */\n size?: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\";\n\n /**\n * The font weight of the text\n * @default 'regular'\n */\n weight?: \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n\n /**\n * Whether the text should be italic\n * @default false\n */\n italic?: boolean;\n\n /**\n * Whether the text should be underlined\n * @default false\n */\n underline?: boolean;\n\n /**\n * The color of the text\n * @default 'default'\n */\n color?: \"default\" | \"muted\" | \"brand\" | \"error\" | \"warning\" | \"success\";\n\n /**\n * The HTML element to render\n * @default 'p'\n */\n as?: ElementType;\n}\n\n/**\n * Text component that follows the design system guidelines.\n * \n * This component renders text following the design system's typography\n * scale, with support for different sizes, weights, styles, and colors.\n */\nexport const Text = React.forwardRef<HTMLParagraphElement, TextProps>(\n ({\n size = \"md\",\n weight = \"regular\",\n italic = false,\n underline = false,\n color = \"default\",\n className = \"\",\n as: Component = \"p\",\n children,\n ...props\n }, ref) => {\n // Map to standard Tailwind size classes\n const sizeClasses = {\n xl: \"text-xl leading-relaxed\",\n lg: \"text-lg leading-relaxed\",\n md: \"text-base leading-relaxed\",\n sm: \"text-sm leading-relaxed\",\n xs: \"text-xs leading-relaxed\",\n };\n\n // Map to standard Tailwind weight classes\n const weightClasses = {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n };\n\n // Keep the existing color classes since they're semantic\n const colorClasses = {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n brand: \"text-brand-700 dark:text-brand-400\",\n error: \"text-error-700 dark:text-error-400\",\n warning: \"text-warning-700 dark:text-warning-400\",\n success: \"text-success-700 dark:text-success-400\",\n };\n\n return (\n <Component\n ref={ref}\n className={cn(\n sizeClasses[size],\n weightClasses[weight],\n colorClasses[color],\n italic && \"italic\",\n underline && \"underline\",\n className\n )}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cn } from \"../../lib/utils\"\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>\n>(({ className, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors px-3 h-10 border border-[var(--border-tertiary)] bg-[var(--bg-secondary)] text-[var(--text-tertiary)] hover:bg-[var(--bg-tertiary)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-brand)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[var(--bg-brand-solid)] data-[state=on]:text-[var(--text-brand-primary)]\",\n className\n )}\n {...props}\n />\n))\n\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle } ","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { cn } from \"../../lib/utils\"\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Root>\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors px-3 h-10 border border-[var(--border-tertiary)] bg-[var(--bg-secondary)] text-[var(--text-tertiary)] hover:bg-[var(--bg-tertiary)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-brand)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-[var(--bg-brand-solid)] data-[state=on]:text-[var(--text-brand-primary)]\",\n className\n )}\n {...props}\n />\n))\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem } ","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider } ","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border border-[var(--border-tertiary)] bg-[var(--bg-tertiary)] p-4 text-[var(--text-tertiary)] shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } ","import * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst HoverCard = HoverCardPrimitive.Root\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 rounded-md border border-[var(--border-tertiary)] bg-[var(--bg-tertiary)] p-4 text-[var(--text-tertiary)] shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent } ","import * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { IconX } from \"@tabler/icons-react\"\nimport { cn } from \"../../lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-[var(--bg-overlay)]/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content> & { side?: \"top\" | \"bottom\" | \"left\" | \"right\" }\n>(({ side = \"right\", className, children, ...props }, ref) => {\n const sideClasses = {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n }\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed z-50 gap-4 bg-[var(--bg-primary)] text-[var(--text-primary)] border-[var(--border-tertiary)] p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n sideClasses[side],\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--bg-primary)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-brand)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)] data-[state=open]:text-[var(--text-tertiary)]\">\n <IconX size={16} stroke={1.5} />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n})\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-[var(--text-primary)]\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n} ","import * as React from \"react\"\nimport { DialogProps } from \"@radix-ui/react-dialog\"\nimport { IconCommand, IconSearch } from \"@tabler/icons-react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Dialog, DialogContent } from \"./dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <IconSearch size={16} stroke={1.5} className=\"mr-2 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n} ","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { IconX } from \"@tabler/icons-react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-[var(--bg-overlay)]/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-[var(--bg-primary)] text-[var(--text-primary)] border-[var(--border-tertiary)] shadow-lg p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-[var(--bg-primary)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-brand)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)] data-[state=open]:text-[var(--text-tertiary)]\">\n <IconX className=\"h-4 w-4\" stroke={1.5} />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight text-[var(--text-primary)]\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} ","import * as React from \"react\"\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent } ","import * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { IconCheck, IconChevronRight, IconPointFilled } from \"@tabler/icons-react\"\nimport { cn } from \"../../lib/utils\"\n\nconst ContextMenu = ContextMenuPrimitive.Root\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\nconst ContextMenuGroup = ContextMenuPrimitive.Group\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\nconst ContextMenuSub = ContextMenuPrimitive.Sub\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none data-[state=open]:bg-[var(--dropdown-item-bg-hover)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <IconChevronRight className=\"ml-auto h-4 w-4 text-[var(--text-tertiary)]\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-lg animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 py-1 px-2\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)] shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border shadow-md animate-in fade-in-80 px-1\",\n \"bg-[var(--dropdown-bg)] text-[var(--dropdown-text)] border-[var(--dropdown-border)]\",\n \"shadow-[var(--dropdown-shadow)]\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n color?: 'brand' | 'error' | 'warning' | 'success';\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n }\n>(({ className, inset, color, leftIcon, rightIcon, children, ...props }, ref) => {\n const baseClasses = cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-2.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)]\",\n \"focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)]\",\n \"hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n inset && \"pl-8\"\n );\n\n const colorVariantClasses = {\n brand: \"focus:bg-[var(--dropdown-item-bg-brand-focus)] focus:text-[var(--dropdown-item-text-brand-focus)] hover:bg-[var(--dropdown-item-bg-brand-hover)] hover:text-[var(--dropdown-item-text-brand-hover)]\",\n error: \"focus:bg-[var(--dropdown-item-bg-error-focus)] focus:text-[var(--dropdown-item-text-error-focus)] hover:bg-[var(--dropdown-item-bg-error-hover)] hover:text-[var(--dropdown-item-text-error-hover)]\",\n warning: \"focus:bg-[var(--dropdown-item-bg-warning-focus)] focus:text-[var(--dropdown-item-text-warning-focus)] hover:bg-[var(--dropdown-item-bg-warning-hover)] hover:text-[var(--dropdown-item-text-warning-hover)]\",\n success: \"focus:bg-[var(--dropdown-item-bg-success-focus)] focus:text-[var(--dropdown-item-text-success-focus)] hover:bg-[var(--dropdown-item-bg-success-hover)] hover:text-[var(--dropdown-item-text-success-hover)]\",\n };\n\n return (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n baseClasses,\n color && colorVariantClasses[color],\n className\n )}\n {...props}\n >\n {leftIcon && <span className={cn(\"mr-2 h-4 w-4 flex items-center justify-center text-[var(--text-tertiary)]\", {\"ml-auto\": !children && rightIcon})}>{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"ml-auto pl-2 text-[var(--text-tertiary)] group-hover:text-current\">{rightIcon}</span>}\n </ContextMenuPrimitive.Item>\n );\n})\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <IconCheck className=\"h-4 w-4 text-[var(--text-tertiary)]\" strokeWidth={2}/>\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-2.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"text-[var(--dropdown-item-text)] focus:bg-[var(--dropdown-item-bg-focus)] focus:text-[var(--dropdown-item-text-focus)] hover:bg-[var(--dropdown-item-bg-hover)] hover:text-[var(--dropdown-item-text-hover)]\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <IconPointFilled className=\"h-3 w-3 fill-current text-[var(--text-tertiary)]\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"py-1.5 pr-2 text-sm font-normal text-[var(--text-tertiary)] mb-1\",\n inset ? \"pl-8\" : \"pl-2\",\n className\n )}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-[var(--dropdown-separator-bg)]\", className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60 text-[var(--text-tertiary)]\", className)}\n {...props}\n />\n )\n}\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n} ","import React from 'react';\n\nexport interface EmailButtonProps {\n variant?: 'primary' | 'secondary' | 'ghost' | 'outline' | 'link' | 'destructive';\n size?: 'sm' | 'md' | 'lg';\n children: React.ReactNode;\n href?: string;\n style?: React.CSSProperties;\n fullWidth?: boolean;\n}\n\nexport const EmailButton: React.FC<EmailButtonProps> = ({\n variant = 'primary',\n size = 'md',\n children,\n href,\n style,\n fullWidth = false,\n ...props\n}) => {\n // Convert design system colors to inline styles\n const getVariantStyles = () => {\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: '#4A49A6',\n color: '#ffffff',\n border: '1px solid #4A49A6',\n };\n case 'secondary':\n return {\n backgroundColor: '#f8f9fa',\n color: '#4A49A6',\n border: '1px solid #dee2e6',\n };\n case 'ghost':\n return {\n backgroundColor: 'transparent',\n color: '#4A49A6',\n border: '1px solid transparent',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n color: '#4A49A6',\n border: '1px solid #4A49A6',\n };\n case 'destructive':\n return {\n backgroundColor: '#dc3545',\n color: '#ffffff',\n border: '1px solid #dc3545',\n };\n default:\n return {\n backgroundColor: '#4A49A6',\n color: '#ffffff',\n border: '1px solid #4A49A6',\n };\n }\n };\n\n const getSizeStyles = () => {\n switch (size) {\n case 'sm':\n return {\n padding: '6px 12px',\n fontSize: '12px',\n borderRadius: '4px',\n };\n case 'lg':\n return {\n padding: '12px 24px',\n fontSize: '16px',\n borderRadius: '6px',\n };\n default:\n return {\n padding: '8px 16px',\n fontSize: '14px',\n borderRadius: '4px',\n };\n }\n };\n\n const baseStyles = {\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center' as const,\n fontWeight: '500',\n cursor: 'pointer',\n width: fullWidth ? '100%' : 'auto',\n ...getVariantStyles(),\n ...getSizeStyles(),\n ...style,\n };\n\n if (href) {\n return (\n <a href={href} style={baseStyles} {...props}>\n {children}\n </a>\n );\n }\n\n return (\n <button style={baseStyles} {...props}>\n {children}\n </button>\n );\n}; ","import React from 'react';\n\nexport interface EmailTextProps {\n children: React.ReactNode;\n variant?: 'body' | 'heading' | 'caption' | 'lead' | 'muted';\n style?: React.CSSProperties;\n}\n\nexport const EmailText: React.FC<EmailTextProps> = ({ \n children, \n variant = 'body', \n style \n}) => {\n const getVariantStyles = () => {\n switch (variant) {\n case 'heading':\n return {\n fontSize: '24px',\n fontWeight: 'bold',\n color: '#1A1A1E',\n margin: '0 0 16px 0',\n lineHeight: '1.2',\n };\n case 'lead':\n return {\n fontSize: '16px',\n color: '#1A1A1E',\n margin: '0 0 12px 0',\n lineHeight: '1.5',\n };\n case 'caption':\n return {\n fontSize: '12px',\n color: '#6B7280',\n margin: '0 0 8px 0',\n lineHeight: '1.4',\n };\n case 'muted':\n return {\n fontSize: '14px',\n color: '#6B7280',\n margin: '0 0 12px 0',\n lineHeight: '1.5',\n };\n default:\n return {\n fontSize: '14px',\n color: '#1A1A1E',\n margin: '0 0 12px 0',\n lineHeight: '1.5',\n };\n }\n };\n\n return (\n <div style={{ ...getVariantStyles(), ...style }}>\n {children}\n </div>\n );\n};\n\nexport const EmailHeading: React.FC<EmailTextProps> = (props) => (\n <EmailText variant=\"heading\" {...props} />\n);\n\nexport const EmailCaption: React.FC<EmailTextProps> = (props) => (\n <EmailText variant=\"caption\" {...props} />\n);\n\nexport const EmailMuted: React.FC<EmailTextProps> = (props) => (\n <EmailText variant=\"muted\" {...props} />\n); ","import React from 'react';\n\nexport interface EmailLayoutProps {\n children: React.ReactNode;\n preheader?: string;\n}\n\nexport const EmailLayout: React.FC<EmailLayoutProps> = ({ \n children, \n preheader \n}) => (\n <>\n {preheader && (\n <div style={{\n color: 'transparent',\n display: 'none',\n height: '0',\n maxHeight: '0',\n maxWidth: '0',\n opacity: '0',\n overflow: 'hidden',\n visibility: 'hidden',\n width: '0',\n }}>\n {preheader}\n </div>\n )}\n <div style={{\n backgroundColor: '#F4F4F5',\n fontFamily: 'Helvetica-Neue, Helvetica, Arial, sans-serif',\n fontSize: '16px',\n lineHeight: '1.3',\n margin: '0',\n padding: '0',\n }}>\n {children}\n </div>\n </>\n);\n\nexport interface EmailContainerProps {\n children: React.ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const EmailContainer: React.FC<EmailContainerProps> = ({\n children,\n style\n}) => (\n <div style={{\n maxWidth: '600px',\n margin: '0 auto',\n padding: '24px',\n backgroundColor: '#ffffff',\n border: '1px solid #eaebed',\n borderRadius: '16px',\n ...style\n }}>\n {children}\n </div>\n);\n\nexport interface EmailHeaderProps {\n logoUrl?: string;\n logoAlt?: string;\n logoWidth?: string;\n logoHeight?: string;\n}\n\nexport const EmailHeader: React.FC<EmailHeaderProps> = ({\n logoUrl = \"http://cdn.mcauto-images-production.sendgrid.net/a704493bc4576a45/e4e1b526-0ef3-4511-a7a8-bc94353e9b3b/201x67.png\",\n logoAlt = \"Float\",\n logoWidth = \"100px\",\n logoHeight = \"auto\"\n}) => {\n return (\n <div style={{\n width: '100px',\n textAlign: 'center',\n marginBottom: '24px',\n }}>\n <a href=\"https://float.tech\" style={{ \n color: '#4A49A6', \n fontWeight: 'bold', \n textDecoration: 'none'\n }}>\n <img\n src={logoUrl}\n alt={logoAlt}\n width={logoWidth}\n height={logoHeight}\n style={{\n display: 'block',\n margin: '0 auto',\n border: '0',\n outline: 'none',\n textDecoration: 'none',\n height: 'auto',\n maxWidth: '200px',\n width: '100%',\n }}\n />\n </a>\n </div>\n );\n};\n\nexport interface EmailFooterProps {\n children?: React.ReactNode;\n}\n\nexport const EmailFooter: React.FC<EmailFooterProps> = ({ children }) => (\n <div style={{\n clear: 'both',\n paddingTop: '24px',\n textAlign: 'center',\n width: '100%',\n }}>\n {children || (\n <>\n <p style={{\n color: '#9a9ea6',\n fontFamily: 'Helvetica-Neue, Helvetica, Arial, sans-serif',\n fontSize: '14px',\n fontWeight: 'normal',\n margin: '0',\n marginBottom: '16px',\n paddingBottom: '0px',\n textAlign: 'center',\n }}>\n Float helps financial institutions interact seamlessly through shared digital workflows and standardized APIs across the transaction lifecycle.{' '}\n <a href=\"https://float.tech\" style={{\n color: '#4A49A6',\n fontSize: '14px',\n fontWeight: 'bold',\n paddingBottom: '0px',\n textAlign: 'center',\n textDecoration: 'underline',\n }}>\n Learn more\n </a>.\n </p>\n <a href=\"https://float.tech\" style={{\n color: '#4A49A6',\n fontSize: '14px',\n fontWeight: 'bold',\n paddingBottom: '0px',\n textAlign: 'center',\n textDecoration: 'underline',\n }}>\n <img src=\"http://cdn.mcauto-images-production.sendgrid.net/a704493bc4576a45/6a3db2b3-d35b-423f-8aac-830de81fb114/32x32.png\" \n alt=\"Float Logo\" \n width=\"32\" \n height=\"32\" \n style={{\n display: 'inline-block',\n marginBottom: '16px',\n }} />\n </a>\n <div style={{\n color: '#9a9ea6',\n fontFamily: 'Helvetica-Neue, Helvetica, Arial, sans-serif',\n fontSize: '14px',\n paddingBottom: '0px',\n }}>\n <div>Float Technologies Inc.</div>\n <div>SoHo, New York</div>\n </div>\n </>\n )}\n </div>\n); ","// Main design system exports\nexport * from './components/ui';\nexport * from './components/email';\nexport * from './components/typography';\nexport * from './lib/utils';\nexport * from './tokens';\nexport * from './themes'; ","/**\n * Color token definitions based on the design system\n */\n\nexport const colors = {\n // Base colors\n brand: {\n 25: 'hsl(var(--brand-25))',\n 50: 'hsl(var(--brand-50))',\n 100: 'hsl(var(--brand-100))',\n 200: 'hsl(var(--brand-200))',\n 300: 'hsl(var(--brand-300))',\n 400: 'hsl(var(--brand-400))',\n 500: 'hsl(var(--brand-500))',\n 600: 'hsl(var(--brand-600))',\n 700: 'hsl(var(--brand-700))',\n 800: 'hsl(var(--brand-800))',\n 900: 'hsl(var(--brand-900))',\n 950: 'hsl(var(--brand-950))',\n },\n error: {\n 25: 'hsl(var(--error-25))',\n 50: 'hsl(var(--error-50))',\n 100: 'hsl(var(--error-100))',\n 200: 'hsl(var(--error-200))',\n 300: 'hsl(var(--error-300))',\n 400: 'hsl(var(--error-400))',\n 500: 'hsl(var(--error-500))',\n 600: 'hsl(var(--error-600))',\n 700: 'hsl(var(--error-700))',\n 800: 'hsl(var(--error-800))',\n 900: 'hsl(var(--error-900))',\n 950: 'hsl(var(--error-950))',\n },\n warning: {\n 25: 'hsl(var(--warning-25))',\n 50: 'hsl(var(--warning-50))',\n 100: 'hsl(var(--warning-100))',\n 200: 'hsl(var(--warning-200))',\n 300: 'hsl(var(--warning-300))',\n 400: 'hsl(var(--warning-400))',\n 500: 'hsl(var(--warning-500))',\n 600: 'hsl(var(--warning-600))',\n 700: 'hsl(var(--warning-700))',\n 800: 'hsl(var(--warning-800))',\n 900: 'hsl(var(--warning-900))',\n 950: 'hsl(var(--warning-950))',\n },\n success: {\n 25: 'hsl(var(--success-25))',\n 50: 'hsl(var(--success-50))',\n 100: 'hsl(var(--success-100))',\n 200: 'hsl(var(--success-200))',\n 300: 'hsl(var(--success-300))',\n 400: 'hsl(var(--success-400))',\n 500: 'hsl(var(--success-500))',\n 600: 'hsl(var(--success-600))',\n 700: 'hsl(var(--success-700))',\n 800: 'hsl(var(--success-800))',\n 900: 'hsl(var(--success-900))',\n 950: 'hsl(var(--success-950))',\n },\n gray: {\n 25: 'hsl(var(--gray-25))',\n 50: 'hsl(var(--gray-50))',\n 100: 'hsl(var(--gray-100))',\n 200: 'hsl(var(--gray-200))',\n 300: 'hsl(var(--gray-300))',\n 400: 'hsl(var(--gray-400))',\n 500: 'hsl(var(--gray-500))',\n 600: 'hsl(var(--gray-600))',\n 700: 'hsl(var(--gray-700))',\n 800: 'hsl(var(--gray-800))',\n 900: 'hsl(var(--gray-900))',\n 950: 'hsl(var(--gray-950))',\n },\n \n // Semantic tokens\n text: {\n primary: 'hsl(var(--foreground))',\n secondary: 'hsl(var(--muted-foreground))',\n tertiary: 'hsl(var(--muted-foreground))',\n disabled: 'hsl(var(--muted-foreground))',\n brand: 'hsl(var(--brand-700))',\n 'on-brand': 'hsl(var(--brand-50))',\n error: 'hsl(var(--error-600))',\n warning: 'hsl(var(--warning-600))',\n success: 'hsl(var(--success-600))',\n },\n background: {\n primary: 'hsl(var(--background))',\n secondary: 'hsl(var(--secondary))',\n tertiary: 'hsl(var(--muted))',\n brand: 'hsl(var(--brand-50))',\n error: 'hsl(var(--error-50))',\n warning: 'hsl(var(--warning-50))',\n success: 'hsl(var(--success-50))',\n card: 'hsl(var(--card))',\n },\n border: {\n primary: 'hsl(var(--border))',\n secondary: 'hsl(var(--input))',\n tertiary: 'hsl(var(--accent))',\n brand: 'hsl(var(--brand-300))',\n error: 'hsl(var(--error-300))',\n warning: 'hsl(var(--warning-300))',\n success: 'hsl(var(--success-300))',\n },\n focus: {\n ring: 'hsl(var(--ring))',\n brand: 'hsl(var(--brand-500))',\n error: 'hsl(var(--error-500))',\n warning: 'hsl(var(--warning-500))',\n success: 'hsl(var(--success-500))',\n },\n \n // Component-specific\n button: {\n primary: {\n bg: 'hsl(var(--brand-600))',\n text: 'white',\n hover: 'hsl(var(--brand-700))',\n focus: 'hsl(var(--brand-500))',\n },\n secondary: {\n bg: 'transparent',\n text: 'hsl(var(--brand-700))',\n border: 'hsl(var(--brand-300))',\n hover: 'hsl(var(--brand-50))',\n focus: 'hsl(var(--brand-500))',\n },\n tertiary: {\n bg: 'transparent',\n text: 'hsl(var(--brand-700))',\n hover: 'hsl(var(--brand-50))',\n focus: 'hsl(var(--brand-500))',\n },\n },\n};\n\nexport type Colors = typeof colors;","/**\n * Typography token definitions based on the design system\n */\n\nexport const typography = {\n fontFamily: {\n sans: ['var(--font-inter)', 'sans-serif'],\n },\n fontWeight: {\n regular: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n fontSize: {\n // Display sizes\n 'display-2xl': ['4.5rem', { lineHeight: '5.625rem', letterSpacing: '-0.02em' }],\n 'display-xl': ['3.75rem', { lineHeight: '4.5rem', letterSpacing: '-0.02em' }],\n 'display-lg': ['3rem', { lineHeight: '3.75rem', letterSpacing: '-0.02em' }],\n 'display-md': ['2.25rem', { lineHeight: '2.75rem', letterSpacing: '-0.02em' }],\n 'display-sm': ['1.875rem', { lineHeight: '2.375rem', letterSpacing: '-0.02em' }],\n 'display-xs': ['1.5rem', { lineHeight: '2rem', letterSpacing: '-0.02em' }],\n \n // Text sizes\n 'text-xl': ['1.25rem', { lineHeight: '1.875rem' }],\n 'text-lg': ['1.125rem', { lineHeight: '1.75rem' }],\n 'text-md': ['1rem', { lineHeight: '1.5rem' }],\n 'text-sm': ['0.875rem', { lineHeight: '1.25rem' }],\n 'text-xs': ['0.75rem', { lineHeight: '1.125rem' }],\n },\n // Predefined style combinations\n styles: {\n h1: 'text-display-md font-bold',\n h2: 'text-display-sm font-bold',\n h3: 'text-display-xs font-bold',\n h4: 'text-text-xl font-semibold',\n h5: 'text-text-lg font-semibold',\n h6: 'text-text-md font-semibold',\n \n // Body text\n body: 'text-text-md font-regular',\n 'body-large': 'text-text-lg font-regular',\n 'body-small': 'text-text-sm font-regular',\n \n // Special styles\n caption: 'text-text-xs font-medium',\n overline: 'text-text-xs font-medium uppercase tracking-wider',\n label: 'text-text-sm font-medium',\n },\n // For semantic variants\n variants: {\n italic: 'italic',\n underline: 'underline',\n },\n};\n\nexport type Typography = typeof typography;","/**\n * Spacing tokens used throughout the application\n * \n * Note: This extends Tailwind's default spacing values rather than replacing them.\n * We only define semantic values here that map to Tailwind's spacing scale.\n */\n\nexport const spacing = {\n // We don't need to redefine the base spacing scale\n // as we'll use Tailwind's defaults\n \n // Semantic spacing that maps to Tailwind's scale\n layout: {\n page: '6', // maps to Tailwind's spacing-6 (1.5rem, 24px)\n section: '8', // maps to Tailwind's spacing-8 (2rem, 32px)\n subsection: '4', // maps to Tailwind's spacing-4 (1rem, 16px)\n inline: '2', // maps to Tailwind's spacing-2 (0.5rem, 8px)\n },\n \n // Component-specific spacing that maps to Tailwind's scale\n component: {\n xxs: '1', // maps to Tailwind's spacing-1 (0.25rem, 4px)\n xs: '2', // maps to Tailwind's spacing-2 (0.5rem, 8px)\n sm: '3', // maps to Tailwind's spacing-3 (0.75rem, 12px)\n md: '4', // maps to Tailwind's spacing-4 (1rem, 16px)\n lg: '6', // maps to Tailwind's spacing-6 (1.5rem, 24px)\n xl: '8', // maps to Tailwind's spacing-8 (2rem, 32px)\n xxl: '12', // maps to Tailwind's spacing-12 (3rem, 48px)\n },\n \n // Any custom spacing values not in Tailwind's default scale\n // would be defined here for extending in the Tailwind config\n custom: {\n // Example: '4.5': '1.125rem', // 18px\n }\n};\n\nexport type Spacing = typeof spacing;","/**\n * Border radius tokens used throughout the application\n * \n * Note: This uses Tailwind's default radius naming but maps to our semantic values\n * defined by CSS variables. We don't override Tailwind's defaults but use\n * the semantic mappings for component consistency.\n */\n\nexport const radius = {\n // Semantic radius values using CSS variables\n default: 'var(--radius)',\n card: 'var(--radius)',\n button: 'var(--radius)',\n input: 'var(--radius)',\n badge: 'var(--radius)',\n \n // Shape variants\n pill: '9999px',\n circle: '50%',\n \n // Any custom radius values to extend Tailwind's defaults\n // would be defined here\n custom: {\n // Example: 'medium': '0.375rem', // 6px\n }\n};\n\nexport type Radius = typeof radius;","/**\n * Shadow tokens used throughout the application\n */\n\nexport const shadows = {\n // Base shadow values\n none: 'none',\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n \n // Semantic shadow values\n 'elevation-low': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'elevation-medium': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'elevation-high': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n \n // Component specific\n card: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n dropdown: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n modal: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n};\n\nexport type Shadows = typeof shadows;","/**\n * Re-exports all token definitions for easy consumption\n */\n\nexport * from './colors';\nexport * from './typography';\nexport * from './spacing';\nexport * from './radius';\nexport * from './shadows';\n\n// Export a consolidated tokens object\nimport { colors } from './colors';\nimport { typography } from './typography';\nimport { spacing } from './spacing';\nimport { radius } from './radius';\nimport { shadows } from './shadows';\n\nexport const tokens = {\n colors,\n typography,\n spacing,\n radius,\n shadows,\n};\n\nexport type Tokens = typeof tokens;","\"use client\"\n\nimport * as React from \"react\"\nimport type { ThemeProviderProps } from \"next-themes/dist/types\"\n\n/**\n * ThemeProvider component for handling theme state\n * \n * This wraps the next-themes provider with sensible defaults\n * for handling light/dark themes and system preferences\n * \n * IMPORTANT: This component must be used in a Client Component context.\n * For Server Components, use the NoSSR wrapper or dynamic imports.\n */\nexport function ThemeProvider({ \n children, \n ...props \n}: ThemeProviderProps) {\n const [NextThemesProvider, setNextThemesProvider] = React.useState<any>(null);\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n // Only import next-themes on the client side\n import('next-themes').then(({ ThemeProvider: Provider }) => {\n setNextThemesProvider(() => Provider);\n setMounted(true);\n });\n }, []);\n\n // Return children without theme provider during SSR or before mounting\n if (!mounted || !NextThemesProvider) {\n return <>{children}</>;\n }\n\n return (\n <NextThemesProvider\n attribute=\"class\"\n defaultTheme=\"system\"\n enableSystem\n disableTransitionOnChange\n {...props}\n >\n {children}\n </NextThemesProvider>\n )\n}\n\n/**\n * NoSSR wrapper for theme provider to prevent SSR issues\n * Use this when you need to ensure the theme provider only renders on the client\n */\nexport function ThemeProviderNoSSR({ \n children, \n ...props \n}: ThemeProviderProps) {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) {\n return <>{children}</>;\n }\n\n return (\n <ThemeProvider {...props}>\n {children}\n </ThemeProvider>\n );\n}","// Theme system exports\nexport { ThemeProvider, ThemeProviderNoSSR } from './theme-provider';\nexport { ThemeContextProvider, useTheme, useThemeServer } from './theme-context';\nexport { ThemeToggle } from '../components/ui/theme-toggle/index';\n\n// Client-only wrappers for Server Component compatibility\nexport { ClientThemeProvider, ClientThemeToggle } from './client-wrapper';\n\n// Re-export theme utilities\nexport { isDarkTheme, mapColorToShadcnVariant, mapVariantToShadcnVariant, getColorVariantClasses } from '../lib/theme-utils';\n\n// Export types\nexport type { ThemeColor, ComponentVariant } from '../lib/theme-utils';\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ThemeProvider } from \"./theme-provider\"\nimport type { ThemeProviderProps } from \"next-themes/dist/types\"\n\n/**\n * Client-only theme provider wrapper\n * This component ensures theme functionality only runs on the client side\n * without using next/dynamic which causes Server Component issues\n */\nexport function ClientThemeProvider({ \n children, \n ...props \n}: ThemeProviderProps) {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n // During SSR or before mounting, render children without theme provider\n if (!mounted) {\n return <>{children}</>;\n }\n\n // Once mounted, render with theme provider\n return (\n <ThemeProvider {...props}>\n {children}\n </ThemeProvider>\n );\n}\n\n/**\n * Client-only theme toggle wrapper\n * This component ensures theme toggle only renders on the client side\n */\nexport function ClientThemeToggle(props: any) {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n // During SSR or before mounting, render nothing\n if (!mounted) {\n return null;\n }\n\n // Once mounted, render the theme toggle\n const { ThemeToggle } = require(\"../components/ui/theme-toggle\");\n return <ThemeToggle {...props} />;\n} "]}
|