@asdp/ferryui 0.1.19 → 0.1.22-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ModalIllustration/ModalIllustration.tsx","../src/components/ModalIllustration/presets.ts","../src/components/CarouselWithCustomNav/CarouselWithCustomNav.tsx","../src/components/CardPromo/CardPromo.tsx","../src/components/CardBanner/CardBanner.tsx","../src/components/CardTicket/CardTicket.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCard.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCardVertical.tsx","../src/components/CardServiceMenu/CardServiceMenu.tsx","../src/constants/generated/tokensV2.ts","../src/components/InputDynamic/DatePickerInput.tsx","../src/components/InputDynamic/InputDynamic.tsx","../src/components/InputDynamic/constants.ts","../src/components/CardTicketSearch/CardTicketSearch.constants.ts","../src/constants/generated/tokens.ts","../src/constants/brandColors.ts","../src/constants/designTokens.ts","../src/constants/themes.ts","../src/components/CardTicketSearch/CardTicketSearch.tsx","../src/components/ModalSearchHarbor/ModalSearchHarbor.tsx","../src/components/ModalSelectDate/ModalSelectDate.tsx","../src/components/ModalService/ModalService.tsx","../src/components/ModalTotalPassengers/constants.ts","../src/components/ModalTotalPassengers/ModalTotalPassengers.tsx","../src/components/ModalTypeOfService/ModalTypeOfService.tsx","../src/components/ModalTypeOfService/constants.ts"],"names":["useStyles","makeStyles","tokens","jsxs","jsx","mergeClasses","Body1","Button","CarouselCard","Skeleton","SkeletonItem","Subtitle2","Card","React","Divider","useState","useRef","hasError","useEffect","otpIndex","phoneValue","Input","Icon","brandColors","Row","Col","Dialog","DialogSurface","DialogBody","DialogTitle","DialogContent","Fragment","Caption1","useCallback","Calendar","Checkbox","Accordion","RadioGroup","AccordionItem","AccordionHeader","AccordionPanel","Radio"],"mappings":";;;;;;;;;;;;AAaA,IAAM,YAAY,UAAA,CAAW;AAAA,EAC3B,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,KAAK,MAAA,CAAO,gBAAA;AAAA,IACZ,SAAA,EAAW,QAAA;AAAA,IACX,YAAY,MAAA,CAAO,gBAAA;AAAA,IACnB,eAAe,MAAA,CAAO;AAAA,GACxB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,QAAA,EAAU,MAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,KAAA,EAAO,MAAA;AAAA,IACP,KAAK,MAAA,CAAO;AAAA;AAEhB,CAAC,CAAA;AAkFM,IAAM,oBAAsD,CAAC;AAAA,EAClE,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,yCAAA;AAAA,EACX,QAAA,GAAW,cAAA;AAAA,EACX,UAAA,GAAa,GAAA;AAAA,EACb,WAAA,GAAc,GAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,uBACE,GAAA,CAAC,UAAO,IAAA,EAAY,YAAA,EAAc,CAAC,CAAA,EAAG,IAAA,KAAS,CAAC,IAAA,CAAK,IAAA,IAAQ,SAAQ,EAAG,SAAA,EAAU,SAChF,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,WAAW,MAAA,CAAO,aAAA,EAC/B,+BAAC,UAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,yBACnB,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,aAAA,EACrB,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,QAAA;AAAA,YACL,GAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAO,UAAA;AAAA,YACP,MAAA,EAAQ,WAAA;AAAA,YACR,WAAW,MAAA,CAAO;AAAA;AAAA,SACpB;AAAA,QACC,OAAO,OAAA,KAAY,QAAA,mBAClB,GAAA,CAAC,KAAA,EAAA,EAAM,KAAA,EAAO,EAAE,SAAA,EAAW,QAAA,EAAS,EAAI,QAAA,EAAA,OAAA,EAAQ,CAAA,GAEhD;AAAA,OAAA,EAEJ,CAAA;AAAA,sBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAA,EACrB,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAO;AAAA,YACvB,IAAA,EAAK,QAAA;AAAA,YACL,UAAA,EAAY,cAAc,UAAA,IAAc,SAAA;AAAA,YACxC,SAAS,aAAA,CAAc,OAAA;AAAA,YAEtB,QAAA,EAAA,aAAA,CAAc;AAAA;AAAA,SACjB;AAAA,QACC,eAAA,oBACC,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAO;AAAA,YACvB,IAAA,EAAK,QAAA;AAAA,YACL,UAAA,EAAY,gBAAgB,UAAA,IAAc,SAAA;AAAA,YAC1C,SAAS,eAAA,CAAgB,OAAA;AAAA,YAExB,QAAA,EAAA,eAAA,CAAgB;AAAA;AAAA;AACnB,OAAA,EAEJ;AAAA,KAAA,EACF;AAAA,GAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ;;;AC5KO,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA,EAI3B,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,oCAAA;AAAA,IACP,OAAA,EAAS,4IAAA;AAAA,IACT,QAAA,EAAU,yCAAA;AAAA,IACV,QAAA,EAAU;AAAA,GACZ;AAAA;AAAA;AAAA;AAAA,EAKA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,0BAAA;AAAA,IACP,OAAA,EAAS,qGAAA;AAAA,IACT,QAAA,EAAU,6CAAA;AAAA,IACV,QAAA,EAAU;AAAA,GACZ;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAA,EAAyB;AAAA,IACvB,KAAA,EAAO,gCAAA;AAAA,IACP,OAAA,EAAS,0HAAA;AAAA,IACT,QAAA,EAAU,sCAAA;AAAA,IACV,QAAA,EAAU;AAAA,GACZ;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAA,EAAmB;AAAA,IACjB,KAAA,EAAO,wCAAA;AAAA,IACP,OAAA,EAAS,4HAAA;AAAA,IACT,QAAA,EAAU,6CAAA;AAAA,IACV,QAAA,EAAU;AAAA;AAEd;AAUO,IAAM,cAAA,GAAiB,CAAC,SAAA,KAA+D;AAC5F,EAAA,OAAO,cAAc,SAAS,CAAA;AAChC;AC3CA,IAAMA,aAAYC,UAAAA,CAAW;AAAA,EAC3B,UAAU,EAAC;AAAA,EACX,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,KAAKC,MAAAA,CAAO,mBAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,GAAG,UAAA,CAAW,OAAA,CAAQA,MAAAA,CAAO,gBAAA,EAAkBA,OAAO,gBAAgB,CAAA;AAAA,IACtE,cAAcA,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,UAAA,EAAY;AAAA,MACV,OAAA,EAAS,CAAA;AAAA,MACT,YAAA,EAAc,KAAA;AAAA,MACd,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,UAAA,EAAY,6CAAA;AAAA,MACZ,2BAAA,EAA6B;AAAA,QAC3B,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,iBAAA,EAAmB;AAAA,MACjB,OAAA,EAAS,IAAA;AAAA,MACT,UAAA,EACE;AAAA,KACJ;AAAA,IACA,uCAAA,EAAyC;AAAA,MACvC,eAAA,EAAiB,4CAAA;AAAA,MACjB,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,cAAcA,MAAAA,CAAO,oBAAA;AAAA,MACrB,SAAA,EAAW,eAAA;AAAA,MACX,2BAAA,EAA6B;AAAA,QAC3B,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,2BAAA,EAA6B;AAAA,QAC3B,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,wCAAA,EAA0C;AAAA,MACxC,eAAA,EAAiB,SAAA;AAAA,MACjB,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,KAAA;AAAA,MACT,SAAA,EAAW,YAAA;AAAA,MACX,2BAAA,EAA6B;AAAA,QAC3B,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ;AAAA;AACV;AACF;AAEJ,CAAC,CAAA;AAED,IAAM,mBAAA,GAAiD,CAAC,KAAA,EAAe,WAAA,KAAwB;AAC7F,EAAA,OAAO,CAAA,eAAA,EAAkB,KAAA,GAAQ,CAAC,CAAA,IAAA,EAAO,WAAW,CAAA,CAAA;AACtD,CAAA;AAuEO,IAAM,wBAA8D,CAAC;AAAA,EAC1E,QAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,SAAA,GAAY,IAAA;AAAA,EACZ,KAAA,GAAQ,OAAA;AAAA,EACR,UAAA,GAAa,KAAA;AAAA,EACb,YAAA,GAAe,mBAAA;AAAA,EACf,WAAA,EAAa,eAAA;AAAA,EACb,mBAAA;AAAA,EACA,SAAA,GAAY,UAAA;AAAA,EACZ,iBAAA,GAAoB,IAAA;AAAA,EACpB,SAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,UAAAA,EAAU;AACzB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,CAAC,CAAA;AAGpD,EAAA,MAAM,WAAA,GAAc,eAAA,KAAoB,MAAA,GAAY,eAAA,GAAkB,aAAA;AAEtE,EAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,CAAC,KAAA,KAAkB;AACvD,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,IACxB;AACA,IAAA,mBAAA,GAAsB,KAAK,CAAA;AAAA,EAC7B,CAAA,EAAG,CAAC,eAAA,EAAiB,mBAAmB,CAAC,CAAA;AAEzC,EAAA,uBACEG,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA,EAAW,YAAA,CAAa,MAAA,CAAO,QAAA,EAAU,SAAS,CAAA;AAAA,MAClD,UAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,qBAAqB,CAAC,CAAA,EAAG,IAAA,KAAS,iBAAA,CAAkB,KAAK,KAAK,CAAA;AAAA,MAE9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,oBACC,QAAA,kBAAAA,GAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,SAAA;AAAA,YACA,YAAA,EAAY,SAAA;AAAA,YAEX;AAAA;AAAA,SACH,EACF,CAAA;AAAA,wBACAA,GAAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,eAAA,EAAiB,iBAAA,GACbF,MAAAA,CAAO,6BAAA,GACPA,MAAAA,CAAO,qBAAA;AAAA,cACX,WAAWA,MAAAA,CAAO;AAAA,aACpB;AAAA,YACA,UAAA,EAAW,OAAA;AAAA,YACX,WAAW,MAAA,CAAO,iBAAA;AAAA,YAEjB,QAAA,EAAA,CAAA,KAAA,qBAASE,GAAAA,CAAC,iBAAA,EAAA,EAAkB,cAAY,CAAA,MAAA,EAAS,KAAA,GAAQ,CAAC,CAAA,CAAA,EAAI;AAAA;AAAA;AACjE;AAAA;AAAA,GACF;AAEJ;AChMA,IAAMJ,aAAYC,UAAAA,CAAW;AAAA,EAC3B,UAAA,EAAY;AAAA,IACV,cAAcC,MAAAA,CAAO,kBAAA;AAAA,IACrB,QAAA,EAAU,QAAA;AAAA,IACV,SAAA,EAAW,QAAA;AAAA,IACX,KAAA,EAAO,OAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,MAAA,EAAQ,SAAA;AAAA,IACR,WAAWA,MAAAA,CAAO,OAAA;AAAA,IAClB,iBAAiBA,MAAAA,CAAO,8BAAA;AAAA,IACxB,4BAAA,EAA8B;AAAA,MAC5B,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU,OAAA;AAAA,MACV,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,OAAA;AAAA,IACR,QAAA,EAAU,QAAA;AAAA,IACV,4BAAA,EAA8B;AAAA,MAC5B,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,OAAA;AAAA,IACX,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,KAAA,EAAO,MAAA;AAAA,IACP,YAAA,EAAc,QAAA;AAAA,IACd,cAAA,EAAgB,eAAA;AAAA,IAChB,KAAKA,MAAAA,CAAO,qBAAA;AAAA,IACZ,4BAAA,EAA8B;AAAA,MAC5B,SAASA,MAAAA,CAAO,uBAAA;AAAA,MAChB,KAAKA,MAAAA,CAAO;AAAA,KACd;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,SAASA,MAAAA,CAAO,gBAAA;AAAA,MAChB,KAAKA,MAAAA,CAAO;AAAA,KACd;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,SAASA,MAAAA,CAAO,qBAAA;AAAA,MAChB,KAAKA,MAAAA,CAAO;AAAA;AACd,GACF;AAAA,EACA,WAAA,EAAa;AAAA,IACX,SAASA,MAAAA,CAAO;AAAA,GAClB;AAAA,EACA,aAAA,EAAc;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAM;AAAA,IACJ,SAAA,EAAW,CAAA;AAAA,IACX,QAAA,EAAU,QAAA;AAAA,IACV,YAAA,EAAc,UAAA;AAAA,IACd,OAAA,EAAS,aAAA;AAAA,IACT,eAAA,EAAiB,CAAA;AAAA,IACjB,eAAA,EAAiB;AAAA;AAErB,CAAC,CAAA;AA2EM,IAAM,YAAsC,CAAC;AAAA,EAClD,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA,GAAW,aAAA;AAAA,EACX,KAAA,GAAQ,CAAA;AAAA,EACR,UAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,UAAA,GAAa,cAAA;AAAA,EACb,SAAA;AAAA,EACA,cAAA;AAAA,EACA,oBAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUF,UAAAA,EAAU;AAE1B,EAAA,MAAM,SAAA,GAAY,UAAA,GACd,CAAA,KAAA,EAAQ,KAAA,GAAQ,CAAC,OAAO,UAAU,CAAA,CAAA,GAClC,CAAA,WAAA,EAAc,KAAA,GAAQ,CAAC,CAAA,CAAA;AAE3B,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACEI,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,SAAA,EAAWC,YAAAA,CAAa,OAAA,CAAQ,UAAA,EAAY,SAAS,CAAA;AAAA,QACrD,KAAA,EAAO,EAAE,MAAA,EAAQ,SAAA,EAAU;AAAA,QAE3B,QAAA,kBAAAF,IAAAA,CAAC,QAAA,EAAA,EAAS,YAAA,EAAW,iBAAA,EACnB,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,SAAI,SAAA,EAAWC,YAAAA,CAAa,QAAQ,cAAA,EAAgB,cAAc,GACjE,QAAA,kBAAAD,GAAAA,CAAC,gBAAa,KAAA,EAAM,WAAA,EAAY,OAAO,EAAE,KAAA,EAAO,QAAQ,MAAA,EAAQ,MAAA,IAAU,CAAA,EAC5E,CAAA;AAAA,UACC,CAAC,SAAA,oBACFA,GAAAA,CAAC,OAAI,SAAA,EAAW,OAAA,CAAQ,WAAA,EACtB,QAAA,kBAAAD,KAAC,GAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,IAAA,EAAM,IAAI,EAAA,EAChC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,gBAAa,KAAA,EAAO,EAAE,OAAO,KAAA,EAAO,MAAA,EAAQ,QAAO,EAAG,CAAA;AAAA,4BACvDA,IAAC,YAAA,EAAA,EAAa,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAO,EAAG,CAAA;AAAA,4BACvDA,IAAC,YAAA,EAAA,EAAa,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAO,EAAG;AAAA,WAAA,EACzD,CAAA,EACF;AAAA,SAAA,EAEF;AAAA;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACED,IAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAQ,IAAA;AAAA,MACR,SAAA,EAAWE,YAAAA,CAAa,OAAA,CAAQ,UAAA,EAAY,SAAS,CAAA;AAAA,MACrD,YAAA,EAAY,SAAA;AAAA,MACZ,OAAA;AAAA,MACA,KAAA,EAAO,EAAE,MAAA,EAAQ,OAAA,GAAU,YAAY,SAAA,EAAU;AAAA,MAEjD,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,SAAI,SAAA,EAAWC,YAAAA,CAAa,QAAQ,cAAA,EAAgB,cAAc,GACjE,QAAA,kBAAAD,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAW,OAAA,CAAQ,KAAA;AAAA,YACnB,GAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,cAAA;AAAA,YACL,GAAA,EAAK;AAAA;AAAA,SACP,EACF,CAAA;AAAA,QACC,CAAC,SAAA,oBACFD,KAAC,GAAA,EAAA,EAAI,SAAA,EAAW,QAAQ,WAAA,EACxB,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,IAAA,EAAM,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,UAAA,GAAa,IAAI,EAAA,EAAI,EAAA,EAAI,UAAA,GAAa,CAAA,GAAI,EAAA,EAAI,GAAA,EAAK,UAAA,GAAa,CAAA,GAAI,EAAA,EAAI,IAAA,EAAM,UAAA,GAAa,CAAA,GAAI,EAAA,EACvJ,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAW,OAAA,CAAQ,OAAQ,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,4BAC5CA,GAAAA,CAACE,KAAAA,EAAA,EAAM,SAAA,EAAWD,aAAa,OAAA,CAAQ,KAAA,EAAO,oBAAoB,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY;AAAA,WAAA,EACpF,CAAA;AAAA,UACG,UAAA,oBACHD,GAAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,aAAA,EAAe,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,UAAA,GAAa,CAAA,GAAI,CAAA,EAAG,EAAA,EAAI,UAAA,GAAa,CAAA,GAAI,CAAA,EAAG,GAAA,EAAK,UAAA,GAAa,CAAA,GAAI,CAAA,EAAG,IAAA,EAAM,UAAA,GAAa,CAAA,GAAI,GAC7J,QAAA,kBAAAA,GAAAA;AAAA,YAACG,MAAAA;AAAA,YAAA;AAAA,cACC,UAAA,EAAW,SAAA;AAAA,cACX,IAAA,EAAK,OAAA;AAAA,cACL,OAAA;AAAA,cACA,KAAA,EAAO,EAAE,MAAA,EAAQ,OAAA,GAAU,YAAY,SAAA,EAAU;AAAA,cACjD,KAAA,EAAM,UAAA;AAAA,cAEL,QAAA,EAAA;AAAA;AAAA,WACH,EACF;AAAA,SAAA,EAEA;AAAA;AAAA;AAAA,GAEF;AAEJ;ACvPA,IAAMP,aAAYC,UAAAA,CAAW;AAAA,EAC3B,UAAA,EAAY;AAAA,IACV,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,MAAA;AAAA,IACP,QAAA,EAAU,MAAA;AAAA,IACV,MAAA,EAAQ,CAAA;AAAA,IACR,OAAA,EAAS,CAAA;AAAA,IACT,eAAA,EAAiB,aAAA;AAAA,IACjB,MAAA,EAAQ,MAAA;AAAA,IACR,MAAA,EAAQ,OAAA;AAAA,IACR,cAAcC,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,OAAA;AAAA,IACX,OAAA,EAAS,OAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,cAAcA,MAAAA,CAAO;AAAA;AAEzB,CAAC,CAAA;AAkCM,IAAM,aAAwC,CAAC;AAAA,EACpD,QAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA,GAAQ,CAAA;AAAA,EACR,YAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUF,UAAAA,EAAU;AAE1B,EAAA,MAAM,SAAA,GAAY,YAAA,GACd,CAAA,OAAA,EAAU,KAAA,GAAQ,CAAC,OAAO,YAAY,CAAA,CAAA,GACtC,CAAA,OAAA,EAAU,KAAA,GAAQ,CAAC,CAAA,CAAA;AAEvB,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACEI,IAACI,YAAAA,EAAA,EAAa,WAAW,OAAA,CAAQ,UAAA,EAC/B,0BAAAJ,GAAAA,CAACK,QAAAA,EAAA,EAAS,YAAA,EAAW,gBAAA,EAAiB,OAAO,EAAE,KAAA,EAAO,QAAQ,MAAA,EAAQ,MAAA,IACpE,QAAA,kBAAAL,GAAAA;AAAA,MAACM,YAAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,WAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,cAAcR,MAAAA,CAAO;AAAA;AACvB;AAAA,OAEJ,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEE,GAAAA;AAAA,IAACI,YAAAA;AAAA,IAAA;AAAA,MACC,WAAW,OAAA,CAAQ,UAAA;AAAA,MACnB,YAAA,EAAY,SAAA;AAAA,MAEZ,QAAA,kBAAAJ,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,WAAW,OAAA,CAAQ,WAAA;AAAA,UACnB,GAAA,EAAK,QAAA;AAAA,UACL,GAAA;AAAA,UACA,IAAA,EAAK,cAAA;AAAA,UACL,OAAA;AAAA,UACA,KAAA,EAAO,EAAE,MAAA,EAAQ,OAAA,GAAU,YAAY,SAAA;AAAU;AAAA;AACnD;AAAA,GACF;AAEJ;AC1FA,IAAMJ,aAAYC,UAAAA,CAAW;AAAA,EAC3B,aAAA,EAAe;AAAA,IACb,cAAcC,MAAAA,CAAO,kBAAA;AAAA,IACrB,QAAA,EAAU,SAAA;AAAA,IACV,WAAWA,MAAAA,CAAO,OAAA;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,KAAA,EAAO,MAAA;AAAA,IACP,YAAA,EAAc,MAAA;AAAA,IACd,SAAA,EAAW,OAAA;AAAA,IACX,OAAA,EAAS,CAAA;AAAA,IACT,4BAAA,EAA8B;AAAA,MAC5B,aAAA,EAAe;AAAA;AACjB,GACF;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,KAAA;AAAA,IACL,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,MAAA;AAAA,IACX,QAAA,EAAU,UAAA;AAAA,IACV,QAAA,EAAU,SAAA;AAAA,IACV,aAAA,EAAe,QAAA;AAAA,IACf,4BAAA,EAA8B;AAAA,MAC5B,WAAA,EAAa,CAAA,aAAA,EAAgBA,MAAAA,CAAO,4BAA4B,CAAA,CAAA;AAAA,MAChE,kBAAA,EAAoB,CAAA;AAAA,MACpB,oBAAA,EAAsB,CAAA;AAAA,MACtB,qBAAqBA,MAAAA,CAAO,kBAAA;AAAA,MAC5B,wBAAwBA,MAAAA,CAAO;AAAA,KACjC;AAAA,IACA,4BAAA,EAA8B;AAAA,MAC5B,YAAA,EAAc,CAAA,aAAA,EAAgBA,MAAAA,CAAO,4BAA4B,CAAA,CAAA;AAAA,MACjE,qBAAqBA,MAAAA,CAAO,kBAAA;AAAA,MAC5B,sBAAsBA,MAAAA,CAAO,kBAAA;AAAA,MAC7B,kBAAA,EAAoB,CAAA;AAAA,MACpB,oBAAA,EAAsB,CAAA;AAAA,MACtB,GAAA,EAAK,MAAA;AAAA,MACL,aAAA,EAAe,KAAA;AAAA,MACf,cAAA,EAAgB,cAAA;AAAA,MAChB,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,OAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,iBAAiBA,MAAAA,CAAO,4BAAA;AAAA,IACxB,IAAA,EAAM,OAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,iBAAiBA,MAAAA,CAAO,4BAAA;AAAA,IACxB,IAAA,EAAM,OAAA;AAAA,IACN,MAAA,EAAQ,OAAA;AAAA,IACR,MAAA,EAAQ,CAAA;AAAA,IACR,SAAA,EAAW;AAAA,GACb;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,iBAAiBA,MAAAA,CAAO,4BAAA;AAAA,IACxB,KAAA,EAAO,OAAA;AAAA,IACP,MAAA,EAAQ,OAAA;AAAA,IACR,MAAA,EAAQ,CAAA;AAAA,IACR,SAAA,EAAW;AAAA,GACb;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc,CAAA;AAAA,IACd,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,cAAA,EAAgB,eAAA;AAAA,IAChB,2BAAA,EAA6B;AAAA,MAC3B,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACP;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,OAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACP;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,GAAA,EAAK;AAAA,GACP;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,QAAA,EAAU,UAAA;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,YAAA,EAAc,QAAA;AAAA,IACd,KAAA,EAAO;AAAA,GACT;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,GAAA,EAAK,MAAA;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,2BAAA,EAA6B;AAAA,MAC3B,aAAA,EAAe;AAAA;AACjB,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc,CAAA;AAAA,IACd,mBAAA,EAAqB,CAAA;AAAA,IACrB,sBAAA,EAAwB,CAAA;AAAA,IACxB,sBAAsBA,MAAAA,CAAO,kBAAA;AAAA,IAC7B,yBAAyBA,MAAAA,CAAO,kBAAA;AAAA,IAChC,QAAA,EAAU,UAAA;AAAA,IACV,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,oDAAA;AAAA,IACZ,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,cAAA,EAAgB,eAAA;AAAA,IAChB,OAAOA,MAAAA,CAAO,8BAAA;AAAA,IACd,4BAAA,EAA8B;AAAA,MAC5B,OAAA,EAAS,MAAA;AAAA,MACT,oBAAA,EAAsB,CAAA;AAAA,MACtB,wBAAwBA,MAAAA,CAAO,kBAAA;AAAA,MAC/B,yBAAyBA,MAAAA,CAAO;AAAA,KAClC;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,SAAA,EAAW;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,UAAA,EAAY,2BAAA;AAAA,IACZ,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAcA,MAAAA,CAAO,iBAAA;AAAA,IACrB,OAAA,EAAS,QAAA;AAAA,IACT,GAAA,EAAK,MAAA;AAAA,IACL,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,2BAAA,EAA6B;AAAA,MAC3B,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACP;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,MAAA;AAAA,IACT,QAAA,EAAU,MAAA;AAAA,IACV,GAAA,EAAK;AAAA,GACP;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,QAAA;AAAA,IACL,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,OAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,iBAAiBA,MAAAA,CAAO,4BAAA;AAAA,IACxB,KAAA,EAAO,OAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AA2FM,IAAM,aAAwC,CAAC;AAAA,EACpD,QAAA;AAAA,EACA,OAAA,GAAU,+BAAA;AAAA,EACV,QAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAgB,EAAC;AAAA,EACjB,KAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,UAAAA,EAAU;AACzB,EAAA,MAAM,SAAA,GAAY,eAAe,SAAA,IAAa,EAAA;AAC9C,EAAA,MAAM,UAAA,GAAa,eAAe,KAAA,IAAS,SAAA;AAE3C,EAAA,uBACEG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,aAAA,EAErB,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,cAAA,EACtB,QAAA,EAAA;AAAA,sBAAAC,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,QAAA,CAAS,OAAA,IAAW,QAAA,CAAS,KAAA;AAAA,UACtC,YAAA,EAAa,OAAA;AAAA,UACb,UAAA,EAAW,UAAA;AAAA,UAEX,QAAA,kBAAAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,OAAA;AAAA,cACL,UAAA,EAAW,QAAA;AAAA,cACX,OAAO,QAAA,CAAS,KAAA;AAAA,cAChB,YAAA,EAAa,QAAA;AAAA,cACb,KAAA,EAAM,SAAA;AAAA,cAEL,QAAA,EAAA,QAAA,CAAS;AAAA;AAAA;AACZ;AAAA,OACF;AAAA,sBAEAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,OAAA;AAAA,UACL,WAAW,MAAA,CAAO,QAAA;AAAA,UAClB,GAAA,EAAI;AAAA;AAAA,OACN;AAAA,sBAGAA,IAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,IACrB,QAAA,kBAAAD,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,OAAA;AAAA,UACL,UAAA,EAAW,MAAA;AAAA,UACX,KAAA,EAAO,aAAa,QAAA,GAAW,SAAA;AAAA,UAC/B,YAAA,EAAa,OAAA;AAAA,UACb,KAAA,EAAM,SAAA;AAAA,UACP,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,YACW,cAAA,CAAe;AAAA;AAAA;AAAA,OAC3B,EACF,CAAA;AAAA,sBAEAC,GAAAA,CAACO,SAAAA,EAAA,EAAW,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAGrBP,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAO,EAC3B,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAA,EAAG,0BACjCA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,WAAW,MAAA,CAAO,YAAA;AAAA,UAClB,KAAA,EAAO;AAAA,YACL,GAAA,EAAK,CAAA,EAAG,EAAA,GAAK,KAAA,GAAQ,EAAE,CAAA,EAAA;AAAA;AACzB,SAAA;AAAA,QAJK;AAAA,OAMR,CAAA,EACH,CAAA;AAAA,sBAGAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,cAAA,EAAgB,CAAA;AAAA,sBACvCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,eAAA,EAAiB;AAAA,KAAA,EAC1C,CAAA;AAAA,oBAGAD,IAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,OAAO,gBAAA,EAEtB,QAAA,EAAA;AAAA,sBAAAA,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,aAAA;AAAA,UACL,UAAA,EAAW,MAAA;AAAA,UACX,KAAA,EAAO,aAAa,QAAA,GAAW,SAAA;AAAA,UAC/B,YAAA,EAAa,OAAA;AAAA,UACb,KAAA,EAAM,SAAA;AAAA,UACP,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,YACW,cAAA,CAAe;AAAA;AAAA;AAAA,OAC3B;AAAA,sBAEAC,IAAC,KAAA,EAAA,EACC,QAAA,kBAAAD,KAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,UAAA,EACrB,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,UAAA,EACrB,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,QAAA,EAAA,EAAU,QAAA,EAAA,SAAA,CAAU,GAAA,EAAI,CAAA;AAAA,0BACzBA,GAAAA,CAAC,MAAA,EAAA,EAAQ,QAAA,EAAA,SAAA,CAAU,IAAA,EAAK,CAAA;AAAA,0BACxBA,GAAAA,CAAC,QAAA,EAAA,EAAU,QAAA,EAAA,SAAA,CAAU,QAAA,EAAS;AAAA,SAAA,EAChC,CAAA;AAAA,wBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,cAAA,EACrB,QAAA,EAAA;AAAA,0BAAAA,KAAC,QAAA,EAAA,EAAS,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,YAAU;AAAA,WAAA,EAAS,CAAA;AAAA,0BAC7BC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,gBAAA,EACrB,QAAA,kBAAAA,GAAAA,CAAC,OAAA,EAAA,EACE,sCAAYA,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,WAAA,EAAE,GACvB,CAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,UAAA,EACrB,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,QAAA,EAAA,EAAU,QAAA,EAAA,OAAA,CAAQ,GAAA,EAAI,CAAA;AAAA,0BACvBA,GAAAA,CAAC,MAAA,EAAA,EAAQ,QAAA,EAAA,OAAA,CAAQ,IAAA,EAAK,CAAA;AAAA,0BACtBA,GAAAA,CAAC,QAAA,EAAA,EAAU,QAAA,EAAA,OAAA,CAAQ,QAAA,EAAS;AAAA,SAAA,EAC9B;AAAA,OAAA,EACF,CAAA,EACF,CAAA;AAAA,MAEC,cAAc,MAAA,GAAS,CAAA,oBACtBA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,MAAA,CAAO,aAAA,EACpB,QAAA,EAAA,aAAA,CAAc,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,IAAI,CAAC,MAAA,EAAQ,wBACtCA,GAAAA;AAAA,QAACG,MAAAA;AAAA,QAAA;AAAA,UAEC,UAAA,EAAW,SAAA;AAAA,UACX,KAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL,IAAA,EAAM,CAAA;AAAA,YACN,aAAaL,MAAAA,CAAO,oBAAA;AAAA,YACpB,OAAOA,MAAAA,CAAO;AAAA,WAChB;AAAA,UACA,MAAM,MAAA,CAAO,IAAA;AAAA,UACb,IAAA,EAAK,QAAA;AAAA,UACL,SAAS,MAAA,CAAO,OAAA;AAAA,UAEf,QAAA,EAAA,MAAA,CAAO;AAAA,SAAA;AAAA,QAZH;AAAA,OAcR,CAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAAA,oBAGAC,IAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,OAAO,eAAA,EACtB,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,SAAA,EAAU,EACrE,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAACO,SAAAA,EAAA,EAAU,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,0BACtBR,IAAAA,CAAC,MAAA,EAAA,EAAO,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,KAAA,EAAO,UAAA,EAAY,QAAA,EAAS,EAAG,QAAA,EAAA;AAAA,YAAA,MAAA;AAAA,YACzE;AAAA,WAAA,EACP;AAAA,SAAA,EACF,CAAA;AAAA,wBACAC,GAAAA;AAAA,UAACG,MAAAA;AAAA,UAAA;AAAA,YACC,SAAS,aAAA,CAAc,OAAA;AAAA,YACvB,UAAA,EAAW,SAAA;AAAA,YACX,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAM,UAAA;AAAA,YACN,MAAM,aAAA,CAAc,IAAA;AAAA,YACpB,KAAA,EAAO,EAAE,eAAA,EAAiB,SAAA,EAAU;AAAA,YAEnC,QAAA,EAAA,aAAA,CAAc;AAAA;AAAA;AACjB,OAAA,EACF,CAAA;AAAA,sBAEAJ,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,iBAAA,EACrB,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAACO,SAAAA,EAAA,EAAU,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,wBACpBP,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,gBACpB,QAAA,EAAA,UAAA,CAAW,GAAA,CAAI,CAAC,QAAA,EAAU,wBACzBD,IAAAA,CAAC,KAAA,EAAA,EAAc,SAAA,EAAW,OAAO,YAAA,EAC9B,QAAA,EAAA;AAAA,UAAA,YAAA,oBAAgBC,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,QAAA,EAAC,CAAA;AAAA,0BACxBA,GAAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,QAAA,EAAS;AAAA,SAAA,EAAA,EAFlB,GAGV,CACD,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA,sBAGAA,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAO,EAC3B,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAA,EAAG,0BACjCA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,WAAW,MAAA,CAAO,aAAA;AAAA,UAClB,KAAA,EAAO;AAAA,YACL,GAAA,EAAK,CAAA,EAAG,EAAA,GAAK,KAAA,GAAQ,EAAE,CAAA,EAAA;AAAA;AACzB,SAAA;AAAA,QAJK;AAAA,OAMR,CAAA,EACH;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;ACpeA,IAAM,oBAAA,GAAuB,CAAC,KAAA,qBAC5BD,IAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,OAAA,EAAQ,cAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,KAAA,EAAM,4BAAA;AAAA,IACN,mBAAA,EAAoB,MAAA;AAAA,IACnB,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,MAAA,EAAO,4BAAA,EACR,QAAA,kBAAAA,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,CAAA,EAAE,w+LAAA;AAAA,UACF,IAAA,EAAK;AAAA;AAAA,OACP,EACF,CAAA;AAAA,sBACAA,GAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAAD,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,sBAAA;AAAA,UACH,CAAA,EAAE,GAAA;AAAA,UACF,CAAA,EAAE,GAAA;AAAA,UACF,KAAA,EAAM,MAAA;AAAA,UACN,MAAA,EAAO,KAAA;AAAA,UACP,WAAA,EAAY,gBAAA;AAAA,UACZ,yBAAA,EAA0B,MAAA;AAAA,UAE1B,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,SAAA,EAAA,EAAQ,YAAA,EAAa,GAAA,EAAI,QAAO,oBAAA,EAAqB,CAAA;AAAA,4BACtDA,GAAAA;AAAA,cAAC,eAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAG,aAAA;AAAA,gBACH,IAAA,EAAK,QAAA;AAAA,gBACL,MAAA,EAAO,2CAAA;AAAA,gBACP,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,IAAC,UAAA,EAAA,EAAS,CAAA;AAAA,4BACVA,GAAAA,CAAC,gBAAA,EAAA,EAAe,YAAA,EAAa,GAAA,EAAI,CAAA;AAAA,4BACjCA,GAAAA,CAAC,aAAA,EAAA,EAAY,GAAA,EAAI,WAAA,EAAY,UAAS,KAAA,EAAM,CAAA;AAAA,4BAC5CA,GAAAA,CAAC,eAAA,EAAA,EAAc,IAAA,EAAK,QAAA,EAAS,QAAO,4CAAA,EAA6C,CAAA;AAAA,4BACjFA,IAAC,SAAA,EAAA,EAAQ,IAAA,EAAK,UAAS,GAAA,EAAI,oBAAA,EAAqB,QAAO,8BAAA,EAA+B,CAAA;AAAA,4BACtFA,GAAAA;AAAA,cAAC,eAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAG,aAAA;AAAA,gBACH,IAAA,EAAK,QAAA;AAAA,gBACL,MAAA,EAAO,2CAAA;AAAA,gBACP,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA,CAAC,UAAA,EAAA,EAAS,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,4BACjBA,GAAAA,CAAC,gBAAA,EAAA,EAAe,YAAA,EAAa,GAAA,EAAI,CAAA;AAAA,4BACjCA,GAAAA,CAAC,aAAA,EAAA,EAAY,GAAA,EAAI,WAAA,EAAY,UAAS,KAAA,EAAM,CAAA;AAAA,4BAC5CA,GAAAA,CAAC,eAAA,EAAA,EAAc,IAAA,EAAK,QAAA,EAAS,QAAO,4CAAA,EAA6C,CAAA;AAAA,4BACjFA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,GAAA,EAAI,8BAAA;AAAA,gBACJ,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,EAAA,EAAG,eAAA;AAAA,gBACH,GAAA,EAAI,8BAAA;AAAA,gBACJ,MAAA,EAAO;AAAA;AAAA;AACT;AAAA;AAAA,OACF,EACF;AAAA;AAAA;AACF,CAAA;AAGF,IAAO,4BAAA,GAAQ;AC9Df,IAAM,4BAAA,GAA+B,CAAC,KAAA,qBACpCD,IAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,OAAA,EAAQ,cAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,KAAA,EAAM,4BAAA;AAAA,IACN,mBAAA,EAAoB,MAAA;AAAA,IACnB,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,MAAA,EAAO,4BAAA,EACR,QAAA,kBAAAA,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,CAAA,EAAE,69LAAA;AAAA,UACF,IAAA,EAAK;AAAA;AAAA,OACP,EACF,CAAA;AAAA,sBACAA,GAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAAD,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,sBAAA;AAAA,UACH,CAAA,EAAE,GAAA;AAAA,UACF,CAAA,EAAE,GAAA;AAAA,UACF,KAAA,EAAM,KAAA;AAAA,UACN,MAAA,EAAO,MAAA;AAAA,UACP,WAAA,EAAY,gBAAA;AAAA,UACZ,yBAAA,EAA0B,MAAA;AAAA,UAE1B,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,SAAA,EAAA,EAAQ,YAAA,EAAa,GAAA,EAAI,QAAO,oBAAA,EAAqB,CAAA;AAAA,4BACtDA,GAAAA;AAAA,cAAC,eAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAG,aAAA;AAAA,gBACH,IAAA,EAAK,QAAA;AAAA,gBACL,MAAA,EAAO,2CAAA;AAAA,gBACP,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,IAAC,UAAA,EAAA,EAAS,CAAA;AAAA,4BACVA,GAAAA,CAAC,gBAAA,EAAA,EAAe,YAAA,EAAa,GAAA,EAAI,CAAA;AAAA,4BACjCA,GAAAA,CAAC,aAAA,EAAA,EAAY,GAAA,EAAI,WAAA,EAAY,UAAS,KAAA,EAAM,CAAA;AAAA,4BAC5CA,GAAAA;AAAA,cAAC,eAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,GAAA,EAAI,oBAAA;AAAA,gBACJ,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA;AAAA,cAAC,eAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAG,aAAA;AAAA,gBACH,IAAA,EAAK,QAAA;AAAA,gBACL,MAAA,EAAO,2CAAA;AAAA,gBACP,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA,CAAC,UAAA,EAAA,EAAS,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,4BACjBA,GAAAA,CAAC,gBAAA,EAAA,EAAe,YAAA,EAAa,GAAA,EAAI,CAAA;AAAA,4BACjCA,GAAAA,CAAC,aAAA,EAAA,EAAY,GAAA,EAAI,WAAA,EAAY,UAAS,KAAA,EAAM,CAAA;AAAA,4BAC5CA,GAAAA;AAAA,cAAC,eAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,GAAA,EAAI,8BAAA;AAAA,gBACJ,MAAA,EAAO;AAAA;AAAA,aACT;AAAA,4BACAA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,EAAA,EAAG,eAAA;AAAA,gBACH,GAAA,EAAI,8BAAA;AAAA,gBACJ,MAAA,EAAO;AAAA;AAAA;AACT;AAAA;AAAA,OACF,EACF;AAAA;AAAA;AACF,CAAA;AAGF,IAAO,oCAAA,GAAQ;ACnEf,IAAMJ,aAAYC,UAAAA,CAAW;AAAA,EAC3B,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,MAAA;AAAA,IACP,SAAA,EAAW,YAAA;AAAA,IACX,OAAA,EAAS,KAAA;AAAA,IACT,cAAcC,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,4BAAA,EAA8B;AAAA,MAC5B,aAAA,EAAe,KAAA;AAAA,MACf,SAAA,EAAW,MAAA;AAAA,MACX,QAAA,EAAU,QAAA;AAAA,MACV,GAAA,EAAK,KAAA;AAAA,MACL,uBAAA,EAAyB,OAAA;AAAA,MACzB,cAAA,EAAgB,MAAA;AAAA,MAChB,cAAA,EAAgB;AAAA;AAClB,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,YAAA;AAAA,IAChB,OAAA,EAAS,MAAA;AAAA,IACT,cAAcA,MAAAA,CAAO,kBAAA;AAAA,IACrB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,MAAA;AAAA,IACX,UAAA,EAAY,4BAAA;AAAA,IACZ,cAAA,EAAgB,MAAA;AAAA,IAChB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,IACxB,MAAA,EAAQ,MAAA;AAAA,IACR,GAAA,EAAK,MAAA;AAAA,IACL,SAAA,EAAW;AAAA,MACT,iBAAiBA,MAAAA,CAAO;AAAA,KAC1B;AAAA,IACA,4BAAA,EAA8B;AAAA,MAC5B,OAAA,EAAS,WAAA;AAAA,MACT,UAAA,EAAY,CAAA;AAAA,MACZ,aAAA,EAAe,QAAA;AAAA,MACf,UAAA,EAAY,QAAA;AAAA,MACZ,SAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,IACxB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,SAAA,EAAW;AAAA,MACT,iBAAiBA,MAAAA,CAAO;AAAA;AAC1B,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,MAAA,EAAQ,MAAA;AAAA,IACR,KAAA,EAAO,MAAA;AAAA,IACP,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,4BAAA,EAA8B;AAAA,MAC5B,UAAA,EAAY;AAAA;AACd,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,kBAAA;AAAA,IACnB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,iBAAA;AAAA,IACnB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,UAAA,EAAY,KAAA;AAAA,IACZ,4BAAA,EAA8B;AAAA,MAC5B,UAAUA,MAAAA,CAAO,eAAA;AAAA,MACjB,UAAA,EAAY;AAAA;AACd,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,4BAAA,EAA8B;AAAA,MAC5B,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,4BAAA,EAA8B;AAAA,MAC5B,OAAA,EAAS;AAAA;AACX;AAEJ,CAAC,CAAA;AAGD,IAAM,kBAAA,GAAqB;AAAA,EACzB,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,gCAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,EAAA,EAAI,EAAE,KAAA,EAAO,OAAA,EAAS,aAAa,kCAAA,EAAmC;AAAA,MACtE,EAAA,EAAI,EAAE,KAAA,EAAO,OAAA,EAAS,aAAa,6BAAA;AAA8B;AACnE,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,+BAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,EAAA,EAAI,EAAE,KAAA,EAAO,MAAA,EAAQ,aAAa,iCAAA,EAAkC;AAAA,MACpE,EAAA,EAAI,EAAE,KAAA,EAAO,MAAA,EAAQ,aAAa,iCAAA;AAAkC;AACtE,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,+BAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,EAAA,EAAI,EAAE,KAAA,EAAO,MAAA,EAAQ,aAAa,iCAAA,EAAkC;AAAA,MACpE,EAAA,EAAI,EAAE,KAAA,EAAO,MAAA,EAAQ,aAAa,uCAAA;AAAwC;AAC5E,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,gCAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,EAAA,EAAI,EAAE,KAAA,EAAO,OAAA,EAAS,aAAa,yBAAA,EAA0B;AAAA,MAC7D,EAAA,EAAI,EAAE,KAAA,EAAO,OAAA,EAAS,aAAa,uBAAA;AAAwB;AAC7D,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,gCAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,EAAA,EAAI,EAAE,KAAA,EAAO,SAAA,EAAW,aAAa,iBAAA,EAAkB;AAAA,MACvD,EAAA,EAAI,EAAE,KAAA,EAAO,OAAA,EAAS,aAAa,gBAAA;AAAiB;AACtD;AAEJ,CAAA;AAkCO,IAAM,kBAAkD,CAAC;AAAA,EAC9D,eAAA,GAAkB,OAAA;AAAA,EAClB,QAAA,GAAW,IAAA;AAAA,EACX,cAAA;AAAA,EACA,gBAAA,GAAmB,IAAA;AAAA,EACnB;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,UAAAA,EAAU;AAEzB,EAAA,MAAM,gBAAA,GAAmB,CAAC,SAAA,KAAyB;AACjD,IAAA,MAAM,WAAW,eAAA,KAAoB,SAAA;AACrC,IAAA,OAAOK,YAAAA;AAAA,MACL,MAAA,CAAO,QAAA;AAAA,MACP,YAAY,MAAA,CAAO;AAAA,KACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAElD,EAAA,uBACED,IAACQ,IAAAA,EAAA,EAAK,WAAWP,YAAAA,CAAa,MAAA,CAAO,MAAM,SAAS,CAAA,EAClD,0BAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,MAAA,CAAO,QAAA,EACpB,oBAAU,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AAC9B,IAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAY,GAAI,IAAA,CAAK,OAAO,QAAQ,CAAA;AAEnD,IAAA,uBACED,IAAAA,CAACU,MAAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,sBAAAV,IAAAA;AAAA,QAACI,MAAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,gBAAA,CAAiB,IAAA,CAAK,EAAe,CAAA;AAAA,UAChD,OAAA,EAAS,MAAM,cAAA,GAAiB,IAAA,CAAK,EAAe,CAAA;AAAA,UAEpD,QAAA,EAAA;AAAA,4BAAAH,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAK,IAAA,CAAK,IAAA;AAAA,gBACV,GAAA,EAAK,KAAA;AAAA,gBACL,WAAW,MAAA,CAAO;AAAA;AAAA,aACpB;AAAA,4BACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,WAAA,EACrB,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,OAAQ,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,cACrC,oCACCA,GAAAA,CAAC,UAAK,SAAA,EAAW,MAAA,CAAO,aACrB,QAAA,EAAA,WAAA,EACH;AAAA,aAAA,EAEJ;AAAA;AAAA;AAAA,OACF;AAAA,MACC,QAAQ,SAAA,CAAU,MAAA,GAAS,CAAA,oBAC1BD,KAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAACU,OAAAA,EAAA,EAAQ,SAAA,EAAW,OAAO,iBAAA,EAAmB,CAAA;AAAA,wBAC9CV,IAACU,OAAAA,EAAA,EAAQ,UAAQ,IAAA,EAAC,SAAA,EAAW,OAAO,eAAA,EAAiB;AAAA,OAAA,EACvD;AAAA,KAAA,EAAA,EAvBiB,KAAK,EAyB1B,CAAA;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ;;;ACrOO,IAAM,WAAA,GAAc;AAAA,EACvB,IAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO;AACX,CAAA;AA6DO,IAAM,UAAA,GAAa;AAAA,EAEtB,QAAA,EAAU,GAEd,CAAA;AAiBO,IAAM,YAAA,GAAe;AAAA,EA8BxB,0BAAA,EAA4B,SAolBhC,CAAA;AAWO,IAAM,eAAA,GAAkB;AAAA,EAkJ3B,qBAAA,EAAuB,SAsN3B,CAAA;AA8WA,IAAO,gBAAA,GAAQ;AAAA,EAUX,eAGJ,CAAA;ACv7CA,IAAM,eAAA,GAAkB,UAAA;AAAA,EACtB,CACE;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,SAAS,KAAK,CAAA;AAC1C,IAAA,MAAM,YAAY,KAAA,CAAM,KAAA,GAAQ,IAAI,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,GAAI,MAAA;AAExD,IAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAkC;AACtD,MAAA,IAAI,IAAA,EAAM;AAER,QAAA,MAAM,MAAA,GAAS,KAAK,iBAAA,EAAkB;AACtC,QAAA,MAAM,YAAA,GAAe,IAAI,IAAA,CAAK,IAAA,CAAK,SAAQ,GAAI,MAAA,GAAS,KAAK,GAAI,CAAA;AACjE,QAAA,KAAA,CAAM,QAAA,CAAS,aAAa,WAAA,EAAY,CAAE,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AACvD,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,CAAC,UAAA,KAAuB;AACzC,MAAA,IAAI,CAAC,YAAY,OAAO,EAAA;AACxB,MAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,UAAU,CAAA;AAChC,MAAA,OAAO,IAAA,CAAK,mBAAmB,OAAA,EAAS;AAAA,QACtC,GAAA,EAAK,SAAA;AAAA,QACL,KAAA,EAAO,MAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAA0C;AAClE,MAAA,CAAA,EAAG,cAAA,EAAe;AAClB,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,SAAA,CAAU,CAAC,MAAM,CAAA;AAAA,MACnB;AACA,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,uBACEZ,IAAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAM,QAAQ,YAAA,EAAc,CAAC,CAAA,EAAG,IAAA,KAAS,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA,EAAG,WAAS,IAAA,EAC/E,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,cAAA,EAAA,EAAe,wBAAA,EAAwB,IAAA,EACtC,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,SAAA;AAAA,UACJ,KAAA,EAAO,UAAA,CAAW,KAAA,CAAM,KAAK,CAAA;AAAA,UAC7B,QAAA,EAAQ,IAAA;AAAA,UACR,aAAa,WAAA,IAAe,eAAA;AAAA,UAC5B,QAAA;AAAA,UACA,UAAA;AAAA,UACA,IAAA;AAAA,UACA,aAAA;AAAA,UACA,OAAA,EAAS,gBAAA;AAAA,UACT,KAAA,EAAO;AAAA,YACL,MAAA,EAAQ,WAAW,aAAA,GAAgB,SAAA;AAAA,YACnC,GAAG;AAAA,WACL;AAAA,UACA,8BACEA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAS,CAAA,CAAA,KAAK;AACZ,gBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,gBAAA,IAAI,CAAC,QAAA,EAAU;AACb,kBAAA,SAAA,CAAU,CAAC,MAAM,CAAA;AAAA,gBACnB;AAAA,cACF,CAAA;AAAA,cACA,KAAA,EAAO;AAAA,gBACL,MAAA,EAAQ,WAAW,aAAA,GAAgB,SAAA;AAAA,gBACnC,OAAA,EAAS,MAAA;AAAA,gBACT,UAAA,EAAY;AAAA,eACd;AAAA,cAEA,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,4BAAA,EAA6B;AAAA;AAAA;AAC1C;AAAA,OAEJ,EACF,CAAA;AAAA,sBACAA,GAAAA,CAAC,cAAA,EAAA,EAAe,QAAA,EAAU,EAAA,EAAI,OAAO,EAAE,QAAA,EAAU,OAAA,EAAQ,EACvD,QAAA,kBAAAA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,SAAA;AAAA,UACP,YAAA;AAAA,UACA,aAAA,EAAa,IAAA;AAAA,UACb,sBAAA,EAAsB,IAAA;AAAA,UACtB,wBAAA,EAA0B,KAAA;AAAA,UAC1B,OAAA,EAAS,GAAA,GAAM,IAAI,IAAA,CAAK,GAAG,CAAA,GAAI;AAAA;AAAA,OACjC,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAO,uBAAA,GAAQ,eAAA;AC5Ff,IAAM,UAAA,GAAc,oBAA4B,OAAA,IAAW,mBAAA;AAC3D,IAAMJ,aAAYC,UAAAA,CAAW;AAAA,EAC3B,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,KAAKC,MAAAA,CAAO,iBAAA;AAAA,IACZ,cAAcA,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAOA,MAAAA,CAAO,0BAAA;AAAA,IACd,UAAUA,MAAAA,CAAO;AAAA,GACnB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,UAAUA,MAAAA,CAAO;AAAA,GACnB;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,IACxB,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,MACxB,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,SAAA,EAAW;AAAA,IACT,SAASA,MAAAA,CAAO,gBAAA;AAAA,IAChB,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,IAC/C,cAAcA,MAAAA,CAAO,kBAAA;AAAA,IACrB,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,IACxB,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,SAAA,EAAW;AAAA,MACT,OAAA,EAAS,CAAA,UAAA,EAAaA,MAAAA,CAAO,iBAAiB,CAAA;AAAA;AAChD,GACF;AAAA,EACA,WAAA,EAAa;AAAA;AAAA,GAEb;AAAA,EACA,gBAAA,EAAkB;AAAA;AAAA,GAElB;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,MAAA;AAAA,IACT,KAAKA,MAAAA,CAAO,kBAAA;AAAA,IACZ,UAAA,EAAY,YAAA;AAAA,IACZ,KAAA,EAAO;AAAA,GACT;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,QAAA,EAAU,OAAA;AAAA,IACV,QAAA,EAAU,OAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACd;AAAA,EACA,aAAA,EAAe;AAAA,IACb,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW;AAAA,KACb;AAAA,IACA,0BAAA,EAA4B;AAAA,MAC1B,MAAA,EAAQ,MAAA;AAAA,MACR,KAAA,EAAO,MAAA;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA,sBAAA,EAAwB;AAAA,MACtB,MAAA,EAAQ,MAAA;AAAA,MACR,KAAA,EAAO,MAAA;AAAA,MACP,YAAA,EAAc;AAAA;AAChB,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,SAAA,EAAW;AAAA,MACT,SAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,0BAAA,EAA4B;AAAA,MAC1B,oBAAA,EAAsB,mCAAA;AAAA,MACtB,yBAAA,EAA2B,CAAA,EAAGA,MAAAA,CAAO,uBAAuB,CAAA,WAAA;AAAA,KAC9D;AAAA,IACA,gCAAA,EAAkC;AAAA,MAChC,oBAAA,EAAsB;AAAA,KACxB;AAAA,IACA,gCAAA,EAAkC;AAAA,MAChC,oBAAA,EAAsB;AAAA,KACxB;AAAA,IACA,iCAAA,EAAmC;AAAA,MACjC,oBAAA,EAAsB;AAAA;AACxB,GACF;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,KAAA,EAAO,MAAA;AAAA,IACP,oBAAA,EAAsB;AAAA,MACpB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,kCAAA,EAAoC;AAAA,MAClC,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,MAC/C,cAAcA,MAAAA,CAAO,kBAAA;AAAA,MACrB,SAASA,MAAAA,CAAO,gBAAA;AAAA,MAChB,WAAA,EAAa,MAAA;AAAA,MACb,UAAUA,MAAAA,CAAO,eAAA;AAAA,MACjB,YAAYA,MAAAA,CAAO,cAAA;AAAA,MACnB,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,MACxB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,MACd,OAAA,EAAS,MAAA;AAAA,MACT,MAAA,EAAQ,MAAA;AAAA,MACR,SAAA,EAAW;AAAA,KACb;AAAA,IACA,+CAAA,EAAiD;AAAA,MAC/C,UAAUA,MAAAA,CAAO;AAAA,KACnB;AAAA,IACA,wCAAA,EAA0C;AAAA,MACxC,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,wBAAwB,CAAA;AAAA,KACtD;AAAA,IACA,wCAAA,EAA0C;AAAA,MACxC,YAAA,EAAc,CAAA,UAAA,EAAaA,MAAAA,CAAO,iBAAiB,CAAA;AAAA;AAAA,KAErD;AAAA,IACA,2CAAA,EAA6C;AAAA,MAC3C,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,MACxB,OAAOA,MAAAA,CAAO,8BAAA;AAAA,MACd,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,mCAAA,EAAqC;AAAA,MACnC,MAAA,EAAQ,MAAA;AAAA,MACR,eAAA,EAAiB,aAAA;AAAA,MACjB,cAAcA,MAAAA,CAAO;AAAA,KACvB;AAAA,IACA,mCAAA,EAAqC;AAAA,MACnC,OAAA,EAAS,WAAA;AAAA,MACT,KAAA,EAAO,MAAA;AAAA,MACP,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,yCAAA,EAA2C;AAAA,MACzC,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,uDAAA,EAAyD;AAAA,MACvD,eAAA,EAAiB;AAAA;AACnB,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,kCAAA,EAAoC;AAAA,MAClC,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,sBAAsB,CAAA;AAAA,KACpD;AAAA,IACA,wCAAA,EAA0C;AAAA,MACxC,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,sBAAsB,CAAA,CAAA;AAAA,MAClD,SAAA,EAAW,CAAA,UAAA,EAAaA,MAAAA,CAAO,sBAAsB,CAAA;AAAA;AACvD,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,KAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACP;AAAA,EACA,UAAA,EAAY;AAAA,IACV,yBAAA,EAA2B;AAAA,MACzB,OAAA,EAAS;AAAA,KACX;AAAA,IACA,qBAAA,EAAuB;AAAA,MACrB,OAAA,EAAS,WAAA;AAAA,MACT,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,MAC/C,cAAcA,MAAAA,CAAO,oBAAA;AAAA,MACrB,MAAA,EAAQ,SAAA;AAAA,MACR,UAAA,EAAY,eAAA;AAAA,MACZ,UAAUA,MAAAA,CAAO,eAAA;AAAA,MACjB,OAAOA,MAAAA,CAAO;AAAA,KAChB;AAAA,IACA,2BAAA,EAA6B;AAAA,MAC3B,iBAAiBA,MAAAA,CAAO,4BAAA;AAAA,MACxB,MAAA,EAAQ,CAAA,UAAA,EAAa,gBAAA,CAAS,eAAA,CAAgB,mBAAmB,CAAA;AAAA,KACnE;AAAA,IACA,iDAAA,EAAmD;AAAA,MACjD,cAAcA,MAAAA,CAAO,kBAAA;AAAA,MACrB,MAAA,EAAQ,CAAA,UAAA,EAAa,gBAAA,CAAS,eAAA,CAAgB,mBAAmB,CAAA,CAAA;AAAA,MACjE,KAAA,EAAO,iBAAS,eAAA,CAAgB,mBAAA;AAAA,MAChC,eAAA,EAAiB;AAAA,KACnB;AAAA;AAAA,IAEA,0CAAA,EAA4C;AAAA,MAC1C,cAAcA,MAAAA,CAAO,kBAAA;AAAA,MACrB,MAAA,EAAQ,CAAA,UAAA,EAAa,gBAAA,CAAS,eAAA,CAAgB,mBAAmB,CAAA,CAAA;AAAA,MACjE,KAAA,EAAO,iBAAS,eAAA,CAAgB,mBAAA;AAAA,MAChC,eAAA,EAAiB;AAAA,KACnB;AAAA;AAAA,IAEA,kDAAA,EAAoD;AAAA,MAClD,OAAA,EAAS,GAAA;AAAA,MACT,MAAA,EAAQ,aAAA;AAAA,MACR,iBAAiBA,MAAAA,CAAO;AAAA,KAC1B;AAAA,IACA,wDAAA,EAA0D;AAAA,MACxD,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,MACxB,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA;AAAA;AACjD;AAEJ,CAAC,CAAA;AAqBD,IAAM,kBAAA,GAAqB,CAAC,KAAA,KAA4C;AACtE,EAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AAGnB,EAAA,MAAM,WAAA,GAAc,OAAO,KAAK,CAAA;AAGhC,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,OAAA;AAGtC,EAAA,IAAI,WAAA,CAAY,UAAA,CAAW,GAAG,CAAA,EAAG,OAAO,OAAA;AAQxC,EAAA,OAAO,IAAA;AACT,CAAA;AAeA,IAAM,wBAAA,GAA2B,CAAC,KAAA,KAA8C;AAC9E,EAAA,IAAI,CAAC,OAAO,OAAO,MAAA;AAGnB,EAAA,IAAI,KAAA,CAAM,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,OAAA;AAGhC,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG,OAAO,OAAA;AAGlC,EAAA,IAAI,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,EAAG,OAAO,OAAA;AAG/B,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,EAAG,OAAO,OAAA;AAEhC,EAAA,OAAO,MAAA;AACT,CAAA;AAEA,IAAM,eAA4C,CAAC;AAAA,EACjD,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,UAAU,EAAC;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,MAAA;AAAA,EACA,IAAA,GAAO,CAAA;AAAA,EACP,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,eAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA,GAAiB,IAAA;AAAA,EACjB,SAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,YAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,KAAyB;AAEvB,EAAA,MAAM,SAASF,UAAAA,EAAU;AACzB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIe,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,SAAqC,MAAM,CAAA;AAC3F,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAmC,IAAI,CAAA;AAC/E,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,SAAS,EAAE,CAAA;AACvD,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GAAIA,SAAS,EAAE,CAAA;AACrE,EAAA,MAAM,QAAA,GAAWC,OAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,aAAA,GAAgBA,OAAY,IAAI,CAAA;AACtC,EAAA,MAAM,oBAAA,GAAuBA,OAAY,IAAI,CAAA;AAC7C,EAAA,MAAM,cAAA,GAAiBA,OAAO,KAAK,CAAA;AACnC,EAAA,MAAM,wBAAA,GAA2BA,OAAO,KAAK,CAAA;AAG7C,EAAA,MAAM,eAAA,GAAkB,CAACC,SAAAA,MAAuB;AAAA,IAC9C,UAAA,EAAY,CAAC,IAAA,MAAe;AAAA,MAC1B,GAAG,IAAA;AAAA,MACH,MAAA,EAAQ,OAAA;AAAA,MACR,cAAcf,MAAAA,CAAO;AAAA,KACvB,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,QAAA,EAAe,KAAA,MAAgB;AAAA,MACvC,GAAG,QAAA;AAAA,MACH,WAAA,EAAae,YACTf,MAAAA,CAAO,sBAAA,GACP,MAAM,SAAA,GACJA,MAAAA,CAAO,oBACPA,MAAAA,CAAO,mBAAA;AAAA,MACb,cAAcA,MAAAA,CAAO,kBAAA;AAAA,MACrB,SAAA,EAAW,MAAA;AAAA,MACX,UAAUA,MAAAA,CAAO,eAAA;AAAA,MACjB,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,MACxB,SAAA,EAAW,MAAM,SAAA,GACb,CAAA,UAAA,EAAae,YAAWf,MAAAA,CAAO,sBAAA,GAAyBA,MAAAA,CAAO,iBAAiB,CAAA,CAAA,GAChF,MAAA;AAAA,MACJ,SAAA,EAAW;AAAA,QACT,WAAA,EAAae,SAAAA,GAAWf,MAAAA,CAAO,sBAAA,GAAyBA,MAAAA,CAAO;AAAA;AACjE,KACF,CAAA;AAAA,IACA,IAAA,EAAM,CAAC,QAAA,MAAmB;AAAA,MACxB,GAAG,QAAA;AAAA,MACH,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,MAC/C,cAAcA,MAAAA,CAAO,kBAAA;AAAA,MACrB,MAAA,EAAQ;AAAA,KACV,CAAA;AAAA,IACA,QAAA,EAAU,CAAC,QAAA,MAAmB;AAAA,MAC5B,GAAG,QAAA;AAAA,MACH,OAAA,EAAS,CAAA;AAAA;AAAA,MACT,SAAA,EAAW,OAAA;AAAA;AAAA;AAAA,MAGX,sBAAA,EAAwB;AAAA,QACtB,KAAA,EAAO,KAAA;AAAA,QACP,OAAA,EAAS;AAAA;AAAA,OACX;AAAA,MACA,4BAAA,EAA8B;AAAA,QAC5B,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,QACxB,YAAA,EAAc;AAAA,OAChB;AAAA,MACA,4BAAA,EAA8B;AAAA,QAC5B,eAAA,EAAiB,wBAAwBA,MAAAA,CAAO,mBAAA;AAAA,QAChD,YAAA,EAAc;AAAA,OAChB;AAAA,MACA,kCAAA,EAAoC;AAAA,QAClC,eAAA,EAAiB,wBAAwBA,MAAAA,CAAO;AAAA,OAClD;AAAA,MACA,mCAAA,EAAqC;AAAA,QACnC,eAAA,EAAiB,wBAAwBA,MAAAA,CAAO;AAAA;AAClD,KACF,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,QAAA,EAAe,KAAA,MAAgB;AAAA,MACtC,GAAG,QAAA;AAAA,MACH,UAAUA,MAAAA,CAAO,eAAA;AAAA,MACjB,KAAA,EAAO,KAAA,CAAM,UAAA,GACTA,MAAAA,CAAO,gCACPA,MAAAA,CAAO,uBAAA;AAAA,MACX,eAAA,EAAiB,MAAM,UAAA,GACnBA,MAAAA,CAAO,uBACP,KAAA,CAAM,SAAA,GACJA,OAAO,4BAAA,GACP;AAAA,KACR,CAAA;AAAA,IACA,WAAA,EAAa,CAAC,QAAA,MAAmB;AAAA,MAC/B,GAAG,QAAA;AAAA,MACH,OAAOA,MAAAA,CAAO,uBAAA;AAAA,MACd,UAAUA,MAAAA,CAAO;AAAA,KACnB,CAAA;AAAA,IACA,WAAA,EAAa,CAAC,QAAA,MAAmB;AAAA,MAC/B,GAAG,QAAA;AAAA,MACH,OAAOA,MAAAA,CAAO,uBAAA;AAAA,MACd,UAAUA,MAAAA,CAAO;AAAA,KACnB;AAAA,GACF,CAAA;AAGA,EAAAgB,UAAU,MAAM;AACd,IAAA,IAAI,eAAe,OAAA,EAAS;AAE1B,MAAA,UAAA,CAAW,MAAM;AAOf,QAAA,IAAI,YAAA,KAAiB,OAAA,IAAW,aAAA,CAAc,OAAA,EAAS;AAErD,UAAA,MAAM,UAAA,GAAa,aAAA,CAAc,OAAA,CAAQ,aAAA,CAAc,oBAAoB,CAAA;AAC3E,UAAA,IAAI,UAAA,EAAY;AACd,YAAA,UAAA,CAAW,KAAA,EAAM;AAEjB,YAAA,MAAM,GAAA,GAAM,WAAW,KAAA,CAAM,MAAA;AAC7B,YAAA,UAAA,CAAW,iBAAA,CAAkB,KAAK,GAAG,CAAA;AAAA,UACvC;AAAA,QACF,CAAA,MAAA,IAAW,SAAS,OAAA,EAAS;AAC3B,UAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AAGvB,UAAA,MAAM,SAAA,GAAY,SAAS,OAAA,CAAQ,IAAA;AACnC,UAAA,IACE,cAAc,MAAA,IACd,SAAA,KAAc,SACd,SAAA,KAAc,KAAA,IACd,cAAc,QAAA,EACd;AACA,YAAA,MAAM,GAAA,GAAM,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,MAAA;AACnC,YAAA,QAAA,CAAS,OAAA,CAAQ,iBAAA,CAAkB,GAAA,EAAK,GAAG,CAAA;AAAA,UAC7C;AAAA,QACF;AACA,QAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,MAC3B,GAAG,EAAE,CAAA;AAAA,IACP;AAAA,EACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAGjB,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,cAAA,CAAe,OAAA,IAAW,IAAA,KAAS,cAAA,EAAgB;AACrD,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,IAAI,gBAAA,KAAqB,OAAA,IAAW,oBAAA,CAAqB,OAAA,EAAS;AAChE,UAAA,MAAM,UAAA,GAAa,oBAAA,CAAqB,OAAA,CAAQ,aAAA,CAAc,oBAAoB,CAAA;AAClF,UAAA,IAAI,UAAA,EAAY;AACd,YAAA,UAAA,CAAW,KAAA,EAAM;AACjB,YAAA,MAAM,GAAA,GAAM,WAAW,KAAA,CAAM,MAAA;AAC7B,YAAA,UAAA,CAAW,iBAAA,CAAkB,KAAK,GAAG,CAAA;AAAA,UACvC;AAAA,QACF,CAAA,MAAA,IAAW,SAAS,OAAA,EAAS;AAC3B,UAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AACvB,UAAA,MAAM,SAAA,GAAY,SAAS,OAAA,CAAQ,IAAA;AAEnC,UAAA,IACE,cAAc,MAAA,IACd,SAAA,KAAc,SACd,SAAA,KAAc,KAAA,IACd,cAAc,QAAA,EACd;AACA,YAAA,MAAM,GAAA,GAAM,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,MAAA;AACnC,YAAA,QAAA,CAAS,OAAA,CAAQ,iBAAA,CAAkB,GAAA,EAAK,GAAG,CAAA;AAAA,UAC7C;AAAA,QACF;AACA,QAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,MAC3B,GAAG,EAAE,CAAA;AAAA,IACP;AAAA,EACF,CAAA,EAAG,CAAC,gBAAA,EAAkB,IAAI,CAAC,CAAA;AAU3B,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAe;AACzC,IAAA,MAAM,cAAc,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,OAAO,WAAA,IAAe,EAAA;AAC9E,IAAA,MAAM,YAAA,GAAe,mBAAmB,WAAW,CAAA;AACnD,IAAA,IAAI,iBAAiB,YAAA,EAAc;AACjC,MAAA,eAAA,CAAgB,YAAY,CAAA;AAAA,IAC9B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyB,CAAC,KAAA,KAAe;AAC7C,IAAA,MAAM,WAAA,GAAc,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,EAAA;AACxD,IAAA,MAAM,YAAA,GAAe,yBAAyB,WAAW,CAAA;AACzD,IAAA,IAAI,iBAAiB,gBAAA,EAAkB;AACrC,MAAA,mBAAA,CAAoB,YAAY,CAAA;AAAA,IAClC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,EAAY,KAAA,KAAmB;AAElD,IAAA,MAAM,uBAAA,GACJ,QAAA,IAAY,UAAA,KAAe,SAAA,IAAa,UAAA,KAAe,WAAA;AAEzD,IAAA,MAAM,aAAa,uBAAA,GAA0B,EAAE,GAAG,KAAA,EAAO,MAAA,EAAQ,eAAc,GAAI,KAAA;AAEnF,IAAA,MAAM,iBAAA,GAAoB,CAAC,CAAA,KAAW;AACpC,MAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AAChB,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,QAAA,CAAS,CAAA,CAAE,MAAA,EAAQ,KAAA,IAAS,CAAC,CAAA;AAAA,MAC/B;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,GAAG,KAAA;AAAA,MACH,QAAA,EAAU,iBAAA;AAAA,MACV,KAAA,EAAO,MAAM,KAAA,IAAS,EAAA;AAAA,MACtB,WAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA,EAAY,QAAQ,SAAA,GAAY,UAAA;AAAA,MAChC,IAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA,EAAO,UAAA;AAAA,MACP,SAAA;AAAA,MACA,cAAc,YAAA,IAAgB,KAAA;AAAA,MAC9B,YAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,QAAA,GAAW,YAAA,CAAa,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA;AAC/C,IAAA,MAAMC,YAAW,QAAA,GAAW,QAAA,CAAS,SAAS,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI,IAAA;AAGxD,IAAA,IAAI,SAAS,cAAA,EAAgB;AAC3B,MAAA,sBAAA,CAAuB,MAAM,KAAK,CAAA;AAElC,MAAA,MAAM,cAAc,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,GAAW,MAAM,KAAA,GAAQ,EAAA;AAGpE,MAAA,IAAI,SAAA,GAAsC,MAAA;AAC1C,MAAA,IAAI,mBAAmB,WAAA,IAAe,qBAAA;AAEtC,MAAA,IAAI,qBAAqB,OAAA,EAAS;AAChC,QAAA,SAAA,GAAY,OAAA;AACZ,QAAA,gBAAA,GAAmB,WAAA,IAAe,OAAA;AAAA,MACpC,CAAA,MAAA,IAAW,qBAAqB,OAAA,EAAS;AACvC,QAAA,SAAA,GAAY,KAAA;AACZ,QAAA,gBAAA,GAAmB,WAAA,IAAe,UAAA;AAAA,MACpC;AAGA,MAAA,MAAM,oBAAA,GAAuB,CAAC,GAAA,KAAwB;AACpD,QAAA,IAAI,CAAC,KAAK,OAAO,GAAA;AAEjB,QAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACxB,UAAA,OAAO,KAAA,GAAQ,GAAA,CAAI,SAAA,CAAU,CAAC,CAAA;AAAA,QAChC;AAEA,QAAA,IAAI,GAAA,CAAI,WAAW,IAAI,CAAA,IAAK,CAAC,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,EAAG;AAChD,UAAA,OAAO,GAAA,GAAM,GAAA;AAAA,QACf;AACA,QAAA,OAAO,GAAA;AAAA,MACT,CAAA;AAGA,MAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,KAAwB;AAC/C,QAAA,IAAI,CAAC,KAAK,OAAO,GAAA;AACjB,QAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,mBAAmB,CAAA;AAC3C,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAO,MAAM,CAAC,CAAA,GAAI,MAAM,CAAC,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,QACxC;AACA,QAAA,OAAO,GAAA;AAAA,MACT,CAAA;AAEA,MACE,gBAAA,KAAqB,OAAA,GAAU,eAAA,CAAgB,WAAW,CAAA,GAAI;AAEhE,MAAA,uBACEf,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,cAAA,EACpB,QAAA,EAAA,gBAAA,KAAqB,0BACpBA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,oBAAA;AAAA,UACL,SAAA,EAAW,GAAG,MAAA,CAAO,iBAAiB,IAAI,KAAA,GAAQ,MAAA,CAAO,kBAAkB,EAAE,CAAA,CAAA;AAAA,UAE7E,QAAA,kBAAAA,GAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,eAAe,WAAA,EAAY;AAAA,cACpC,KAAA,EAAO,YAAY,UAAA,CAAW,GAAG,IAAI,WAAA,CAAY,SAAA,CAAU,CAAC,CAAA,GAAI,WAAA;AAAA,cAChE,QAAA,EAAU,CAAC,KAAA,EAAe,IAAA,KAAc;AACtC,gBAAA,IAAI,CAAC,KAAA,EAAO;AACV,kBAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,kBAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AACjB,kBAAA,sBAAA,CAAuB,EAAE,CAAA;AACzB,kBAAA,wBAAA,CAAyB,EAAE,CAAA;AAC3B,kBAAA;AAAA,gBACF;AAEA,gBAAA,MAAM,eAAA,GAAkB,MAAM,QAAA,IAAY,EAAA;AAE1C,gBAAA,IAAI,UAAU,eAAA,EAAiB;AAC7B,kBAAA,MAAM,kBACJ,qBAAA,IACA,qBAAA,KAA0B,mBAC1B,CAAC,qBAAA,CAAsB,WAAW,eAAe,CAAA;AAEnD,kBAAA,MAAM,YAAY,CAAC,qBAAA;AACnB,kBAAA,MAAM,aAAA,GAAgB,qBAAA,IAAyB,qBAAA,CAAsB,MAAA,GAAS,CAAA;AAE9E,kBAAA,IAAI,SAAA,IAAa,mBAAmB,aAAA,EAAe;AACjD,oBAAA,MAAMgB,cAAa,GAAA,GAAM,KAAA;AACzB,oBAAA,KAAA,CAAM,SAASA,WAAU,CAAA;AACzB,oBAAA,sBAAA,CAAuBA,WAAU,CAAA;AACjC,oBAAA,wBAAA,CAAyB,KAAK,CAAA;AAC9B,oBAAA;AAAA,kBACF,CAAA,MAAO;AACL,oBAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,oBAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AACjB,oBAAA,sBAAA,CAAuB,EAAE,CAAA;AACzB,oBAAA,wBAAA,CAAyB,EAAE,CAAA;AAC3B,oBAAA;AAAA,kBACF;AAAA,gBACF;AAEA,gBAAA,MAAM,aAAa,GAAA,GAAM,KAAA;AACzB,gBAAA,KAAA,CAAM,SAAS,UAAU,CAAA;AACzB,gBAAA,sBAAA,CAAuB,UAAU,CAAA;AACjC,gBAAA,wBAAA,CAAyB,KAAK,CAAA;AAAA,cAChC,CAAA;AAAA,cACA,WAAA,EAAa,gBAAA;AAAA,cACb,QAAA;AAAA,cACA,YAAA,EAAY;AAAA;AAAA;AACd;AAAA,0BAGFhB,GAAAA;AAAA,QAACiB,KAAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,KAAA,EAAO,WAAA;AAAA,UACP,SAAA;AAAA,UACA,cAAc,YAAA,IAAgB,KAAA;AAAA,UAC9B,QAAA,EAAU,CAAC,CAAA,KAAW;AACpB,YAAA,MAAM,QAAA,GAAW,EAAE,MAAA,CAAO,KAAA;AAC1B,YAAA,MAAM,cAAA,GAAiB,gBAAA,KAAqB,wBAAA,CAAyB,QAAQ,CAAA;AAE7E,YAAA,IAAI,cAAA,iBAA+B,OAAA,GAAU,IAAA;AAG7C,YAAA,IAAI,eAAA,GAAkB,QAAA;AACtB,YAAA,MAAM,YAAA,GAAe,yBAAyB,QAAQ,CAAA;AACtD,YAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,cAAA,eAAA,GAAkB,qBAAqB,QAAQ,CAAA;AAAA,YACjD;AAEA,YAAA,KAAA,CAAM,SAAS,eAAe,CAAA;AAC9B,YAAA,sBAAA,CAAuB,eAAe,CAAA;AAAA,UACxC,CAAA;AAAA,UACA,WAAA,EAAa,gBAAA;AAAA,UACb,QAAA;AAAA,UACA,UAAA;AAAA,UACA,IAAA;AAAA,UACA,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA;AAAO;AAAA,OACzB,EAEJ,CAAA;AAAA,IAEJ;AAGA,IAAA,IAAI,SAAS,UAAA,EAAY;AAEvB,MAAA,kBAAA,CAAmB,MAAM,KAAK,CAAA;AAE9B,MAAA,MAAM,cAAc,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,GAAW,MAAM,KAAA,GAAQ,EAAA;AAGpE,MAAA,IAAI,SAAA,GAAiD,MAAA;AACrD,MAAA,IAAI,mBAAmB,WAAA,IAAe,+CAAA;AAEtC,MAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,QAAA,SAAA,GAAY,OAAA;AACZ,QAAA,gBAAA,GAAmB,WAAA,IAAe,OAAA;AAAA,MACpC,CAAA,MAAA,IAAW,iBAAiB,OAAA,EAAS;AACnC,QAAA,SAAA,GAAY,KAAA;AACZ,QAAA,gBAAA,GAAmB,WAAA,IAAe,eAAA;AAAA,MACpC,CAAA,MAAA,IAAW,iBAAiB,IAAA,EAAM;AAChC,QAAA,SAAA,GAAY,MAAA;AACZ,QAAA,gBAAA,GAAmB,WAAA,IAAe,yBAAA;AAAA,MACpC;AAGA,MAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,KAAwB;AAC/C,QAAA,IAAI,CAAC,KAAK,OAAO,GAAA;AAEjB,QAAA,MAAM,SAAA,GAAY,OAAO,GAAG,CAAA;AAG5B,QAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,mBAAmB,CAAA;AACjD,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAO,MAAM,CAAC,CAAA,GAAI,MAAM,CAAC,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,QACxC;AACA,QAAA,OAAO,SAAA;AAAA,MACT,CAAA;AAEA,MAAqB,YAAA,KAAiB,OAAA,GAAU,eAAA,CAAgB,WAAW,CAAA,GAAI;AAE/E,MAAA,uBACEjB,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,cAAA,EACpB,QAAA,EAAA,YAAA,KAAiB,0BAChBA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,aAAA;AAAA,UACL,SAAA,EAAW,GAAG,MAAA,CAAO,iBAAiB,IAAI,KAAA,GAAQ,MAAA,CAAO,kBAAkB,EAAE,CAAA,CAAA;AAAA,UAE7E,QAAA,kBAAAA,GAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,eAAe,WAAA,EAAY;AAAA,cACpC,KAAA,EAAO,YAAY,UAAA,CAAW,GAAG,IAAI,WAAA,CAAY,SAAA,CAAU,CAAC,CAAA,GAAI,WAAA;AAAA,cAChE,QAAA,EAAU,CAAC,KAAA,EAAe,IAAA,KAAc;AAEtC,gBAAA,IAAI,CAAC,KAAA,EAAO;AACV,kBAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,kBAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AACjB,kBAAA,kBAAA,CAAmB,EAAE,CAAA;AACrB,kBAAA,iBAAA,CAAkB,EAAE,CAAA;AACpB,kBAAA;AAAA,gBACF;AAGA,gBAAA,MAAM,eAAA,GAAkB,MAAM,QAAA,IAAY,EAAA;AAG1C,gBAAA,IAAI,UAAU,eAAA,EAAiB;AAE7B,kBAAA,MAAM,kBACJ,cAAA,IACA,cAAA,KAAmB,mBACnB,CAAC,cAAA,CAAe,WAAW,eAAe,CAAA;AAG5C,kBAAA,MAAM,YAAY,CAAC,cAAA;AAGnB,kBAAA,MAAM,aAAA,GAAgB,cAAA,IAAkB,cAAA,CAAe,MAAA,GAAS,CAAA;AAEhE,kBAAA,IAAI,SAAA,IAAa,mBAAmB,aAAA,EAAe;AAEjD,oBAAA,MAAMgB,cAAa,GAAA,GAAM,KAAA;AACzB,oBAAA,KAAA,CAAM,SAASA,WAAU,CAAA;AACzB,oBAAA,kBAAA,CAAmBA,WAAU,CAAA;AAC7B,oBAAA,iBAAA,CAAkB,KAAK,CAAA;AACvB,oBAAA;AAAA,kBACF,CAAA,MAAO;AAEL,oBAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,oBAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AACjB,oBAAA,kBAAA,CAAmB,EAAE,CAAA;AACrB,oBAAA,iBAAA,CAAkB,EAAE,CAAA;AACpB,oBAAA;AAAA,kBACF;AAAA,gBACF;AAGA,gBAAA,MAAM,aAAa,GAAA,GAAM,KAAA;AAEzB,gBAAA,KAAA,CAAM,SAAS,UAAU,CAAA;AACzB,gBAAA,kBAAA,CAAmB,UAAU,CAAA;AAC7B,gBAAA,iBAAA,CAAkB,KAAK,CAAA;AAAA,cACzB,CAAA;AAAA,cACA,WAAA,EAAa,gBAAA;AAAA,cACb,QAAA;AAAA,cACA,YAAA,EAAY,IAAA;AAAA,cACZ,iBAAA,EAAiB;AAAA;AAAA;AACnB;AAAA,0BAGFhB,GAAAA;AAAA,QAACiB,KAAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,KAAA,EAAO,WAAA;AAAA,UACP,SAAA;AAAA,UACA,cAAc,YAAA,IAAgB,KAAA;AAAA,UAC9B,QAAA,EAAU,CAAC,CAAA,KAAW;AACpB,YAAA,MAAM,QAAA,GAAW,EAAE,MAAA,CAAO,KAAA;AAC1B,YAAA,MAAM,cAAA,GAAiB,YAAA,KAAiB,kBAAA,CAAmB,QAAQ,CAAA;AAEnE,YAAA,IAAI,cAAA,iBAA+B,OAAA,GAAU,IAAA;AAE7C,YAAA,KAAA,CAAM,SAAS,QAAQ,CAAA;AAGvB,YAAA,kBAAA,CAAmB,QAAQ,CAAA;AAAA,UAC7B,CAAA;AAAA,UACA,WAAA,EAAa,gBAAA;AAAA,UACb,QAAA;AAAA,UACA,UAAA;AAAA,UACA,IAAA;AAAA,UACA,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA;AAAO;AAAA,OACzB,EAEJ,CAAA;AAAA,IAEJ;AAEA,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,UAAA;AACH,QAAA,uBAAOjB,GAAAA,CAAC,QAAA,EAAA,EAAU,GAAG,WAAA,EAAa,IAAA,EAAY,QAAO,UAAA,EAAW,CAAA;AAAA,MAElE,KAAK,QAAA;AACH,QAAA,uBACEA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACE,GAAG,KAAA;AAAA,YACJ,IAAA,EAAM,CAAA,EAAG,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAAA,YAChE,UAAA,EAAY,QAAA;AAAA,YACZ,WAAA;AAAA,YACA,OAAA;AAAA,YACA,MAAA,EAAQ,eAAA,CAAgB,CAAC,CAAC,KAAK,CAAA;AAAA,YAC/B,WAAW,MAAA,CAAO,WAAA;AAAA,YAClB,eAAA,EAAgB,cAAA;AAAA,YAChB,OAAA,EAAS,aAAA;AAAA,YACT,UAAA,EAAY;AAAA,cACV,YAAA,EAAc,cAAA;AAAA,cACd,WAAA,EAAa,KAAA;AAAA,cACb,cAAA,EAAgB,KAAA;AAAA,cAChB,UAAA,EAAY;AAAA,aACd;AAAA,YACA,OACE,aAAA,GACI,OAAA,CAAQ,OAAO,CAAA,MAAA,KAAU,KAAA,CAAM,OAAO,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA,GAC5D,QAAQ,IAAA,CAAK,CAAA,MAAA,KAAU,OAAO,KAAA,KAAU,KAAA,CAAM,KAAK,CAAA,IAAK,IAAA;AAAA,YAE9D,QAAA,EAAU,CAAC,cAAA,KAAwB;AACjC,cAAA,IAAI,aAAA,EAAe;AACjB,gBAAA,MAAM,MAAA,GAAS,iBACX,cAAA,CAAe,GAAA,CAAI,CAAC,GAAA,KAAsB,GAAA,CAAI,KAAK,CAAA,GACnD,EAAC;AACL,gBAAA,KAAA,CAAM,SAAS,MAAM,CAAA;AAAA,cACvB,CAAA,MAAO;AACL,gBAAA,KAAA,CAAM,QAAA,CAAS,cAAA,GAAiB,cAAA,CAAe,KAAA,GAAQ,EAAE,CAAA;AAAA,cAC3D;AAAA,YACF,CAAA;AAAA,YACA,cAAA,EAAgB,CAAC,MAAA,KAAyB,MAAA,CAAO,KAAA;AAAA,YACjD,cAAA,EAAgB,CAAC,MAAA,KAAyB,MAAA,CAAO,KAAA;AAAA,YACjD,gBAAA,EAAkB,CAAC,MAAA,KAAyB,MAAA,CAAO,QAAA,IAAY;AAAA;AAAA,SAEjE;AAAA,MAGJ,KAAK,OAAA,EAAS;AAEZ,QAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,KAAwB;AAC/C,UAAA,IAAI,CAAC,KAAK,OAAO,GAAA;AAEjB,UAAA,MAAM,SAAA,GAAY,OAAO,GAAG,CAAA;AAE5B,UAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,mBAAmB,CAAA;AACjD,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,OAAO,MAAM,CAAC,CAAA,GAAI,MAAM,CAAC,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,UACxC;AACA,UAAA,OAAO,SAAA;AAAA,QACT,CAAA;AAEA,QAAA,MAAM,iBAAA,GAAoB,eAAA,CAAgB,KAAA,CAAM,KAAA,IAAS,EAAE,CAAA;AAE3D,QAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,iBAAiB,CAAA,CAAA,EAAI,KAAA,GAAQ,MAAA,CAAO,eAAA,GAAkB,EAAE,IAChF,QAAA,kBAAAA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,eAAe,WAAA,EAAY;AAAA,YACpC,KAAA,EAAO,iBAAA;AAAA,YACP,QAAA,EAAU,CAAC,KAAA,EAAe,IAAA,KAAc;AACtC,cAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,KAAA,IAAS,EAAE,CAAA;AAChD,cAAA,KAAA,CAAM,SAAS,YAAY,CAAA;AAAA,YAC7B,CAAA;AAAA,YACA,aAAa,WAAA,IAAe,eAAA;AAAA,YAC5B,QAAA;AAAA,YACA,YAAA,EAAY,IAAA;AAAA,YACZ,iBAAA,EAAiB;AAAA;AAAA,SACnB,EACF,CAAA;AAAA,MAEJ;AAAA,MAGA,KAAK,MAAA;AACH,QAAA,uBACEA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACE,GAAG,KAAA;AAAA,YACJ,IAAA,EAAK,MAAA;AAAA,YACL,QAAA;AAAA,YACA,MAAA;AAAA,YACA,QAAA;AAAA,YACA,WAAW,MAAA,CAAO,SAAA;AAAA,YAClB,KAAA,EAAO,MAAA;AAAA,YACP,UAAU,CAAA,CAAA,KAAK;AACb,cAAA,MAAM,KAAA,GAAQ,EAAE,MAAA,CAAO,KAAA;AACvB,cAAA,KAAA,CAAM,QAAA,CAAS,QAAA,GAAW,KAAA,GAAQ,KAAA,GAAQ,CAAC,CAAC,CAAA;AAAA,YAC9C;AAAA;AAAA,SACF;AAAA,MAGJ,KAAK,QAAA;AACH,QAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eACrB,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACE,GAAG,KAAA;AAAA,YACJ,OAAA,EAAS,MAAM,KAAA,IAAS,KAAA;AAAA,YACxB,QAAA;AAAA,YACA,UAAU,CAAC,CAAA,EAAG,SAAS,KAAA,CAAM,QAAA,CAAS,KAAK,OAAO;AAAA;AAAA,SACpD,EACF,CAAA;AAAA,MAGJ,KAAK,MAAA,EAAQ;AACX,QAAA,uBACEA,GAAAA;AAAA,UAAC,uBAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,WAAA;AAAA,YACA,QAAA;AAAA,YACA,UAAA,EAAY,QAAQ,SAAA,GAAY,UAAA;AAAA,YAChC,IAAA;AAAA,YACA,OAAA;AAAA,YACA,KAAA,EAAO,UAAA;AAAA,YACP,GAAA,EAAK,GAAA,GAAM,MAAA,CAAO,GAAG,CAAA,GAAI;AAAA;AAAA,SAC3B;AAAA,MAEJ;AAAA,MAEA,KAAK,OAAA;AACH,QAAA,uBACEA,GAAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,QAAA,EAAoB,MAAA,EAAQ,MAAA,IAAU,UAAA,EAC1D,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,MAAA,qBACXA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,OAAO,MAAA,CAAO,KAAA;AAAA,YACd,OAAO,MAAA,CAAO,KAAA;AAAA,YACd,UAAU,MAAA,CAAO;AAAA,WAAA;AAAA,UAHZ,MAAA,CAAO;AAAA,SAKf,CAAA,EACH,CAAA;AAAA,MAGJ,KAAK,aAAA;AACH,QAAA,uBACEA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACE,GAAG,KAAA;AAAA,YACJ,QAAA;AAAA,YACA,QAAQ,MAAA,IAAU,YAAA;AAAA,YAClB,WAAW,MAAA,CAAO,eAAA;AAAA,YAEjB,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,MAAA,qBACXA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,OAAO,MAAA,CAAO,KAAA;AAAA,gBACd,OAAO,MAAA,CAAO,KAAA;AAAA,gBACd,QAAA,EAAU,YAAY,MAAA,CAAO,QAAA;AAAA,gBAC7B,WAAW,MAAA,CAAO;AAAA,eAAA;AAAA,cAJb,MAAA,CAAO;AAAA,aAMf;AAAA;AAAA,SACH;AAAA,MAGJ,KAAK,UAAA;AACH,QAAA,uBACEA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACE,GAAG,KAAA;AAAA,YACJ,OAAA,EAAS,MAAM,KAAA,IAAS,KAAA;AAAA,YACxB,QAAA;AAAA,YACA,UAAU,CAAC,CAAA,EAAG,SAAS,KAAA,CAAM,QAAA,CAAS,KAAK,OAAO,CAAA;AAAA,YAClD;AAAA;AAAA,SACF;AAAA,MAGJ,KAAK,QAAA;AACH,QAAA,uBACEA,GAAAA;AAAA,UAACiB,KAAAA;AAAA,UAAA;AAAA,YACE,GAAG,WAAA;AAAA,YACJ,IAAA,EAAK,QAAA;AAAA,YACL,GAAA;AAAA,YACA,GAAA;AAAA,YACA,IAAA;AAAA,YACA,WAAW,MAAA,CAAO;AAAA;AAAA,SACpB;AAAA,MAGJ,KAAK,MAAA;AAAA,MACL,KAAK,gBAAA;AACH,QAAA,uBACEjB,GAAAA;AAAA,UAACiB,KAAAA;AAAA,UAAA;AAAA,YACE,GAAG,WAAA;AAAA,YACJ,IAAA;AAAA,YACA,GAAA;AAAA,YACA,GAAA;AAAA,YACA,WAAW,MAAA,CAAO;AAAA;AAAA,SACpB;AAAA,MAGJ,KAAK,UAAA;AACH,QAAA,uBACEjB,GAAAA;AAAA,UAACiB,KAAAA;AAAA,UAAA;AAAA,YACE,GAAG,WAAA;AAAA,YACJ,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,YAC9B,WAAW,MAAA,CAAO,qBAAA;AAAA,YAClB,8BACEjB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,aAAA;AAAA,gBACX,IAAA,EACE,YAAA,mBACEH,GAAAA,CAACkB,MAAA,EAAK,IAAA,EAAK,0BAAA,EAA2B,CAAA,mBAEtClB,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,sBAAA,EAAuB,CAAA;AAAA,gBAGtC,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,gBAC7C,OAAA,EAAS,MAAM,eAAA,CAAgB,CAAC,YAAY,CAAA;AAAA,gBAC5C,QAAA,EAAU,EAAA;AAAA,gBACV,IAAA,EAAK;AAAA;AAAA;AACP;AAAA,SAEJ;AAAA,MAGJ,KAAK,KAAA,EAAO;AAEV,QAAA,MAAM,OAAA,GAAU,CAAC,EAAA,KAAY;AAC3B,UAAA,IAAI;AACF,YAAA,IAAI,MAAM,GAAA,EAAK;AACb,cAAA,IAAI,OAAO,KAAA,CAAM,GAAA,KAAQ,UAAA,EAAY,KAAA,CAAM,IAAI,EAAE,CAAA;AAAA,mBAC3C,KAAA,CAAM,GAAA,CAA8B,OAAA,GAAU,EAAA;AAAA,YACtD;AAAA,UACF,CAAA,CAAA,MAAQ;AAAA,UAER;AACA,UAAC,SAAuD,OAAA,GAAU,EAAA;AAAA,QACpE,CAAA;AAEA,QAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAW;AAC/B,UAAA,MAAM,GAAA,GAAM,CAAA,EAAG,MAAA,EAAQ,KAAA,IAAS,EAAA;AAChC,UAAA,MAAM,YAAA,GAAe,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAG1C,UAAA,IAAI,SAAS,OAAA,EAAS;AACpB,YAAA,QAAA,CAAS,QAAQ,KAAA,GAAQ,YAAA;AAAA,UAC3B;AAGA,UAAA,MAAM,YAAA,GAAe;AAAA,YACnB,GAAG,CAAA;AAAA,YACH,MAAA,EAAQ;AAAA,cACN,GAAG,CAAA,CAAE,MAAA;AAAA,cACL,KAAA,EAAO;AAAA;AACT,WACF;AAEA,UAAA,KAAA,CAAM,SAAS,YAAY,CAAA;AAE3B,UAAA,IAAI,WAAA,IAAeH,SAAAA,IAAY,SAAA,IAAa,YAAA,CAAa,UAAU,SAAA,EAAW;AAC5E,YAAA,MAAM,OAAO,QAAA,CAAS,aAAA;AAAA,cACpB,CAAA,iBAAA,EAAoBA,YAAW,CAAC,CAAA,EAAA;AAAA,aAClC;AACA,YAAA,IAAI,IAAA,OAAW,KAAA,EAAM;AAAA,UACvB;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAW;AACjC,UAAA,MAAM,OAAO,CAAA,CAAE,GAAA;AACf,UAAA,IACE,CAAC,MAAA,CAAO,IAAA,CAAK,IAAI,KACjB,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,KAAA,IACT,IAAA,KAAS,WAAA,IACT,SAAS,YAAA,EACT;AACA,YAAA,CAAA,CAAE,cAAA,EAAe;AAAA,UACnB;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAW;AAChC,UAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,YAAA,MAAM,MAAA,GAAS,MAAM,KAAA,IAAS,EAAA;AAC9B,YAAA,IAAI,CAAC,MAAA,IAAUA,SAAAA,KAAa,IAAA,IAAQA,cAAa,MAAA,EAAW;AAC1D,cAAA,MAAM,YAAYA,SAAAA,GAAW,CAAA;AAC7B,cAAA,IAAI,aAAa,CAAA,EAAG;AAElB,gBAAA,wBAAA,CAAyB,OAAA,GAAU,IAAA;AACnC,gBAAA,MAAM,OAAO,QAAA,CAAS,aAAA;AAAA,kBACpB,oBAAoB,SAAS,CAAA,EAAA;AAAA,iBAC/B;AACA,gBAAA,IAAI,IAAA,EAAM;AACR,kBAAA,IAAA,CAAK,KAAA,EAAM;AAAA,gBAEb;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAW;AAE9B,UAAA,IAAIA,SAAAA,EAAU;AAEZ,YAAA,IAAI,eAAA,GAAkB,CAAA;AACtB,YAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAC3B,cAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAgC,CAAA,iBAAA,EAAoB,CAAC,CAAA,EAAA,CAAI,CAAA;AAChF,cAAA,IAAI,KAAA,IAAS,MAAM,KAAA,EAAO;AACxB,gBAAA,eAAA,GAAkB,CAAA;AAAA,cACpB,CAAA,MAAO;AACL,gBAAA;AAAA,cACF;AAAA,YACF;AAGA,YAAA,MAAM,WAAA,GAAc,eAAA,KAAoB,CAAA,GAAI,CAAA,GAAI,eAAA,GAAkB,CAAA;AAGlE,YAAA,IAAIA,YAAW,WAAA,EAAa;AAC1B,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,MAAM,cAAc,QAAA,CAAS,aAAA;AAAA,gBAC3B,oBAAoB,WAAW,CAAA,EAAA;AAAA,eACjC;AACA,cAAA,IAAI,WAAA,EAAa;AACf,gBAAA,WAAA,CAAY,KAAA,EAAM;AAClB,gBAAA,MAAM,MAAA,GAAS,WAAA,CAAY,KAAA,EAAO,MAAA,IAAU,CAAA;AAC5C,gBAAA,UAAA,CAAW,MAAM;AACf,kBAAA,WAAA,CAAY,iBAAA,CAAkB,QAAQ,MAAM,CAAA;AAAA,gBAC9C,GAAG,CAAC,CAAA;AAAA,cACN;AACA,cAAA;AAAA,YACF;AAAA,UACF;AAGA,UAAA,IAAI,SAAS,OAAA,EAAS;AACpB,YAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,MAAA,IAAU,CAAA;AACjD,YAAA,UAAA,CAAW,MAAM;AACf,cAAA,QAAA,CAAS,OAAA,EAAS,iBAAA,CAAkB,MAAA,EAAQ,MAAM,CAAA;AAAA,YACpD,GAAG,CAAC,CAAA;AAAA,UACN;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAAW;AAElC,UAAA,wBAAA,CAAyB,OAAA,GAAU,KAAA;AAGnC,UAAA,IAAI,MAAM,KAAA,EAAO;AACf,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,IAAI,SAAS,OAAA,EAAS;AACpB,cAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AACvB,cAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,MAAA;AACtC,cAAA,QAAA,CAAS,OAAA,CAAQ,iBAAA,CAAkB,MAAA,EAAQ,MAAM,CAAA;AAAA,YACnD;AAAA,UACF;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAW;AAE/B,UAAA,IAAI,QAAA,CAAS,OAAA,IAAW,KAAA,CAAM,KAAA,EAAO;AACnC,YAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,MAAA;AACtC,YAAA,QAAA,CAAS,OAAA,CAAQ,iBAAA,CAAkB,MAAA,EAAQ,MAAM,CAAA;AAAA,UACnD;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAW;AAAA,QAAC,CAAA;AAEjC,QAAA,MAAM,aAAkB,EAAC;AACzB,QAAA,IAAIA,SAAAA,EAAU,UAAA,CAAW,gBAAgB,CAAA,GAAIA,SAAAA;AAG7C,QAAA,MAAM,SAAA,GAAY;AAAA,UAChB,MAAA,EAAQ,MAAA;AAAA,UACR,cAAcjB,MAAAA,CAAO,kBAAA;AAAA,UACrB,SAAA,EAAW,QAAA;AAAA,UACX,GAAG,gBAAA,CAAiB,MAAA;AAAA,UACpB,YAAY,UAAA,CAAW,MAAA;AAAA,UACvB,YAAYA,MAAAA,CAAO,iBAAA;AAAA,UACnB,WAAA,EAAa,QAAA,GAAW,YAAA,CAAa,wBAAA,GAA2B,MAAA;AAAA,UAChE,GAAG;AAAA;AAAA,SACL;AAEA,QAAA,uBACEE,GAAAA;AAAA,UAACiB,KAAAA;AAAA,UAAA;AAAA,YACE,GAAG,WAAA;AAAA,YACJ,IAAA,EAAK,KAAA;AAAA,YACL,QAAA,EAAU,YAAA;AAAA,YACV,SAAA,EAAW,aAAA;AAAA,YACX,UAAA,EAAY,cAAA;AAAA,YACZ,OAAA,EAAS,WAAA;AAAA,YACT,WAAA,EAAa,eAAA;AAAA,YACb,QAAA,EAAU,YAAA;AAAA,YACV,OAAA,EAAS,WAAA;AAAA,YACT,GAAA,EAAK,OAAA;AAAA,YACL,KAAA,EAAO,SAAA;AAAA,YACP,WAAW,MAAA,CAAO,QAAA;AAAA,YACjB,GAAG;AAAA;AAAA,SACN;AAAA,MAEJ;AAAA,MAEA;AACE,QAAA,uBACEjB,GAAAA;AAAA,UAACiB,KAAAA;AAAA,UAAA;AAAA,YACE,GAAG,WAAA;AAAA,YACJ,IAAA;AAAA,YACA,OAAA;AAAA,YACA,WAAW,MAAA,CAAO;AAAA;AAAA,SACpB;AAAA;AAEN,EACF,CAAA;AAEA,EAAA,MAAM,qBAAqB,MAAM;AAC/B,IAAA,MAAM,QAAa,EAAC;AAEpB,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,KAAA,CAAM,QAAA,GAAW,iBAAiB,QAAA,IAAY,uBAAA;AAAA,IAChD;AAEA,IAAA,IAAI,iBAAiB,SAAA,EAAW;AAC9B,MAAA,KAAA,CAAM,YAAY,eAAA,CAAgB,SAAA;AAAA,IACpC;AAEA,IAAA,IAAI,iBAAiB,SAAA,EAAW;AAC9B,MAAA,KAAA,CAAM,YAAY,eAAA,CAAgB,SAAA;AAAA,IACpC;AAEA,IAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,MAAA,KAAA,CAAM,UAAU,eAAA,CAAgB,OAAA;AAAA,IAClC;AAEA,IAAA,IAAI,iBAAiB,GAAA,EAAK;AACxB,MAAA,KAAA,CAAM,MAAM,eAAA,CAAgB,GAAA;AAAA,IAC9B;AAEA,IAAA,IAAI,iBAAiB,GAAA,EAAK;AACxB,MAAA,KAAA,CAAM,MAAM,eAAA,CAAgB,GAAA;AAAA,IAC9B;AAEA,IAAA,IAAI,iBAAiB,QAAA,EAAU;AAC7B,MAAA,KAAA,CAAM,WAAW,eAAA,CAAgB,QAAA;AAAA,IACnC;AAGA,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,KAAA,CAAM,OAAA,GAAU;AAAA,QACd,KAAA,EAAO,0CAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,IACF;AAGA,IAAA,IAAI,SAAS,cAAA,EAAgB;AAC3B,MAAA,KAAA,CAAM,QAAA,GAAW,CAAC,KAAA,KAAe;AAC/B,QAAA,IAAI,QAAA,IAAY,CAAC,KAAA,EAAO;AACtB,UAAA,OAAO,iCAAA;AAAA,QACT;AAEA,QAAA,MAAM,WAAA,GAAc,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,EAAA;AAExD,QAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AAEzB,QAAA,MAAM,YAAA,GAAe,yBAAyB,WAAW,CAAA;AAEzD,QAAA,IAAI,iBAAiB,OAAA,EAAS;AAE5B,UAAA,IAAI,CAAC,0CAAA,CAA2C,IAAA,CAAK,WAAW,CAAA,EAAG;AACjE,YAAA,OAAO,0BAAA;AAAA,UACT;AAAA,QACF,CAAA,MAAA,IAAW,iBAAiB,OAAA,EAAS;AAEnC,UAAA,IAAI,CAAC,WAAA,CAAY,UAAA,CAAW,GAAG,CAAA,EAAG;AAChC,YAAA,OAAO,mEAAA;AAAA,UACT;AACA,UAAA,MAAM,WAAA,GAAc,WAAA,CAAY,SAAA,CAAU,CAAC,CAAA;AAC3C,UAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,CAAK,WAAW,CAAA,EAAG;AAC9B,YAAA,OAAO,6CAAA;AAAA,UACT;AACA,UAAA,IAAI,WAAA,CAAY,SAAS,EAAA,EAAI;AAC3B,YAAA,OAAO,2BAAA;AAAA,UACT;AAAA,QACF,CAAA,MAAO;AACL,UAAA,OAAO,yCAAA;AAAA,QACT;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA;AAAA,IACF;AAGA,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,KAAA,CAAM,QAAA,GAAW,CAAC,KAAA,KAAe;AAC/B,QAAA,IAAI,QAAA,IAAY,CAAC,KAAA,EAAO;AACtB,UAAA,OAAO,uBAAA;AAAA,QACT;AAEA,QAAA,MAAM,cAAc,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,OAAO,WAAA,IAAe,EAAA;AAE9E,QAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AAEzB,QAAA,MAAM,YAAA,GAAe,mBAAmB,WAAW,CAAA;AAGnD,QAAA,IAAI,iBAAiB,OAAA,EAAS;AAE5B,UAAA,IAAI,CAAC,0CAAA,CAA2C,IAAA,CAAK,WAAW,CAAA,EAAG;AACjE,YAAA,OAAO,0BAAA;AAAA,UACT;AAAA,QACF,CAAA,MAAA,IAAW,iBAAiB,OAAA,EAAS;AAEnC,UAAA,IAAI,CAAC,WAAA,CAAY,UAAA,CAAW,GAAG,CAAA,EAAG;AAChC,YAAA,OAAO,sCAAA;AAAA,UACT;AACA,UAAA,MAAM,WAAA,GAAc,WAAA,CAAY,SAAA,CAAU,CAAC,CAAA;AAC3C,UAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,CAAK,WAAW,CAAA,EAAG;AAC9B,YAAA,OAAO,kDAAA;AAAA,UACT;AAAA,QACF;AAQA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA;AAAA,IACF;AAGA,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,KAAA,CAAM,QAAA,GAAW,CAAC,KAAA,KAAkB;AAClC,QAAA,IAAI,QAAA,IAAY,CAAC,KAAA,EAAO;AACtB,UAAA,OAAO,2BAAA;AAAA,QACT;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA;AAAA,IACF;AAIA,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,uBACEjB,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAO,kBAAA,EAAmB;AAAA,MAC1B,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,YAAY,EAAE,KAAA,EAAM,EAAE,qBACtCD,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,aAAa,EAAE,CAAA,CAAA;AAAA,UAC7C,mBAAmB,KAAA,EAAO,OAAA;AAAA,UAC1B,eAAA,EAAiB,QAAQ,OAAA,GAAU,MAAA;AAAA,UAElC,QAAA,EAAA;AAAA,YAAA,KAAA,IAAS,SAAS,UAAA,oBAAcC,GAAAA,CAAC,KAAA,EAAA,EAAM,UAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YAElE,WAAA,CAAY,KAAA,EAAO,KAAA,EAAO,OAAO,CAAA;AAAA,YAEjC,cAAc,CAAC,KAAA,oBACdA,GAAAA,CAAC,QAAK,IAAA,EAAM,GAAA,EAAK,KAAA,EAAO,EAAE,WAAW,MAAA,EAAO,EAAG,SAAA,EAAW,MAAA,CAAO,YAC9D,QAAA,EAAA,UAAA,EACH;AAAA;AAAA;AAAA;AAEJ;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,oBAAA,GAAQ;;;ACr2CR,IAAM,qBAAA,GAAuC;AAAA,EAClD,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,KAAA,EAAO,eAAe,iBAAA,EAAkB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,YAAA,EAAa;AAAA,EAC7E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kBAAkB,QAAA,EAAU,IAAA,EAAM,eAAe,YAAA,EAAa;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,IAAA,EAAM,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,uBAAuB,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EAC/F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,KAAA,EAAO,eAAe,iBAAA,EAAkB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,eAAA,EAAgB;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAExF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,iBAAA,EAAkB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,iBAAA,EAAkB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,IAAA,EAAM,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,wBAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,YAAA,EAAa;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAAgB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,iBAAA,EAAkB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kBAAkB,QAAA,EAAU,IAAA,EAAM,eAAe,kBAAA,EAAmB;AAAA,EACxF;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,0BAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAChF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,YAAA,EAAa;AAAA,EAC1E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kBAAkB,QAAA,EAAU,MAAA,EAAQ,eAAe,YAAA,EAAa;AAAA,EAEpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,eAAA,EAAgB;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,sBAAsB,QAAA,EAAU,IAAA,EAAM,eAAe,kBAAA,EAAmB;AAAA,EAE5F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,iBAAA,EAAkB;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACzF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,qBAAqB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAC7F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAChF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAEtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAChF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAChF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACvF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAAiB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACzF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAEpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACvF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAEpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,iBAAA,EAAkB;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,uBAAA,EAAwB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,cAAA,EAAe;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAElF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAEpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACzF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAExF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAAiB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACzF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAChF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,oBAAoB,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAC9F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACvF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAExF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,IAAA,EAAM,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAEtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,sBAAA,EAAuB;AAAA,EAEtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAAiB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACzF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACvF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAElF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,oBAAoB,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAC9F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,uBAAA,EAAwB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAEtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,IAAA,EAAM,eAAe,YAAA,EAAa;AAAA,EAC1E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAElF;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,uBAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EACvF;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,kCAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EAEA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACtF;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,uBAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EAEA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAAgB,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAC1F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,eAAA,EAAgB;AAAA,EAC/E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAAgB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,YAAA,EAAa;AAAA,EAC9E,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,mBAAmB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAC3F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAAgB,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACzF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,eAAe,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACvF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,QAAQ,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAChF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,uBAAuB,QAAA,EAAU,IAAA,EAAM,eAAe,oBAAA,EAAqB;AAAA,EAC/F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAAgB,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAC1F;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,0BAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAElF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,sBAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,kBAAkB,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAC3F,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,iBAAiB,QAAA,EAAU,IAAA,EAAM,eAAe,YAAA,EAAa;AAAA,EACjF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EACrF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,cAAc,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAExF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,gBAAgB,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EACxF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EACtF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,WAAW,QAAA,EAAU,KAAA,EAAO,eAAe,oBAAA,EAAqB;AAAA,EAEpF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,SAAS,QAAA,EAAU,MAAA,EAAQ,eAAe,oBAAA,EAAqB;AAAA,EAEnF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,UAAU,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA,EAAmB;AAAA,EAClF,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,YAAY,QAAA,EAAU,MAAA,EAAQ,eAAe,kBAAA;AACnE;;;AC1QO,IAAM,cAAA,GAA2D;AAAA,EACtE,EAAA,EAAI;AAAA,IACF,SAAA,EAAW,MAAA;AAAA,IACX,OAAA,EAAS,IAAA;AAAA,IACT,kBAAA,EAAoB,mBAAA;AAAA,IACpB,eAAA,EAAiB,gBAAA;AAAA,IACjB,iBAAA,EAAmB,eAAA;AAAA,IACnB,kBAAA,EAAoB,eAAA;AAAA,IACpB,cAAA,EAAgB,WAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,YAAA,EAAc,YAAA;AAAA,IACd,eAAA,EAAiB,sBAAA;AAAA,IACjB,0BAAA,EAA4B,wBAAA;AAAA,IAC5B,wBAAA,EAA0B,6BAAA;AAAA,IAC1B,qBAAA,EAAuB,0BAAA;AAAA,IACvB,oBAAA,EAAsB,qBAAA;AAAA,IACtB,sBAAA,EAAwB,qBAAA;AAAA,IACxB,oBAAA,EAAsB;AAAA,GACxB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,SAAA,EAAW,MAAA;AAAA,IACX,OAAA,EAAS,IAAA;AAAA,IACT,kBAAA,EAAoB,gBAAA;AAAA,IACpB,eAAA,EAAiB,aAAA;AAAA,IACjB,iBAAA,EAAmB,eAAA;AAAA,IACnB,kBAAA,EAAoB,cAAA;AAAA,IACpB,cAAA,EAAgB,WAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,YAAA,EAAc,eAAA;AAAA,IACd,eAAA,EAAiB,oBAAA;AAAA,IACjB,0BAAA,EAA4B,yBAAA;AAAA,IAC5B,wBAAA,EAA0B,uBAAA;AAAA,IAC1B,qBAAA,EAAuB,oBAAA;AAAA,IACvB,oBAAA,EAAsB,sBAAA;AAAA,IACtB,sBAAA,EAAwB,qBAAA;AAAA,IACxB,oBAAA,EAAsB;AAAA;AAE1B;;;AChCO,IAAMmB,YAAAA,GAAc;AAAA,EACzB,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;;;AClBA,IAAM,QAAA,GAAW,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,QAAA,CAAS,QAAA,CAAS,WAAW,KAAK,CAAA;AAC3F,IAAMA,YAAAA,GAAc,CAAC,QAAA,GAAW,WAAA,GAAgBA,YAAAA;AAKzC,IAAM,WAAA,GAA6B;AAAA,EACxC,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,EAAA,EAAIA,aAAY,IAAI,CAAA;AAAA,EACpB,GAAA,EAAKA,aAAY,KAAK,CAAA;AAAA,EACtB,GAAA,EAAKA,aAAY,KAAK,CAAA;AAAA,EACtB,GAAA,EAAKA,aAAY,KAAK,CAAA;AAAA,EACtB,GAAA,EAAKA,aAAY,KAAK,CAAA;AAAA,EACtB,GAAA,EAAKA,aAAY,KAAK,CAAA;AAAA,EACtB,GAAA,EAAKA,aAAY,KAAK,CAAA;AAAA,EACtB,GAAA,EAAKA,aAAY,KAAK;AACxB,CAAA;;;ACTiB,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,QAAA,CAAS,QAAA,CAAS,WAAW,KAAK;AAYpF,IAAM,YAAA,GAAe;AAAA,EAgF1B;AAAA,EAGA,WAAA,EAAa;AAAA,IAGX,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,QAEN,CAKF,CAAA;;;AC3HO,IAAM,cAAA,GAAiB;AAAA,EAG5B,YAAA,EAAc,aAAa,WAAA,CAAY,EAAA;AAAA,EACvC,YAAA,EAAc,aAAa,WAAA,CAAY,EAAA;AAAA,EACvC,YAAA,EAAc,aAAa,WAAA,CAAY,EAEzC,CAAA;CAKuC;AAAA,EACrC,GAAG,iBAAiB,WAAW,CAAA;AAAA;AAAA,EAG/B,oBAAA,EAAsB,YAAY,EAAE,CAAA;AAAA,EACpC,yBAAA,EAA2B,YAAY,EAAE,CAAA;AAAA,EACzC,2BAAA,EAA6B,YAAY,EAAE,CAAA;AAAA,EAC3C,4BAAA,EAA8B,YAAY,EAAE,CAAA;AAAA,EAC5C,qBAAA,EAAuB,YAAY,EAAE,CAAA;AAAA,EACrC,qBAAA,EAAuB,YAAY,EAAE,CAAA;AAAA,EACrC,wBAAA,EAA0B,YAAY,EAAE,CAAA;AAAA,EACxC,6BAAA,EAA+B,YAAY,EAAE,CAAA;AAAA,EAC7C,+BAAA,EAAiC,YAAY,EAAE,CAAA;AAAA,EAC/C,gCAAA,EAAkC,YAAY,EAAE,CA4GlD;CAKsC;AAAA,EACpC,GAAG,gBAAgB,WAAW,CAAA;AAAA;AAAA,EAG9B,oBAAA,EAAsB,YAAY,GAAG,CAAA;AAAA,EACrC,yBAAA,EAA2B,YAAY,GAAG,CAAA;AAAA,EAC1C,2BAAA,EAA6B,YAAY,GAAG,CAAA;AAAA,EAC5C,4BAAA,EAA8B,YAAY,GAAG,CAAA;AAAA,EAC7C,qBAAA,EAAuB,YAAY,GAAG,CAAA;AAAA,EACtC,qBAAA,EAAuB,YAAY,GAAG,CAAA;AAAA,EACtC,wBAAA,EAA0B,YAAY,GAAG,CAAA;AAAA,EACzC,6BAAA,EAA+B,YAAY,GAAG,CAAA;AAAA,EAC9C,+BAAA,EAAiC,YAAY,GAAG,CAAA;AAAA,EAChD,gCAAA,EAAkC,YAAY,GAAG,CAqGnD;AC9OA,IAAMvB,aAAYC,UAAAA,CAAW;AAAA,EAC3B,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,MAAA;AAAA,IACP,OAAA,EAAS,CAAA;AAAA,IACT,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,OAAA,EAAS;AAAA,KACX;AAAA,IACA,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,GACb;AAAA,EACA,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,UAAA;AAAA,IACV,GAAA,EAAK,CAAA;AAAA,IACL,IAAA,EAAM,CAAA;AAAA,IACN,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,cAAcC,MAAAA,CAAO,kBAAA;AAAA,IACrB,MAAA,EAAQ,eAAeA,MAAAA,CAAO,mBAAA;AAAA,IAC9B,MAAA,EAAQ,MAAA;AAAA,IACR,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,OAAA,EAAS,MAAA;AAAA,MACT,cAAcA,MAAAA,CAAO;AAAA;AACvB,GACF;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,QAAA;AAAA,IAChB,QAAA,EAAU,UAAA;AAAA,IACV,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,OAAA;AAAA,IACR,KAAA,EAAO;AAAA,GACT;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,YAAYA,MAAAA,CAAO,uBAAA;AAAA,IACnB,WAAW,CAAA,YAAA,EAAeA,MAAAA,CAAO,qBAAqB,CAAA,YAAA,EAAeA,OAAO,yBAAyB,CAAA;AAAA,GACvG;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,KAAA,EAAO,MAAA;AAAA,IACP,cAAcA,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,QAAQA,MAAAA,CAAO;AAAA,KACjB;AAAA,IACA,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,QAAQA,MAAAA,CAAO;AAAA,KACjB;AAAA,IACA,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,QAAQA,MAAAA,CAAO,mBAAA;AAAA,MACf,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,WAAA,EAAa,iBAAA;AAAA,MACb,YAAA,EAAc,iBAAA;AAAA,MACd,YAAA,EAAc,MAAA;AAAA,MACd,SAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,UAAA,EAAY;AAAA,IACV,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,WAAA,EAAa,iBAAA;AAAA,MACb,YAAA,EAAc,iBAAA;AAAA,MACd,SAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,CAAC,CAAA,mBAAA,EAAsB,cAAA,CAAe,YAAY,GAAG,GAAG;AAAA,MACtD,GAAA,EAAK;AAAA;AACP;AAEJ,CAAC,CAAA;AAEM,IAAM,mBAAoD,CAAC;AAAA,EAChE,QAAA,GAAW,IAAA;AAAA,EACX,IAAA,GAAO,EAAA;AAAA,EACP,EAAA,GAAK,EAAA;AAAA,EACL,SAAA,GAAY,EAAA;AAAA,EACZ,OAAA,GAAU,EAAA;AAAA,EACV,SAAA,GAAY,KAAA;AAAA,EACZ,YAAA,GAAe,EAAA;AAAA,EACf,aAAA,GAAgB,EAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,UAAA,GAAa,KAAA;AAAA,EACb,eAAA,GAAkB,KAAA;AAAA,EAClB,oBAAA,GAAuB,KAAA;AAAA,EACvB,qBAAA,GAAwB,KAAA;AAAA,EACxB,cAAA,GAAiB,KAAA;AAAA,EACjB,iBAAA,GAAoB,KAAA;AAAA,EACpB,cAAA,GAAiB,KAAA;AAAA,EACjB,WAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA,GAAkB,OAAA;AAAA,EAClB,MAAA,EAAQ,YAAA;AAAA,EACR,SAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,kBAAA,GAAqB;AACvB,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,UAAAA,EAAU;AAGzB,EAAA,MAAM,SAASa,MAAAA,CAAM,OAAA;AAAA,IACnB,OAAO,EAAE,GAAG,eAAe,QAAoB,CAAA,EAAG,GAAG,YAAA,EAAa,CAAA;AAAA,IAClE,CAAC,UAAU,YAAY;AAAA,GACzB;AACA,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAU,SAAA,EAAW,YAAA,KAAiB,OAAA,CAAkC;AAAA,IACvF,aAAA,EAAe;AAAA,MACb,IAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAM,iBAAiB,QAAA,CAAS;AAAA,IAC9B,OAAA;AAAA,IACA,IAAA,EAAM,WAAA;AAAA,IACN,YAAA,EAAc;AAAA,GACf,CAAA;AAGD,EAAAA,MAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,QAAA,CAAS,QAAQ,IAAI,CAAA;AACrB,IAAA,QAAA,CAAS,MAAM,EAAE,CAAA;AACjB,IAAA,QAAA,CAAS,aAAa,SAAS,CAAA;AAC/B,IAAA,QAAA,CAAS,WAAW,OAAO,CAAA;AAC3B,IAAA,QAAA,CAAS,aAAa,SAAS,CAAA;AAC/B,IAAA,QAAA,CAAS,gBAAgB,YAAY,CAAA;AACrC,IAAA,QAAA,CAAS,iBAAiB,aAAa,CAAA;AACvC,IAAA,QAAA,CAAS,aAAa,SAAS,CAAA;AAAA,EACjC,CAAA,EAAG,CAAC,IAAA,EAAM,EAAA,EAAI,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,YAAA,EAAc,aAAA,EAAe,SAAA,EAAW,QAAQ,CAAC,CAAA;AAG9F,EAAAA,MAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,iBAAA,EAAmB;AACrB,MAAA,iBAAA,CAAkB,cAAc,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,cAAA,EAAgB,iBAAiB,CAAC,CAAA;AAEtC,EAAA,MAAM,gBAAA,GAAmB,CAAC,IAAA,KAAmC;AAC3D,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,QAAA,CAAS,IAAI,CAAA;AAAA,IACf;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,QAAA,CAAS,MAAM,EAAE,CAAA;AACjB,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,YAAA,EAAa;AAAA,IACf;AAAA,EACF,CAAA;AAEA,EAAA,uBACEV,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,EAAG,OAAO,IAAI,CAAA,CAAA,EAAI,SAAA,IAAa,EAAE,CAAA,CAAA,EAC/C,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,OAAA,EAAA,EAAQ,EAAA,EAAE,IAAA,EAAC,KAAG,IAAA,EAAC,IAAA,EAAI,IAAA,EAClB,QAAA,kBAAAA,GAAAA,CAAC,4BAAA,EAAA,EAAqB,SAAA,EAAW,MAAA,CAAO,eAAe,CAAA,EACzD,CAAA;AAAA,oBACAA,GAAAA,CAAC,OAAA,EAAA,EAAQ,EAAA,EAAE,IAAA,EAAC,IAAE,IAAA,EAAC,EAAA,EAAE,IAAA,EAAC,EAAA,EAAE,MAClB,QAAA,kBAAAA,GAAAA,CAAC,wCAA6B,SAAA,EAAW,MAAA,CAAO,eAAe,CAAA,EACjE,CAAA;AAAA,oBACAD,IAAAA;AAAA,MAACqB,GAAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,UAAA,EAAY,MAAA;AAAA,UACZ,aAAA,EAAe;AAAA,SACjB;AAAA,QACA,WAAW,MAAA,CAAO,eAAA;AAAA,QAElB,QAAA,EAAA;AAAA,0BAAApB,GAAAA;AAAA,YAACqB,GAAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,CAAA;AAAA,cACJ,GAAA,EAAK,CAAA;AAAA,cACL,IAAA,EAAM,CAAA;AAAA,cACN,KAAA,EAAO;AAAA,gBACL,OAAA,EAAS,MAAA;AAAA,gBACT,cAAA,EAAgB,QAAA;AAAA,gBAChB,UAAA,EAAY,QAAA;AAAA,gBACZ,YAAA,EAAc;AAAA,eAChB;AAAA,cAEA,QAAA,kBAAArB,GAAAA;AAAA,gBAAC,eAAA;AAAA,gBAAA;AAAA,kBACC,WAAW,MAAA,CAAO,eAAA;AAAA,kBAClB,eAAA;AAAA,kBACA;AAAA;AAAA;AACF;AAAA,WACF;AAAA,0BACAA,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,MAAM,GAAA,EAAK,CAAA;AAAA,0BACnErB,GAAAA;AAAA,YAACqB,GAAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,EAAA;AAAA,cACJ,EAAA,EAAI,GAAA;AAAA,cACJ,GAAA,EAAK,GAAA;AAAA,cACL,IAAA,EAAM,GAAA;AAAA,cACN,KAAA,EAAO;AAAA,gBACL,OAAA,EAAS,MAAA;AAAA,gBACT,UAAA,EAAY,QAAA;AAAA,gBACZ,cAAA,EAAgB,QAAA;AAAA,gBAChB,aAAA,EAAe;AAAA,eACjB;AAAA,cACA,WAAW,MAAA,CAAO,gBAAA;AAAA,cAElB,0BAAArB,GAAAA,CAAC,MAAA,EAAA,EAAK,UAAU,YAAA,CAAa,gBAAgB,GAC3C,QAAA,kBAAAD,IAAAA,CAACqB,GAAAA,EAAA,EAAI,OAAO,EAAE,KAAA,EAAO,QAAO,EAAG,SAAA,EAAW,OAAO,YAAA,EAC/C,QAAA,EAAA;AAAA,gCAAApB,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,EAChD,QAAA,kBAAAtB,IAAAA,CAACqB,GAAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAA,EAAK,MAAA,EAAO,EAAG,SAAA,EAAW,MAAA,CAAO,YAAA,EAC7C,QAAA,EAAA;AAAA,kCAAApB,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,IAAI,IAAA,EAAM,EAAA,EAClD,QAAA,kBAAArB,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,SAAA,EACrB,QAAA,kBAAAD,IAAAA,CAACqB,GAAAA,EAAA,EACC,QAAA,EAAA;AAAA,oCAAArB,KAACsB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,MAAM,EAAA,EAC1D,QAAA,EAAA;AAAA,sCAAArB,GAAAA;AAAA,wBAAC,oBAAA;AAAA,wBAAA;AAAA,0BACC,IAAA,EAAK,MAAA;AAAA,0BACL,OAAO,MAAA,CAAO,SAAA;AAAA,0BACd,OAAA;AAAA,0BACA,IAAA,EAAK,MAAA;AAAA,0BACL,+BACEA,GAAAA;AAAA,4BAACkB,MAAAA;AAAA,4BAAA;AAAA,8BACC,IAAA,EAAK,+BAAA;AAAA,8BACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,2BAChB;AAAA,0BAEF,UAAA,EAAW,gBAAA;AAAA,0BACX,IAAA,EAAK,QAAA;AAAA,0BACL,aAAa,MAAA,CAAO,eAAA;AAAA,0BACpB,OAAA,EAAS,WAAA;AAAA,0BACT,QAAA,EAAU,gBAAA;AAAA,0BACV,eAAA,EAAiB;AAAA,4BACf,QAAA,EAAU;AAAA,2BACZ;AAAA,0BACA,QAAA,EAAQ;AAAA;AAAA,uBACV;AAAA,sCACAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,aAAA,EACrB,QAAA,EAAA;AAAA,wCAAAC,GAAAA,CAACU,SAAA,EAAQ,CAAA;AAAA,wBAAG,GAAA;AAAA,wCACZV,GAAAA;AAAA,0BAACG,MAAAA;AAAA,0BAAA;AAAA,4BACC,OAAA,EAAS,aAAA;AAAA,4BACT,WAAW,MAAA,CAAO,YAAA;AAAA,4BAClB,KAAA,EAAM,UAAA;AAAA,4BACN,UAAA,EAAW,WAAA;AAAA,4BACX,IAAA,EAAK,OAAA;AAAA,4BACL,QAAA,EAAU,cAAA;AAAA,4BACV,sBACEH,GAAAA;AAAA,8BAAC,KAAA;AAAA,8BAAA;AAAA,gCACC,SAAA,EAAW,GAAG,MAAA,CAAO,UAAU,IAAI,UAAA,GAAa,MAAA,CAAO,mBAAmB,EAAE,CAAA,CAAA;AAAA,gCAE5E,QAAA,kBAAAA,GAAAA;AAAA,kCAAC,KAAA;AAAA,kCAAA;AAAA,oCACC,GAAA,EAAI,iCAAA;AAAA,oCACJ,GAAA,EAAI,QAAA;AAAA,oCACJ,KAAA,EAAO,EAAA;AAAA,oCACP,MAAA,EAAQ;AAAA;AAAA;AACV;AAAA;AACF;AAAA;AAEJ,uBAAA,EACF;AAAA,qBAAA,EACF,CAAA;AAAA,oCACAA,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,IAAA,EAAM,IAC1D,QAAA,kBAAArB,GAAAA;AAAA,sBAAC,oBAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAK,IAAA;AAAA,wBACL,OAAO,MAAA,CAAO,OAAA;AAAA,wBACd,OAAA;AAAA,wBACA,IAAA,EAAK,MAAA;AAAA,wBACL,+BACEA,GAAAA;AAAA,0BAACkB,MAAAA;AAAA,0BAAA;AAAA,4BACC,IAAA,EAAK,2BAAA;AAAA,4BACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,yBAChB;AAAA,wBAEF,QAAA,EAAU,UAAA;AAAA,wBACV,UAAA,EAAW,gBAAA;AAAA,wBACX,IAAA,EAAK,QAAA;AAAA,wBACL,aAAa,MAAA,CAAO,0BAAA;AAAA,wBACpB,OAAA,EAAS,SAAA;AAAA,wBACT,eAAA,EAAiB;AAAA,0BACf,QAAA,EAAU;AAAA,yBACZ;AAAA,wBACA,QAAA,EAAQ;AAAA;AAAA,qBACV,EACF;AAAA,mBAAA,EACF,GACF,CAAA,EACF,CAAA;AAAA,kCACAE,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,IAAA,EAAM,EAAA,EAClD,QAAA,kBAAArB,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,kBAAAD,IAAAA,CAACqB,GAAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAA,EAAQ,QAAO,EAC3B,QAAA,EAAA;AAAA,oCAAApB,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EACpD,QAAA,kBAAArB,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,MAAA,EAAQ,CAAA,EAAE,EAC5C,QAAA,kBAAAA,GAAAA;AAAA,sBAAC,oBAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAK,WAAA;AAAA,wBACL,OAAO,MAAA,CAAO,kBAAA;AAAA,wBACd,OAAA;AAAA,wBACA,IAAA,EAAK,MAAA;AAAA,wBACL,+BACEA,GAAAA;AAAA,0BAACkB,MAAAA;AAAA,0BAAA;AAAA,4BACC,IAAA,EAAK,2BAAA;AAAA,4BACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,yBAChB;AAAA,wBAEF,UAAA,EAAW,gBAAA;AAAA,wBACX,IAAA,EAAK,QAAA;AAAA,wBACL,aAAa,MAAA,CAAO,wBAAA;AAAA,wBACpB,OAAA,EAAS,gBAAA;AAAA,wBACT,QAAA,EAAQ,IAAA;AAAA,wBACR,eAAA,EAAiB;AAAA,0BACf,QAAA,EAAU;AAAA;AACZ;AAAA,uBAEJ,CAAA,EACF,CAAA;AAAA,oCACAE,GAAAA;AAAA,sBAACqB,GAAAA;AAAA,sBAAA;AAAA,wBACC,EAAA,EAAI,CAAA;AAAA,wBACJ,EAAA,EAAI,CAAA;AAAA,wBACJ,EAAA,EAAI,CAAA;AAAA,wBACJ,EAAA,EAAI,CAAA;AAAA,wBACJ,EAAA,EAAI,CAAA;AAAA,wBACJ,GAAA,EAAK,CAAA;AAAA,wBACL,IAAA,EAAM,CAAA;AAAA,wBACN,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,gBAAgB,KAAA,EAAM;AAAA,wBAEhD,QAAA,kBAAArB,GAAAA;AAAA,0BAAC,oBAAA;AAAA,0BAAA;AAAA,4BACC,IAAA,EAAK,WAAA;AAAA,4BACL,OAAO,MAAA,CAAO,cAAA;AAAA,4BACd,OAAA;AAAA,4BACA,IAAA,EAAK,QAAA;AAAA,4BACL,QAAA,EAAU,iBAAA;AAAA,4BACV,IAAA,EAAK;AAAA;AAAA;AACP;AAAA,qBACF;AAAA,oBACC,kCACCA,GAAAA,CAACqB,KAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,IAAA,EAAM,IAC1D,QAAA,kBAAArB,GAAAA;AAAA,sBAAC,oBAAA;AAAA,sBAAA;AAAA,wBACC,IAAA,EAAK,SAAA;AAAA,wBACL,OAAO,MAAA,CAAO,eAAA;AAAA,wBACd,OAAA;AAAA,wBACA,IAAA,EAAK,MAAA;AAAA,wBACL,+BACEA,GAAAA;AAAA,0BAACkB,MAAAA;AAAA,0BAAA;AAAA,4BACC,IAAA,EAAK,2BAAA;AAAA,4BACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,yBAChB;AAAA,wBAEF,UAAA,EAAW,gBAAA;AAAA,wBACX,IAAA,EAAK,QAAA;AAAA,wBACL,aAAa,MAAA,CAAO,qBAAA;AAAA,wBACpB,OAAA,EAAS,cAAA;AAAA,wBACT,QAAA,EAAU,eAAA;AAAA,wBACV,KAAA,EAAO,EAAE,WAAA,EAAa,aAAA,EAAc;AAAA,wBACpC,QAAA,EAAU,cAAA;AAAA,wBACV,eAAA,EAAiB;AAAA,0BACf,QAAA,EAAU;AAAA;AACZ;AAAA,qBACF,EACF;AAAA,mBAAA,EAEJ,GACF,CAAA,EACF;AAAA,iBAAA,EACF,CAAA,EACF,CAAA;AAAA,gCACAE,IAAC,OAAA,EAAA,EAAQ,EAAA,EAAE,MAAC,GAAA,EAAG,IAAA,EAAC,IAAA,EAAI,IAAA,EAClB,QAAA,kBAAAA,GAAAA;AAAA,kBAACqB,GAAAA;AAAA,kBAAA;AAAA,oBACC,EAAA,EAAI,EAAA;AAAA,oBACJ,EAAA,EAAI,EAAA;AAAA,oBACJ,EAAA,EAAI,EAAA;AAAA,oBACJ,EAAA,EAAI,CAAA;AAAA,oBACJ,GAAA,EAAK,CAAA;AAAA,oBACL,IAAA,EAAM,CAAA;AAAA,oBACN,OAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,gBAAgB,QAAA,EAAS;AAAA,oBAEzE,QAAA,kBAAArB,GAAAA,CAACU,OAAAA,EAAA,EAAQ,QAAA,EAAQ,MAAC,KAAA,EAAO,EAAE,MAAA,EAAQ,MAAA,EAAO,EAAG;AAAA;AAAA,iBAC/C,EACF,CAAA;AAAA,gCACAV,GAAAA;AAAA,kBAACqB,GAAAA;AAAA,kBAAA;AAAA,oBACC,EAAA,EAAI,EAAA;AAAA,oBACJ,EAAA,EAAI,EAAA;AAAA,oBACJ,EAAA,EAAI,EAAA;AAAA,oBACJ,EAAA,EAAI,CAAA;AAAA,oBACJ,GAAA,EAAK,CAAA;AAAA,oBACL,IAAA,EAAM,CAAA;AAAA,oBACN,KAAA,EAAO;AAAA,sBACL,YAAA,EAAc,MAAA;AAAA,sBACd,WAAA,EAAa;AAAA,qBACf;AAAA,oBACA,WAAW,MAAA,CAAO,UAAA;AAAA,oBAElB,QAAA,kBAAAtB,IAAAA,CAACqB,GAAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAA,EAAQ,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAO,EACxC,QAAA,EAAA;AAAA,sCAAApB,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,IAAI,IAAA,EAAM,EAAA,EAClD,QAAA,kBAAArB,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,0BAAAD,IAAAA,CAACqB,GAAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAA,EAAQ,MAAA,EAAQ,GAAA,EAAK,QAAO,EACxC,QAAA,EAAA;AAAA,wCAAApB,IAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,IAAA,EAAM,IAC1D,QAAA,kBAAArB,GAAAA;AAAA,0BAAC,oBAAA;AAAA,0BAAA;AAAA,4BACC,IAAA,EAAK,cAAA;AAAA,4BACL,OAAO,MAAA,CAAO,iBAAA;AAAA,4BACd,OAAA;AAAA,4BACA,IAAA,EAAK,MAAA;AAAA,4BACL,+BACEA,GAAAA;AAAA,8BAACkB,MAAAA;AAAA,8BAAA;AAAA,gCACC,IAAA,EAAK,8BAAA;AAAA,gCACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,6BAChB;AAAA,4BAEF,UAAA,EAAW,gBAAA;AAAA,4BACX,IAAA,EAAK,QAAA;AAAA,4BACL,aAAa,MAAA,CAAO,oBAAA;AAAA,4BACpB,OAAA,EAAS,mBAAA;AAAA,4BACT,QAAA,EAAQ,IAAA;AAAA,4BACR,QAAA,EAAU;AAAA;AAAA,yBACZ,EACF,CAAA;AAAA,wCACAE,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,IAAA,EAAM,IAC1D,QAAA,kBAAArB,GAAAA;AAAA,0BAAC,oBAAA;AAAA,0BAAA;AAAA,4BACC,IAAA,EAAK,eAAA;AAAA,4BACL,OAAO,MAAA,CAAO,kBAAA;AAAA,4BACd,OAAA;AAAA,4BACA,IAAA,EAAK,MAAA;AAAA,4BACL,+BACEA,GAAAA;AAAA,8BAACkB,MAAAA;AAAA,8BAAA;AAAA,gCACC,IAAA,EAAK,4BAAA;AAAA,gCACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,6BAChB;AAAA,4BAEF,UAAA,EAAW,gBAAA;AAAA,4BACX,IAAA,EAAK,QAAA;AAAA,4BACL,aAAa,MAAA,CAAO,sBAAA;AAAA,4BACpB,OAAA,EAAS,oBAAA;AAAA,4BACT,QAAA,EAAQ,IAAA;AAAA,4BACR,QAAA,EAAU;AAAA;AAAA,yBACZ,EACF,CAAA;AAAA,wBACC,sCACCE,GAAAA,CAACqB,KAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,IAAA,EAAM,IAC1D,QAAA,kBAAArB,GAAAA;AAAA,0BAAC,oBAAA;AAAA,0BAAA;AAAA,4BACC,QAAA,EAAQ,IAAA;AAAA,4BACR,IAAA,EAAK,WAAA;AAAA,4BACL,OAAO,MAAA,CAAO,cAAA;AAAA,4BACd,OAAA;AAAA,4BACA,IAAA,EAAK,MAAA;AAAA,4BACL,+BACEA,GAAAA;AAAA,8BAACkB,MAAAA;AAAA,8BAAA;AAAA,gCACC,IAAA,EAAK,yBAAA;AAAA,gCACL,OAAOpB,MAAAA,CAAO;AAAA;AAAA,6BAChB;AAAA,4BAEF,UAAA,EAAW,gBAAA;AAAA,4BACX,IAAA,EAAK,QAAA;AAAA,4BACL,aAAa,MAAA,CAAO,oBAAA;AAAA,4BACpB,OAAA,EAAS;AAAA;AAAA,yBACX,EACF;AAAA,uBAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAAA,sCACAE,GAAAA,CAACqB,GAAAA,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,IAClD,QAAA,kBAAArB,GAAAA;AAAA,wBAACG,MAAAA;AAAA,wBAAA;AAAA,0BACC,WAAW,MAAA,CAAO,YAAA;AAAA,0BAClB,UAAA,EAAW,SAAA;AAAA,0BACX,IAAA,EAAK,OAAA;AAAA,0BACL,IAAA,EAAK,QAAA;AAAA,0BACL,sBAAMH,GAAAA,CAACkB,MAAAA,EAAA,EAAK,MAAK,+BAAA,EAAgC,CAAA;AAAA,0BACjD,QAAA,EAAU,cAAA;AAAA,0BAET,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,uBACV,EACF;AAAA,qBAAA,EACF;AAAA;AAAA;AACF,eAAA,EACF,CAAA,EACF;AAAA;AAAA;AACF;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;ACrgBA,IAAMtB,aAAYC,UAAAA,CAAW;AAAA,EAC3B,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,WAAA,EAAa;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,SAAA,EAAW;AAAA,GACb;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,MAAA;AAAA,IACP,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,SAAA,EAAW,OAAA;AAAA,IACX,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,WAAA;AAAA,IACT,YAAA,EAAc,CAAA,UAAA,EAAaC,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,IACrD,MAAA,EAAQ,SAAA;AAAA,IACR,UAAA,EAAY,eAAA;AAAA,IACZ,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,IACxB,QAAA,EAAU,UAAA;AAAA,IACV,QAAA,EAAU;AAAA,MACR,iBAAiBA,MAAAA,CAAO,4BAAA;AAAA,MACxB,YAAA,EAAc,CAAA,UAAA,EAAaA,MAAAA,CAAO,oBAAoB,CAAA;AAAA;AACxD,GACF;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,iBAAiBA,MAAAA,CAAO,uBAAA;AAAA,IACxB,UAAA,EAAY,CAAA,UAAA,EAAaA,MAAAA,CAAO,oBAAoB,CAAA,CAAA;AAAA,IACpD,WAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAY;AAAA,IACV,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,iBAAA;AAAA,IACnB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,OAAOA,MAAAA,CAAO;AAAA,GAChB;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,GAAA,EAAK,MAAA;AAAA,IACL,YAAA,EAAc,MAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,cAAcA,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAOA,MAAAA,CAAO;AAAA,GAChB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,WAAA,EAAa;AAAA,GACf;AAAA,EACA,aAAA,EAAe;AAAA,IACb,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,MAAA;AAAA,IACL,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,SAAA,EAAW,QAAA;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,OAAOA,MAAAA,CAAO;AAAA;AAElB,CAAC,CAAA;AAgIM,IAAM,oBAAsD,CAAC;AAAA,EAClE,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,iBAAA;AAAA,EACR,SAAA,GAAY,QAAA;AAAA,EACZ,OAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,WAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,UAAAA,EAAU;AAEzB,EAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAAuB;AAC3C,IAAA,iBAAA,CAAkB,MAAM,CAAA;AACxB,IAAA,cAAA,CAAe,MAAM,CAAA;AACrB,IAAA,cAAA,CAAe,EAAE,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,OAAA,EAAQ;AACR,IAAA,cAAA,CAAe,EAAE,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,uBACEI,GAAAA;AAAA,IAACsB,MAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,CAAA,EAAG,IAAA,KAAS;AACzB,QAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AACd,UAAA,OAAA,EAAQ;AAAA,QACV;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,kBAAAtB,GAAAA,CAACuB,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,aAAA,EAC/B,QAAA,kBAAAxB,IAAAA,CAACyB,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAxB,GAAAA;AAAA,UAACyB,WAAAA;AAAA,UAAA;AAAA,YACC,wBACEzB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,QAAA;AAAA,gBACX,YAAA,EAAW,OAAA;AAAA,gBACX,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,2BAAA,EAA4B,CAAA;AAAA,gBAC7C,OAAA,EAAS,WAAA;AAAA,gBACT,WAAW,MAAA,CAAO;AAAA;AAAA,aACpB;AAAA,YAGD,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAnB,IAAAA,CAAC2B,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,OAAA,EAC/B,QAAA,EAAA;AAAA,0BAAA1B,GAAAA,CAAC,SACC,QAAA,kBAAAA,GAAAA;AAAA,YAACiB,KAAAA;AAAA,YAAA;AAAA,cACC,WAAW,MAAA,CAAO,WAAA;AAAA,cAClB,KAAA,EAAO,WAAA;AAAA,cACP,QAAA,EAAU,CAAA,CAAA,KAAK,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC5C,WAAA,EAAY,mBAAA;AAAA,cACZ,aAAA,kBACEjB,GAAAA,CAACkB,IAAAA,EAAA,EAAK,IAAA,EAAK,0BAAA,EAA2B,KAAA,EAAOpB,MAAAA,CAAO,uBAAA,EAAyB,CAAA;AAAA,cAE/E,IAAA,EAAK;AAAA;AAAA,WACP,EACF,CAAA;AAAA,UAGC,eAAA,CAAgB,MAAA,GAAS,CAAA,oBACxBE,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAA,EACpB,QAAA,EAAA,eAAA,CAAgB,GAAA,CAAI,CAAA,MAAA,qBACnBA,GAAAA;AAAA,YAACG,MAAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM,CAAA;AAAA,cAElC,IAAA,EAAK,QAAA;AAAA,cACL,UAAA,EAAW,SAAA;AAAA,cACX,YAAA,EAAa,QAAA;AAAA,cACb,WAAW,MAAA,CAAO,cAAA;AAAA,cAClB,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,yBAAA,EAA0B,CAAA;AAAA,cAE3C,QAAA,kBAAAlB,GAAAA,CAACE,KAAAA,EAAA,EAAO,iBAAO,IAAA,EAAK;AAAA,aAAA;AAAA,YAPf,MAAA,CAAO;AAAA,WASf,CAAA,EACH,CAAA;AAAA,0BAGFF,GAAAA,CAACU,OAAAA,EAAA,EAAQ,CAAA;AAAA,0BAETX,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,UAAA,EAEpB,QAAA,EAAA;AAAA,YAAA,mBAAA,CAAoB,MAAA,GAAS,CAAA,oBAC5BA,IAAAA,CAAA4B,UAAA,EACE,QAAA,EAAA;AAAA,8BAAA5B,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,eAAY,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,gCAC5BA,GAAAA;AAAA,kBAAC4B,QAAAA;AAAA,kBAAA;AAAA,oBACC,WAAW,CAAA,EAAG,MAAA,CAAO,UAAU,CAAA,CAAA,EAAI,OAAO,aAAa,CAAA,CAAA;AAAA,oBACvD,OAAA,EAAS,mBAAA;AAAA,oBACV,QAAA,EAAA;AAAA;AAAA;AAED,eAAA,EACF,CAAA;AAAA,8BAEA5B,GAAAA,CAAC,KAAA,EAAA,EACE,QAAA,EAAA,mBAAA,CAAoB,GAAA,CAAI,CAAA,MAAA,qBACvBD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,WAAA,EACrB,QAAA,EAAA;AAAA,gCAAAA,IAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,KAAA,EAAO,EAAE,MAAA,EAAQ,SAAA,EAAU;AAAA,oBAC3B,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM,CAAA;AAAA,oBAElC,QAAA,EAAA;AAAA,sCAAAC,IAACkB,IAAAA,EAAA,EAAK,MAAK,gCAAA,EAAiC,SAAA,EAAW,OAAO,UAAA,EAAY,CAAA;AAAA,sBACzE,MAAA,CAAO;AAAA;AAAA;AAAA,iBACV;AAAA,gCACAlB,GAAAA;AAAA,kBAACkB,IAAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,MAAM,oBAAA,CAAqB,MAAA,CAAO,EAAE,CAAA;AAAA,oBAC7C,IAAA,EAAK,2BAAA;AAAA,oBACL,OAAOpB,MAAAA,CAAO,4BAAA;AAAA,oBACd,WAAW,MAAA,CAAO;AAAA;AAAA;AACpB,eAAA,EAAA,EAbuC,MAAA,CAAO,EAchD,CACD,CAAA,EACH,CAAA;AAAA,8BACAE,GAAAA,CAACU,OAAAA,EAAA,EAAQ;AAAA,aAAA,EACX,CAAA;AAAA,4BAIFV,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,MAAA,CAAO,cAAc,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,4BAC5DA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,UAAA,EACpB,QAAA,EAAA,SAAA,mBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,UAAA,EAAY,QAAA,EAAA,gBAAA,EAAc,CAAA,GAC/C,OAAA,CAAQ,MAAA,GAAS,CAAA,GACnB,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,qBACnBD,IAAAA,CAAC,KAAA,EAAA,EAAgB,SAAA,EAAW,MAAA,CAAO,UAAA,EACjC,QAAA,EAAA;AAAA,8BAAAA,IAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAW,MAAA,CAAO,aAAA;AAAA,kBAClB,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM,CAAA;AAAA,kBAElC,QAAA,EAAA;AAAA,oCAAAC,IAACkB,IAAAA,EAAA,EAAK,MAAK,gCAAA,EAAiC,SAAA,EAAW,OAAO,UAAA,EAAY,CAAA;AAAA,oBACzE,MAAA,CAAO;AAAA;AAAA;AAAA,eACV;AAAA,8BACAlB,GAAAA;AAAA,gBAACkB,IAAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EACE,gBAAgB,IAAA,CAAK,CAAA,GAAA,KAAO,IAAI,EAAA,KAAO,MAAA,CAAO,EAAE,CAAA,GAC5C,uBAAA,GACA,wBAAA;AAAA,kBAEN,OAAOpB,MAAAA,CAAO,oBAAA;AAAA,kBACd,WAAW,MAAA,CAAO,aAAA;AAAA,kBAClB,OAAA,EAAS,MAAM,gBAAA,CAAiB,MAAM;AAAA;AAAA;AACxC,aAAA,EAAA,EAjBQ,KAkBV,CACD,CAAA,mBAEDE,GAAAA,CAAC,SAAI,SAAA,EAAW,MAAA,CAAO,UAAA,EAAY,QAAA,EAAA,2BAAA,EAAyB,CAAA,EAEhE;AAAA,WAAA,EACF;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;ACrZA,IAAMJ,cAAYC,UAAAA,CAAW;AAAA,EAC3B,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc,MAAA;AAAA,IACd,aAAA,EAAe,MAAA;AAAA,IACf,KAAA,EAAO,MAAA;AAAA,IACP,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,WAAA,EAAa;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,SAAA,EAAW;AAAA,GACb;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,GAAA,EAAK,KAAA;AAAA,IACL,YAAA,EAAc,MAAA;AAAA,IACd,YAAA,EAAc,CAAA,UAAA,EAAaC,MAAAA,CAAO,mBAAmB,CAAA;AAAA,GACvD;AAAA,EACA,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,CAAA;AAAA,IACN,OAAA,EAAS,WAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,iBAAA;AAAA,IACnB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,YAAA,EAAc,uBAAA;AAAA,IACd,YAAA,EAAc,MAAA;AAAA,IACd,UAAA,EAAY,eAAA;AAAA,IACZ,eAAA,EAAiB,aAAA;AAAA,IACjB,MAAA,EAAQ,MAAA;AAAA,IACR,QAAA,EAAU;AAAA,MACR,OAAOA,MAAAA,CAAO,uBAAA;AAAA,MACd,iBAAiBA,MAAAA,CAAO;AAAA;AAC1B,GACF;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAOA,MAAAA,CAAO,qBAAA;AAAA,IACd,YAAYA,MAAAA,CAAO,kBAAA;AAAA,IACnB,YAAA,EAAc,CAAA,UAAA,EAAaA,MAAAA,CAAO,oBAAoB,CAAA;AAAA,GACxD;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,GAAA,EAAK,MAAA;AAAA,IACL,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,KAAA,EAAO;AAAA,GACT;AAAA,EACA,aAAA,EAAe;AAAA,IACb,mBAAA,EAAqB;AAAA,MACnB,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,mCAAA,EAAqC;AAAA,MACnC,YAAA,EAAc,OAAA;AAAA,MACd,UAAA,EAAY,gBAAA;AAAA,MACZ,MAAA,EAAQ,MAAA;AAAA,MACR,SAAA,EAAW;AAAA,QACT,eAAA,EAAiB,CAAA,EAAGA,MAAAA,CAAO,oBAAoB,CAAA,WAAA,CAAA;AAAA,QAC/C,OAAOA,MAAAA,CAAO;AAAA;AAChB;AACF,GACF;AAAA,EACA,UAAA,EAAY;AAAA,IACV,eAAA,EAAiB,CAAA,EAAGA,MAAAA,CAAO,oBAAoB,CAAA,WAAA,CAAA;AAAA,IAC/C,KAAA,EAAO,CAAA,EAAGA,MAAAA,CAAO,oCAAoC,CAAA,WAAA,CAAA;AAAA,IACrD,mBAAA,EAAqB,kBAAA;AAAA,IACrB,sBAAA,EAAwB,kBAAA;AAAA,IACxB,YAAYA,MAAAA,CAAO;AAAA,GACrB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,eAAA,EAAiB,CAAA,EAAGA,MAAAA,CAAO,oBAAoB,CAAA,WAAA,CAAA;AAAA,IAC/C,KAAA,EAAO,CAAA,EAAGA,MAAAA,CAAO,6BAA6B,CAAA,WAAA,CAAA;AAAA,IAC9C,oBAAA,EAAsB,kBAAA;AAAA,IACtB,uBAAA,EAAyB,kBAAA;AAAA,IACzB,YAAYA,MAAAA,CAAO;AAAA,GACrB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,eAAA,EAAiB,CAAA,EAAGA,MAAAA,CAAO,oBAAoB,CAAA,WAAA,CAAA;AAAA,IAC/C,KAAA,EAAO,CAAA,EAAGA,MAAAA,CAAO,oCAAoC,CAAA,WAAA,CAAA;AAAA,IACrD,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,eAAA,EAAiB,CAAA,EAAGA,MAAAA,CAAO,oBAAoB,CAAA,WAAA,CAAA;AAAA,IAC/C,OAAOA,MAAAA,CAAO,oCAAA;AAAA,IACd,YAAA,EAAc,gBAAA;AAAA,IACd,SAAA,EAAW,CAAA,gBAAA,EAAmBA,MAAAA,CAAO,iBAAiB,CAAA;AAAA,GACxD;AAAA,EACA,WAAA,EAAa;AAAA,IACX,eAAA,EAAiB,CAAA,EAAGA,MAAAA,CAAO,oBAAoB,CAAA,WAAA,CAAA;AAAA,IAC/C,KAAA,EAAO,CAAA,EAAGA,MAAAA,CAAO,6BAA6B,CAAA,WAAA,CAAA;AAAA,IAC9C,YAAA,EAAc,kBAAA;AAAA,IACd,YAAYA,MAAAA,CAAO;AAAA;AAEvB,CAAC,CAAA;AAyGM,IAAM,kBAAkD,CAAC;AAAA,EAC9D,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,eAAA;AAAA,EACR,qBAAA;AAAA,EACA,kBAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,QAAA,GAAW,IAAA;AAAA,EACX,qBAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA,uBAAc,IAAA,EAAK;AAAA,EACnB,OAAA;AAAA,EACA,UAAA,GAAa;AACf,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,WAAAA,EAAU;AAEzB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIe,SAA2B,qBAAqB,CAAA;AACxF,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,SAA2B,kBAAkB,CAAA;AAC3F,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,QAAAA,EAA2B;AACjE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAkB,UAAU,CAAA;AAE9D,EAAA,MAAM,cAAA,GAAiB,QAAQ,MAAM;AACnC,IAAA,IAAI,iBAAiB,OAAO,eAAA;AAC5B,IAAA,IAAI,YAAA,IAAgB,WAAA,IAAe,WAAA,GAAc,YAAA,EAAc;AAC7D,MAAA,OAAO,WAAA;AAAA,IACT;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,WAAA,EAAa,YAAA,EAAc,eAAe,CAAC,CAAA;AAE/C,EAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,EAAc,MAAA,KAAkB;AACzD,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,MAAA,EAAQ,OAAO,KAAA;AAC9B,IAAA,OAAO,MAAA,CAAO,KAAK,CAAA,CAAE,MAAA,CAAO,QAAQ,KAAK,CAAA;AAAA,EAC3C,CAAA;AAGA,EAAAG,UAAU,MAAM;AACd,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,eAAA,CAAgB,qBAAqB,CAAA;AACrC,MAAA,kBAAA,CAAmB,kBAAkB,CAAA;AACrC,MAAA,YAAA,CAAa,UAAU,CAAA;AACvB,MAAA,cAAA,CAAe,MAAS,CAAA;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,IAAA,EAAM,qBAAA,EAAuB,kBAAA,EAAoB,UAAU,CAAC,CAAA;AAEhE,EAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,KAAiB;AACxC,IAAA,YAAA,CAAa,GAAG,CAAA;AAChB,IAAA,kBAAA,CAAmB,MAAS,CAAA;AAC5B,IAAA,cAAA,CAAe,MAAS,CAAA;AAExB,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,WAAA,CAAY,GAAG,CAAA;AAAA,IACjB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,cAAA,CAAe,MAAS,CAAA;AACxB,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,IAAA,KAAkC;AAC1D,IAAA,IAAI,CAAC,IAAA,EAAM;AAEX,IAAA,MAAM,YAAA,GAAe,YAAA;AAErB,IAAA,IAAI,cAAc,YAAA,EAAc;AAE9B,MAAA,IAAI,CAAC,gBAAgB,eAAA,EAAiB;AAEpC,QAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,QAAA,kBAAA,CAAmB,MAAS,CAAA;AAC5B,QAAA,cAAA,CAAe,MAAS,CAAA;AACxB,QAAA,qBAAA,CAAsB,IAAI,CAAA;AAG1B,MACF,CAAA,MAAO;AAEL,QAAA,IAAI,OAAO,YAAA,EAAc;AAEvB,UAAA,kBAAA,CAAmB,YAAY,CAAA;AAC/B,UAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,UAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,UAAA,IAAI,kBAAA,EAAoB;AACtB,YAAA,kBAAA,CAAmB,YAAY,CAAA;AAAA,UACjC;AAAA,QACF,CAAA,MAAO;AACL,UAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,UAAA,IAAI,kBAAA,EAAoB;AACtB,YAAA,kBAAA,CAAmB,IAAI,CAAA;AAAA,UACzB;AAAA,QACF;AACA,QAAA,cAAA,CAAe,MAAS,CAAA;AACxB,QAAA,WAAA,EAAY;AAAA,MACd;AAAA,IACF,CAAA,MAAO;AAEL,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,MAAA,WAAA,EAAY;AAAA,IACd;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyBe,WAAAA;AAAA,IAC7B,CAAC,OAAA,EAA6B,IAAA,EAAY,WAAA,KAAwC;AAChF,MAAA,IAAI,CAAC,OAAA,EAAS;AAEd,MAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAuB;AAC3C,QAAA,SAAA,EACI,KAAA,CAAM,KAAK,CAAA,CACZ,MAAA,CAAO,OAAO,CAAA,CACd,OAAA,CAAQ,CAAA,KAAA,KAAS,OAAA,CAAQ,SAAA,CAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MACrD,CAAA;AACA,MAAA,MAAM,SAAA,GAAY,CAAC,SAAA,KAAuB;AACxC,QAAA,SAAA,EACI,KAAA,CAAM,KAAK,CAAA,CACZ,MAAA,CAAO,OAAO,CAAA,CACd,OAAA,CAAQ,CAAA,KAAA,KAAS,OAAA,CAAQ,SAAA,CAAU,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,MAClD,CAAA;AACA,MAAA,MAAM,gBAAA,GAAmB;AAAA,QACvB,MAAA,CAAO,UAAA;AAAA,QACP,MAAA,CAAO,QAAA;AAAA,QACP,MAAA,CAAO,WAAA;AAAA,QACP,MAAA,CAAO,YAAA;AAAA,QACP,MAAA,CAAO;AAAA,OACT;AACA,MAAA,gBAAA,CAAiB,QAAQ,YAAY,CAAA;AAErC,MAAA,IAAI,SAAA,KAAc,YAAA,IAAgB,CAAC,YAAA,EAAc;AAC/C,QAAA,OAAA,CAAQ,YAAA,GAAe,IAAA;AACvB,QAAA,OAAA,CAAQ,YAAA,GAAe,IAAA;AACvB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,gBAAA,GAAmB,cAAA;AACzB,MAAA,MAAM,SAAA,GAAY,aAAa,OAAA,EAAQ;AACvC,MAAA,MAAM,OAAA,GAAU,kBAAkB,OAAA,EAAQ;AAC1C,MAAA,MAAM,WAAA,GAAc,KAAK,OAAA,EAAQ;AACjC,MAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,gBAAA,EAAkB,YAAY,CAAA;AACvE,MAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,IAAA,EAAM,YAAY,CAAA;AACvD,MAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,IAAA,EAAM,gBAAgB,CAAA;AAEzD,MAAA,IAAI,UAAA,KAAe,CAAC,gBAAA,IAAoB,cAAA,CAAA,EAAiB;AACvD,QAAA,SAAA,CAAU,OAAO,WAAW,CAAA;AAAA,MAC9B,CAAA,MAAO;AACL,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,SAAA,CAAU,OAAO,UAAU,CAAA;AAAA,QAC7B;AACA,QAAA,IAAI,QAAA,IAAY,CAAC,cAAA,EAAgB;AAC/B,UAAA,SAAA,CAAU,OAAO,QAAQ,CAAA;AAAA,QAC3B;AAAA,MACF;AAEA,MAAA,IAAI,OAAA,IAAW,WAAA,GAAc,SAAA,IAAa,WAAA,GAAc,OAAA,EAAS;AAC/D,QAAA,SAAA,CAAU,eAAA,GAAkB,MAAA,CAAO,WAAA,GAAc,MAAA,CAAO,YAAY,CAAA;AAAA,MACtE;AAEA,MAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,QAAA,OAAA,CAAQ,eAAe,MAAM;AAC3B,UAAA,IAAI,OAAO,YAAA,EAAc;AACzB,UAAA,cAAA,CAAe,CAAA,IAAA,KAAQ;AACrB,YAAA,IAAI,iBAAA,CAAkB,IAAA,EAAM,IAAI,CAAA,EAAG;AACjC,cAAA,OAAO,IAAA;AAAA,YACT;AACA,YAAA,OAAO,IAAA;AAAA,UACT,CAAC,CAAA;AAAA,QACH,CAAA;AACA,QAAA,OAAA,CAAQ,eAAe,MAAM;AAC3B,UAAA,cAAA,CAAe,MAAS,CAAA;AAAA,QAC1B,CAAA;AAAA,MACF,CAAA,MAAO;AACL,QAAA,OAAA,CAAQ,YAAA,GAAe,IAAA;AACvB,QAAA,OAAA,CAAQ,YAAA,GAAe,IAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,SAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAA,CAAO,QAAA;AAAA,MACP,MAAA,CAAO,WAAA;AAAA,MACP,MAAA,CAAO,YAAA;AAAA,MACP,MAAA,CAAO,WAAA;AAAA,MACP,MAAA,CAAO;AAAA;AACT,GACF;AAEA,EAAA,uBACE7B,GAAAA;AAAA,IAACsB,MAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,CAAA,EAAG,IAAA,KAAS;AACzB,QAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AACd,UAAA,OAAA,EAAQ;AAAA,QACV;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,kBAAAtB,GAAAA,CAACuB,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,aAAA,EAC/B,QAAA,kBAAAxB,IAAAA,CAACyB,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAxB,GAAAA;AAAA,UAACyB,WAAAA;AAAA,UAAA;AAAA,YACC,wBACEzB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,QAAA;AAAA,gBACX,YAAA,EAAW,OAAA;AAAA,gBACX,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,2BAAA,EAA4B,CAAA;AAAA,gBAC7C,OAAA,EAAS,WAAA;AAAA,gBACT,WAAW,MAAA,CAAO;AAAA;AAAA,aACpB;AAAA,YAGD,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAnB,IAAAA,CAAC2B,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,OAAA,EAE9B,QAAA,EAAA;AAAA,UAAA,QAAA,oBACC3B,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,YAAA,EACrB,QAAA,EAAA;AAAA,4BAAAC,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,UAAU,SAAA,KAAc,YAAA;AAAA,gBACxB,SAAA,EAAW,GAAG,MAAA,CAAO,GAAG,IAAI,SAAA,KAAc,SAAA,GAAY,MAAA,CAAO,SAAA,GAAY,EAAE,CAAA,CAAA;AAAA,gBAC3E,OAAA,EAAS,MAAM,eAAA,CAAgB,SAAS,CAAA;AAAA,gBACzC,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,GAAG,MAAA,CAAO,GAAG,IAAI,SAAA,KAAc,YAAA,GAAe,MAAA,CAAO,SAAA,GAAY,EAAE,CAAA,CAAA;AAAA,gBAC9E,OAAA,EAAS,MAAM,eAAA,CAAgB,YAAY,CAAA;AAAA,gBAC3C,UAAU,SAAA,KAAc,SAAA;AAAA,gBACzB,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EACF,CAAA;AAAA,0BAIFA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,iBAAA,EACrB,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAO,MAAA,EAAO,EAC1B,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAc,YAAA,GAAe,MAAA,CAAO,aAAA,GAAgB,EAAA,EAClE,QAAA,kBAAAA,GAAAA;AAAA,YAAC8B,QAAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,OAAA;AAAA,cACA,KAAA,EAAO,YAAA;AAAA,cACP,YAAA,EAAc,gBAAA;AAAA,cACd,aAAA,EAAa,IAAA;AAAA,cACb,sBAAA,EAAsB,IAAA;AAAA,cACtB,wBAAA,EAA0B,KAAA;AAAA,cAC1B,YAAA,EAAY,IAAA;AAAA,cACZ,gBAAA,EAAkB;AAAA,gBAChB,gBAAA,EAAkB;AAAA;AACpB;AAAA,WACF,EACF,GACF,CAAA,EACF;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;AC/cA,IAAMlC,cAAYC,UAAAA,CAAW;AAAA,EAC3B,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,SAAA,EAAW;AAAA,GACb;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,KAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,YAAA,EAAc,CAAA,UAAA,EAAaC,MAAAA,CAAO,mBAAmB,CAAA;AAAA,GACvD;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,SAAA,EAAW,OAAA;AAAA,IACX,SAAA,EAAW,MAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,UAAA;AAAA,IACT,YAAA,EAAc,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,IACrD,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,YAAA;AAAA,IACZ,GAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAQ,SAAA;AAAA,IACR,UAAA,EAAY,4BAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,iBAAiBA,MAAAA,CAAO;AAAA;AAC1B,GACF;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,CAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACP;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,kBAAA;AAAA,IACnB,OAAOA,MAAAA,CAAO;AAAA,GAChB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,iBAAA;AAAA,IACnB,OAAOA,MAAAA,CAAO;AAAA,GAChB;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,OAAOA,MAAAA,CAAO,uBAAA;AAAA,IACd,UAAA,EAAY;AAAA,GACd;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,WAAA;AAAA,IACT,SAAA,EAAW,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA;AAAA,GACpD;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,MAAA;AAAA,IACP,cAAcA,MAAAA,CAAO;AAAA;AAEzB,CAAC,CAAA;AAmGM,IAAM,eAA4C,CAAC;AAAA,EACxD,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,qBAAA;AAAA,EACR,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,OAAA,GAAU;AACZ,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,WAAAA,EAAU;AACzB,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIe,SAAmB,kBAAkB,CAAA;AAGrF,EAAAG,UAAU,MAAM;AACd,IAAA,IAAI,IAAA,EAAM;AAER,MAAA,IAAI,kBAAA,IAAsB,kBAAA,CAAmB,MAAA,GAAS,CAAA,EAAG;AAEvD,QAAA,MAAM,QAAA,GAAW,QAAA,CACd,MAAA,CAAO,CAAA,CAAA,KAAK,kBAAA,CAAmB,QAAA,CAAS,CAAA,CAAE,EAAE,CAAC,CAAA,CAC7C,GAAA,CAAI,CAAA,CAAA,KAAK,EAAE,EAAE,CAAA;AAChB,QAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,MAC9B,CAAA,MAAO;AAEL,QAAA,mBAAA,CAAoB,QAAA,CAAS,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,MAC7C;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,QAAA,EAAU,kBAAkB,CAAC,CAAA;AAEvC,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,SAAA,KAAsB;AACjD,IAAA,mBAAA,CAAoB,CAAA,IAAA,KAAQ;AAC1B,MAAA,IAAI,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA,EAAG;AAC5B,QAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAA,EAAA,KAAM,EAAA,KAAO,SAAS,CAAA;AAAA,MAC3C,CAAA,MAAO;AACL,QAAA,OAAO,CAAC,GAAG,IAAA,EAAM,SAAS,CAAA;AAAA,MAC5B;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,gBAAA,CAAiB,MAAA,KAAW,QAAA,CAAS,MAAA,EAAQ;AAC/C,MAAA,mBAAA,CAAoB,EAAE,CAAA;AAAA,IACxB,CAAA,MAAO;AACL,MAAA,mBAAA,CAAoB,QAAA,CAAS,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,IAC7C;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,MAAM,oBAAA,GAAuB,SAAS,MAAA,CAAO,CAAA,CAAA,KAAK,iBAAiB,QAAA,CAAS,CAAA,CAAE,EAAE,CAAC,CAAA;AACjF,IAAA,MAAA,CAAO,oBAAoB,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,uBACEd,GAAAA;AAAA,IAACsB,MAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,cAAc,CAAC,CAAA,EAAG,SAAS,CAAC,IAAA,CAAK,QAAQ,OAAA,EAAQ;AAAA,MAEjD,QAAA,kBAAAtB,GAAAA,CAACuB,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,aAAA,EAC/B,QAAA,kBAAAxB,IAAAA,CAACyB,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAxB,GAAAA;AAAA,UAACyB,WAAAA;AAAA,UAAA;AAAA,YACC,wBACEzB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,QAAA;AAAA,gBACX,YAAA,EAAW,OAAA;AAAA,gBACX,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,2BAAA,EAA4B,CAAA;AAAA,gBAC7C,OAAA,EAAS,WAAA;AAAA,gBACT,WAAW,MAAA,CAAO;AAAA;AAAA,aACpB;AAAA,YAGD,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAlB,GAAAA,CAAC0B,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,OAAA,EAC9B,QAAA,EAAA,SAAA,mBACC1B,GAAAA,CAACE,KAAAA,EAAA,EAAM,wBAAU,CAAA,GACf,OAAA,mBACFF,GAAAA,CAACE,KAAAA,EAAA,EAAM,oCAAsB,CAAA,mBAE7BH,IAAAA,CAAA4B,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA5B,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,WAAA,EACrB,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAACE,KAAAA,EAAA,EAAM,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,8BAClBF,GAAAA;AAAA,gBAAC+B,QAAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,gBAAA,CAAiB,MAAA,KAAW,QAAA,CAAS,MAAA;AAAA,kBAC9C,QAAA,EAAU;AAAA;AAAA;AACZ,aAAA,EACF,CAAA;AAAA,YACC,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,qBACZhC,IAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,WAAW,MAAA,CAAO,WAAA;AAAA,gBAClB,OAAA,EAAS,MAAM,mBAAA,CAAoB,OAAA,CAAQ,EAAE,CAAA;AAAA,gBAE7C,QAAA,EAAA;AAAA,kCAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,cAAA,EACrB,QAAA,EAAA;AAAA,oCAAAC,IAACE,KAAAA,EAAA,EAAM,WAAW,MAAA,CAAO,WAAA,EAAc,kBAAQ,eAAA,EAAgB,CAAA;AAAA,oCAC/DF,IAAC4B,QAAAA,EAAA,EAAS,WAAW,MAAA,CAAO,WAAA,EAAc,kBAAQ,eAAA,EAAgB,CAAA;AAAA,oCAClE5B,IAAC4B,QAAAA,EAAA,EAAS,WAAW,MAAA,CAAO,kBAAA,EACzB,kBAAQ,kBAAA,EACX;AAAA,mBAAA,EACF,CAAA;AAAA,kCACA5B,GAAAA;AAAA,oBAAC+B,QAAAA;AAAA,oBAAA;AAAA,sBACC,OAAA,EAAS,gBAAA,CAAiB,QAAA,CAAS,OAAA,CAAQ,EAAE,CAAA;AAAA,sBAC7C,QAAA,EAAU,MAAM,mBAAA,CAAoB,OAAA,CAAQ,EAAE;AAAA;AAAA;AAChD;AAAA,eAAA;AAAA,cAdK,OAAA,CAAQ;AAAA,aAgBhB;AAAA,WAAA,EACH,CAAA;AAAA,0BACA/B,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,QACrB,QAAA,kBAAAA,GAAAA;AAAA,YAACG,MAAAA;AAAA,YAAA;AAAA,cACC,UAAA,EAAW,SAAA;AAAA,cACX,IAAA,EAAK,QAAA;AAAA,cACL,WAAW,MAAA,CAAO,UAAA;AAAA,cAClB,OAAA,EAAS,UAAA;AAAA,cACT,QAAA,EAAU,iBAAiB,MAAA,KAAW,CAAA;AAAA,cACvC,QAAA,EAAA;AAAA;AAAA,WAED,EACF;AAAA,SAAA,EACF,CAAA,EAEJ;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;;;AC3SO,IAAM,uBAAA,GAA0C;AAAA,EACrD,EAAE,IAAI,CAAA,EAAG,IAAA,EAAM,WAAW,GAAA,EAAK,SAAA,EAAW,aAAa,SAAA,EAAU;AAAA,EACjE,EAAE,IAAI,CAAA,EAAG,IAAA,EAAM,UAAU,GAAA,EAAK,QAAA,EAAU,aAAa,UAAA,EAAW;AAAA,EAChE,EAAE,IAAI,CAAA,EAAG,IAAA,EAAM,aAAa,GAAA,EAAK,WAAA,EAAa,aAAa,WAAA;AAC7D;ACAA,IAAMP,cAAYC,UAAAA,CAAW;AAAA,EAC3B,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,WAAWC,MAAAA,CAAO,kBAAA;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO;AAAA,GACrB;AAAA,EACA,aAAA,EAAe;AAAA,IACb,cAAcA,MAAAA,CAAO,kBAAA;AAAA,IACrB,YAAA,EAAc,MAAA;AAAA,IACd,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA;AAAA,GACjD;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACP;AAAA,EACA,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,MAAA;AAAA,IACV,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS,GAAA;AAAA,IACT,cAAcA,MAAAA,CAAO,oBAAA;AAAA,IACrB,OAAOA,MAAAA,CAAO,oBAAA;AAAA,IACd,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,oBAAoB,CAAA,CAAA;AAAA,IAChD,SAAA,EAAW;AAAA,MACT,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,yBAAyB,CAAA,CAAA;AAAA,MACrD,OAAOA,MAAAA,CAAO;AAAA,KAChB;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,MAAA,EAAQ,CAAA,UAAA,EAAaA,MAAAA,CAAO,0BAA0B,CAAA,CAAA;AAAA,MACtD,OAAOA,MAAAA,CAAO;AAAA;AAChB,GACF;AAAA,EACA,SAAA,EAAW;AAAA,IACT,QAAA,EAAU,MAAA;AAAA,IACV,SAAA,EAAW;AAAA,GACb;AAAA,EACA,aAAA,EAAe;AAAA,IACb,SAAA,EAAW,CAAA,UAAA,EAAaA,MAAAA,CAAO,oBAAoB,CAAA,CAAA;AAAA,IACnD,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,OAAA,EAAS;AAAA,GACX;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,OAAA,EAAS,KAAA;AAAA,IACT,cAAcA,MAAAA,CAAO,iBAAA;AAAA,IACrB,iBAAiBA,MAAAA,CAAO;AAAA,GAC1B;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,SAAA,EAAW,MAAA;AAAA,IACX,KAAA,EAAO,MAAA;AAAA,IACP,cAAcA,MAAAA,CAAO;AAAA,GACvB;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,MAAA,EAAQ;AAAA;AAEZ,CAAC,CAAA;AAuHM,IAAM,uBAA4D,CAAC;AAAA,EACxE,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,wBAAA;AAAA,EACR,cAAA;AAAA,EACA,cAAA,GAAiB,uBAAA;AAAA,EACjB,kBAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,aAAA,GAAgB,EAAA;AAAA,EAChB;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,WAAAA,EAAU;AACzB,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIe,QAAAA,CAAkC,EAAE,CAAA;AACxE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,QAAAA,CAAmB,EAAE,CAAA;AAEvD,EAAA,MAAM,kBAAA,GAAqB,iCAAiC,aAAa,CAAA,uCAAA,CAAA;AAGzE,EAAAG,UAAU,MAAM;AACd,IAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AAGjC,IAAA,MAAM,iBAAA,GAA6C,cAAA,CAAe,GAAA,CAAI,CAAA,aAAA,MAAkB;AAAA,MACtF,iBAAiB,aAAA,CAAc,EAAA;AAAA,MAC/B,mBAAmB,aAAA,CAAc,iBAAA;AAAA,MACjC,mBAAmB,aAAA,CAAc,iBAAA;AAAA,MACjC,QAAA,EAAU,cAAA,CAAe,GAAA,CAAI,CAAA,EAAA,MAAO;AAAA,QAClC,WAAW,EAAA,CAAG,EAAA;AAAA,QACd,aAAa,EAAA,CAAG,WAAA;AAAA,QAChB,KAAA,EAAO,CAAA;AAAA,QACP,YAAY;AAAC,OACf,CAAE;AAAA,KACJ,CAAE,CAAA;AAGF,IAAA,IAAI,kBAAA,IAAsB,kBAAA,CAAmB,MAAA,GAAS,CAAA,EAAG;AACvD,MAAA,MAAM,gBAAA,GAAmB,iBAAA,CAAkB,GAAA,CAAI,CAAA,QAAA,KAAY;AACzD,QAAA,MAAM,YAAY,kBAAA,CAAmB,IAAA;AAAA,UACnC,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAA,KAAsB,QAAA,CAAS;AAAA,SACxC;AACA,QAAA,IAAI,SAAA,EAAW;AAEb,UAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,QAAA,CAAS,GAAA,CAAI,CAAA,QAAA,KAAY;AACvD,YAAA,MAAM,SAAA,GAAY,UAAU,QAAA,CAAS,IAAA,CAAK,OAAK,CAAA,CAAE,WAAA,KAAgB,SAAS,WAAW,CAAA;AACrF,YAAA,OAAO,SAAA,GACH,EAAE,GAAG,QAAA,EAAU,KAAA,EAAO,SAAA,CAAU,KAAA,EAAO,UAAA,EAAY,SAAA,CAAU,UAAA,IAAc,EAAC,EAAE,GAC9E,QAAA;AAAA,UACN,CAAC,CAAA;AACD,UAAA,OAAO,EAAE,GAAG,QAAA,EAAU,QAAA,EAAU,cAAA,EAAe;AAAA,QACjD;AACA,QAAA,OAAO,QAAA;AAAA,MACT,CAAC,CAAA;AACD,MAAA,aAAA,CAAc,gBAAgB,CAAA;AAG9B,MAAA,MAAM,aAAA,GAAgB,kBAAA,CACnB,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,QAAA,CAAS,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,KAAA,GAAQ,CAAC,CAAC,CAAA,CAC7C,IAAI,CAAA,CAAA,KAAK;AACR,QAAA,MAAM,gBAAgB,cAAA,CAAe,IAAA;AAAA,UACnC,CAAA,EAAA,KAAM,EAAA,CAAG,iBAAA,KAAsB,CAAA,CAAE;AAAA,SACnC;AACA,QAAA,OAAO,aAAA,GAAgB,MAAA,CAAO,aAAA,CAAc,EAAE,CAAA,GAAI,EAAA;AAAA,MACpD,CAAC,CAAA,CACA,MAAA,CAAO,CAAA,EAAA,KAAM,OAAO,EAAE,CAAA;AACzB,MAAA,YAAA,CAAa,aAAa,CAAA;AAAA,IAC5B,CAAA,MAAO;AACL,MAAA,aAAA,CAAc,iBAAiB,CAAA;AAC/B,MAAA,YAAA,CAAa,EAAE,CAAA;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,IAAA,EAAM,cAAA,EAAgB,cAAA,EAAgB,kBAAkB,CAAC,CAAA;AAG7D,EAAA,MAAM,eAAA,GAAkB,CACtB,iBAAA,EACA,WAAA,KACW;AACX,IAAA,MAAM,YAAY,UAAA,CAAW,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,sBAAsB,iBAAiB,CAAA;AAChF,IAAA,IAAI,CAAC,WAAW,OAAO,CAAA;AACvB,IAAA,MAAM,UAAU,SAAA,CAAU,QAAA,CAAS,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,gBAAgB,WAAW,CAAA;AAC1E,IAAA,OAAO,SAAS,KAAA,IAAS,CAAA;AAAA,EAC3B,CAAA;AAGA,EAAA,MAAM,eAAA,GAAkB,CAAC,iBAAA,KAA8B;AACrD,IAAA,MAAM,YAAY,UAAA,CAAW,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,sBAAsB,iBAAiB,CAAA;AAChF,IAAA,IAAI,CAAC,WAAW,OAAO,GAAA;AAEvB,IAAA,MAAM,QAAkB,EAAC;AACzB,IAAA,SAAA,CAAU,QAAA,CAAS,QAAQ,CAAA,OAAA,KAAW;AACpC,MAAA,IAAI,OAAA,CAAQ,QAAQ,CAAA,EAAG;AACrB,QAAA,MAAM,eAAe,cAAA,CAAe,IAAA,CAAK,QAAM,EAAA,CAAG,WAAA,KAAgB,QAAQ,WAAW,CAAA;AACrF,QAAA,MAAM,WAAA,GAAc,YAAA,EAAc,IAAA,IAAQ,OAAA,CAAQ,WAAA;AAClD,QAAA,KAAA,CAAM,KAAK,CAAA,EAAG,OAAA,CAAQ,KAAK,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,CAAA;AAAA,MAC9C;AAAA,IACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAM,MAAA,GAAS,CAAA,GAAI,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA;AAAA,EAC/C,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,iBAAA,EAA2B,WAAA,KAAsC;AACxF,IAAA,aAAA;AAAA,MAAc,CAAA,IAAA,KACZ,IAAA,CAAK,GAAA,CAAI,CAAA,SAAA,KAAa;AACpB,QAAA,IAAI,SAAA,CAAU,sBAAsB,iBAAA,EAAmB;AACrD,UAAA,OAAO;AAAA,YACL,GAAG,SAAA;AAAA,YACH,QAAA,EAAU,SAAA,CAAU,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,KAAW;AAC1C,cAAA,IAAI,OAAA,CAAQ,gBAAgB,WAAA,EAAa;AACvC,gBAAA,MAAM,QAAA,GAAW,QAAQ,KAAA,GAAQ,CAAA;AACjC,gBAAA,MAAM,gBAAgB,CAAC,GAAI,OAAA,CAAQ,UAAA,IAAc,EAAG,CAAA;AAGpD,gBAAA,OAAO,aAAA,CAAc,SAAS,QAAA,EAAU;AACtC,kBAAA,aAAA,CAAc,IAAA,CAAK,EAAe,CAAA;AAAA,gBACpC;AAEA,gBAAA,OAAO;AAAA,kBACL,GAAG,OAAA;AAAA,kBACH,KAAA,EAAO,QAAA;AAAA,kBACP,UAAA,EAAY;AAAA,iBACd;AAAA,cACF;AACA,cAAA,OAAO,OAAA;AAAA,YACT,CAAC;AAAA,WACH;AAAA,QACF;AACA,QAAA,OAAO,SAAA;AAAA,MACT,CAAC;AAAA,KACH;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,iBAAA,EAA2B,WAAA,KAAsC;AACxF,IAAA,aAAA;AAAA,MAAc,CAAA,IAAA,KACZ,IAAA,CAAK,GAAA,CAAI,CAAA,SAAA,KAAa;AACpB,QAAA,IAAI,SAAA,CAAU,sBAAsB,iBAAA,EAAmB;AACrD,UAAA,OAAO;AAAA,YACL,GAAG,SAAA;AAAA,YACH,QAAA,EAAU,SAAA,CAAU,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,KAAW;AAC1C,cAAA,IAAI,OAAA,CAAQ,WAAA,KAAgB,WAAA,IAAe,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC5D,gBAAA,MAAM,QAAA,GAAW,QAAQ,KAAA,GAAQ,CAAA;AACjC,gBAAA,MAAM,iBAAiB,OAAA,CAAQ,UAAA,IAAc,EAAC,EAAG,KAAA,CAAM,GAAG,QAAQ,CAAA;AAClE,gBAAA,OAAO;AAAA,kBACL,GAAG,OAAA;AAAA,kBACH,KAAA,EAAO,QAAA;AAAA,kBACP,UAAA,EAAY;AAAA,iBACd;AAAA,cACF;AACA,cAAA,OAAO,OAAA;AAAA,YACT,CAAC;AAAA,WACH;AAAA,QACF;AACA,QAAA,OAAO,SAAA;AAAA,MACT,CAAC;AAAA,KACH;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AAEvB,IAAA,MAAM,kBAAA,GAAqB,UAAA,CACxB,GAAA,CAAI,CAAA,SAAA,MAAc;AAAA,MACjB,GAAG,SAAA;AAAA,MACH,UAAU,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,OAAA,KAAW,OAAA,CAAQ,QAAQ,CAAC;AAAA,MAChE,CAAA,CACD,MAAA,CAAO,eAAa,SAAA,CAAU,QAAA,CAAS,SAAS,CAAC,CAAA;AAEpD,IAAA,MAAA,CAAO,kBAAkB,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA,uBACEd,GAAAA;AAAA,IAACsB,MAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,cAAc,CAAC,CAAA,EAAG,SAAS,CAAC,IAAA,CAAK,QAAQ,OAAA,EAAQ;AAAA,MAEjD,0BAAAtB,GAAAA,CAACuB,aAAAA,EAAA,EACC,QAAA,kBAAAxB,IAAAA,CAACyB,YAAA,EACC,QAAA,EAAA;AAAA,wBAAAxB,GAAAA;AAAA,UAACyB,WAAAA;AAAA,UAAA;AAAA,YACC,wBACEzB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,QAAA;AAAA,gBACX,YAAA,EAAW,OAAA;AAAA,gBACX,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,2BAAA,EAA4B,CAAA;AAAA,gBAC7C,OAAA,EAAS;AAAA;AAAA,aACX;AAAA,YAGD,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAnB,IAAAA,CAAC2B,aAAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA1B,GAAAA,CAAC,cAAW,KAAA,EAAM,SAAA,EAChB,0BAAAA,GAAAA,CAAC,cAAA,EAAA,EACE,QAAA,EAAA,WAAA,IAAe,kBAAA,EAClB,CAAA,EACF,CAAA;AAAA,UACC,SAAA,mBACCA,GAAAA,CAACE,KAAAA,EAAA,EAAM,wBAAU,CAAA,mBAEjBH,IAAAA,CAAA4B,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA3B,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAW,IAAA;AAAA,gBACX,QAAA,EAAQ,IAAA;AAAA,gBACR,SAAA;AAAA,gBACA,UAAU,CAAC,CAAA,EAAG,IAAA,KAAS,YAAA,CAAa,KAAK,SAAqB,CAAA;AAAA,gBAC9D,WAAW,MAAA,CAAO,gBAAA;AAAA,gBAEjB,QAAA,EAAA,cAAA,CAAe,IAAI,CAAA,aAAA,KAAiB;AACnC,kBAAA,uBACED,IAAAA;AAAA,oBAAC,aAAA;AAAA,oBAAA;AAAA,sBAEC,KAAA,EAAO,MAAA,CAAO,aAAA,CAAc,EAAE,CAAA;AAAA,sBAC9B,WAAW,MAAA,CAAO,aAAA;AAAA,sBAElB,QAAA,EAAA;AAAA,wCAAAA,KAAC,eAAA,EAAA,EAAgB,SAAA,EAAW,MAAA,CAAO,eAAA,EAAiB,oBAAmB,KAAA,EACpE,QAAA,EAAA;AAAA,0BAAA,aAAA,CAAc,iBAAA;AAAA,0BAAkB,IAAA;AAAA,0BAChC,eAAA,CAAgB,cAAc,iBAAiB,CAAA;AAAA,0BAAE;AAAA,yBAAA,EACpD,CAAA;AAAA,wCACAC,IAAC,cAAA,EAAA,EAAe,SAAA,EAAW,OAAO,cAAA,EAChC,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,aAAA,EACpB,QAAA,EAAA,cAAA,CAAe,IAAI,CAAA,OAAA,qBAClBD,KAAC,KAAA,EAAA,EAAsB,SAAA,EAAW,OAAO,SAAA,EACvC,QAAA,EAAA;AAAA,0CAAAC,GAAAA,CAACE,KAAAA,EAAA,EAAO,QAAA,EAAA,OAAA,CAAQ,IAAA,EAAK,CAAA;AAAA,0CACrBH,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,cAAA,EACrB,QAAA,EAAA;AAAA,4CAAAC,GAAAA;AAAA,8BAACG,MAAAA;AAAA,8BAAA;AAAA,gCACC,UAAA,EAAW,SAAA;AAAA,gCACX,WAAW,MAAA,CAAO,aAAA;AAAA,gCAClB,IAAA,EAAK,OAAA;AAAA,gCACL,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,4BAAA,EAA6B,CAAA;AAAA,gCAC9C,SAAS,CAAA,CAAA,KAAK;AACZ,kCAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kCAAA,eAAA;AAAA,oCACE,aAAA,CAAc,iBAAA;AAAA,oCACd,OAAA,CAAQ;AAAA,mCACV;AAAA,gCACF,CAAA;AAAA,gCACA,QAAA,EACE,eAAA;AAAA,kCACE,aAAA,CAAc,iBAAA;AAAA,kCACd,OAAA,CAAQ;AAAA,iCACV,KAAM;AAAA;AAAA,6BAEV;AAAA,4CACAlB,GAAAA,CAACE,KAAAA,EAAA,EAAM,SAAA,EAAW,OAAO,SAAA,EACtB,QAAA,EAAA,eAAA;AAAA,8BACC,aAAA,CAAc,iBAAA;AAAA,8BACd,OAAA,CAAQ;AAAA,6BACV,EACF,CAAA;AAAA,4CACAF,GAAAA;AAAA,8BAACG,MAAAA;AAAA,8BAAA;AAAA,gCACC,UAAA,EAAW,SAAA;AAAA,gCACX,WAAW,MAAA,CAAO,aAAA;AAAA,gCAClB,IAAA,EAAK,OAAA;AAAA,gCACL,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,uBAAA,EAAwB,CAAA;AAAA,gCACzC,SAAS,CAAA,CAAA,KAAK;AACZ,kCAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kCAAA,eAAA;AAAA,oCACE,aAAA,CAAc,iBAAA;AAAA,oCACd,OAAA,CAAQ;AAAA,mCACV;AAAA,gCACF;AAAA;AAAA;AACF,2BAAA,EACF;AAAA,yBAAA,EAAA,EAzCQ,OAAA,CAAQ,GA0ClB,CACD,CAAA,EACH,CAAA,EACF;AAAA;AAAA,qBAAA;AAAA,oBAxDK,aAAA,CAAc;AAAA,mBAyDrB;AAAA,gBAEJ,CAAC;AAAA;AAAA,aACH;AAAA,4BAEAlB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,SAAA;AAAA,gBACX,IAAA,EAAK,QAAA;AAAA,gBACL,WAAW,MAAA,CAAO,YAAA;AAAA,gBAClB,OAAA,EAAS,UAAA;AAAA,gBACV,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EACF;AAAA,SAAA,EAEJ;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;ACrdA,IAAMP,cAAYC,UAAAA,CAAW;AAAA,EAC3B,aAAA,EAAe;AAAA,IACb,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO;AAAA,GACT;AAAA,EACA,WAAA,EAAa;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,SAAA,EAAW;AAAA,GACb;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,WAAWC,MAAAA,CAAO,kBAAA;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,aAAA,EAAe;AAAA,IACb,YAAA,EAAc,CAAA,UAAA,EAAaA,MAAAA,CAAO,mBAAmB,CAAA,CAAA;AAAA,IACrD,KAAA,EAAO;AAAA,GACT;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAUA,MAAAA,CAAO,eAAA;AAAA,IACjB,YAAYA,MAAAA,CAAO,cAAA;AAAA,IACnB,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,KAAA,EAAO;AAAA,GACT;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,YAAYA,MAAAA,CAAO,kBAAA;AAAA,IACnB,IAAA,EAAM;AAAA,GACR;AAAA,EACA,aAAA,EAAe;AAAA,IACb,UAAA,EAAY;AAAA,GACd;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,WAAWA,MAAAA,CAAO,gBAAA;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,KAAKA,MAAAA,CAAO,kBAAA;AAAA,IACZ,cAAA,EAAgB;AAAA;AAEpB,CAAC,CAAA;AAkFM,IAAM,qBAAwD,CAAC;AAAA,EACpE,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,oBAAA;AAAA,EACR,YAAA;AAAA,EACA,eAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAASF,WAAAA,EAAU;AACzB,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAIe,QAAAA;AAAA,IACtD,iBAAiB,KAAA,IAAS;AAAA,GAC5B;AACA,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAA6B,MAAM;AAEnE,IAAA,IAAI,CAAC,iBAAiB,OAAO,MAAA;AAC7B,IAAA,KAAA,MAAW,QAAQ,YAAA,EAAc;AAC/B,MAAA,IAAI,KAAK,IAAA,KAAS,WAAA,IAAe,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA,EAAG;AACtD,QAAA,MAAM,gBAAA,GAAmB,KAAK,KAAA,CAAM,IAAA;AAAA,UAClC,CAAA,KAAA,KAAS,KAAA,CAAM,KAAA,KAAU,eAAA,CAAgB;AAAA,SAC3C;AACA,QAAA,IAAI,gBAAA,EAAkB;AACpB,UAAA,OAAO,IAAA,CAAK,EAAA;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAC,CAAA;AAGD,EAAA,MAAM,qBAAqB,CAAC,EAAE,KAAK,GAAA,EAAK,KAAA,EAAO,QAAO,qBACpDX,IAAC,KAAA,EAAA,EAAI,GAAA,EAAU,KAAU,KAAA,EAAc,MAAA,EAAgB,OAAO,EAAE,SAAA,EAAW,WAAU,EAAG,CAAA;AAG1F,EAAA,MAAM,gBAAgB,WAAA,IAAe,kBAAA;AAGrC,EAAAc,UAAU,MAAM;AACd,IAAA,MAAM,QAAA,GAAW,iBAAiB,KAAA,IAAS,EAAA;AAG3C,IAAA,IAAI,aAAa,oBAAA,EAAsB;AACrC,MAAA,uBAAA,CAAwB,QAAQ,CAAA;AAAA,IAClC;AAGA,IAAA,IAAI,eAAA,EAAiB;AACnB,MAAA,KAAA,MAAW,QAAQ,YAAA,EAAc;AAC/B,QAAA,IAAI,KAAK,IAAA,KAAS,WAAA,IAAe,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA,EAAG;AACtD,UAAA,MAAM,gBAAA,GAAmB,KAAK,KAAA,CAAM,IAAA;AAAA,YAClC,CAAA,KAAA,KAAS,KAAA,CAAM,KAAA,KAAU,eAAA,CAAgB;AAAA,WAC3C;AACA,UAAA,IAAI,gBAAA,IAAoB,SAAA,KAAc,IAAA,CAAK,EAAA,EAAI;AAC7C,YAAA,YAAA,CAAa,KAAK,EAAE,CAAA;AACpB,YAAA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA,MAAA,IAAW,cAAc,MAAA,EAAW;AAClC,MAAA,YAAA,CAAa,MAAS,CAAA;AAAA,IACxB;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,eAAA,EAAiB,KAAK,CAAC,CAAA;AAEjC,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,oBAAA,EAAsB;AAExB,MAAA,IAAI,YAAA,GAAqC,IAAA;AAEzC,MAAA,KAAA,MAAW,QAAQ,YAAA,EAAc;AAC/B,QAAA,IAAI,IAAA,CAAK,UAAU,oBAAA,EAAsB;AAEvC,UAAA,YAAA,GAAe;AAAA,YACb,IAAI,IAAA,CAAK,EAAA;AAAA,YACT,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,WAAA,EAAa,EAAA;AAAA,YACb,QAAA,EAAU,CAAA;AAAA,YACV,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,iBAAiB,IAAA,CAAK,eAAA;AAAA,YACtB,OAAO;AAAC,WACV;AACA,UAAA;AAAA,QACF;AACA,QAAA,IAAI,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA,EAAG;AACvC,UAAA,MAAM,YAAY,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,KAAA,KAAS,KAAA,CAAM,UAAU,oBAAoB,CAAA;AAC/E,UAAA,IAAI,SAAA,EAAW;AACb,YAAA,YAAA,GAAe;AAAA,cACb,IAAI,SAAA,CAAU,EAAA;AAAA,cACd,OAAO,SAAA,CAAU,KAAA;AAAA,cACjB,OAAO,SAAA,CAAU,KAAA;AAAA,cACjB,MAAM,SAAA,CAAU,IAAA;AAAA,cAChB,OAAO,SAAA,CAAU,KAAA;AAAA,cACjB,aAAa,SAAA,CAAU,WAAA;AAAA,cACvB,UAAU,SAAA,CAAU,QAAA;AAAA,cACpB,MAAM,SAAA,CAAU,IAAA;AAAA,cAChB,iBAAiB,SAAA,CAAU,eAAA;AAAA,cAC3B,OAAO;AAAC,aACV;AACA,YAAA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,MAAA,CAAO,YAAY,CAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,uBACEd,GAAAA;AAAA,IAACsB,MAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,cAAc,CAAC,CAAA,EAAG,SAAS,CAAC,IAAA,CAAK,QAAQ,OAAA,EAAQ;AAAA,MAEjD,QAAA,kBAAAtB,GAAAA,CAACuB,aAAAA,EAAA,EAAc,SAAA,EAAW,OAAO,aAAA,EAC/B,QAAA,kBAAAxB,IAAAA,CAACyB,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAxB,GAAAA;AAAA,UAACyB,WAAAA;AAAA,UAAA;AAAA,YACC,wBACEzB,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,QAAA;AAAA,gBACX,YAAA,EAAW,OAAA;AAAA,gBACX,sBAAMH,GAAAA,CAACkB,IAAAA,EAAA,EAAK,MAAK,2BAAA,EAA4B,CAAA;AAAA,gBAC7C,OAAA,EAAS,OAAA;AAAA,gBACT,WAAW,MAAA,CAAO;AAAA;AAAA,aACpB;AAAA,YAGD,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAnB,IAAAA,CAAC2B,aAAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA1B,GAAAA;AAAA,YAACgC,SAAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAW,IAAA;AAAA,cACX,SAAA;AAAA,cACA,QAAA,EAAU,CAAC,CAAA,EAAG,IAAA,KAAS,aAAa,IAAA,CAAK,SAAA,CAAU,CAAC,CAAW,CAAA;AAAA,cAC/D,WAAW,MAAA,CAAO,gBAAA;AAAA,cAElB,QAAA,kBAAAhC,GAAAA;AAAA,gBAACiC,UAAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO,oBAAA;AAAA,kBACP,UAAU,CAAC,CAAA,EAAG,IAAA,KAAS,uBAAA,CAAwB,KAAK,KAAK,CAAA;AAAA,kBAExD,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AACjC,oBAAA,IAAI,IAAA,CAAK,SAAS,WAAA,EAAa;AAC7B,sBAAA,uBACElC,KAACmC,aAAAA,EAAA,EAA0B,OAAO,IAAA,CAAK,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,aAAA,EAC3D,QAAA,EAAA;AAAA,wCAAAnC,IAAAA;AAAA,0BAACoC,eAAAA;AAAA,0BAAA;AAAA,4BACC,WAAW,MAAA,CAAO,eAAA;AAAA,4BAClB,kBAAA,EAAmB,KAAA;AAAA,4BAEnB,QAAA,EAAA;AAAA,8CAAAnC,GAAAA,CAAC,KAAA,EAAA,EACE,QAAA,EAAA,aAAA,CAAc,EAAE,KAAK,IAAA,CAAK,KAAA,EAAO,GAAA,EAAK,UAAA,EAAY,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,CAAA,EAC5E,CAAA;AAAA,8CACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,qBAAA,EACrB,QAAA,EAAA;AAAA,gDAAAC,GAAAA,CAACE,KAAAA,EAAA,EAAO,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,gDACnBF,GAAAA,CAAC4B,QAAAA,EAAA,EAAU,eAAK,IAAA,EAAK;AAAA,+BAAA,EACvB;AAAA;AAAA;AAAA,yBACF;AAAA,wCACA5B,GAAAA,CAACoC,cAAAA,EAAA,EAAe,SAAA,EAAW,OAAO,aAAA,EAC/B,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,KACnB,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,SAAA,EAAW,+BACzBrC,IAAAA;AAAA,0BAAC,KAAA;AAAA,0BAAA;AAAA,4BAEC,SAAA,EAAWE,YAAAA;AAAA,8BACT,MAAA,CAAO,eAAA;AAAA,8BACP,MAAA,CAAO;AAAA,6BACT;AAAA,4BACA,KAAA,EAAO,EAAE,OAAA,EAASH,MAAAA,CAAO,mBAAA,EAAoB;AAAA,4BAE7C,QAAA,EAAA;AAAA,8CAAAE,GAAAA,CAAC,SACE,QAAA,EAAA,aAAA,CAAc;AAAA,gCACb,KAAK,SAAA,CAAU,KAAA;AAAA,gCACf,KAAK,SAAA,CAAU,KAAA;AAAA,gCACf,KAAA,EAAO,EAAA;AAAA,gCACP,MAAA,EAAQ;AAAA,+BACT,CAAA,EACH,CAAA;AAAA,8CACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,qBAAA,EACrB,QAAA,EAAA;AAAA,gDAAAC,GAAAA,CAACE,KAAAA,EAAA,EAAO,QAAA,EAAA,SAAA,CAAU,KAAA,EAAM,CAAA;AAAA,gDACxBF,GAAAA,CAAC4B,QAAAA,EAAA,EAAU,oBAAU,IAAA,EAAK;AAAA,+BAAA,EAC5B,CAAA;AAAA,8CACA5B,GAAAA,CAACqC,KAAAA,EAAA,EAAM,KAAA,EAAO,UAAU,KAAA,EAAO;AAAA;AAAA,2BAAA;AAAA,0BAnB1B;AAAA,yBAqBR,CAAA,EACL;AAAA,uBAAA,EAAA,EAvCkB,KAwCpB,CAAA;AAAA,oBAEJ,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,KAAS,OAAA,EAAS;AAChC,sBAAA,uBACEtC,IAAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BAEC,SAAA,EAAWE,YAAAA,CAAa,MAAA,CAAO,eAAA,EAAiB,OAAO,aAAa,CAAA;AAAA,0BACpE,KAAA,EAAO,EAAE,OAAA,EAASH,MAAAA,CAAO,mBAAA,EAAoB;AAAA,0BAE7C,QAAA,EAAA;AAAA,4CAAAE,GAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,YAAY,CAAA,EAAE,EACzB,wBAAc,EAAE,GAAA,EAAK,KAAK,KAAA,EAAO,GAAA,EAAK,KAAK,KAAA,EAAO,KAAA,EAAO,IAAI,MAAA,EAAQ,EAAA,EAAI,CAAA,EAC5E,CAAA;AAAA,4CACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,uBAAuB,KAAA,EAAO,EAAE,UAAA,EAAY,EAAA,EAAG,EACpE,QAAA,EAAA;AAAA,8CAAAC,GAAAA,CAACE,KAAAA,EAAA,EAAO,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,8CACnBF,GAAAA,CAAC4B,QAAAA,EAAA,EAAU,eAAK,IAAA,EAAK;AAAA,6BAAA,EACvB,CAAA;AAAA,4CACA5B,GAAAA,CAACqC,KAAAA,EAAA,EAAM,KAAA,EAAO,KAAK,KAAA,EAAO;AAAA;AAAA,yBAAA;AAAA,wBAXrB;AAAA,uBAYP;AAAA,oBAEJ;AACA,oBAAA,OAAO,IAAA;AAAA,kBACT,CAAC;AAAA;AAAA;AACH;AAAA,WACF;AAAA,0BACAtC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,MAAA,EACrB,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAACG,QAAA,EAAO,UAAA,EAAW,aAAY,KAAA,EAAM,UAAA,EAAW,OAAA,EAAS,OAAA,EAAS,QAAA,EAAA,OAAA,EAElE,CAAA;AAAA,4BACAH,GAAAA;AAAA,cAACG,MAAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,SAAA;AAAA,gBACX,KAAA,EAAM,UAAA;AAAA,gBACN,OAAA,EAAS,aAAA;AAAA,gBACT,UAAU,CAAC,oBAAA;AAAA,gBACZ,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EACF;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;;;ACjXO,IAAM,qBAAA,GAAwB;AAAA,EACnC,UAAA,EAAY,sCAAA;AAAA,EACZ,QAAA,EAAU,oCAAA;AAAA,EACV,UAAA,EAAY,uCAAA;AAAA,EACZ,UAAA,EAAY,sCAAA;AAAA,EACZ,QAAA,EAAU,qCAAA;AAAA,EACV,QAAA,EAAU,qCAAA;AAAA,EACV,MAAA,EAAQ,mCAAA;AAAA,EACR,KAAA,EAAO,iCAAA;AAAA,EACP,QAAA,EAAU,qCAAA;AAAA,EACV,SAAA,EAAW;AACb","file":"index.mjs","sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n iconContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: tokens.spacingVerticalL,\n textAlign: 'center',\n paddingTop: tokens.spacingVerticalL,\n paddingBottom: tokens.spacingVerticalL,\n },\n image: {\n maxWidth: '100%',\n height: 'auto',\n },\n buttonContainer: {\n display: 'flex',\n width: '100%',\n gap: tokens.spacingHorizontalM,\n },\n});\n\nexport interface ModalIllustrationButton {\n /**\n * Button text\n */\n text: string;\n \n /**\n * Button click handler\n */\n onClick: () => void;\n \n /**\n * Button appearance\n * @default \"primary\"\n */\n appearance?: 'primary' | 'outline' | 'secondary' | 'subtle' | 'transparent';\n}\n\nexport interface ModalIllustrationProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n */\n title: string;\n \n /**\n * Modal message content\n * Can be a string or React node for more complex content\n */\n message: string | ReactNode;\n \n /**\n * Image source URL\n * @default \"/assets/images/illustrations/radius.svg\"\n * @remarks\n * When using this component in your application, ensure the asset is available at this path\n * in your public directory, or provide a custom imageSrc prop pointing to your own image.\n * The asset is included in the published package at `node_modules/@asdp/ferryui/dist/assets/images/illustrations/`\n */\n imageSrc?: string;\n \n /**\n * Image alt text\n * @default \"Illustration\"\n */\n imageAlt?: string;\n \n /**\n * Image width\n * @default 361\n */\n imageWidth?: number;\n \n /**\n * Image height\n * @default 203\n */\n imageHeight?: number;\n \n /**\n * Primary button configuration\n */\n primaryButton: ModalIllustrationButton;\n \n /**\n * Optional secondary button configuration\n * If provided, buttons will be displayed side by side\n */\n secondaryButton?: ModalIllustrationButton;\n}\n\nexport const ModalIllustration: React.FC<ModalIllustrationProps> = ({\n open,\n onClose,\n title,\n message,\n imageSrc = '/assets/images/illustrations/radius.svg',\n imageAlt = 'Illustration',\n imageWidth = 361,\n imageHeight = 203,\n primaryButton,\n secondaryButton,\n}) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()} modalType=\"modal\">\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle>{title}</DialogTitle>\n <DialogContent>\n <div className={styles.iconContainer}>\n <img\n src={imageSrc}\n alt={imageAlt}\n width={imageWidth}\n height={imageHeight}\n className={styles.image}\n />\n {typeof message === 'string' ? (\n <Body1 style={{ textAlign: 'center' }}>{message}</Body1>\n ) : (\n message\n )}\n </div>\n <div className={styles.buttonContainer}>\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={primaryButton.appearance || 'primary'}\n onClick={primaryButton.onClick}\n >\n {primaryButton.text}\n </Button>\n {secondaryButton && (\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={secondaryButton.appearance || 'outline'}\n onClick={secondaryButton.onClick}\n >\n {secondaryButton.text}\n </Button>\n )}\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalIllustration;\n","import { ModalIllustrationProps } from './ModalIllustration';\n\n/**\n * Preset configurations for common modal use cases\n */\nexport const MODAL_PRESETS = {\n /**\n * Modal for radius/location restriction\n */\n RADIUS: {\n title: 'Anda berada di luar area pemesanan',\n message: 'Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.',\n imageSrc: '/assets/images/illustrations/radius.svg',\n imageAlt: 'Radius Limitation Illustration',\n },\n \n /**\n * Modal for expired session\n */\n SESSION_EXPIRED: {\n title: 'Sesi anda telah berakhir',\n message: 'Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.',\n imageSrc: '/assets/images/illustrations/sessionexp.svg',\n imageAlt: 'Session Expired Illustration',\n },\n \n /**\n * Modal for purchase period expired\n */\n PURCHASE_PERIOD_EXPIRED: {\n title: 'Waktu pembelian telah berakhir',\n message: 'Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.',\n imageSrc: '/assets/images/illustrations/pay.svg',\n imageAlt: 'Purchase Period Expired Illustration',\n },\n \n /**\n * Modal for transaction limit reached\n */\n TRANSACTION_LIMIT: {\n title: 'Anda mencapai batas transaksi tertunda',\n message: 'Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.',\n imageSrc: '/assets/images/illustrations/mobile-pay.svg',\n imageAlt: 'Transaction Limit Illustration',\n },\n} as const;\n\n/**\n * Type for preset keys\n */\nexport type ModalPresetKey = keyof typeof MODAL_PRESETS;\n\n/**\n * Helper function to get preset configuration\n */\nexport const getModalPreset = (presetKey: ModalPresetKey): Partial<ModalIllustrationProps> => {\n return MODAL_PRESETS[presetKey];\n};\n","import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport {\n Carousel,\n CarouselAnnouncerFunction,\n CarouselNav,\n CarouselNavButton,\n CarouselSlider,\n CarouselViewport,\n makeStyles,\n mergeClasses,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n carousel: {},\n customCarouselNav: {\n display: 'flex',\n gap: tokens.spacingHorizontalXS,\n justifyContent: 'center',\n alignItems: 'center',\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingVerticalM),\n borderRadius: tokens.borderRadiusCircular,\n },\n carouselNavButton: {\n '& button': {\n padding: 0,\n marginInline: '0px',\n width: '45px',\n height: '16px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n '@media (max-width: 425px)': {\n width: '35px',\n height: '10px',\n },\n },\n '& button::after': {\n content: '\"\"',\n transition:\n 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n },\n \"& button[aria-selected='true']::after\": {\n backgroundImage: 'linear-gradient(to right,#00B3BD, #8DC63F)',\n width: '55px',\n height: '16px',\n borderRadius: tokens.borderRadiusCircular,\n transform: 'translateX(0)',\n '@media (max-width: 425px)': {\n width: '25px',\n height: '10px',\n },\n '@media (max-width: 768px)': {\n width: '35px',\n height: '13px',\n },\n },\n \"& button[aria-selected='false']::after\": {\n backgroundColor: '#D1D1D1',\n width: '15px',\n height: '15px',\n opacity: '90%',\n transform: 'scale(0.9)',\n '@media (max-width: 425px)': {\n width: '10px',\n height: '10px',\n },\n },\n },\n});\n\nconst defaultAnnouncement: CarouselAnnouncerFunction = (index: number, totalSlides: number) => {\n return `Carousel slide ${index + 1} of ${totalSlides}`;\n};\n\nexport interface CarouselWithCustomNavProps {\n /**\n * Carousel items/children\n */\n children: ReactNode;\n \n /**\n * Whether carousel should loop (circular)\n * @default true\n */\n circular?: boolean;\n \n /**\n * Whether carousel is draggable\n * @default true\n */\n draggable?: boolean;\n \n /**\n * Alignment of carousel items\n * @default \"start\"\n */\n align?: 'start' | 'center' | 'end';\n \n /**\n * Whether to remove whitespace between items\n * @default false\n */\n whitespace?: boolean;\n \n /**\n * Announcement function for accessibility\n */\n announcement?: CarouselAnnouncerFunction;\n \n /**\n * Active index (controlled)\n */\n activeIndex?: number;\n \n /**\n * Callback when active index changes\n */\n onActiveIndexChange?: (index: number) => void;\n \n /**\n * ARIA label for the carousel slider\n * @default \"Carousel\"\n */\n ariaLabel?: string;\n \n /**\n * Whether to use dark background for navigation\n * @default true\n */\n darkNavBackground?: boolean;\n \n /**\n * Additional className for carousel container\n */\n className?: string;\n \n /**\n * Whether to enable card focus mode\n * @default false\n */\n cardFocus?: boolean;\n}\n\nexport const CarouselWithCustomNav: React.FC<CarouselWithCustomNavProps> = ({\n children,\n circular = true,\n draggable = true,\n align = 'start',\n whitespace = false,\n announcement = defaultAnnouncement,\n activeIndex: controlledIndex,\n onActiveIndexChange,\n ariaLabel = 'Carousel',\n darkNavBackground = true,\n className,\n cardFocus = false,\n}) => {\n const styles = useStyles();\n const [internalIndex, setInternalIndex] = useState(0);\n \n // Use controlled index if provided, otherwise use internal state\n const activeIndex = controlledIndex !== undefined ? controlledIndex : internalIndex;\n \n const handleIndexChange = useCallback((index: number) => {\n if (controlledIndex === undefined) {\n setInternalIndex(index);\n }\n onActiveIndexChange?.(index);\n }, [controlledIndex, onActiveIndexChange]);\n\n return (\n <Carousel\n circular={circular}\n draggable={draggable}\n align={align}\n className={mergeClasses(styles.carousel, className)}\n whitespace={whitespace}\n announcement={announcement}\n activeIndex={activeIndex}\n onActiveIndexChange={(_, data) => handleIndexChange(data.index)}\n >\n <CarouselViewport>\n <CarouselSlider\n cardFocus={cardFocus}\n aria-label={ariaLabel}\n >\n {children}\n </CarouselSlider>\n </CarouselViewport>\n <CarouselNav\n style={{\n backgroundColor: darkNavBackground\n ? tokens.colorSubtleBackgroundInverted\n : tokens.colorSubtleBackground,\n marginTop: tokens.spacingVerticalXL,\n }}\n appearance=\"brand\"\n className={styles.carouselNavButton}\n >\n {index => <CarouselNavButton aria-label={`Slide ${index + 1}`} />}\n </CarouselNav>\n </Carousel>\n );\n};\n\nexport default CarouselWithCustomNav;\n","import React from 'react';\nimport {\n Body1,\n Button,\n CarouselCard,\n makeStyles,\n mergeClasses,\n Skeleton,\n SkeletonItem,\n Subtitle2,\n tokens,\n} from '@fluentui/react-components';\nimport { Col, Row } from 'react-grid-system';\n\nconst useStyles = makeStyles({\n actionCard: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'hidden',\n textAlign: 'center',\n width: '360px',\n maxWidth: '360px',\n margin: '0px 6px',\n boxShadow: tokens.shadow4,\n backgroundColor: tokens.colorNeutralForegroundInverted,\n '@media (max-width: 1024px)': {\n width: '200px',\n maxWidth: '200px',\n },\n '@media (max-width: 768px)': {\n width: '190px',\n maxWidth: '190px',\n },\n '@media (max-width: 480px)': {\n width: '180px',\n maxWidth: '180px',\n margin: '0px 4px',\n },\n },\n imageContainer: {\n position: 'relative',\n width: '100%',\n height: '202px',\n overflow: 'hidden',\n '@media (max-width: 1024px)': {\n height: '120px',\n },\n '@media (max-width: 768px)': {\n height: '110px',\n },\n '@media (max-width: 480px)': {\n height: '100px',\n },\n },\n image: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'center',\n },\n info: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n alignContent: 'center',\n justifyContent: 'space-between',\n gap: tokens.spacingVerticalSNudge,\n '@media (max-width: 1024px)': {\n padding: tokens.spacingHorizontalSNudge,\n gap: tokens.spacingVerticalSNudge,\n },\n '@media (max-width: 768px)': {\n padding: tokens.spacingVerticalS,\n gap: tokens.spacingVerticalXS,\n },\n '@media (max-width: 480px)': {\n padding: tokens.spacingVerticalSNudge,\n gap: tokens.spacingVerticalXS,\n },\n },\n infoWrapper: {\n padding: tokens.spacingHorizontalM,\n },\n buttonWrapper:{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n title:{\n lineClamp: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n }\n});\n\nexport interface CardPromoProps {\n /**\n * Image URL for the promo\n */\n imageUrl: string;\n \n /**\n * Promo title/heading\n */\n title: string;\n \n /**\n * Promo description/subtitle\n */\n description: string;\n \n /**\n * Image alt text\n * @default \"Promo image\"\n */\n imageAlt?: string;\n \n /**\n * Index of the card (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of cards (for accessibility)\n */\n totalCards?: number;\n \n /**\n * Click handler for the card\n */\n onClick?: () => void;\n\n /**\n * Show Button\n */\n showButton?: boolean;\n\n /**\n * Button Text\n */\n buttonText?: string;\n\n /**\n * custom className\n */\n className?: string;\n\n /**\n * custom image className\n */\n imageClassName?: string;\n\n /**\n * custom description className\n */\n descriptionClassName?: string;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n\n /**\n * Image Only\n */\n imageOnly?: boolean;\n}\n\nexport const CardPromo: React.FC<CardPromoProps> = ({\n imageUrl,\n title,\n description,\n imageAlt = 'Promo image',\n index = 0,\n totalCards,\n onClick,\n showButton = false,\n buttonText = 'Lihat Detail',\n className,\n imageClassName,\n descriptionClassName,\n isLoading = false,\n imageOnly = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalCards\n ? `Card ${index + 1} of ${totalCards}`\n : `Promo card ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n style={{ cursor: 'default' }}\n >\n <Skeleton aria-label=\"Loading content\">\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <SkeletonItem shape=\"rectangle\" style={{ width: '100%', height: '100%' }} />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12}>\n <SkeletonItem style={{ width: '70%', height: '20px' }} />\n <SkeletonItem style={{ width: '90%', height: '16px' }} />\n <SkeletonItem style={{ width: '80%', height: '16px' }} />\n </Col>\n </Row>\n )}\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n aria-label={ariaLabel}\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n >\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <img\n className={classes.image}\n src={imageUrl}\n role=\"presentation\"\n alt={imageAlt}\n />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12} sm={12} md={12} lg={showButton ? 8 : 12} xl={showButton ? 8 : 12} xxl={showButton ? 8 : 12} xxxl={showButton ? 8 : 12}>\n <Subtitle2 className={classes.title}>{title}</Subtitle2>\n <Body1 className={mergeClasses(classes.title, descriptionClassName)}>{description}</Body1>\n </Col>\n {showButton && (\n <Col className={classes.buttonWrapper} xs={12} sm={12} md={12} lg={showButton ? 4 : 0} xl={showButton ? 4 : 0} xxl={showButton ? 4 : 0} xxxl={showButton ? 4 : 0}>\n <Button\n appearance=\"primary\"\n size=\"small\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n shape='circular'\n >\n {buttonText}\n </Button>\n </Col>\n )}\n </Row>\n )}\n </CarouselCard>\n );\n};\n\nexport default CardPromo;\n","import React from 'react';\nimport {\n CarouselCard,\n makeStyles,\n Skeleton,\n SkeletonItem,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n bannerCard: {\n overflow: 'hidden',\n width: '100%',\n maxWidth: '100%',\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n height: '450px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n bannerImage: {\n width: '100%',\n height: 'auto',\n objectFit: 'cover',\n display: 'block',\n cursor: 'pointer',\n borderRadius: tokens.borderRadiusXLarge,\n },\n});\n\nexport interface CardBannerProps {\n /**\n * Banner image URL\n */\n imageUrl: string;\n \n /**\n * Banner alt text\n */\n alt: string;\n \n /**\n * Index of the banner (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of banners (for accessibility)\n */\n totalBanners?: number;\n \n /**\n * Click handler for the banner\n */\n onClick?: () => void;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n}\n\nexport const CardBanner: React.FC<CardBannerProps> = ({\n imageUrl,\n alt,\n index = 0,\n totalBanners,\n onClick,\n isLoading = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalBanners\n ? `Banner ${index + 1} of ${totalBanners}`\n : `Banner ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard className={classes.bannerCard}>\n <Skeleton aria-label=\"Loading banner\" style={{ width: '100%', height: '100%' }}>\n <SkeletonItem \n shape=\"rectangle\" \n style={{ \n width: '100%', \n height: '100%', \n borderRadius: tokens.borderRadiusXLarge \n }} \n />\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n className={classes.bannerCard}\n aria-label={ariaLabel}\n >\n <img\n className={classes.bannerImage}\n src={imageUrl}\n alt={alt}\n role=\"presentation\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n />\n </CarouselCard>\n );\n};\n\nexport default CardBanner;\n","import React, { ReactNode } from 'react';\nimport {\n Badge,\n Button,\n Caption1,\n Caption1Strong,\n Caption2,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n shorthands,\n Subtitle2,\n Title2,\n Title3,\n tokens,\n Tooltip,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n ticketWrapper: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'visible',\n boxShadow: tokens.shadow4,\n display: 'flex',\n width: '100%',\n marginBottom: '2rem',\n minHeight: '323px',\n padding: 0,\n '@media (max-width: 1200px)': {\n flexDirection: 'column',\n },\n },\n ticketLeftCard: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '3em',\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n position: 'relative',\n overflow: 'visible',\n flexDirection: 'column',\n '@media (min-width: 1200px)': {\n borderRight: `0.7em dashed ${tokens.colorNeutralBackground1Hover}`,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n '@media (max-width: 1200px)': {\n borderBottom: `0.5em dashed ${tokens.colorNeutralBackground1Hover}`,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n gap: '1rem',\n flexDirection: 'row',\n justifyContent: 'space-around',\n padding: '2rem',\n },\n },\n circularLeft: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-50px',\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularLeftMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularRightMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n ticketMiddleCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n padding: '2rem',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n '@media (max-width: 768px)': {\n padding: '1rem',\n },\n },\n ticketInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.5em',\n },\n ticketTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: '0.5em',\n },\n ticketDuration: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.5rem',\n },\n dividerContainer: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyItems: 'center',\n width: '100%',\n },\n ticketButtons: {\n display: 'flex',\n gap: '1rem',\n marginTop: '1rem',\n '@media (max-width: 768px)': {\n flexDirection: 'column',\n },\n },\n ticketRightCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n position: 'relative',\n overflow: 'visible',\n background: 'linear-gradient(75deg, #58C91B 0%, #1949E0 103.3%)',\n padding: '5em',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n color: tokens.colorNeutralForegroundInverted,\n '@media (max-width: 1200px)': {\n padding: '2rem',\n borderTopRightRadius: 0,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n },\n '@media (max-width: 768px)': {\n padding: '1rem',\n },\n },\n priceCard: {\n border: '1px solid #FFF',\n background: 'rgba(255, 255, 255, 0.30)',\n backdropFilter: 'blur(17.5px)',\n borderRadius: tokens.borderRadiusLarge,\n padding: '1.2rem',\n gap: '1rem',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n '@media (max-width: 768px)': {\n padding: '1rem',\n },\n },\n facilitiesSection: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n },\n facilitiesList: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.75rem',\n },\n facilityItem: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n fontSize: '14px',\n },\n circularRight: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-50px',\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n asdpLogo: {\n width: 'clamp(50px, 20vw, 150px)',\n },\n});\n\nexport interface CardTicketButton {\n label: string;\n icon?: JSX.Element;\n onClick?: () => void;\n}\n\nexport interface CardTicketProps {\n /**\n * Ship type badge configuration\n */\n shipType: {\n label: string;\n color: 'brand' | 'danger' | 'important' | 'informative' | 'severe' | 'subtle' | 'success' | 'warning';\n tooltip?: string;\n };\n \n /**\n * Logo image source\n * @default \"/assets/logo/asdp-default.svg\"\n */\n logoSrc?: string;\n \n /**\n * Ship name\n */\n shipName: string;\n \n /**\n * Available seats configuration\n */\n availableSeats: {\n count: number;\n threshold?: number; // Seats count threshold for color (default: 50)\n };\n \n /**\n * Departure information\n */\n departure: {\n day: string;\n time: string;\n location: string;\n };\n \n /**\n * Arrival information\n */\n arrival: {\n day: string;\n time: string;\n location: string;\n };\n \n /**\n * Duration text\n */\n duration: string;\n \n /**\n * Middle section action buttons (max 2)\n */\n actionButtons?: CardTicketButton[];\n \n /**\n * Price display (formatted string)\n */\n price: string;\n \n /**\n * Primary button configuration\n */\n primaryButton: CardTicketButton;\n \n /**\n * List of facilities\n */\n facilities: string[];\n \n /**\n * Custom icon for ship indicator\n */\n shipIcon?: JSX.Element;\n \n /**\n * Custom icon for facilities checkmark\n */\n facilityIcon?: JSX.Element;\n}\n\nexport const CardTicket: React.FC<CardTicketProps> = ({\n shipType,\n logoSrc = '/assets/logo/asdp-default.svg',\n shipName,\n availableSeats,\n departure,\n arrival,\n duration,\n actionButtons = [],\n price,\n primaryButton,\n facilities,\n shipIcon,\n facilityIcon,\n}) => {\n const styles = useStyles();\n const threshold = availableSeats.threshold ?? 50;\n const isLowSeats = availableSeats.count <= threshold;\n\n return (\n <div className={styles.ticketWrapper}>\n {/* Left Section */}\n <Card className={styles.ticketLeftCard}>\n <Tooltip\n content={shipType.tooltip || shipType.label}\n relationship=\"label\"\n appearance=\"inverted\"\n >\n <Badge\n size=\"large\"\n appearance=\"filled\"\n color={shipType.color}\n iconPosition=\"before\"\n shape=\"rounded\"\n >\n {shipType.label}\n </Badge>\n </Tooltip>\n \n <img\n src={logoSrc}\n className={styles.asdpLogo}\n alt=\"Logo\"\n />\n \n {/* Mobile: Show availability badge */}\n <div style={{ display: 'none' }}>\n <Badge\n size=\"large\"\n appearance=\"tint\"\n color={isLowSeats ? 'danger' : 'success'}\n iconPosition=\"after\"\n shape=\"rounded\"\n >\n Tersedia {availableSeats.count}\n </Badge>\n </div>\n \n <Subtitle2>{shipName}</Subtitle2>\n \n {/* Circular decorations - Desktop */}\n <div style={{ display: 'none' }}>\n {Array.from({ length: 5 }).map((_, index) => (\n <div\n key={index}\n className={styles.circularLeft}\n style={{\n top: `${18 + index * 60}px`,\n }}\n />\n ))}\n </div>\n \n {/* Circular decorations - Mobile */}\n <div className={styles.circularLeftMd} />\n <div className={styles.circularRightMd} />\n </Card>\n\n {/* Middle Section */}\n <Card className={styles.ticketMiddleCard}>\n {/* Desktop: Show availability badge */}\n <Badge\n size=\"extra-large\"\n appearance=\"tint\"\n color={isLowSeats ? 'danger' : 'success'}\n iconPosition=\"after\"\n shape=\"rounded\"\n >\n Tersedia {availableSeats.count}\n </Badge>\n\n <div>\n <div className={styles.ticketInfo}>\n <div className={styles.ticketTime}>\n <Caption1>{departure.day}</Caption1>\n <Title2>{departure.time}</Title2>\n <Caption1>{departure.location}</Caption1>\n </div>\n \n <div className={styles.ticketDuration}>\n <Caption2>Estimasi {duration}</Caption2>\n <div className={styles.dividerContainer}>\n <Divider>\n {shipIcon || <span>🚢</span>}\n </Divider>\n </div>\n </div>\n \n <div className={styles.ticketTime}>\n <Caption1>{arrival.day}</Caption1>\n <Title2>{arrival.time}</Title2>\n <Caption1>{arrival.location}</Caption1>\n </div>\n </div>\n </div>\n \n {actionButtons.length > 0 && (\n <div className={styles.ticketButtons}>\n {actionButtons.slice(0, 2).map((button, idx) => (\n <Button\n key={idx}\n appearance=\"outline\"\n shape=\"circular\"\n style={{\n flex: 1,\n borderColor: tokens.colorBrandBackground,\n color: tokens.colorBrandBackground,\n }}\n icon={button.icon}\n size=\"medium\"\n onClick={button.onClick}\n >\n {button.label}\n </Button>\n ))}\n </div>\n )}\n </Card>\n\n {/* Right Section */}\n <Card className={styles.ticketRightCard}>\n <div className={styles.priceCard}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\n <Subtitle2>Total harga</Subtitle2>\n <Title3 style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\n IDR {price}\n </Title3>\n </div>\n <Button\n onClick={primaryButton.onClick}\n appearance=\"primary\"\n size=\"medium\"\n shape=\"circular\"\n icon={primaryButton.icon}\n style={{ backgroundColor: '#58C91B' }}\n >\n {primaryButton.label}\n </Button>\n </div>\n \n <div className={styles.facilitiesSection}>\n <Subtitle2>Fasilitas</Subtitle2>\n <div className={styles.facilitiesList}>\n {facilities.map((facility, idx) => (\n <div key={idx} className={styles.facilityItem}>\n {facilityIcon || <span>✓</span>}\n <Caption1Strong>{facility}</Caption1Strong>\n </div>\n ))}\n </div>\n </div>\n \n {/* Circular decorations - Desktop */}\n <div style={{ display: 'none' }}>\n {Array.from({ length: 5 }).map((_, index) => (\n <div\n key={index}\n className={styles.circularRight}\n style={{\n top: `${18 + index * 60}px`,\n }}\n />\n ))}\n </div>\n </Card>\n </div>\n );\n};\n\nexport default CardTicket;\n","import React from 'react';\n\n/**\n * Horizontal ticket card background with decorative perforated edges\n * Use this for desktop/landscape layouts\n */\nconst BackgroundTicketCard = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 1850 465\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32114)\">\n <path\n d=\"M1819.6 9.85962C1815.43 8.63925 1810.75 8.00891 1806.01 8.02751H523.015C517.214 8.02224 511.553 8.98897 506.816 10.7941C502.078 12.5993 498.497 15.1537 496.568 18.1041C492.794 23.9726 485.817 29.088 476.552 32.7781C467.288 36.4682 456.169 38.5603 444.659 38.7794C443.997 38.7794 443.3 38.7794 442.604 38.7794C430.731 38.7805 419.152 36.7877 409.476 33.0776C399.799 29.3676 392.505 24.1246 388.606 18.0766C386.681 15.1284 383.106 12.5753 378.374 10.7702C373.643 8.96512 367.989 7.99718 362.193 8.00001H43.9587C40.2864 7.9988 36.6498 8.38797 33.2567 9.1453C29.8635 9.90262 26.7806 11.0133 24.184 12.4137C21.5873 13.814 19.5279 15.4767 18.1237 17.3066C16.7194 19.1365 15.9978 21.0978 16 23.0782V425.922C15.9978 427.902 16.7194 429.863 18.1237 431.693C19.5279 433.523 21.5873 435.186 24.184 436.586C26.7806 437.987 29.8635 439.097 33.2567 439.855C36.6498 440.612 40.2864 441.001 43.9587 441H362.193C367.99 441.005 373.646 440.039 378.379 438.233C383.111 436.428 386.685 433.873 388.606 430.923C392.505 424.875 399.799 419.632 409.476 415.922C419.152 412.212 430.731 410.219 442.604 410.221C443.3 410.221 443.997 410.221 444.659 410.221C456.169 410.44 467.288 412.532 476.552 416.222C485.817 419.912 492.794 425.027 496.568 430.896C498.495 433.847 502.075 436.402 506.814 438.208C511.552 440.013 517.214 440.979 523.015 440.973H1806.04C1809.71 440.974 1813.35 440.585 1816.74 439.827C1820.14 439.07 1823.22 437.959 1825.82 436.559C1828.41 435.159 1830.47 433.496 1831.88 431.666C1833.28 429.836 1834 427.875 1834 425.894V23.0599C1834 20.3673 1832.66 17.7243 1830.13 15.4037C1827.59 13.0831 1823.96 11.1692 1819.6 9.85962ZM447.343 390.645C447.352 391.126 447.104 391.599 446.628 392.007C446.152 392.415 445.469 392.74 444.659 392.944C444.032 393.133 443.322 393.228 442.604 393.219C441.977 393.22 441.355 393.154 440.775 393.025C440.195 392.896 439.668 392.707 439.224 392.467C438.78 392.228 438.429 391.944 438.19 391.631C437.951 391.318 437.829 390.983 437.831 390.645V360.818C437.831 360.135 438.334 359.48 439.229 358.998C440.124 358.515 441.338 358.244 442.604 358.244C443.317 358.24 444.022 358.328 444.659 358.5C445.145 358.623 445.587 358.791 445.967 358.995C446.856 359.484 447.351 360.142 447.343 360.827V390.645ZM447.343 339.556C447.352 340.038 447.104 340.511 446.628 340.919C446.152 341.326 445.469 341.652 444.659 341.856C444.029 342.04 443.321 342.135 442.604 342.13C441.975 342.134 441.352 342.07 440.769 341.942C440.187 341.814 439.658 341.624 439.214 341.385C438.769 341.145 438.418 340.86 438.18 340.546C437.943 340.232 437.824 339.895 437.831 339.556V309.702C437.829 309.364 437.951 309.028 438.19 308.716C438.429 308.403 438.78 308.119 439.224 307.879C439.668 307.64 440.195 307.45 440.775 307.322C441.355 307.193 441.977 307.127 442.604 307.128C443.317 307.124 444.022 307.212 444.659 307.384C445.144 307.504 445.587 307.669 445.967 307.87C446.853 308.36 447.347 309.018 447.343 309.702V339.556ZM447.343 288.468C447.35 288.949 447.101 289.422 446.625 289.829C446.149 290.237 445.467 290.562 444.659 290.767C444.029 290.952 443.321 291.047 442.604 291.042C441.971 291.043 441.345 290.975 440.761 290.843C440.178 290.711 439.649 290.517 439.207 290.273C438.761 290.033 438.409 289.747 438.173 289.432C437.937 289.117 437.82 288.78 437.831 288.441V258.614C437.829 258.275 437.951 257.94 438.19 257.627C438.429 257.314 438.78 257.03 439.224 256.791C439.668 256.552 440.195 256.362 440.775 256.233C441.355 256.104 441.977 256.039 442.604 256.04C443.317 256.036 444.022 256.123 444.659 256.296C445.148 256.413 445.591 256.577 445.967 256.782C446.853 257.272 447.347 257.929 447.343 258.614V288.468ZM447.343 237.371C447.353 237.854 447.105 238.328 446.63 238.737C446.154 239.147 445.47 239.474 444.659 239.679C444.028 239.861 443.32 239.953 442.604 239.945C441.977 239.946 441.355 239.88 440.775 239.751C440.195 239.622 439.668 239.433 439.224 239.193C438.78 238.954 438.429 238.67 438.19 238.357C437.951 238.044 437.829 237.709 437.831 237.371V207.535C437.831 207.197 437.954 206.863 438.195 206.551C438.435 206.239 438.786 205.956 439.23 205.718C439.673 205.479 440.2 205.291 440.779 205.162C441.358 205.034 441.978 204.969 442.604 204.97C443.319 204.968 444.023 205.059 444.659 205.235C445.148 205.352 445.591 205.516 445.967 205.721C446.41 205.962 446.759 206.248 446.995 206.563C447.232 206.877 447.35 207.214 447.343 207.553V237.371ZM447.343 186.282C447.354 186.764 447.107 187.238 446.63 187.646C446.154 188.054 445.47 188.379 444.659 188.582C444.032 188.771 443.322 188.866 442.604 188.856C441.335 188.859 440.115 188.592 439.207 188.114C438.327 187.622 437.834 186.966 437.831 186.282V156.456C437.831 155.773 438.334 155.118 439.229 154.635C440.124 154.153 441.338 153.881 442.604 153.881C443.875 153.883 445.095 154.152 446.001 154.633C446.887 155.122 447.381 155.78 447.377 156.465L447.343 186.282ZM447.343 135.194C447.352 135.676 447.104 136.149 446.628 136.556C446.152 136.964 445.469 137.289 444.659 137.493C444.032 137.683 443.322 137.778 442.604 137.768C441.977 137.769 441.355 137.704 440.775 137.575C440.195 137.446 439.668 137.256 439.224 137.017C438.78 136.778 438.429 136.493 438.19 136.18C437.951 135.868 437.829 135.532 437.831 135.194V105.367C437.831 104.685 438.334 104.03 439.229 103.547C440.124 103.064 441.338 102.793 442.604 102.793C443.317 102.789 444.022 102.877 444.659 103.05C445.145 103.173 445.587 103.34 445.967 103.544C446.856 104.033 447.351 104.692 447.343 105.376V135.194ZM447.343 84.1057C447.352 84.5874 447.104 85.0604 446.628 85.4681C446.152 85.8758 445.469 86.201 444.659 86.405C444.029 86.5898 443.321 86.6845 442.604 86.6798C441.975 86.6835 441.352 86.6194 440.769 86.4913C440.187 86.3632 439.658 86.1739 439.214 85.9341C438.769 85.6943 438.418 85.409 438.18 85.0951C437.943 84.7811 437.824 84.4447 437.831 84.1057V54.279C437.829 53.9407 437.951 53.6054 438.19 53.2925C438.429 52.9797 438.78 52.6954 439.224 52.4561C439.668 52.2168 440.195 52.0273 440.775 51.8983C441.355 51.7694 441.977 51.7037 442.604 51.7049C443.317 51.7007 444.022 51.7886 444.659 51.9614C445.144 52.0812 445.587 52.2455 445.967 52.4469C446.856 52.9357 447.351 53.5943 447.343 54.279V84.1057Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32114\"\n x=\"0\"\n y=\"0\"\n width=\"1850\"\n height=\"465\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_156_32114\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\" />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32114\"\n result=\"effect2_dropShadow_156_32114\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32114\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCard;\n","import React from 'react';\n\n/**\n * Vertical ticket card background with decorative perforated edges\n * Use this for mobile/portrait layouts\n */\nconst BackgroundTicketCardVertical = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 465 1750\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32115)\">\n <path\n d=\"M455.14 1719.6C456.36 1715.43 456.99 1710.75 456.973 1706.01V423.015C456.978 417.214 456.011 411.553 454.206 406.816C452.401 402.078 449.846 398.497 446.896 396.568C441.027 392.794 435.912 385.817 432.222 376.552C428.532 367.288 426.44 356.169 426.221 344.659C426.221 343.997 426.221 343.3 426.221 342.604C426.219 330.731 428.212 319.152 431.922 309.476C435.632 299.799 440.875 292.505 446.923 288.606C449.872 286.681 452.425 283.106 454.23 278.374C456.035 273.643 457.003 267.989 457 262.193V43.9587C457.001 40.2864 456.612 36.6498 455.855 33.2567C455.097 29.8635 453.987 26.7806 452.586 24.184C451.186 21.5873 449.523 19.5279 447.693 18.1237C445.863 16.7194 443.902 15.9978 441.922 16H23.0782C21.0978 16 19.1365 16.7194 17.3066 18.1237C15.4767 19.5279 13.814 21.5873 12.4137 24.184C11.0133 26.7806 9.90262 29.8635 9.1453 33.2567C8.38797 36.6498 7.9988 40.2864 8.00001 43.9587V262.193C7.99512 267.99 8.96103 273.646 10.7672 278.379C12.5723 283.111 15.1274 286.685 18.0766 288.606C24.1246 292.505 29.3676 299.799 33.0776 309.476C36.7877 319.152 38.7805 330.731 38.7794 342.604C38.7794 343.3 38.7794 343.997 38.7794 344.659C38.5603 356.169 36.4682 367.288 32.7781 376.552C29.088 385.817 23.9726 392.794 18.1041 396.568C15.1537 398.495 12.5993 402.075 10.7941 406.814C8.98897 411.552 8.02224 417.214 8.02751 423.015V1706.04C8.02604 1709.71 8.41503 1713.35 9.17279 1716.74C9.93055 1720.14 11.0413 1723.22 12.4414 1725.82C13.8414 1728.41 15.5041 1730.47 17.3342 1731.88C19.1643 1733.28 21.1253 1734 23.1059 1734H441.94C444.633 1734 447.276 1732.66 449.596 1730.13C451.917 1727.59 453.831 1723.96 455.14 1719.6ZM64.3552 347.343C63.8743 347.352 63.4013 347.104 62.9936 346.628C62.5859 346.152 62.261 345.469 62.0569 344.659C61.8675 344.032 61.7723 343.322 61.7814 342.604C61.7799 341.977 61.8461 341.355 61.975 340.775C62.1039 340.195 62.2932 339.668 62.5325 339.224C62.7718 338.78 63.0562 338.429 63.3691 338.19C63.682 337.951 64.0173 337.829 64.3552 337.831H94.1823C94.8653 337.831 95.5203 338.334 96.0023 339.229C96.4843 340.124 96.7557 341.338 96.7557 342.604C96.7599 343.317 96.672 344.022 96.5 344.659C96.3771 345.145 96.2092 345.587 96.0051 345.967C95.5163 346.856 94.8585 347.351 94.1733 347.343H64.3552ZM115.444 347.343C114.962 347.352 114.489 347.104 114.081 346.628C113.674 346.152 113.349 345.469 113.145 344.659C112.96 344.029 112.865 343.321 112.87 342.604C112.866 341.975 112.93 341.352 113.058 340.769C113.186 340.187 113.376 339.658 113.615 339.214C113.855 338.769 114.14 338.418 114.454 338.18C114.768 337.943 115.105 337.824 115.444 337.831H145.298C145.636 337.829 145.972 337.951 146.284 338.19C146.597 338.429 146.881 338.78 147.121 339.224C147.36 339.668 147.55 340.195 147.678 340.775C147.807 341.355 147.873 341.977 147.872 342.604C147.876 343.317 147.788 344.022 147.616 344.659C147.496 345.144 147.331 345.587 147.13 345.967C146.64 346.853 145.982 347.347 145.298 347.343H115.444ZM166.532 347.343C166.051 347.35 165.578 347.101 165.171 346.625C164.763 346.149 164.438 345.467 164.233 344.659C164.048 344.029 163.953 343.321 163.958 342.604C163.957 341.971 164.025 341.345 164.157 340.761C164.289 340.178 164.483 339.649 164.727 339.207C164.967 338.761 165.253 338.409 165.568 338.173C165.883 337.937 166.22 337.82 166.559 337.831H196.386C196.725 337.829 197.06 337.951 197.373 338.19C197.686 338.429 197.97 338.78 198.209 339.224C198.448 339.668 198.638 340.195 198.767 340.775C198.896 341.355 198.961 341.977 198.96 342.604C199.036 343.317 198.948 344.022 198.776 344.659C198.659 345.148 198.505 345.591 198.299 345.967C197.809 346.853 197.152 347.347 196.468 347.343H166.532ZM217.629 347.343C217.146 347.353 216.672 347.105 216.263 346.63C215.853 346.154 215.526 345.47 215.321 344.659C215.139 344.028 215.047 343.32 215.055 342.604C215.054 341.977 215.12 341.355 215.249 340.775C215.378 340.195 215.567 339.668 215.807 339.224C216.046 338.78 216.33 338.429 216.643 338.19C216.956 337.951 217.291 337.829 217.629 337.831H247.465C247.803 337.831 248.137 337.954 248.449 338.195C248.761 338.435 249.044 338.786 249.282 339.23C249.521 339.673 249.709 340.2 249.838 340.779C249.966 341.358 250.031 341.978 250.03 342.604C250.032 343.319 249.941 344.023 249.765 344.659C249.648 345.148 249.484 345.591 249.279 345.967C248.964 346.41 248.578 346.759 248.163 346.995C247.748 347.232 247.311 347.35 246.873 347.343H217.629ZM268.718 347.343C268.236 347.354 267.762 347.107 267.354 346.63C266.946 346.154 266.621 345.47 266.418 344.659C266.229 344.032 266.134 343.322 266.144 342.604C266.141 341.335 266.408 340.115 266.886 339.207C267.378 338.327 268.034 337.834 268.718 337.831H298.544C299.227 337.831 299.882 338.334 300.365 339.229C300.847 340.124 301.119 341.338 301.119 342.604C301.117 343.875 300.848 345.095 300.367 346.001C299.878 346.887 299.22 347.381 298.535 347.377L268.718 347.343ZM319.806 347.343C319.324 347.352 318.851 347.104 318.444 346.628C318.036 346.152 317.711 345.469 317.507 344.659C317.317 344.032 317.222 343.322 317.232 342.604C317.231 341.977 317.296 341.355 317.425 340.775C317.554 340.195 317.744 339.668 317.983 339.224C318.222 338.78 318.507 338.429 318.82 338.19C319.132 337.951 319.468 337.829 319.806 337.831H349.633C350.315 337.831 350.97 338.334 351.453 339.229C351.936 340.124 352.207 341.338 352.207 342.604C352.211 343.317 352.123 344.022 351.95 344.659C351.827 345.145 351.66 345.587 351.456 345.967C350.967 346.856 350.308 347.351 349.624 347.343H319.806ZM370.894 347.343C370.413 347.352 369.94 347.104 369.532 346.628C369.124 346.152 368.799 345.469 368.595 344.659C368.41 344.029 368.315 343.321 368.32 342.604C368.316 341.975 368.38 341.352 368.508 340.769C368.637 340.187 368.826 339.658 369.066 339.214C369.306 338.769 369.592 338.418 369.905 338.18C370.219 337.943 370.555 337.824 370.894 337.831H400.721C401.059 337.829 401.395 337.951 401.707 338.19C402.02 338.429 402.305 388.78 402.544 339.224C402.783 339.668 402.973 340.195 403.102 340.775C403.231 341.355 403.296 341.977 403.295 342.604C403.299 343.317 403.212 344.022 403.039 344.659C402.919 345.144 402.755 345.587 402.553 345.967C402.064 346.856 401.406 347.351 400.721 347.343H370.894Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32115\"\n x=\"0\"\n y=\"0\"\n width=\"465\"\n height=\"1750\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_156_32115\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32115\"\n result=\"effect2_dropShadow_156_32115\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32115\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCardVertical;\n","import React from 'react';\nimport {\n Button,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n tokens,\n} from '@fluentui/react-components';\nimport { Language } from '../../types/globalTypes';\n\nconst useStyles = makeStyles({\n card: {\n width: '100%',\n boxSizing: 'border-box',\n padding: '0px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n menuList: {\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1200px)': {\n flexDirection: 'row',\n overflowX: 'auto',\n flexWrap: 'nowrap',\n gap: '0px',\n WebkitOverflowScrolling: 'touch',\n scrollbarWidth: 'thin',\n justifyContent: 'space-around',\n },\n },\n menuItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: '12px',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n textAlign: 'left',\n transition: 'background-color 0.2s ease',\n textDecoration: 'none',\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1,\n border: 'none',\n gap: '12px',\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n '@media (max-width: 1200px)': {\n padding: '10px 12px',\n flexShrink: 0,\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n },\n },\n menuItemActive: {\n backgroundColor: tokens.colorNeutralBackground3,\n color: tokens.colorNeutralForeground1,\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground3Hover,\n },\n },\n logo: {\n height: '32px',\n width: '32px',\n flexShrink: 0,\n },\n textContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n '@media (max-width: 1200px)': {\n alignItems: 'center',\n },\n },\n label: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n lineHeight: '1.2',\n },\n description: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n lineHeight: '1.4',\n '@media (max-width: 1200px)': {\n fontSize: tokens.fontSizeBase100,\n whiteSpace: 'nowrap',\n },\n },\n dividerVertical: {\n '@media (min-width: 1200px)': {\n display: 'none',\n },\n },\n dividerHorizontal: {\n '@media (max-width: 1200px)': {\n display: 'none',\n },\n },\n});\n\n// Built-in service menu items with i18n\nconst SERVICE_MENU_ITEMS = {\n ferry: {\n id: 'ferry',\n logo: '/assets/images/icons/ferry.svg',\n labels: {\n id: { label: 'Ferry', description: 'Layanan penyeberangan ferry ASDP' },\n en: { label: 'Ferry', description: 'ASDP Ferry Crossing Service' },\n },\n },\n ifcs: {\n id: 'ifcs',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n en: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n },\n },\n skpt: {\n id: 'skpt',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'SKPT', description: 'Sistem Karcis Penumpang Terpadu' },\n en: { label: 'SKPT', description: 'Integrated Passenger Ticketing System' },\n },\n },\n hotel: {\n id: 'hotel',\n logo: '/assets/images/icons/hotel.svg',\n labels: {\n id: { label: 'Hotel', description: 'Layanan pemesanan hotel' },\n en: { label: 'Hotel', description: 'Hotel Booking Service' },\n },\n },\n other: {\n id: 'other',\n logo: '/assets/images/icons/other.svg',\n labels: {\n id: { label: 'Lainnya', description: 'Layanan lainnya' },\n en: { label: 'Other', description: 'Other Services' },\n },\n },\n} as const;\n\nexport type ServiceId = keyof typeof SERVICE_MENU_ITEMS;\n\nexport interface CardServiceMenuProps {\n /**\n * Currently active service ID\n * @default 'ferry'\n */\n activeServiceId?: ServiceId;\n \n /**\n * Language for labels (Indonesian or English)\n * @default 'id'\n */\n language?: Language;\n \n /**\n * Callback when a service is clicked\n */\n onServiceClick?: (serviceId: ServiceId) => void;\n \n /**\n * Whether to show descriptions on desktop\n * @default true\n */\n showDescriptions?: boolean;\n \n /**\n * Custom className for the card\n */\n className?: string;\n}\n\nexport const CardServiceMenu: React.FC<CardServiceMenuProps> = ({\n activeServiceId = 'ferry',\n language = 'id',\n onServiceClick,\n showDescriptions = true,\n className,\n}) => {\n const styles = useStyles();\n\n const getMenuItemClass = (serviceId: ServiceId) => {\n const isActive = activeServiceId === serviceId;\n return mergeClasses(\n styles.menuItem,\n isActive && styles.menuItemActive\n );\n };\n\n const menuItems = Object.values(SERVICE_MENU_ITEMS);\n\n return (\n <Card className={mergeClasses(styles.card, className)}>\n <div className={styles.menuList}>\n {menuItems.map((item, index) => {\n const { label, description } = item.labels[language];\n \n return (\n <React.Fragment key={item.id}>\n <Button\n className={getMenuItemClass(item.id as ServiceId)}\n onClick={() => onServiceClick?.(item.id as ServiceId)}\n >\n <img\n src={item.logo}\n alt={label}\n className={styles.logo}\n />\n <div className={styles.textContent}>\n <span className={styles.label}>{label}</span>\n {showDescriptions && (\n <span className={styles.description}>\n {description}\n </span>\n )}\n </div>\n </Button>\n {index < menuItems.length - 1 && (\n <>\n <Divider className={styles.dividerHorizontal} />\n <Divider vertical className={styles.dividerVertical} />\n </>\n )}\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default CardServiceMenu;\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#001a1bff',\n '20': '#02383bff',\n '30': '#002426',\n '40': '#004044',\n '50': '#005D62',\n '60': '#007A81',\n '70': '#00969F',\n '80': '#00B3BD',\n '90': '#29BFC8',\n '100': '#52CBD2',\n '110': '#7AD7DD',\n '120': '#A3E4E7',\n '130': '#CCF0F2',\n '140': '#E1F7F8',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '40': 4,\n '60': 6,\n '70': 7,\n '80': 8,\n '100': 10,\n '120': 12,\n '150': 15,\n '160': 16,\n '170': 17,\n '180': 18,\n '190': 19,\n '200': 20,\n '220': 22,\n '240': 24,\n '260': 26,\n '270': 27,\n '280': 28,\n '320': 32,\n '360': 36,\n '400': 40,\n '480': 48,\n '520': 52,\n '560': 56,\n '580': 58,\n '600': 60,\n '640': 64,\n '680': 68,\n '720': 72,\n '760': 76,\n '800': 80,\n '860': 86,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1020': 102,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '190': 19,\n '200': 20,\n '220': 22,\n};\n\nexport const fontWeight = {\n 'Regular': 400,\n 'Medium': 500,\n 'Semibold': 600,\n};\n\nexport const lineHeight = {\n 'lineHeightBase210': 21,\n};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#5C9F38',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\nexport const foundationColors = {\n 'Foundation_Danger_error': '#FD3A3A',\n};\n\nexport const schemeColors = {\n 'Scheme_Secondary': '#426900',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#00B3BD',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#00B3BD',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#C50F1F',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n foundationColors,\n lightModeColors,\n darkModeColors,\n schemeColors,\n};\n","import { Calendar } from '@fluentui/react-calendar-compat';\nimport {\n Input,\n InputProps,\n Popover,\n PopoverSurface,\n PopoverTrigger,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { forwardRef, useState } from 'react';\n\ninterface DatePickerInputProps extends InputProps {\n field: {\n value: string;\n onChange: (value: string) => void;\n onBlur?: () => void;\n };\n max?: string;\n}\n\nconst DatePickerInput = forwardRef<HTMLInputElement, DatePickerInputProps>(\n (\n {\n field,\n placeholder,\n disabled,\n appearance,\n size,\n contentBefore,\n onClick,\n style,\n max,\n ...restProps\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const dateValue = field.value ? new Date(field.value) : undefined;\n\n const onSelectDate = (date: Date | null | undefined) => {\n if (date) {\n // Adjust for timezone offset to ensure the date string is correct\n const offset = date.getTimezoneOffset();\n const adjustedDate = new Date(date.getTime() - offset * 60 * 1000);\n field.onChange(adjustedDate.toISOString().split('T')[0]);\n setIsOpen(false);\n }\n };\n\n const formatDate = (dateString: string) => {\n if (!dateString) return '';\n const date = new Date(dateString);\n return date.toLocaleDateString('id-ID', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n };\n\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e?.preventDefault();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n onClick?.(e);\n };\n\n return (\n <Popover open={isOpen} onOpenChange={(_, data) => setIsOpen(data.open)} trapFocus>\n <PopoverTrigger disableButtonEnhancement>\n <Input\n {...restProps}\n value={formatDate(field.value)}\n readOnly\n placeholder={placeholder || 'Pilih tanggal'}\n disabled={disabled}\n appearance={appearance}\n size={size}\n contentBefore={contentBefore}\n onClick={handleInputClick}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n ...style,\n }}\n contentAfter={\n <div\n onClick={e => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n }}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Icon icon=\"fluent:calendar-24-regular\" />\n </div>\n }\n />\n </PopoverTrigger>\n <PopoverSurface tabIndex={-1} style={{ maxWidth: '530px' }}>\n <Calendar\n value={dateValue}\n onSelectDate={onSelectDate}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n maxDate={max ? new Date(max) : undefined}\n />\n </PopoverSurface>\n </Popover>\n );\n },\n);\n\nDatePickerInput.displayName = 'DatePickerInput';\n\nexport default DatePickerInput;\n","import React, { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport {\n Button,\n Checkbox,\n Field,\n Input,\n Label,\n Radio,\n RadioGroup,\n Switch,\n Text,\n Textarea,\n makeStyles,\n tokens,\n typographyStyles,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Control, Controller, FieldValues, Path } from 'react-hook-form';\nimport PhoneInputComponent from 'react-phone-input-2';\n// import 'react-phone-input-2/lib/style.css';\nimport Select from 'react-select';\n\nimport tokensV2, { fontWeight, sharedColors } from '../../constants/generated/tokensV2';\n\nimport DatePickerInput from './DatePickerInput';\nimport { InputDynamicProps, InputType, PhoneValue, CountryCode, SelectOption, RadioOption } from './types';\n\n// Handle both default and named exports for PhoneInput\nconst PhoneInput = (PhoneInputComponent as any).default || PhoneInputComponent;\nconst useStyles = makeStyles({\n field: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n marginBottom: tokens.spacingVerticalM,\n },\n errorText: {\n color: tokens.colorPaletteRedBackground1,\n fontSize: tokens.fontSizeBase200,\n },\n helperText: {\n color: tokens.colorNeutralForeground2,\n fontSize: tokens.fontSizeBase200,\n },\n disabledFilledLighter: {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n '& input': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n },\n },\n fileInput: {\n padding: tokens.spacingVerticalS,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n backgroundColor: tokens.colorNeutralBackground1,\n fontSize: tokens.fontSizeBase300,\n '&:focus': {\n outline: `2px solid ${tokens.colorBrandStroke1}`,\n },\n },\n reactSelect: {\n // Custom styles akan dihandle via styles prop react-select\n },\n reactSelectError: {\n // Custom styles akan dihandle via styles prop react-select\n },\n phoneContainer: {\n display: 'flex',\n gap: tokens.spacingHorizontalS,\n alignItems: 'flex-start',\n width: '100%',\n },\n phoneCountrySelect: {\n minWidth: '120px',\n maxWidth: '120px',\n flexShrink: 0,\n },\n switchWrapper: {\n '& .fui-Switch': {\n minHeight: '20px',\n },\n '& .fui-Switch__indicator': {\n height: '20px',\n width: '40px',\n borderRadius: '10px',\n },\n '& .fui-Switch__thumb': {\n height: '14px',\n width: '14px',\n borderRadius: '50%',\n },\n },\n otpInput: {\n '& input': {\n textAlign: 'center',\n },\n },\n inputWithAutocomplete: {\n '& input:-webkit-autofill': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n '-webkit-text-fill-color': `${tokens.colorNeutralForeground1} !important`,\n },\n '& input:-webkit-autofill:hover': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:focus': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:active': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n },\n phoneInputWrapper: {\n width: '100%',\n '& .react-tel-input': {\n width: '100%',\n },\n '& .react-tel-input .form-control': {\n width: '100%',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingVerticalS,\n paddingLeft: '48px',\n fontSize: tokens.fontSizeBase300,\n fontFamily: tokens.fontFamilyBase,\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n outline: 'none',\n height: 'auto',\n minHeight: '40px',\n },\n '& .react-tel-input .form-control::placeholder': {\n fontSize: tokens.fontSizeBase400,\n },\n '& .react-tel-input .form-control:hover': {\n border: `1px solid ${tokens.colorNeutralStroke1Hover}`,\n },\n '& .react-tel-input .form-control:focus': {\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\n // boxShadow: `0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n '& .react-tel-input .form-control:disabled': {\n backgroundColor: tokens.colorNeutralBackground4,\n color: tokens.colorNeutralForegroundDisabled,\n cursor: 'not-allowed',\n },\n '& .react-tel-input .flag-dropdown': {\n border: 'none',\n backgroundColor: 'transparent',\n borderRadius: tokens.borderRadiusMedium,\n },\n '& .react-tel-input .selected-flag': {\n padding: '0 0 0 8px',\n width: '40px',\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .selected-flag:hover': {\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .flag-dropdown.open .selected-flag': {\n backgroundColor: 'transparent',\n },\n },\n phoneInputError: {\n '& .react-tel-input .form-control': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n },\n '& .react-tel-input .form-control:focus': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n boxShadow: `0 0 0 1px ${tokens.colorPaletteRedBorder2}`,\n },\n },\n classRadioGroup: {\n display: 'flex',\n flexDirection: 'row',\n gap: '12px',\n },\n classRadio: {\n '& .fui-Radio__indicator': {\n display: 'none',\n },\n '& .fui-Radio__label': {\n padding: '10px 24px',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusCircular,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n fontSize: tokens.fontSizeBase300,\n color: tokens.colorNeutralForeground2,\n },\n '&:hover .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n },\n '& .fui-Radio__input:checked ~ .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Fallback for aria-checked if needed\n '&[aria-checked=\"true\"] .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Disabled state styling\n '& .fui-Radio__input:disabled ~ .fui-Radio__label': {\n opacity: 0.6,\n cursor: 'not-allowed',\n backgroundColor: tokens.colorNeutralBackground4,\n },\n '&:hover .fui-Radio__input:disabled ~ .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n },\n },\n});\n\n// Helper function to check if it's a valid phone number start\n// const isValidPhoneStart = (value: string): boolean => {\n// if (!value || value.length < 6) return false;\n\n// // Phone number patterns for international numbers:\n// // - Must be all digits\n// // - Length between 6-15 digits (international standard)\n// // - Common patterns: starts with 0, +, or direct country code (1-9)\n// const cleanValue = value.replace(/[\\s\\-\\(\\)]/g, ''); // Remove common phone formatting\n\n// // Check if it's all digits (after removing + at start if present)\n// const numericValue = cleanValue.replace(/^\\+/, '');\n// const isAllDigits = /^\\d+$/.test(numericValue);\n\n// // Must be all digits and have reasonable length for phone number (6-15 digits)\n// return isAllDigits && numericValue.length >= 6 && numericValue.length <= 15;\n// };\n\n// Helper function to detect input type for identity field\nconst detectIdentityType = (value: string): 'email' | 'phone' | 'id' => {\n if (!value) return 'id';\n\n // Ensure value is a string to prevent \"includes/startsWith is not a function\" errors\n const stringValue = String(value);\n\n // Check if it's an email (contains @)\n if (stringValue.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (stringValue.startsWith('+')) return 'phone';\n\n // Check if it's all numeric (phone without +)\n // This handles the case when PhoneInput returns just numbers\n // const isAllNumeric = /^\\d+$/.test(value);\n // if (isAllNumeric && value.length >= 10) return 'phone';\n\n // Otherwise it's an ID (KTP/SIM/Passport - mixed alphanumeric or short numbers)\n return 'id';\n};\n\nconst detectEmailOrPhone = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (value.startsWith('+')) return 'phone';\n\n return 'none';\n};\n\n// Helper function khusus untuk emailOrPhone type - deteksi lebih strict\nconst detectEmailOrPhoneStrict = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with + (international format)\n if (value.startsWith('+')) return 'phone';\n\n // Check if it's Indonesian phone format starting with 0 (e.g., 08xxx)\n if (/^0\\d/.test(value)) return 'phone';\n\n // Check if it's Indonesian phone without + (e.g., 628xxx)\n if (/^62\\d/.test(value)) return 'phone';\n\n return 'none';\n};\n\nconst InputDynamic: React.FC<InputDynamicProps> = ({\n name,\n control,\n label,\n type,\n placeholder,\n required = false,\n disabled = false,\n options = [],\n multiple = false,\n accept,\n rows = 3,\n min,\n max,\n step,\n isMultiSelect = false,\n selectScrollbarColor,\n contentBefore,\n appearance = 'outline',\n validationRules,\n helperText,\n className,\n layout,\n size,\n onClick,\n style,\n defaultCountry = 'ID',\n maxLength,\n autoAdvance = false,\n otpIndex,\n hasError = false,\n autoComplete,\n onInput,\n contentAfter,\n onChange,\n}: InputDynamicProps) => {\n\n const styles = useStyles();\n const [showPassword, setShowPassword] = useState(false);\n const [isPhoneMode, setIsPhoneMode] = useState(false);\n const [emailOrPhoneType, setEmailOrPhoneType] = useState<'email' | 'phone' | 'none'>('none');\n const [identityType, setIdentityType] = useState<'email' | 'phone' | 'id'>('id');\n const [lastPhoneValue, setLastPhoneValue] = useState('');\n const [lastEmailOrPhoneValue, setLastEmailOrPhoneValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const phoneInputRef = useRef<any>(null);\n const emailOrPhoneInputRef = useRef<any>(null);\n const shouldFocusRef = useRef(false);\n const isBackspaceNavigationRef = useRef(false);\n\n // Custom styles untuk react-select\n const getSelectStyles = (hasError: boolean) => ({\n menuPortal: (base: any) => ({\n ...base,\n zIndex: 9999999,\n borderRadius: tokens.borderRadiusMedium,\n }),\n control: (provided: any, state: any) => ({\n ...provided,\n borderColor: hasError\n ? tokens.colorPaletteRedBorder2\n : state.isFocused\n ? tokens.colorBrandStroke1\n : tokens.colorNeutralStroke1,\n borderRadius: tokens.borderRadiusMedium,\n minHeight: '40px',\n fontSize: tokens.fontSizeBase400,\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: state.isFocused\n ? `0 0 0 2px ${hasError ? tokens.colorPaletteRedBorder2 : tokens.colorBrandStroke1}`\n : 'none',\n '&:hover': {\n borderColor: hasError ? tokens.colorPaletteRedBorder2 : tokens.colorNeutralStroke1Hover,\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n zIndex: 9999,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: 0, // Opsional: bersihkan padding agar scrollbar mepet ke pinggir\n maxHeight: '300px', // Pastikan ada limit height agar scrollbar muncul\n\n /* Targetkan Webkit Scrollbar di menuList */\n '&::-webkit-scrollbar': {\n width: '8px',\n display: 'block', // Pastikan tampil\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: tokens.colorNeutralBackground2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: selectScrollbarColor || tokens.colorNeutralStroke2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackground,\n },\n '&::-webkit-scrollbar-thumb:active': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackgroundPressed,\n },\n }),\n option: (provided: any, state: any) => ({\n ...provided,\n fontSize: tokens.fontSizeBase300,\n color: state.isSelected\n ? tokens.colorNeutralForegroundOnBrand\n : tokens.colorNeutralForeground1,\n backgroundColor: state.isSelected\n ? tokens.colorBrandBackground\n : state.isFocused\n ? tokens.colorNeutralBackground1Hover\n : 'transparent',\n }),\n placeholder: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground3,\n fontSize: tokens.fontSizeBase400,\n }),\n singleValue: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase400,\n }),\n });\n\n // Focus the input when mode changes\n useEffect(() => {\n if (shouldFocusRef.current) {\n // Small delay to ensure the new input is mounted\n setTimeout(() => {\n // console.log(\n // 'Focusing input for type:',\n // identityType,\n // 'shouldFocusRef:',\n // shouldFocusRef.current,\n // );\n if (identityType === 'phone' && phoneInputRef.current) {\n // PhoneInput uses an internal input element\n const phoneInput = phoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n // Set cursor to end of input\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n // Set cursor to end of input only for text-like inputs\n // email, number, date, etc. don't support setSelectionRange\n const inputType = inputRef.current.type;\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [identityType]);\n\n // Focus handling for emailOrPhone type\n useEffect(() => {\n if (shouldFocusRef.current && type === 'emailOrPhone') {\n setTimeout(() => {\n if (emailOrPhoneType === 'phone' && emailOrPhoneInputRef.current) {\n const phoneInput = emailOrPhoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n const inputType = inputRef.current.type;\n // Only use setSelectionRange on input types that support it\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [emailOrPhoneType, type]);\n\n // const updatePhoneMode = (value: any) => {\n // const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n // const nextMode = isValidPhoneStart(stringValue);\n // if (nextMode !== isPhoneMode) {\n // setIsPhoneMode(nextMode);\n // }\n // };\n\n const updateIdentityType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n const detectedType = detectIdentityType(stringValue);\n if (detectedType !== identityType) {\n setIdentityType(detectedType);\n }\n };\n\n const updateEmailOrPhoneType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : '';\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n if (detectedType !== emailOrPhoneType) {\n setEmailOrPhoneType(detectedType);\n }\n };\n\n const renderInput = (field: any, error?: string) => {\n // Make border transparent when disabled and appearance is not outline/underline\n const shouldTransparentBorder =\n disabled && appearance !== 'outline' && appearance !== 'underline';\n\n const inputStyle = shouldTransparentBorder ? { ...style, border: 'transparent' } : style;\n\n const handleInputChange = (e: any) => {\n field.onChange(e);\n if (onChange) {\n onChange(e.target?.value ?? e);\n }\n };\n\n const commonProps = {\n ...field,\n onChange: handleInputChange,\n value: field.value ?? '',\n placeholder,\n disabled,\n appearance: error ? 'invalid' : appearance,\n size,\n contentBefore,\n onClick,\n style: inputStyle,\n maxLength,\n autoComplete: autoComplete || 'off',\n contentAfter,\n max,\n } as const;\n const otpMatch = /^otp(\\d+)$/.exec(String(name));\n const otpIndex = otpMatch ? parseInt(otpMatch[1], 10) : null;\n\n // Handle emailOrPhone type - khusus untuk email atau nomor HP saja\n if (type === 'emailOrPhone') {\n updateEmailOrPhoneType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' = 'text';\n let inputPlaceholder = placeholder || 'Email atau Nomor HP';\n\n if (emailOrPhoneType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (emailOrPhoneType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor HP';\n }\n\n // Normalize Indonesian phone numbers: convert 08xxx to +628xxx\n const normalizePhoneNumber = (val: string): string => {\n if (!val) return val;\n // Convert 08xxx to +628xxx\n if (val.startsWith('08')) {\n return '+62' + val.substring(1);\n }\n // Convert 628xxx to +628xxx\n if (val.startsWith('62') && !val.startsWith('+')) {\n return '+' + val;\n }\n return val;\n };\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n const match = val.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return val;\n };\n\n const displayValue =\n emailOrPhoneType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {emailOrPhoneType === 'phone' ? (\n <div\n ref={emailOrPhoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n\n const countryDialCode = data?.dialCode || '';\n\n if (value === countryDialCode) {\n const dialCodeChanged =\n lastEmailOrPhoneValue &&\n lastEmailOrPhoneValue !== countryDialCode &&\n !lastEmailOrPhoneValue.startsWith(countryDialCode);\n\n const isInitial = !lastEmailOrPhoneValue;\n const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n return;\n } else {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n }\n\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = emailOrPhoneType !== detectEmailOrPhoneStrict(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n // Auto-normalize phone numbers for Indonesian format\n let normalizedValue = newValue;\n const detectedType = detectEmailOrPhoneStrict(newValue);\n if (detectedType === 'phone') {\n normalizedValue = normalizePhoneNumber(newValue);\n }\n\n field.onChange(normalizedValue);\n updateEmailOrPhoneType(normalizedValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n // If this is an identity type, check and update mode\n if (type === 'identity') {\n // update type whenever value changes\n updateIdentityType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' | 'number' = 'text';\n let inputPlaceholder = placeholder || 'Email, KTP, SIM, Passport, atau Nomor Telepon';\n\n if (identityType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (identityType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor telepon';\n } else if (identityType === 'id') {\n inputType = 'text';\n inputPlaceholder = placeholder || 'KTP, SIM, atau Passport';\n }\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n // E.g., 6208... should become 628...\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const displayValue = identityType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {identityType === 'phone' ? (\n <div\n ref={phoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n // If completely empty, switch back to id mode\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n\n // Get the country dial code\n const countryDialCode = data?.dialCode || '';\n\n // If value is just the country code\n if (value === countryDialCode) {\n // Check if dial code changed (user is changing country)\n const dialCodeChanged =\n lastPhoneValue &&\n lastPhoneValue !== countryDialCode &&\n !lastPhoneValue.startsWith(countryDialCode);\n\n // Check if this is initial state (user just typed +)\n const isInitial = !lastPhoneValue;\n\n // Check if user had a full number and now changing country\n const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n // Keep in phone mode\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n return;\n } else {\n // User is deleting digits back to dial code only - switch to ID\n shouldFocusRef.current = true; // Set focus flag before switching\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n }\n\n // PhoneInput returns value without +, so we add it\n const phoneValue = '+' + value;\n\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = identityType !== detectIdentityType(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n field.onChange(newValue);\n\n // Update type whenever input changes\n updateIdentityType(newValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n switch (type) {\n case 'textarea':\n return <Textarea {...commonProps} rows={rows} resize=\"vertical\" />;\n\n case 'select':\n return (\n <Select\n {...field}\n name={`${String(name)}_${Math.random().toString(36).substring(7)}`}\n isDisabled={disabled}\n placeholder={placeholder}\n options={options}\n styles={getSelectStyles(!!error)}\n className={styles.reactSelect}\n classNamePrefix=\"react-select\"\n isMulti={isMultiSelect}\n inputProps={{\n autoComplete: 'new-password',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n spellCheck: 'false',\n }}\n value={\n isMultiSelect\n ? options.filter(option => field.value?.includes(option.value))\n : options.find(option => option.value === field.value) || null\n }\n onChange={(selectedOption: any) => {\n if (isMultiSelect) {\n const values = selectedOption\n ? selectedOption.map((opt: SelectOption) => opt.value)\n : [];\n field.onChange(values);\n } else {\n field.onChange(selectedOption ? selectedOption.value : '');\n }\n }}\n getOptionLabel={(option: SelectOption) => option.label}\n getOptionValue={(option: SelectOption) => option.value}\n isOptionDisabled={(option: SelectOption) => option.disabled || false}\n \n />\n );\n\n case 'phone': {\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const cleanedFieldValue = cleanPhoneValue(field.value || '');\n\n return (\n <div className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}>\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={cleanedFieldValue}\n onChange={(value: string, data: any) => {\n const cleanedValue = cleanPhoneValue(value || '');\n field.onChange(cleanedValue);\n }}\n placeholder={placeholder || 'Nomor telepon'}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n );\n }\n\n \n case 'file':\n return (\n <input\n {...field}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n disabled={disabled}\n className={styles.fileInput}\n value={undefined}\n onChange={e => {\n const files = e.target.files;\n field.onChange(multiple ? files : files?.[0]);\n }}\n />\n );\n\n case 'switch':\n return (\n <div className={styles.switchWrapper}>\n <Switch\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n />\n </div>\n );\n\n case 'date': {\n return (\n <DatePickerInput\n field={field}\n placeholder={placeholder}\n disabled={disabled}\n appearance={error ? 'outline' : appearance}\n size={size}\n onClick={onClick}\n style={inputStyle}\n max={max ? String(max) : undefined}\n />\n );\n }\n\n case 'radio':\n return (\n <RadioGroup {...field} disabled={disabled} layout={layout ?? 'vertical'}>\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </RadioGroup>\n );\n\n case 'radiobutton':\n return (\n <RadioGroup\n {...field}\n disabled={disabled}\n layout={layout ?? 'horizontal'}\n className={styles.classRadioGroup}\n >\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={disabled || option.disabled}\n className={styles.classRadio}\n />\n ))}\n </RadioGroup>\n );\n\n case 'checkbox':\n return (\n <Checkbox\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n label={label}\n />\n );\n\n case 'number':\n return (\n <Input\n {...commonProps}\n type=\"number\"\n min={min}\n max={max}\n step={step}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'time':\n case 'datetime-local':\n return (\n <Input\n {...commonProps}\n type={type}\n min={min}\n max={max}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'password':\n return (\n <Input\n {...commonProps}\n type={showPassword ? 'text' : 'password'}\n className={styles.inputWithAutocomplete}\n contentAfter={\n <Button\n appearance=\"transparent\"\n icon={\n showPassword ? (\n <Icon icon=\"fluent:eye-off-24-filled\" />\n ) : (\n <Icon icon=\"fluent:eye-24-filled\" />\n )\n }\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n onClick={() => setShowPassword(!showPassword)}\n tabIndex={-1}\n type=\"button\"\n />\n }\n />\n );\n\n case 'otp': {\n // OTP specific handling\n const setRefs = (el: any) => {\n try {\n if (field.ref) {\n if (typeof field.ref === 'function') field.ref(el);\n else (field.ref as MutableRefObject<any>).current = el;\n }\n } catch {\n /* ignore */\n }\n (inputRef as MutableRefObject<HTMLInputElement | null>).current = el;\n };\n\n const handleChange = (e: any) => {\n const val = e?.target?.value ?? '';\n const numericValue = val.replace(/\\D/g, '');\n\n // Update nilai input langsung\n if (inputRef.current) {\n inputRef.current.value = numericValue;\n }\n\n // Buat event baru dengan nilai numeric\n const numericEvent = {\n ...e,\n target: {\n ...e.target,\n value: numericValue,\n },\n };\n\n field.onChange(numericEvent);\n\n if (autoAdvance && otpIndex && maxLength && numericValue.length >= maxLength) {\n const next = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${otpIndex + 1}\"]`,\n );\n if (next) next.focus();\n }\n };\n\n const handleKeyPress = (e: any) => {\n const char = e.key;\n if (\n !/^\\d$/.test(char) &&\n char !== 'Backspace' &&\n char !== 'Delete' &&\n char !== 'Tab' &&\n char !== 'ArrowLeft' &&\n char !== 'ArrowRight'\n ) {\n e.preventDefault();\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (e.key === 'Backspace') {\n const curVal = field.value || '';\n if (!curVal && otpIndex !== null && otpIndex !== undefined) {\n const prevIndex = otpIndex - 1;\n if (prevIndex >= 1) {\n // Set flag before focusing to prevent handleFocus interference\n isBackspaceNavigationRef.current = true;\n const prev = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${prevIndex}\"]`,\n );\n if (prev) {\n prev.focus();\n // Flag will be reset in handleFocus after navigation completes\n }\n }\n }\n }\n };\n\n const handleClick = (e: any) => {\n // Prevent clicking on previous inputs - redirect to correct position\n if (otpIndex) {\n // Find the last filled input\n let lastFilledIndex = 0;\n for (let i = 1; i <= 6; i++) {\n const input = document.querySelector<HTMLInputElement>(`[data-otp-index=\"${i}\"]`);\n if (input && input.value) {\n lastFilledIndex = i;\n } else {\n break;\n }\n }\n\n // Determine target index: if all filled, stay on last; otherwise go to first empty\n const targetIndex = lastFilledIndex === 6 ? 6 : lastFilledIndex + 1;\n\n // If user clicks on any input before the target, redirect to target\n if (otpIndex < targetIndex) {\n e.preventDefault();\n const targetInput = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${targetIndex}\"]`,\n );\n if (targetInput) {\n targetInput.focus();\n const length = targetInput.value?.length || 0;\n setTimeout(() => {\n targetInput.setSelectionRange(length, length);\n }, 0);\n }\n return;\n }\n }\n\n // If click on current input, ensure cursor is at the end\n if (inputRef.current) {\n const length = inputRef.current.value?.length || 0;\n setTimeout(() => {\n inputRef.current?.setSelectionRange(length, length);\n }, 0);\n }\n };\n\n const handleMouseDown = (e: any) => {\n // Track that user is clicking (not using keyboard navigation)\n isBackspaceNavigationRef.current = false;\n\n // Cegah seleksi teks dengan mouse\n if (field.value) {\n e.preventDefault();\n if (inputRef.current) {\n inputRef.current.focus();\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n }\n };\n\n const handleSelect = (e: any) => {\n // Paksa kursor tetap di akhir\n if (inputRef.current && field.value) {\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n };\n\n const handleFocus = (e: any) => {};\n\n const inputAttrs: any = {};\n if (otpIndex) inputAttrs['data-otp-index'] = otpIndex;\n\n // Default OTP styles\n const otpStyles = {\n height: '57px',\n borderRadius: tokens.borderRadiusXLarge,\n textAlign: 'center' as const,\n ...typographyStyles.title2,\n fontWeight: fontWeight.Medium,\n lineHeight: tokens.lineHeightHero800,\n borderColor: hasError ? sharedColors.Shared_Cranberry_Primary : undefined,\n ...style, // Allow override from props\n };\n\n return (\n <Input\n {...commonProps}\n type=\"tel\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyPress={handleKeyPress}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n onSelect={handleSelect}\n onFocus={handleFocus}\n ref={setRefs}\n style={otpStyles}\n className={styles.otpInput}\n {...inputAttrs}\n />\n );\n }\n\n default:\n return (\n <Input\n {...commonProps}\n type={type}\n onInput={onInput}\n className={styles.inputWithAutocomplete}\n />\n );\n }\n };\n\n const getValidationRules = () => {\n const rules: any = {};\n\n if (required) {\n rules.required = validationRules?.required || 'Field ini wajib diisi';\n }\n\n if (validationRules?.minLength) {\n rules.minLength = validationRules.minLength;\n }\n\n if (validationRules?.maxLength) {\n rules.maxLength = validationRules.maxLength;\n }\n\n if (validationRules?.pattern) {\n rules.pattern = validationRules.pattern;\n }\n\n if (validationRules?.min) {\n rules.min = validationRules.min;\n }\n\n if (validationRules?.max) {\n rules.max = validationRules.max;\n }\n\n if (validationRules?.validate) {\n rules.validate = validationRules.validate;\n }\n\n // Add default email validation\n if (type === 'email') {\n rules.pattern = {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n message: 'Email tidak valid',\n };\n }\n\n // Add validation for emailOrPhone type - khusus email atau nomor HP\n if (type === 'emailOrPhone') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Email atau nomor HP wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : '';\n\n if (!stringValue) return true;\n\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor HP harus dalam format internasional (contoh: +628123456789)';\n }\n const phoneDigits = stringValue.substring(1);\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor HP hanya boleh berisi angka setelah +';\n }\n if (phoneDigits.length < 10) {\n return 'Nomor HP minimal 10 digit';\n }\n } else {\n return 'Masukkan email atau nomor HP yang valid';\n }\n\n return true;\n };\n }\n\n // Add validation for identity type (can be email, phone, or other ID)\n if (type === 'identity') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Field ini wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n\n if (!stringValue) return true;\n\n const detectedType = detectIdentityType(stringValue);\n\n // Validate based on detected type\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor telepon harus diawali dengan +';\n }\n const phoneDigits = stringValue.substring(1); // Remove + prefix\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor telepon hanya boleh berisi angka setelah +';\n }\n }\n // else if (detectedType === 'id') {\n // // Validate ID (only digits for KTP/SIM/Passport numbers)\n // if (!/^\\d+$/.test(stringValue)) {\n // return 'Nomor identitas hanya boleh berisi angka';\n // }\n // }\n\n return true;\n };\n }\n\n // Add default phone validation\n if (type === 'phone') {\n rules.validate = (value: string) => {\n if (required && !value) {\n return 'Nomor telepon wajib diisi';\n }\n // react-phone-number-input already handles validation\n return true;\n };\n }\n\n \n\n return rules;\n };\n\n return (\n <Controller\n name={name}\n control={control}\n rules={getValidationRules()}\n render={({ field, fieldState: { error } }) => (\n <Field\n className={`${styles.field} ${className || ''}`}\n validationMessage={error?.message}\n validationState={error ? 'error' : 'none'}\n >\n {label && type !== 'checkbox' && <Label required={required}>{label}</Label>}\n\n {renderInput(field, error?.message)}\n\n {helperText && !error && (\n <Text size={200} style={{ textAlign: 'left' }} className={styles.helperText}>\n {helperText}\n </Text>\n )}\n </Field>\n )}\n />\n );\n}\n\nexport default InputDynamic;\n\n","import { CountryCode } from './types';\n\n// Default country codes\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'BA',\n name: 'Bosnia and Herzegovina',\n dialCode: '+387',\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\n },\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'CF',\n name: 'Central African Republic',\n dialCode: '+236',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\n\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\n\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\n\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n {\n code: 'KN',\n name: 'Saint Kitts and Nevis',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'VC',\n name: 'Saint Vincent and the Grenadines',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'ST',\n name: 'Sao Tome and Principe',\n dialCode: '+239',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'TC',\n name: 'Turks and Caicos Islands',\n dialCode: '+1',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n {\n code: 'AE',\n name: 'United Arab Emirates',\n dialCode: '+971',\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\n },\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\n];\n","import { Language } from '../../types/globalTypes';\nimport { CardTicketSearchLabels } from './CardTicketSearch.types';\n\nexport const DEFAULT_LABELS: Record<Language, CardTicketSearchLabels> = {\n id: {\n fromLabel: 'Dari',\n toLabel: 'Ke',\n departureDateLabel: 'Tanggal Berangkat',\n returnDateLabel: 'Tanggal Pulang',\n serviceClassLabel: 'Kelas Layanan',\n typeOfServiceLabel: 'Jenis Layanan',\n passengerLabel: 'Penumpang',\n roundTripLabel: 'Pulang Pergi',\n searchButton: 'Cari Tiket',\n placeholderPort: 'Pilih Pelabuhan Asal',\n placeholderDestinationPort: 'Pilih Pelabuhan Tujuan',\n placeholderDepartureDate: 'Pilih Tanggal Keberangkatan',\n placeholderReturnDate: 'Pilih Tanggal Kepulangan',\n placeholderTypeClass: 'Pilih Kelas Layanan',\n placeholderTypeService: 'Pilih Jenis Layanan',\n placeholderPassenger: 'Pilih Jumlah Penumpang',\n },\n en: {\n fromLabel: 'From',\n toLabel: 'To',\n departureDateLabel: 'Departure Date',\n returnDateLabel: 'Return Date',\n serviceClassLabel: 'Service Class',\n typeOfServiceLabel: 'Service Type',\n passengerLabel: 'Passenger',\n roundTripLabel: 'Round Trip',\n searchButton: 'Search Ticket',\n placeholderPort: 'Select Origin Port',\n placeholderDestinationPort: 'Select Destination Port',\n placeholderDepartureDate: 'Select Departure Date',\n placeholderReturnDate: 'Select Return Date',\n placeholderTypeClass: 'Select Service Class',\n placeholderTypeService: 'Select Service Type',\n placeholderPassenger: 'Select Number of Passengers',\n },\n};\n\nexport const DEFAULT_MENU_ITEMS = [\n {\n id: 'ferry',\n label: 'Ferry',\n logo: '/assets/images/icons/ferry.svg',\n description: 'ASDP Ferry Crossing Service',\n },\n {\n id: 'ifcs',\n label: 'IFCS',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Ferry Control System',\n },\n {\n id: 'skpt',\n label: 'SKPT',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Passenger Ticketing System',\n },\n {\n id: 'hotel',\n label: 'Hotel',\n logo: '/assets/images/icons/hotel.svg',\n description: 'Hotel Booking Service',\n },\n {\n id: 'other',\n label: 'Other',\n logo: '/assets/images/icons/other.svg',\n description: 'Other Services',\n },\n];\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#000000',\n '20': '#03060e',\n '30': '#060b1c',\n '40': '#09112a',\n '50': '#0c1738',\n '60': '#122255',\n '70': '#182e71',\n '80': '#1e398d',\n '90': '#4b60a4',\n '100': '#7787bb',\n '110': '#a4afd1',\n '120': '#bac2dd',\n '130': '#d0d6e8',\n '140': '#e7e9f4',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '80': 8,\n '100': 10,\n '120': 12,\n '130': 13,\n '150': 15,\n '160': 16,\n '180': 18,\n '200': 20,\n '220': 22,\n '240': 24,\n '280': 28,\n '300': 30,\n '320': 32,\n '340': 34,\n '360': 36,\n '400': 40,\n '440': 44,\n '450': 45,\n '470': 47,\n '480': 48,\n '500': 50,\n '510': 51,\n '520': 52,\n '560': 56,\n '600': 60,\n '790': 79,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1050': 105,\n '1120': 112,\n '1200': 120,\n '1222': 122,\n '1360': 136,\n '1520': 152,\n '2000': 200,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '220': 22,\n};\n\nexport const fontWeight = {\n 'medium': 500,\n 'semibold': 600,\n 'bold': 700,\n};\n\nexport const lineHeight = {};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#8dc63f',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#1e398d',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#1e398d',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#00969f',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#00b3bd',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#7ad7dd',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\nexport const schemaColors = {\n 'secondary': '#426900',\n 'outline_variant': '#C4C7C7',\n 'Surface_Variant': '#E0E3E3',\n 'Primary': '#004F8F',\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n lightModeColors,\n darkModeColors,\n schemaColors,\n};\n","import { BrandVariants } from '@fluentui/react-components';\n\n// import { brandColors } from './generated/tokens';\nimport { brandColors as brandColorsV1 } from './generated/tokens';\nimport { brandColors as brandColorsV2 } from './generated/tokensV2';\n\n\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\nconst brandColors = !isV2Path ? brandColorsV2 : brandColorsV1;\n/**\n * Brand Colors from generated tokens (auto-resolved from Figma)\n * All token references have been resolved at build time\n */\nexport const customBrand: BrandVariants = {\n 10: brandColors['10'],\n 20: brandColors['20'],\n 30: brandColors['30'],\n 40: brandColors['40'],\n 50: brandColors['50'],\n 60: brandColors['60'],\n 70: brandColors['70'],\n 80: brandColors['80'],\n 90: brandColors['90'],\n 100: brandColors['100'],\n 110: brandColors['110'],\n 120: brandColors['120'],\n 130: brandColors['130'],\n 140: brandColors['140'],\n 150: brandColors['150'],\n 160: brandColors['160'],\n};\n","/**\n * Design Tokens from generated Figma tokens\n * All token references have been resolved at build time\n */\n\nimport {\n borderRadius as borderRadiusV1,\n darkModeColors as darkColorsV1,\n lightModeColors as lightColorsV1,\n spacing as spacingV1,\n strokeWidth as strokeWidthV1,\n} from './generated/tokens';\nimport {\n borderRadius as borderRadiusV2,\n darkModeColors as darkColorsV2,\n lightModeColors as lightColorsV2,\n spacing as spacingV2,\n strokeWidth as strokeWidthV2,\n} from './generated/tokensV2';\n\n// Check if current path starts with /v2\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\n// Select tokens based on path\nconst generatedBorderRadius = !isV2Path ? borderRadiusV2 : borderRadiusV1;\nconst generatedDarkColors = !isV2Path ? darkColorsV2 : darkColorsV1;\nconst generatedLightColors = !isV2Path ? lightColorsV2 : lightColorsV1;\nconst generatedSpacing = !isV2Path ? spacingV2 : spacingV1;\nconst generatedStrokeWidth = !isV2Path ? strokeWidthV2 : strokeWidthV1;\n\n\n/**\n * Core design system tokens\n */\nexport const designTokens = {\n // Spacing from Figma\n spacing: {\n none: '0px',\n xxs: `${generatedSpacing['20']}px`,\n xs: `${generatedSpacing['40']}px`,\n sNudge: `${generatedSpacing['60']}px`,\n s: `${generatedSpacing['80']}px`,\n mNudge: `${generatedSpacing['100']}px`,\n m: `${generatedSpacing['120']}px`,\n l: `${generatedSpacing['160']}px`,\n xl: `${generatedSpacing['200']}px`,\n xxl: `${generatedSpacing['240']}px`,\n xxxl: `${generatedSpacing['320']}px`,\n },\n\n // Border radius from Figma\n borderRadius: {\n none: 0,\n small: generatedBorderRadius['20'],\n medium: generatedBorderRadius['40'],\n large: generatedBorderRadius['80'],\n xLarge: generatedBorderRadius['120'],\n circular: '50%',\n },\n\n // Typography - Font sizes\n fontSize: {\n 100: 10,\n 200: 12,\n 300: 14,\n 400: 16,\n 500: 20,\n 550: 22,\n 600: 24,\n 700: 28,\n 800: 32,\n 900: 40,\n 1000: 68,\n },\n\n // Typography - Font weights\n fontWeight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n\n // Typography - Line heights\n lineHeight: {\n 100: 14,\n 200: 16,\n 300: 20,\n 400: 22,\n 500: 28,\n 600: 32,\n },\n\n // Font families\n fontFamily: {\n body: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n heading: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n mono: ['Consolas', 'Monaco', 'monospace'],\n },\n\n // Stroke widths\n strokeWidth: {\n thin: generatedStrokeWidth['10'],\n thick: generatedStrokeWidth['15'],\n thicker: generatedStrokeWidth['20'],\n thickest: generatedStrokeWidth['30'],\n },\n\n // Shadows\n shadows: {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n },\n\n // Breakpoints for responsive design\n breakpoints: {\n xs: '320px',\n sm: '480px',\n md: '768px',\n lg: '1024px',\n xl: '1200px',\n xxl: '1440px',\n },\n\n color: {\n customGreen: '#426900',\n },\n};\n\n/**\n * Light Mode Semantic Colors from generated tokens\n */\nexport const lightModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedLightColors.Neutral_Background_1_Rest,\n 2: generatedLightColors.Neutral_Background_2_Rest,\n 3: generatedLightColors.Neutral_Background_3_Rest,\n 4: generatedLightColors.Neutral_Background_4_Rest,\n 5: generatedLightColors.Neutral_Background_5_Rest,\n 6: generatedLightColors.Neutral_Background_6_Rest,\n inverted: generatedLightColors.Neutral_Background_Inverted_Rest,\n disabled: generatedLightColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedLightColors.Neutral_Foreground_1_Rest,\n 2: generatedLightColors.Neutral_Foreground_2_Rest,\n 3: generatedLightColors.Neutral_Foreground_3_Rest,\n 4: generatedLightColors.Neutral_Foreground_4_Rest,\n disabled: generatedLightColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedLightColors.Brand_Background_1_Rest,\n backgroundHover: generatedLightColors.Brand_Background_1_Hover,\n backgroundPressed: generatedLightColors.Brand_Background_1_Pressed,\n foreground: generatedLightColors.Brand_Foreground_1_Rest,\n stroke: generatedLightColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedLightColors.Status_Success_Foreground_1_Rest,\n warning: generatedLightColors.Status_Warning_Foreground_1_Rest,\n danger: generatedLightColors.Status_Danger_Foreground_1_Rest,\n error: generatedLightColors.Status_Danger_Foreground_1_Rest,\n info: '#0078d4',\n },\n\n // Borders\n border: {\n 1: generatedLightColors.Neutral_Stroke_1_Rest,\n 2: generatedLightColors.Neutral_Stroke_2_Rest,\n disabled: generatedLightColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n\n/**\n * Dark Mode Semantic Colors from generated tokens\n */\nexport const darkModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedDarkColors.Neutral_Background_1_Rest,\n 2: generatedDarkColors.Neutral_Background_2_Rest,\n 3: generatedDarkColors.Neutral_Background_3_Rest,\n 4: generatedDarkColors.Neutral_Background_4_Rest,\n 5: generatedDarkColors.Neutral_Background_5_Rest,\n 6: generatedDarkColors.Neutral_Background_6_Rest,\n inverted: generatedDarkColors.Neutral_Background_Inverted_Rest,\n disabled: generatedDarkColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedDarkColors.Neutral_Foreground_1_Rest,\n 2: generatedDarkColors.Neutral_Foreground_2_Rest,\n 3: generatedDarkColors.Neutral_Foreground_3_Rest,\n 4: generatedDarkColors.Neutral_Foreground_4_Rest,\n disabled: generatedDarkColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedDarkColors.Brand_Background_1_Rest,\n backgroundHover: generatedDarkColors.Brand_Background_1_Hover,\n backgroundPressed: generatedDarkColors.Brand_Background_1_Pressed,\n foreground: generatedDarkColors.Brand_Foreground_1_Rest,\n stroke: generatedDarkColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedDarkColors.Status_Success_Foreground_1_Rest,\n warning: generatedDarkColors.Status_Warning_Foreground_1_Rest,\n danger: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n error: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n info: '#4cc2ff',\n },\n\n // Borders\n border: {\n 1: generatedDarkColors.Neutral_Stroke_1_Rest,\n 2: generatedDarkColors.Neutral_Stroke_2_Rest,\n disabled: generatedDarkColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n","import { Theme, createDarkTheme, createLightTheme } from '@fluentui/react-components';\n\nimport { customBrand } from './brandColors';\nimport { darkModeColors, designTokens, lightModeColors } from './designTokens';\n\nexport const extendedTokens = {\n breakpointXs: designTokens.breakpoints.xs,\n breakpointSm: designTokens.breakpoints.sm,\n breakpointMd: designTokens.breakpoints.md,\n breakpointLg: designTokens.breakpoints.lg,\n breakpointXl: designTokens.breakpoints.xl,\n breakpointXxl: designTokens.breakpoints.xxl,\n};\n\n/**\n * Custom Light Theme using Figma Fluent UI Tokens\n */\nexport const customLightTheme: Theme = {\n ...createLightTheme(customBrand),\n\n // Brand colors from Figma\n colorBrandBackground: customBrand[80],\n colorBrandBackgroundHover: customBrand[70],\n colorBrandBackgroundPressed: customBrand[60],\n colorBrandBackgroundSelected: customBrand[80],\n colorBrandForeground1: customBrand[80],\n colorBrandForeground2: customBrand[70],\n colorBrandForegroundLink: customBrand[70],\n colorBrandForegroundLinkHover: customBrand[60],\n colorBrandForegroundLinkPressed: customBrand[50],\n colorBrandForegroundLinkSelected: customBrand[70],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: lightModeColors.background[1],\n colorNeutralBackground2: lightModeColors.background[2],\n colorNeutralBackground3: lightModeColors.background[3],\n colorNeutralBackground4: lightModeColors.background[4],\n colorNeutralBackground5: lightModeColors.background[5],\n colorNeutralBackground6: lightModeColors.background[6],\n colorNeutralBackgroundInverted: lightModeColors.background.inverted,\n colorNeutralBackgroundDisabled: lightModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: lightModeColors.foreground[1],\n colorNeutralForeground2: lightModeColors.foreground[2],\n colorNeutralForeground3: lightModeColors.foreground[3],\n colorNeutralForeground4: lightModeColors.foreground[4],\n colorNeutralForegroundDisabled: lightModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: lightModeColors.border[1],\n colorNeutralStroke2: lightModeColors.border[2],\n colorNeutralStrokeDisabled: lightModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: lightModeColors.status.success,\n colorPaletteYellowForeground1: lightModeColors.status.warning,\n colorPaletteRedForeground1: lightModeColors.status.danger,\n\n // Spacing from Figma Global tokens\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n // Border radius from Figma\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n // Shadows from design tokens\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n // Typography - Font families from Figma\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n // Font sizes from Figma Global tokens\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n // Font weights from Figma\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n // Line heights from Figma\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n // Stroke widths from Figma\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n/**\n * Custom Dark Theme using Figma Fluent UI Tokens\n */\nexport const customDarkTheme: Theme = {\n ...createDarkTheme(customBrand),\n\n // Brand colors from Figma (inverted for dark mode)\n colorBrandBackground: customBrand[100],\n colorBrandBackgroundHover: customBrand[110],\n colorBrandBackgroundPressed: customBrand[120],\n colorBrandBackgroundSelected: customBrand[100],\n colorBrandForeground1: customBrand[100],\n colorBrandForeground2: customBrand[110],\n colorBrandForegroundLink: customBrand[110],\n colorBrandForegroundLinkHover: customBrand[120],\n colorBrandForegroundLinkPressed: customBrand[130],\n colorBrandForegroundLinkSelected: customBrand[110],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: darkModeColors.background[1],\n colorNeutralBackground2: darkModeColors.background[2],\n colorNeutralBackground3: darkModeColors.background[3],\n colorNeutralBackground4: darkModeColors.background[4],\n colorNeutralBackground5: darkModeColors.background[5],\n colorNeutralBackground6: darkModeColors.background[6],\n colorNeutralBackgroundInverted: darkModeColors.background.inverted,\n colorNeutralBackgroundDisabled: darkModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: darkModeColors.foreground[1],\n colorNeutralForeground2: darkModeColors.foreground[2],\n colorNeutralForeground3: darkModeColors.foreground[3],\n colorNeutralForeground4: darkModeColors.foreground[4],\n colorNeutralForegroundDisabled: darkModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: darkModeColors.border[1],\n colorNeutralStroke2: darkModeColors.border[2],\n colorNeutralStrokeDisabled: darkModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: darkModeColors.status.success,\n colorPaletteYellowForeground1: darkModeColors.status.warning,\n colorPaletteRedForeground1: darkModeColors.status.danger,\n\n // Same spacing, border radius, typography as light theme\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n// Extended theme interface for custom properties\nexport interface ExtendedTheme extends Theme {\n // Custom color palette\n customColors: {\n light: typeof lightModeColors;\n dark: typeof darkModeColors;\n };\n\n // Design tokens\n designTokens: typeof designTokens;\n\n // Spacing helpers\n spacing: typeof designTokens.spacing;\n\n // Border radius helpers\n borderRadius: typeof designTokens.borderRadius;\n}\n\n// Create extended themes with additional properties\nexport const extendedLightTheme: ExtendedTheme = {\n ...customLightTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\nexport const extendedDarkTheme: ExtendedTheme = {\n ...customDarkTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\n// Theme variants for easy access\nexport const themeVariants = {\n light: customLightTheme,\n dark: customDarkTheme,\n extendedLight: extendedLightTheme,\n extendedDark: extendedDarkTheme,\n} as const;\n\n// Export current theme getter function\nexport const getCurrentTheme = (isDark: boolean, extended: boolean = false) => {\n if (extended) {\n return isDark ? extendedDarkTheme : extendedLightTheme;\n }\n return isDark ? customDarkTheme : customLightTheme;\n};\n","import React from 'react';\nimport { Button, Divider, makeStyles, tokens } from '@fluentui/react-components';\nimport { Icon } from '@iconify/react/dist/iconify.js';\nimport { Col, Row, Visible } from 'react-grid-system';\nimport { useForm, useWatch } from 'react-hook-form';\n\nimport { BackgroundTicketCard, BackgroundTicketCardVertical } from '../BackgroundTicketCard';\nimport { CardServiceMenu, ServiceId } from '../CardServiceMenu';\nimport { InputDynamic } from '../InputDynamic';\n\nimport {\n CardTicketSearchFormData,\n CardTicketSearchProps,\n} from './CardTicketSearch.types';\nimport { DEFAULT_LABELS } from './CardTicketSearch.constants';\nimport { extendedTokens } from '../../constants';\nimport { Language } from '../../types/globalTypes';\n\n\nconst useStyles = makeStyles({\n card: {\n position: 'relative',\n width: '100%',\n padding: 0,\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '0',\n },\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n scale: '1',\n },\n marginTop: '5rem',\n },\n svgBackground: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 0,\n },\n formField: {\n padding: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n borderRadius: tokens.borderRadiusXLarge,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n height: '100%',\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n },\n deviderButton: {\n display: 'flex',\n justifyContent: 'center',\n position: 'absolute',\n left: '18px',\n bottom: '-16px',\n width: '90%',\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n switchIcon: {\n display: 'inline-flex',\n transition: 'transform 0.3s ease',\n },\n switchIconRotate: {\n transform: 'rotate(180deg)',\n },\n searchButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n serviceMenuCard: {\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n margin: tokens.spacingVerticalM,\n },\n [`@media (min-width: ${extendedTokens.breakpointLg})`]: {\n margin: tokens.spacingVerticalL,\n },\n [`@media (min-width: ${extendedTokens.breakpointXl})`]: {\n margin: tokens.spacingVerticalXXXL,\n maxWidth: '70%',\n },\n },\n ticketSearchRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px !important',\n },\n },\n formContainerCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '20px !important',\n paddingRight: '20px !important',\n marginBottom: '1rem',\n marginTop: '8rem',\n },\n },\n serviceCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '15px !important',\n paddingRight: '15px !important',\n marginTop: '16px',\n },\n },\n formInnerRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n margin: '0 !important',\n },\n },\n formFieldRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n gap: '12px !important',\n },\n },\n});\n\nexport const CardTicketSearch: React.FC<CardTicketSearchProps> = ({\n language = 'id',\n from = '',\n to = '',\n startDate = '',\n endDate = '',\n roundTrip = false,\n serviceClass = '',\n typeOfService = '',\n passenger = '',\n toDisabled = false,\n endDateDisabled = false,\n serviceClassDisabled = false,\n typeOfServiceDisabled = false,\n switchDisabled = false,\n roundTripDisabled = false,\n submitDisabled = false,\n onFromClick,\n onToClick,\n onFromChange,\n onStartDateClick,\n onEndDateClick,\n onServiceClassClick,\n onTypeOfServiceClick,\n onPassengerClick,\n onSwitchClick,\n onRoundTripChange,\n onSubmit,\n activeServiceId = 'ferry',\n labels: customLabels,\n className,\n isRotating = false,\n showPassengerField = false,\n}) => {\n const styles = useStyles();\n \n // Merge default labels with custom labels\n const labels = React.useMemo(\n () => ({ ...DEFAULT_LABELS[language as Language], ...customLabels }),\n [language, customLabels]\n );\n const { control, setValue, getValues, handleSubmit } = useForm<CardTicketSearchFormData>({\n defaultValues: {\n from,\n to,\n startDate,\n roundTrip,\n endDate,\n serviceClass,\n typeOfService,\n passenger,\n },\n });\n\n const roundTripValue = useWatch({\n control,\n name: 'roundTrip',\n defaultValue: roundTrip,\n });\n\n // Update form values when props change\n React.useEffect(() => {\n setValue('from', from);\n setValue('to', to);\n setValue('startDate', startDate);\n setValue('endDate', endDate);\n setValue('roundTrip', roundTrip);\n setValue('serviceClass', serviceClass);\n setValue('typeOfService', typeOfService);\n setValue('passenger', passenger);\n }, [from, to, startDate, endDate, roundTrip, serviceClass, typeOfService, passenger, setValue]);\n\n // Handle round trip change\n React.useEffect(() => {\n if (onRoundTripChange) {\n onRoundTripChange(roundTripValue);\n }\n }, [roundTripValue, onRoundTripChange]);\n\n const handleFormSubmit = (data: CardTicketSearchFormData) => {\n if (onSubmit) {\n onSubmit(data);\n }\n };\n\n const handleFromChange = () => {\n setValue('to', '');\n if (onFromChange) {\n onFromChange();\n }\n };\n\n return (\n <div className={`${styles.card} ${className || ''}`}>\n <Visible xl xxl xxxl>\n <BackgroundTicketCard className={styles.svgBackground} />\n </Visible>\n <Visible xs sm md lg>\n <BackgroundTicketCardVertical className={styles.svgBackground} />\n </Visible>\n <Row\n style={{\n paddingTop: '1rem',\n paddingBottom: '2rem',\n }}\n className={styles.ticketSearchRow}\n >\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={3}\n xxl={3}\n xxxl={3}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '0px',\n }}\n >\n <CardServiceMenu\n className={styles.serviceMenuCard}\n activeServiceId={activeServiceId}\n language={language as Language}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={0.4} xxl={0.4} xxxl={0.4} />\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={8.6}\n xxl={8.6}\n xxxl={8.6}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n }}\n className={styles.formContainerCol}\n >\n <form onSubmit={handleSubmit(handleFormSubmit)}>\n <Row style={{ width: '100%' }} className={styles.formInnerRow}>\n <Col xs={12} sm={12} lg={12} xl={6} xxl={6} xxxl={6}>\n <Row style={{ gap: '16px' }} className={styles.formFieldRow}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"from\"\n label={labels.fromLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPort}\n onClick={onFromClick}\n onChange={handleFromChange}\n validationRules={{\n required: 'Pelabuhan asal wajib diisi',\n }}\n required\n />\n <div className={styles.deviderButton}>\n <Divider />{' '}\n <Button\n onClick={onSwitchClick}\n className={styles.buttonSwitch}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"large\"\n disabled={switchDisabled}\n icon={\n <div\n className={`${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ''}`}\n >\n <img\n src=\"/assets/images/icons/switch.svg\"\n alt=\"Switch\"\n width={26}\n height={26}\n />\n </div>\n }\n />\n </div>\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"to\"\n label={labels.toLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n disabled={toDisabled}\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDestinationPort}\n onClick={onToClick}\n validationRules={{\n required: 'Pelabuhan tujuan wajib diisi',\n }}\n required\n />\n </Col>\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%' }}>\n <Col xs={7} sm={7} md={7} lg={7} xl={7} xxl={7} xxxl={7}>\n <div style={{ position: 'relative', zIndex: 2 }}>\n <InputDynamic\n name=\"startDate\"\n label={labels.departureDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDepartureDate}\n onClick={onStartDateClick}\n required\n validationRules={{\n required: 'Tanggal Berangkat wajib diisi',\n }}\n />\n </div>\n </Col>\n <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{ display: 'flex', justifyContent: 'end' }}\n >\n <InputDynamic\n name=\"roundTrip\"\n label={labels.roundTripLabel}\n control={control}\n type=\"switch\"\n disabled={roundTripDisabled}\n size=\"medium\"\n />\n </Col>\n {roundTripValue && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"endDate\"\n label={labels.returnDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderReturnDate}\n onClick={onEndDateClick}\n disabled={endDateDisabled}\n style={{ borderColor: 'transparent' }}\n required={roundTripValue}\n validationRules={{\n required: 'Tanggal Pulang wajib diisi',\n }}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Visible xl xxl xxxl>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={1}\n xxl={1}\n xxxl={1}\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}\n >\n <Divider vertical style={{ height: '100%' }} />\n </Col>\n </Visible>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{\n paddingRight: '2rem',\n paddingLeft: '8px',\n }}\n className={styles.serviceCol}\n >\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"serviceClass\"\n label={labels.serviceClassLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeClass}\n onClick={onServiceClassClick}\n required\n disabled={serviceClassDisabled}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"typeOfService\"\n label={labels.typeOfServiceLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:apps-list-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeService}\n onClick={onTypeOfServiceClick}\n required\n disabled={typeOfServiceDisabled}\n />\n </Col>\n {showPassengerField && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n required\n name=\"passenger\"\n label={labels.passengerLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPassenger}\n onClick={onPassengerClick}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <Button\n className={styles.searchButton}\n appearance=\"primary\"\n size=\"large\"\n type=\"submit\"\n icon={<Icon icon=\"fluent:vehicle-ship-20-filled\" />}\n disabled={submitDisabled}\n >\n {labels.searchButton}\n </Button>\n </Col>\n </Row>\n </Col>\n </Row>\n </form>\n </Col>\n </Row>\n </div>\n );\n};\n\nexport default CardTicketSearch;\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n Input,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogTitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: '8px',\n },\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n searchInput: {\n width: '100%',\n marginBottom: '16px',\n },\n resultList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingRight: '1rem',\n },\n resultItem: {\n padding: '16px 20px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n backgroundColor: tokens.colorNeutralBackground1,\n position: 'relative',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n borderBottom: `1px solid ${tokens.colorBrandBackground}`,\n },\n },\n resultItemSelected: {\n backgroundColor: tokens.colorNeutralBackground1,\n borderLeft: `4px solid ${tokens.colorBrandBackground}`,\n paddingLeft: '16px',\n },\n harborName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground1,\n marginBottom: '2px',\n },\n harborLocation: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n },\n buttonContainer: {\n display: 'flex',\n gap: '1rem',\n marginBottom: '1rem',\n flexWrap: 'wrap',\n },\n circularButton: {\n borderRadius: tokens.borderRadiusCircular,\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n dangerText: {\n color: tokens.colorStatusDangerForeground1,\n },\n historyItem: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n iconMargin: {\n marginRight: '0.5rem',\n },\n cursorPointer: {\n cursor: 'pointer',\n },\n sectionTitle: {\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n harborList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginBottom: '1rem',\n },\n harborItem: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n emptyState: {\n textAlign: 'center',\n padding: '32px',\n color: tokens.colorNeutralForeground3,\n },\n});\n\n/**\n * Harbor item interface\n */\nexport interface HarborItem {\n /**\n * Unique identifier for the harbor\n */\n id: number;\n \n /**\n * Display name of the harbor\n */\n name: string;\n}\n\n/**\n * Props for ModalSearchHarbor component\n */\nexport interface ModalSearchHarborProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n * @default \"Pilih Pelabuhan\"\n */\n title?: string;\n \n /**\n * Type of modal - origin or destination\n * @default \"origin\"\n */\n modalType?: 'origin' | 'destination';\n \n /**\n * List of harbors to display\n */\n harbors: HarborItem[];\n \n /**\n * List of favorite harbors\n */\n favoriteHarbors: HarborItem[];\n \n /**\n * List of last searched harbors\n */\n lastSearchedHarbors: HarborItem[];\n \n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n \n /**\n * Current search query value\n */\n searchQuery: string;\n \n /**\n * Callback when search query changes\n */\n onSearchChange: (query: string) => void;\n \n /**\n * Callback when a harbor is selected\n */\n onSelectHarbor: (harbor: HarborItem) => void;\n \n /**\n * Callback when favorite is toggled\n */\n onToggleFavorite: (harbor: HarborItem) => void;\n \n /**\n * Callback when adding to last searched\n */\n onAddLastSearched: (harbor: HarborItem) => void;\n \n /**\n * Callback when removing from last searched\n */\n onRemoveLastSearched: (harborId: number) => void;\n \n /**\n * Callback when clearing all last searched\n */\n onClearLastSearched: () => void;\n}\n\n/**\n * ModalSearchHarbor - A reusable modal component for searching and selecting harbors\n * \n * This component provides a searchable modal interface for selecting harbors with features like:\n * - Search functionality\n * - Favorite harbors quick access\n * - Last searched history\n * - Loading states\n * \n * @example\n * ```tsx\n * <ModalSearchHarbor\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Pelabuhan Asal\"\n * harbors={harborList}\n * favoriteHarbors={favorites}\n * lastSearchedHarbors={history}\n * searchQuery={search}\n * onSearchChange={setSearch}\n * onSelectHarbor={handleSelect}\n * onToggleFavorite={handleToggleFavorite}\n * onAddLastSearched={handleAddHistory}\n * onRemoveLastSearched={handleRemoveHistory}\n * onClearLastSearched={handleClearHistory}\n * />\n * ```\n */\nexport const ModalSearchHarbor: React.FC<ModalSearchHarborProps> = ({\n open,\n onClose,\n title = 'Pilih Pelabuhan',\n modalType = 'origin',\n harbors,\n favoriteHarbors,\n lastSearchedHarbors,\n isLoading = false,\n searchQuery,\n onSearchChange,\n onSelectHarbor,\n onToggleFavorite,\n onAddLastSearched,\n onRemoveLastSearched,\n onClearLastSearched,\n}) => {\n const styles = useStyles();\n\n const handleSelect = (harbor: HarborItem) => {\n onAddLastSearched(harbor);\n onSelectHarbor(harbor);\n onSearchChange('');\n };\n\n const handleClose = () => {\n onClose();\n onSearchChange('');\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n <div>\n <Input\n className={styles.searchInput}\n value={searchQuery}\n onChange={e => onSearchChange(e.target.value)}\n placeholder=\"Cari Pelabuhan...\"\n contentBefore={\n <Icon icon=\"fluent:search-24-regular\" color={tokens.colorNeutralForeground3} />\n }\n size=\"large\"\n />\n </div>\n \n {/* Favorite Harbors */}\n {favoriteHarbors.length > 0 && (\n <div className={styles.buttonContainer}>\n {favoriteHarbors.map(harbor => (\n <Button\n onClick={() => handleSelect(harbor)}\n key={harbor.id}\n size=\"medium\"\n appearance=\"outline\"\n iconPosition=\"before\"\n className={styles.circularButton}\n icon={<Icon icon=\"fluent:ribbon-20-filled\" />}\n >\n <Body1>{harbor.name}</Body1>\n </Button>\n ))}\n </div>\n )}\n \n <Divider />\n\n <div className={styles.resultList}>\n {/* Last Searched Section */}\n {lastSearchedHarbors.length > 0 && (\n <>\n <div className={styles.headerRow}>\n <Body1Strong>Terakhir dicari</Body1Strong>\n <Caption1\n className={`${styles.dangerText} ${styles.cursorPointer}`}\n onClick={onClearLastSearched}\n >\n Hapus Semua\n </Caption1>\n </div>\n\n <div>\n {lastSearchedHarbors.map(harbor => (\n <div className={styles.historyItem} key={harbor.id}>\n <div\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n onClick={() => onRemoveLastSearched(harbor.id)}\n icon=\"fluent:dismiss-24-regular\"\n color={tokens.colorStatusDangerForeground1}\n className={styles.cursorPointer}\n />\n </div>\n ))}\n </div>\n <Divider />\n </>\n )}\n\n {/* All Harbors Section */}\n <Body1Strong className={styles.sectionTitle}>Semua Pelabuhan</Body1Strong>\n <div className={styles.harborList}>\n {isLoading ? (\n <div className={styles.emptyState}>Memuat data...</div>\n ) : harbors.length > 0 ? (\n harbors.map((harbor, index) => (\n <div key={index} className={styles.harborItem}>\n <div\n className={styles.cursorPointer}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n icon={\n favoriteHarbors.find(fav => fav.id === harbor.id)\n ? 'fluent:star-24-filled'\n : 'fluent:star-24-regular'\n }\n color={tokens.colorBrandBackground}\n className={styles.cursorPointer}\n onClick={() => onToggleFavorite(harbor)}\n />\n </div>\n ))\n ) : (\n <div className={styles.emptyState}>Pelabuhan tidak ditemukan</div>\n )}\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSearchHarbor;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Calendar, type CalendarDayGridStyles } from '@fluentui/react-calendar-compat';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport moment from 'moment';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n paddingBottom: '20px',\n width: '100%',\n overflow: 'hidden',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n tabContainer: {\n display: 'flex',\n gap: '0px',\n marginBottom: '16px',\n borderBottom: `2px solid ${tokens.colorNeutralStroke2}`,\n },\n tab: {\n flex: 1,\n padding: '12px 16px',\n cursor: 'pointer',\n textAlign: 'center',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground3,\n borderBottom: '2px solid transparent',\n marginBottom: '-2px',\n transition: 'all 0.2s ease',\n backgroundColor: 'transparent',\n border: 'none',\n ':hover': {\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n tabActive: {\n color: tokens.colorBrandForeground1,\n fontWeight: tokens.fontWeightSemibold,\n borderBottom: `2px solid ${tokens.colorBrandBackground}`,\n },\n calendarContainer: {\n display: 'flex',\n gap: '20px',\n justifyContent: 'center',\n alignItems: 'flex-start',\n width: '100%',\n },\n rangeCalendar: {\n '& .ms-CalendarDay': {\n position: 'relative',\n },\n '& button[class*=\"ms-CalendarDay\"]': {\n borderRadius: '999px',\n transition: 'all 0.15s ease',\n border: 'none',\n '&:hover': {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n },\n },\n },\n rangeStart: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderTopLeftRadius: '999px !important',\n borderBottomLeftRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeEnd: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderTopRightRadius: '999px !important',\n borderBottomRightRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeMiddle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderRadius: '0px !important',\n },\n rangePreview: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n borderRadius: '0px !important',\n boxShadow: `inset 0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n rangeSingle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n});\n\n/**\n * Tab type for trip selection\n */\nexport type TabType = 'one-way' | 'round-trip';\n\n/**\n * Props for ModalSelectDate component\n */\nexport interface ModalSelectDateProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tanggal\"\n */\n title?: string;\n\n /**\n * Initial selected departure date\n */\n selectedDepartureDate?: Date;\n\n /**\n * Initial selected return date (for round trip)\n */\n selectedReturnDate?: Date;\n\n /**\n * Initial tab selection\n * @default \"one-way\"\n */\n initialTab?: TabType;\n\n /**\n * Whether to show tabs for one-way/round-trip selection\n * @default true\n */\n showTabs?: boolean;\n\n /**\n * Callback when departure date is selected\n */\n onSelectDepartureDate: (date: Date) => void;\n\n /**\n * Callback when return date is selected (for round trip)\n */\n onSelectReturnDate?: (date: Date) => void;\n\n /**\n * Callback when tab changes\n */\n onTabChange?: (tab: TabType) => void;\n\n /**\n * Minimum selectable date\n * @default new Date()\n */\n minDate?: Date;\n\n /**\n * Maximum selectable date\n */\n maxDate?: Date;\n\n /**\n * Date format for internal handling\n * @default \"DD MMMM YYYY\"\n */\n dateFormat?: string;\n}\n\n/**\n * ModalSelectDate - A reusable modal component for selecting dates\n * \n * This component provides a date selection modal with features like:\n * - Single date selection (one-way)\n * - Date range selection (round-trip)\n * - Visual range preview on hover\n * - Customizable date constraints\n * \n * @example\n * ```tsx\n * <ModalSelectDate\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tanggal Keberangkatan\"\n * selectedDepartureDate={departureDate}\n * selectedReturnDate={returnDate}\n * onSelectDepartureDate={setDepartureDate}\n * onSelectReturnDate={setReturnDate}\n * onTabChange={handleTabChange}\n * />\n * ```\n */\nexport const ModalSelectDate: React.FC<ModalSelectDateProps> = ({\n open,\n onClose,\n title = 'Pilih Tanggal',\n selectedDepartureDate,\n selectedReturnDate,\n initialTab = 'one-way',\n showTabs = true,\n onSelectDepartureDate,\n onSelectReturnDate,\n onTabChange,\n minDate = new Date(),\n maxDate,\n dateFormat = 'DD MMMM YYYY',\n}) => {\n const styles = useStyles();\n\n const [selectedDate, setSelectedDate] = useState<Date | undefined>(selectedDepartureDate);\n const [selectedEndDate, setSelectedEndDate] = useState<Date | undefined>(selectedReturnDate);\n const [hoveredDate, setHoveredDate] = useState<Date | undefined>();\n const [activeTab, setActiveTab] = useState<TabType>(initialTab);\n\n const previewEndDate = useMemo(() => {\n if (selectedEndDate) return selectedEndDate;\n if (selectedDate && hoveredDate && hoveredDate > selectedDate) {\n return hoveredDate;\n }\n return undefined;\n }, [hoveredDate, selectedDate, selectedEndDate]);\n\n const isSameCalendarDay = (first?: Date, second?: Date) => {\n if (!first || !second) return false;\n return moment(first).isSame(second, 'day');\n };\n\n // Reset state when modal opens\n useEffect(() => {\n if (open) {\n setSelectedDate(selectedDepartureDate);\n setSelectedEndDate(selectedReturnDate);\n setActiveTab(initialTab);\n setHoveredDate(undefined);\n }\n }, [open, selectedDepartureDate, selectedReturnDate, initialTab]);\n\n const handleTabChange = (tab: TabType) => {\n setActiveTab(tab);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n\n if (onTabChange) {\n onTabChange(tab);\n }\n };\n\n const handleClose = () => {\n setHoveredDate(undefined);\n onClose();\n };\n\n const handleDateSelect = (date: Date | null | undefined) => {\n if (!date) return;\n\n const currentStart = selectedDate;\n\n if (activeTab === 'round-trip') {\n // Range selection mode\n if (!currentStart || selectedEndDate) {\n // First click or restart selection\n setSelectedDate(date);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n // Clear return date when starting new selection\n }\n } else {\n // Second click - set end date\n if (date < currentStart) {\n // If end date is before start date, swap them\n setSelectedEndDate(currentStart);\n setSelectedDate(date);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(currentStart);\n }\n } else {\n setSelectedEndDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(date);\n }\n }\n setHoveredDate(undefined);\n handleClose();\n }\n } else {\n // Single date selection mode\n setSelectedDate(date);\n onSelectDepartureDate(date);\n handleClose();\n }\n };\n\n const handleCustomDayCellRef = useCallback(\n (element: HTMLElement | null, date: Date, _classNames?: CalendarDayGridStyles) => {\n if (!element) return;\n\n const removeTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.remove(token));\n };\n const addTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.add(token));\n };\n const removableClasses = [\n styles.rangeStart,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n ];\n removableClasses.forEach(removeTokens);\n\n if (activeTab !== 'round-trip' || !selectedDate) {\n element.onmouseenter = null;\n element.onmouseleave = null;\n return;\n }\n\n const endDateForVisual = previewEndDate;\n const startTime = selectedDate.getTime();\n const endTime = endDateForVisual?.getTime();\n const currentTime = date.getTime();\n const isSameStartEnd = isSameCalendarDay(endDateForVisual, selectedDate);\n const isStartDay = isSameCalendarDay(date, selectedDate);\n const isEndDay = isSameCalendarDay(date, endDateForVisual);\n\n if (isStartDay && (!endDateForVisual || isSameStartEnd)) {\n addTokens(styles.rangeSingle);\n } else {\n if (isStartDay) {\n addTokens(styles.rangeStart);\n }\n if (isEndDay && !isSameStartEnd) {\n addTokens(styles.rangeEnd);\n }\n }\n\n if (endTime && currentTime > startTime && currentTime < endTime) {\n addTokens(selectedEndDate ? styles.rangeMiddle : styles.rangePreview);\n }\n\n if (!selectedEndDate) {\n element.onmouseenter = () => {\n if (date < selectedDate) return;\n setHoveredDate(prev => {\n if (isSameCalendarDay(prev, date)) {\n return prev;\n }\n return date;\n });\n };\n element.onmouseleave = () => {\n setHoveredDate(undefined);\n };\n } else {\n element.onmouseenter = null;\n element.onmouseleave = null;\n }\n },\n [\n activeTab,\n previewEndDate,\n selectedDate,\n selectedEndDate,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n styles.rangeStart,\n ],\n );\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {/* Tabs */}\n {showTabs && (\n <div className={styles.tabContainer}>\n <button\n disabled={activeTab === 'round-trip'}\n className={`${styles.tab} ${activeTab === 'one-way' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('one-way')}\n >\n Sekali Jalan\n </button>\n <button\n className={`${styles.tab} ${activeTab === 'round-trip' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('round-trip')}\n disabled={activeTab === 'one-way'}\n >\n Pulang Pergi\n </button>\n </div>\n )}\n\n {/* Calendar */}\n <div className={styles.calendarContainer}>\n <div style={{ width: '100%' }}>\n <div className={activeTab === 'round-trip' ? styles.rangeCalendar : ''}>\n <Calendar\n minDate={minDate}\n maxDate={maxDate}\n value={selectedDate}\n onSelectDate={handleDateSelect}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n allFocusable\n calendarDayProps={{\n customDayCellRef: handleCustomDayCellRef,\n }}\n />\n </div>\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSelectDate;\n","import React, { useEffect, useState } from 'react';\nimport {\n Body1,\n Button,\n Caption1,\n Checkbox,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n serviceList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingLeft: '20px',\n },\n serviceItem: {\n padding: '16px 0px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n cursor: 'pointer',\n transition: 'background-color 0.2s ease',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n serviceContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n },\n serviceName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground1,\n },\n serviceType: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n },\n serviceDescription: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n lineHeight: '1.4',\n },\n footer: {\n padding: '16px 20px',\n borderTop: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n saveButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n});\n\n/**\n * Service item structure\n */\nexport interface ServiceItem {\n /**\n * Unique identifier for the service\n */\n id: number;\n \n /**\n * Display name of the service type\n */\n serviceTypeName: string;\n \n /**\n * Code identifier for the service type\n */\n serviceTypeCode: string;\n \n /**\n * Detailed description of the service\n */\n serviceDescription: string;\n}\n\n/**\n * Props for ModalService component\n */\nexport interface ModalServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Kelas Layanan\"\n */\n title?: string;\n\n /**\n * Array of available services\n */\n services: ServiceItem[];\n\n /**\n * Array of currently selected service IDs\n */\n selectedServiceIds: number[];\n\n /**\n * Callback when save button is clicked\n * @param services - Array of selected service items\n */\n onSave: (services: ServiceItem[]) => void;\n\n /**\n * Loading state for services data\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Error state for services data\n * @default false\n */\n isError?: boolean;\n}\n\n/**\n * ModalService - A reusable modal component for selecting service classes\n * \n * This component provides a service selection modal with features like:\n * - Multiple service selection with checkboxes\n * - Select all/deselect all functionality\n * - Service details display (name, code, description)\n * - Save validation (requires at least one selection)\n * \n * @example\n * ```tsx\n * <ModalService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Kelas Layanan\"\n * services={servicesList}\n * selectedServiceIds={selectedIds}\n * onSave={handleSave}\n * isLoading={isLoading}\n * isError={isError}\n * />\n * ```\n */\nexport const ModalService: React.FC<ModalServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Kelas Layanan',\n services,\n selectedServiceIds,\n onSave,\n isLoading = false,\n isError = false,\n}) => {\n const styles = useStyles();\n const [selectedServices, setSelectedServices] = useState<number[]>(selectedServiceIds);\n\n // Reset selectedServices when modal opens or selectedServiceIds prop changes\n useEffect(() => {\n if (open) {\n // If selectedServiceIds is provided and not empty, use it\n if (selectedServiceIds && selectedServiceIds.length > 0) {\n // Filter to only include IDs that exist in services list\n const validIds = services\n .filter(s => selectedServiceIds.includes(s.id))\n .map(s => s.id);\n setSelectedServices(validIds);\n } else {\n // If no selection, select all by default\n setSelectedServices(services.map(s => s.id));\n }\n }\n }, [open, services, selectedServiceIds]);\n\n const handleClose = () => {\n onClose();\n };\n\n const handleToggleService = (serviceId: number) => {\n setSelectedServices(prev => {\n if (prev.includes(serviceId)) {\n return prev.filter(id => id !== serviceId);\n } else {\n return [...prev, serviceId];\n }\n });\n };\n\n const handleToggleAll = () => {\n if (selectedServices.length === services.length) {\n setSelectedServices([]);\n } else {\n setSelectedServices(services.map(s => s.id));\n }\n };\n\n const handleSave = () => {\n const selectedServiceItems = services.filter(s => selectedServices.includes(s.id));\n onSave(selectedServiceItems);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : isError ? (\n <Body1>Error loading services</Body1>\n ) : (\n <>\n <div className={styles.serviceList}>\n <div className={styles.headerRow}>\n <Body1>Pilih Semua</Body1>\n <Checkbox\n checked={selectedServices.length === services.length}\n onChange={handleToggleAll}\n />\n </div>\n {services.map(service => (\n <div\n key={service.id}\n className={styles.serviceItem}\n onClick={() => handleToggleService(service.id)}\n >\n <div className={styles.serviceContent}>\n <Body1 className={styles.serviceName}>{service.serviceTypeName}</Body1>\n <Caption1 className={styles.serviceType}>{service.serviceTypeCode}</Caption1>\n <Caption1 className={styles.serviceDescription}>\n {service.serviceDescription}\n </Caption1>\n </div>\n <Checkbox\n checked={selectedServices.includes(service.id)}\n onChange={() => handleToggleService(service.id)}\n />\n </div>\n ))}\n </div>\n <div className={styles.footer}>\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.saveButton}\n onClick={handleSave}\n disabled={selectedServices.length === 0}\n >\n Simpan\n </Button>\n </div>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalService;\n","/**\n * Service class codes for passenger services\n */\nexport type PassengerServiceCode = 'ECONOMY' | 'BUSINESS' | 'EXECUTIVE';\n\n/**\n * Service class data structure\n */\nexport interface ServiceClass {\n id: number;\n name: string;\n key: string;\n serviceName: PassengerServiceCode;\n}\n\n/**\n * Default service classes available\n */\nexport const DEFAULT_SERVICE_CLASSES: ServiceClass[] = [\n { id: 1, name: 'Ekonomi', key: 'ekonomi', serviceName: 'ECONOMY' },\n { id: 2, name: 'Bisnis', key: 'bisnis', serviceName: 'BUSINESS' },\n { id: 3, name: 'Eksekutif', key: 'eksekutif', serviceName: 'EXECUTIVE' },\n];\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n MessageBar,\n MessageBarBody,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_SERVICE_CLASSES, type PassengerServiceCode, type ServiceClass } from './constants';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n },\n accordionItem: {\n borderRadius: tokens.borderRadiusXLarge,\n marginBottom: '1rem',\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n passengerCount: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n },\n counterButton: {\n minWidth: '24px',\n height: '24px',\n padding: '0',\n borderRadius: tokens.borderRadiusCircular,\n color: tokens.colorBrandBackground,\n border: `1px solid ${tokens.colorBrandBackground}`,\n '&:hover': {\n border: `1px solid ${tokens.colorBrandBackgroundHover}`,\n color: tokens.colorBrandBackgroundHover,\n },\n '&:disabled': {\n border: `1px solid ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n countText: {\n minWidth: '24px',\n textAlign: 'center',\n },\n nestedSection: {\n borderTop: `2px solid ${tokens.colorBrandBackground}`,\n display: 'flex',\n flexDirection: 'column',\n padding: '0.6rem',\n },\n nestedRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '4px',\n borderRadius: tokens.borderRadiusSmall,\n backgroundColor: tokens.colorNeutralBackground1,\n },\n submitButton: {\n marginTop: '16px',\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n accordionPanel: {\n margin: 0,\n },\n});\n\n/**\n * Passenger object structure\n */\nexport interface Passenger {\n [key: string]: any;\n}\n\n/**\n * Service with passenger count\n */\nexport interface PassengerService {\n serviceId: number;\n serviceName: PassengerServiceCode;\n count: number;\n passengers: Passenger[];\n}\n\n/**\n * Passenger type from API\n */\nexport interface PassengerType {\n id: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n}\n\n/**\n * Selected passenger item structure\n */\nexport interface SelectedPassengerItem {\n passengerTypeId: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n services: PassengerService[];\n}\n\n/**\n * Props for ModalTotalPassengers component\n */\nexport interface ModalTotalPassengersProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Jumlah Penumpang\"\n */\n title?: string;\n\n /**\n * Array of passenger types from API\n */\n passengerTypes: PassengerType[];\n\n /**\n * Array of service classes\n * @default DEFAULT_SERVICE_CLASSES\n */\n serviceClasses?: ServiceClass[];\n\n /**\n * Currently selected passengers\n */\n selectedPassengers: SelectedPassengerItem[];\n\n /**\n * Callback when save button is clicked\n */\n onSave: (passengers: SelectedPassengerItem[]) => void;\n\n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Maximum number of passengers allowed\n * @default 10\n */\n maxPassengers?: number;\n\n /**\n * Message to display in the info bar\n * @default \"Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.\"\n */\n infoMessage?: string;\n}\n\n/**\n * ModalTotalPassengers - A reusable modal component for selecting passenger counts\n * \n * This component provides a passenger selection modal with features like:\n * - Accordion for each passenger type\n * - Counter for each service class (Economy, Business, Executive)\n * - Automatic default selection (1 adult economy)\n * - Validation and save functionality\n * \n * @example\n * ```tsx\n * <ModalTotalPassengers\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Jumlah Penumpang\"\n * passengerTypes={passengerTypes}\n * selectedPassengers={selectedPassengers}\n * onSave={handleSave}\n * />\n * ```\n */\nexport const ModalTotalPassengers: React.FC<ModalTotalPassengersProps> = ({\n open,\n onClose,\n title = 'Pilih Jumlah Penumpang',\n passengerTypes,\n serviceClasses = DEFAULT_SERVICE_CLASSES,\n selectedPassengers,\n onSave,\n isLoading = false,\n maxPassengers = 10,\n infoMessage,\n}) => {\n const styles = useStyles();\n const [passengers, setPassengers] = useState<SelectedPassengerItem[]>([]);\n const [openItems, setOpenItems] = useState<string[]>([]);\n\n const defaultInfoMessage = `Anda dapat menambahkan hingga ${maxPassengers} penumpang pada golongan kendaraan ini.`;\n\n // Initialize passengers state when modal opens or data changes\n useEffect(() => {\n if (passengerTypes.length === 0) return;\n\n // Create default structure for all passenger types\n const defaultPassengers: SelectedPassengerItem[] = passengerTypes.map(passengerType => ({\n passengerTypeId: passengerType.id,\n passengerTypeCode: passengerType.passengerTypeCode,\n passengerTypeName: passengerType.passengerTypeName,\n services: serviceClasses.map(sc => ({\n serviceId: sc.id,\n serviceName: sc.serviceName,\n count: 0,\n passengers: [],\n })),\n }));\n\n // If selectedPassengers has data, merge with default structure\n if (selectedPassengers && selectedPassengers.length > 0) {\n const mergedPassengers = defaultPassengers.map(defaultP => {\n const selectedP = selectedPassengers.find(\n p => p.passengerTypeCode === defaultP.passengerTypeCode,\n );\n if (selectedP) {\n // Merge services - update counts and passengers from selected\n const mergedServices = defaultP.services.map(defaultS => {\n const selectedS = selectedP.services.find(s => s.serviceName === defaultS.serviceName);\n return selectedS\n ? { ...defaultS, count: selectedS.count, passengers: selectedS.passengers || [] }\n : defaultS;\n });\n return { ...defaultP, services: mergedServices };\n }\n return defaultP;\n });\n setPassengers(mergedPassengers);\n\n // Set accordion open items for passenger types that have data\n const itemsWithData = selectedPassengers\n .filter(p => p.services.some(s => s.count > 0))\n .map(p => {\n const passengerType = passengerTypes.find(\n pt => pt.passengerTypeCode === p.passengerTypeCode,\n );\n return passengerType ? String(passengerType.id) : '';\n })\n .filter(id => id !== '');\n setOpenItems(itemsWithData);\n } else {\n setPassengers(defaultPassengers);\n setOpenItems([]);\n }\n }, [open, passengerTypes, serviceClasses, selectedPassengers]);\n\n // Get service count for a specific passenger type and service\n const getServiceCount = (\n passengerTypeCode: string,\n serviceName: PassengerServiceCode,\n ): number => {\n const passenger = passengers.find(p => p.passengerTypeCode === passengerTypeCode);\n if (!passenger) return 0;\n const service = passenger.services.find(s => s.serviceName === serviceName);\n return service?.count || 0;\n };\n\n // Get total description for a passenger type\n const getTotalForType = (passengerTypeCode: string) => {\n const passenger = passengers.find(p => p.passengerTypeCode === passengerTypeCode);\n if (!passenger) return '0';\n\n const parts: string[] = [];\n passenger.services.forEach(service => {\n if (service.count > 0) {\n const serviceClass = serviceClasses.find(sc => sc.serviceName === service.serviceName);\n const serviceName = serviceClass?.name || service.serviceName;\n parts.push(`${service.count} ${serviceName}`);\n }\n });\n\n return parts.length > 0 ? parts.join(', ') : '0';\n };\n\n const handleIncrement = (passengerTypeCode: string, serviceName: PassengerServiceCode) => {\n setPassengers(prev =>\n prev.map(passenger => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map(service => {\n if (service.serviceName === serviceName) {\n const newCount = service.count + 1;\n const newPassengers = [...(service.passengers || [])];\n\n // Add new empty passenger objects until we reach newCount\n while (newPassengers.length < newCount) {\n newPassengers.push({} as Passenger);\n }\n\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleDecrement = (passengerTypeCode: string, serviceName: PassengerServiceCode) => {\n setPassengers(prev =>\n prev.map(passenger => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map(service => {\n if (service.serviceName === serviceName && service.count > 0) {\n const newCount = service.count - 1;\n const newPassengers = (service.passengers || []).slice(0, newCount);\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleSave = () => {\n // Filter out passengers with all services at count 0\n const filteredPassengers = passengers\n .map(passenger => ({\n ...passenger,\n services: passenger.services.filter(service => service.count > 0),\n }))\n .filter(passenger => passenger.services.length > 0);\n\n onSave(filteredPassengers);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-12-regular\" />}\n onClick={onClose}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <MessageBar shape=\"rounded\">\n <MessageBarBody>\n {infoMessage || defaultInfoMessage}\n </MessageBarBody>\n </MessageBar>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : (\n <>\n <Accordion\n collapsible\n multiple\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems as string[])}\n className={styles.passengerSection}\n >\n {passengerTypes.map(passengerType => {\n return (\n <AccordionItem\n key={passengerType.id}\n value={String(passengerType.id)}\n className={styles.accordionItem}\n >\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n {passengerType.passengerTypeName} (\n {getTotalForType(passengerType.passengerTypeCode)})\n </AccordionHeader>\n <AccordionPanel className={styles.accordionPanel}>\n <div className={styles.nestedSection}>\n {serviceClasses.map(service => (\n <div key={service.key} className={styles.nestedRow}>\n <Body1>{service.name}</Body1>\n <div className={styles.passengerCount}>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:subtract-12-regular\" />}\n onClick={e => {\n e.stopPropagation();\n handleDecrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n disabled={\n getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n ) === 0\n }\n />\n <Body1 className={styles.countText}>\n {getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n )}\n </Body1>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:add-12-regular\" />}\n onClick={e => {\n e.stopPropagation();\n handleIncrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n />\n </div>\n </div>\n ))}\n </div>\n </AccordionPanel>\n </AccordionItem>\n );\n })}\n </Accordion>\n\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.submitButton}\n onClick={handleSave}\n >\n Simpan\n </Button>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTotalPassengers;\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n mergeClasses,\n Radio,\n RadioGroup,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { ReactNode, useEffect, useState } from 'react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionItem: {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n width: '100%',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n },\n accordionTitleAndInfo: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n marginLeft: tokens.spacingHorizontalM,\n flex: 1,\n },\n accordionBody: {\n marginLeft: '100px',\n },\n footer: {\n marginTop: tokens.spacingVerticalL,\n display: 'flex',\n gap: tokens.spacingHorizontalM,\n justifyContent: 'flex-end',\n },\n});\n\n/**\n * Service type item structure\n */\nexport interface TypeOfService {\n id: number;\n image: string;\n title: string;\n info: string;\n price: number;\n type: string;\n parentId?: number;\n parentTitle?: string;\n child: TypeOfService[];\n typeOfPassanger: string;\n}\n\n/**\n * Props for ModalTypeOfService component\n */\nexport interface ModalTypeOfServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tipe Layanan\"\n */\n title?: string;\n\n /**\n * Array of service types\n */\n serviceTypes: TypeOfService[];\n\n /**\n * Currently selected service\n */\n selectedService?: TypeOfService | null;\n\n /**\n * Callback when save button is clicked\n */\n onSave: (service: TypeOfService) => void;\n\n /**\n * Optional custom image renderer\n * Useful for Next.js Image component or other custom renderers\n */\n renderImage?: (props: { src: string; alt: string; width: number; height: number }) => ReactNode;\n}\n\n/**\n * ModalTypeOfService - A reusable modal component for selecting service types\n * \n * This component provides a service type selection modal with features like:\n * - Accordion for categories with children (vehicles, goods, etc.)\n * - Radio buttons for individual selections\n * - Image display for each service type\n * - Customizable image renderer for framework-specific components\n * \n * @example\n * ```tsx\n * <ModalTypeOfService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tipe Layanan\"\n * serviceTypes={serviceTypes}\n * selectedService={selectedService}\n * onSave={handleSave}\n * renderImage={(props) => <Image {...props} />}\n * />\n * ```\n */\nexport const ModalTypeOfService: React.FC<ModalTypeOfServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Tipe Layanan',\n serviceTypes,\n selectedService,\n onSave,\n renderImage,\n}) => {\n const styles = useStyles();\n const [selectedServiceTitle, setSelectedServiceTitle] = useState<string>(\n selectedService?.title || '',\n );\n const [openItems, setOpenItems] = useState<number | undefined>(() => {\n // Initialize openItems based on selected service\n if (!selectedService) return undefined;\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild) {\n return item.id;\n }\n }\n }\n return undefined;\n });\n\n // Default image renderer using standard img tag\n const defaultRenderImage = ({ src, alt, width, height }: { src: string; alt: string; width: number; height: number }) => (\n <img src={src} alt={alt} width={width} height={height} style={{ objectFit: 'contain' }} />\n );\n\n const imageRenderer = renderImage || defaultRenderImage;\n\n // Reset local state when modal opens or selected service changes\n useEffect(() => {\n const newTitle = selectedService?.title || '';\n\n // Only update if the value actually changed\n if (newTitle !== selectedServiceTitle) {\n setSelectedServiceTitle(newTitle);\n }\n\n // Find and open the parent accordion if selected service is a child\n if (selectedService) {\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild && openItems !== item.id) {\n setOpenItems(item.id);\n break;\n }\n }\n }\n } else if (openItems !== undefined) {\n setOpenItems(undefined);\n }\n }, [open, selectedService?.title]);\n\n const handleConfirm = () => {\n if (selectedServiceTitle) {\n // Find the selected service item from serviceTypes\n let selectedItem: TypeOfService | null = null;\n\n for (const item of serviceTypes) {\n if (item.title === selectedServiceTitle) {\n // Top level item selected\n selectedItem = {\n id: item.id,\n image: item.image,\n title: item.title,\n info: item.info,\n price: item.price,\n parentTitle: '',\n parentId: 0,\n type: item.type,\n typeOfPassanger: item.typeOfPassanger,\n child: [],\n };\n break;\n }\n if (item.child && item.child.length > 0) {\n const childItem = item.child.find(child => child.title === selectedServiceTitle);\n if (childItem) {\n selectedItem = {\n id: childItem.id,\n image: childItem.image,\n title: childItem.title,\n info: childItem.info,\n price: childItem.price,\n parentTitle: childItem.parentTitle,\n parentId: childItem.parentId,\n type: childItem.type,\n typeOfPassanger: childItem.typeOfPassanger,\n child: [],\n };\n break;\n }\n }\n }\n\n if (selectedItem) {\n onSave(selectedItem);\n }\n }\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={onClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <Accordion\n collapsible\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems[0] as number)}\n className={styles.passengerSection}\n >\n <RadioGroup\n value={selectedServiceTitle}\n onChange={(_, data) => setSelectedServiceTitle(data.value)}\n >\n {serviceTypes.map((item, index) => {\n if (item.type === 'accordion') {\n return (\n <AccordionItem key={index} value={item.id} className={styles.accordionItem}>\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n <div>\n {imageRenderer({ src: item.image, alt: 'vehicles', width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n </AccordionHeader>\n <AccordionPanel className={styles.accordionBody}>\n {item.child.length > 0 &&\n item.child.map((childItem, childIndex) => (\n <div\n key={childIndex}\n className={mergeClasses(\n styles.accordionHeader,\n styles.accordionItem,\n )}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div>\n {imageRenderer({\n src: childItem.image,\n alt: childItem.title,\n width: 48,\n height: 48,\n })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{childItem.title}</Body1>\n <Caption1>{childItem.info}</Caption1>\n </div>\n <Radio value={childItem.title} />\n </div>\n ))}\n </AccordionPanel>\n </AccordionItem>\n );\n } else if (item.type === 'radio') {\n return (\n <div\n key={index}\n className={mergeClasses(styles.accordionHeader, styles.accordionItem)}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div style={{ marginLeft: 2 }}>\n {imageRenderer({ src: item.image, alt: item.title, width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo} style={{ marginLeft: 18 }}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n <Radio value={item.title} />\n </div>\n );\n }\n return null;\n })}\n </RadioGroup>\n </Accordion>\n <div className={styles.footer}>\n <Button appearance=\"secondary\" shape=\"circular\" onClick={onClose}>\n Batal\n </Button>\n <Button\n appearance=\"primary\"\n shape=\"circular\"\n onClick={handleConfirm}\n disabled={!selectedServiceTitle}\n >\n Simpan\n </Button>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTypeOfService;\n","/**\n * Default paths for vehicle icon images\n * These images are bundled with the library in the assets directory\n */\nexport const DEFAULT_VEHICLE_ICONS = {\n pedestrian: '/assets/images/icons/pedestrian.webp',\n roadbike: '/assets/images/icons/roadbike.webp',\n motorbike1: '/assets/images/icons/motorbike-1.webp',\n motorbike2: '/assets/images/icons/motorbike-2.svg',\n smallCar: '/assets/images/icons/small-car.webp',\n smallBus: '/assets/images/icons/small-bus.webp',\n bigBus: '/assets/images/icons/big-bus.webp',\n truck: '/assets/images/icons/truck.webp',\n bigTruck: '/assets/images/icons/big-truck.webp',\n looseLoad: '/assets/images/icons/loose-load.webp',\n} as const;\n\n/**\n * Helper function to get asset URL\n * Can be overridden by consuming applications\n */\nexport const getAssetUrl = (path: string): string => {\n return path;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ModalIllustration/ModalIllustration.tsx","../src/components/ModalIllustration/presets.ts","../src/components/CarouselWithCustomNav/CarouselWithCustomNav.tsx","../src/components/CardPromo/CardPromo.tsx","../src/components/CardBanner/CardBanner.tsx","../src/components/CardTicket/CardTicket.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCard.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCardVertical.tsx","../src/components/CardServiceMenu/CardServiceMenu.tsx","../src/constants/generated/tokensV2.ts","../src/components/InputDynamic/DatePickerInput.tsx","../src/components/InputDynamic/InputDynamic.tsx","../src/components/InputDynamic/constants.ts","../src/components/CardTicketSearch/CardTicketSearch.constants.ts","../src/constants/generated/tokens.ts","../src/constants/brandColors.ts","../src/constants/designTokens.ts","../src/constants/themes.ts","../src/components/CardTicketSearch/CardTicketSearch.tsx","../src/components/ModalSearchHarbor/ModalSearchHarbor.tsx","../src/components/ModalSelectDate/ModalSelectDate.tsx","../src/components/ModalService/ModalService.tsx","../src/components/ModalTotalPassengers/constants.ts","../src/components/ModalTotalPassengers/ModalTotalPassengers.tsx","../src/components/ModalTypeOfService/ModalTypeOfService.tsx","../src/components/ModalTypeOfService/constants.ts"],"names":["useStyles","makeStyles","tokens","jsxs","jsx","mergeClasses","Body1","Button","CarouselCard","Skeleton","SkeletonItem","Subtitle2","Card","React","Divider","useState","useRef","hasError","useEffect","otpIndex","phoneValue","Input","Icon","brandColors","Row","Col","Dialog","DialogSurface","DialogBody","DialogTitle","DialogContent","Fragment","Caption1","useCallback","Calendar","Checkbox","Accordion","RadioGroup","AccordionItem","AccordionHeader","AccordionPanel","Radio"],"mappings":"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","file":"index.mjs","sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n iconContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: tokens.spacingVerticalL,\n textAlign: 'center',\n paddingTop: tokens.spacingVerticalL,\n paddingBottom: tokens.spacingVerticalL,\n },\n image: {\n maxWidth: '100%',\n height: 'auto',\n },\n buttonContainer: {\n display: 'flex',\n width: '100%',\n gap: tokens.spacingHorizontalM,\n },\n});\n\nexport interface ModalIllustrationButton {\n /**\n * Button text\n */\n text: string;\n \n /**\n * Button click handler\n */\n onClick: () => void;\n \n /**\n * Button appearance\n * @default \"primary\"\n */\n appearance?: 'primary' | 'outline' | 'secondary' | 'subtle' | 'transparent';\n}\n\nexport interface ModalIllustrationProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n */\n title: string;\n \n /**\n * Modal message content\n * Can be a string or React node for more complex content\n */\n message: string | ReactNode;\n \n /**\n * Image source URL\n * @default \"/assets/images/illustrations/radius.svg\"\n * @remarks\n * When using this component in your application, ensure the asset is available at this path\n * in your public directory, or provide a custom imageSrc prop pointing to your own image.\n * The asset is included in the published package at `node_modules/@asdp/ferryui/dist/assets/images/illustrations/`\n */\n imageSrc?: string;\n \n /**\n * Image alt text\n * @default \"Illustration\"\n */\n imageAlt?: string;\n \n /**\n * Image width\n * @default 361\n */\n imageWidth?: number;\n \n /**\n * Image height\n * @default 203\n */\n imageHeight?: number;\n \n /**\n * Primary button configuration\n */\n primaryButton: ModalIllustrationButton;\n \n /**\n * Optional secondary button configuration\n * If provided, buttons will be displayed side by side\n */\n secondaryButton?: ModalIllustrationButton;\n}\n\nexport const ModalIllustration: React.FC<ModalIllustrationProps> = ({\n open,\n onClose,\n title,\n message,\n imageSrc = '/assets/images/illustrations/radius.svg',\n imageAlt = 'Illustration',\n imageWidth = 361,\n imageHeight = 203,\n primaryButton,\n secondaryButton,\n}) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()} modalType=\"modal\">\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle>{title}</DialogTitle>\n <DialogContent>\n <div className={styles.iconContainer}>\n <img\n src={imageSrc}\n alt={imageAlt}\n width={imageWidth}\n height={imageHeight}\n className={styles.image}\n />\n {typeof message === 'string' ? (\n <Body1 style={{ textAlign: 'center' }}>{message}</Body1>\n ) : (\n message\n )}\n </div>\n <div className={styles.buttonContainer}>\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={primaryButton.appearance || 'primary'}\n onClick={primaryButton.onClick}\n >\n {primaryButton.text}\n </Button>\n {secondaryButton && (\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={secondaryButton.appearance || 'outline'}\n onClick={secondaryButton.onClick}\n >\n {secondaryButton.text}\n </Button>\n )}\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalIllustration;\n","import { ModalIllustrationProps } from './ModalIllustration';\n\n/**\n * Preset configurations for common modal use cases\n */\nexport const MODAL_PRESETS = {\n /**\n * Modal for radius/location restriction\n */\n RADIUS: {\n title: 'Anda berada di luar area pemesanan',\n message: 'Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.',\n imageSrc: '/assets/images/illustrations/radius.svg',\n imageAlt: 'Radius Limitation Illustration',\n },\n \n /**\n * Modal for expired session\n */\n SESSION_EXPIRED: {\n title: 'Sesi anda telah berakhir',\n message: 'Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.',\n imageSrc: '/assets/images/illustrations/sessionexp.svg',\n imageAlt: 'Session Expired Illustration',\n },\n \n /**\n * Modal for purchase period expired\n */\n PURCHASE_PERIOD_EXPIRED: {\n title: 'Waktu pembelian telah berakhir',\n message: 'Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.',\n imageSrc: '/assets/images/illustrations/pay.svg',\n imageAlt: 'Purchase Period Expired Illustration',\n },\n \n /**\n * Modal for transaction limit reached\n */\n TRANSACTION_LIMIT: {\n title: 'Anda mencapai batas transaksi tertunda',\n message: 'Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.',\n imageSrc: '/assets/images/illustrations/mobile-pay.svg',\n imageAlt: 'Transaction Limit Illustration',\n },\n} as const;\n\n/**\n * Type for preset keys\n */\nexport type ModalPresetKey = keyof typeof MODAL_PRESETS;\n\n/**\n * Helper function to get preset configuration\n */\nexport const getModalPreset = (presetKey: ModalPresetKey): Partial<ModalIllustrationProps> => {\n return MODAL_PRESETS[presetKey];\n};\n","import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport {\n Carousel,\n CarouselAnnouncerFunction,\n CarouselNav,\n CarouselNavButton,\n CarouselSlider,\n CarouselViewport,\n makeStyles,\n mergeClasses,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n carousel: {},\n customCarouselNav: {\n display: 'flex',\n gap: tokens.spacingHorizontalXS,\n justifyContent: 'center',\n alignItems: 'center',\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingVerticalM),\n borderRadius: tokens.borderRadiusCircular,\n },\n carouselNavButton: {\n '& button': {\n padding: 0,\n marginInline: '0px',\n width: '45px',\n height: '16px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n '@media (max-width: 425px)': {\n width: '35px',\n height: '10px',\n },\n },\n '& button::after': {\n content: '\"\"',\n transition:\n 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n },\n \"& button[aria-selected='true']::after\": {\n backgroundImage: 'linear-gradient(to right,#00B3BD, #8DC63F)',\n width: '55px',\n height: '16px',\n borderRadius: tokens.borderRadiusCircular,\n transform: 'translateX(0)',\n '@media (max-width: 425px)': {\n width: '25px',\n height: '10px',\n },\n '@media (max-width: 768px)': {\n width: '35px',\n height: '13px',\n },\n },\n \"& button[aria-selected='false']::after\": {\n backgroundColor: '#D1D1D1',\n width: '15px',\n height: '15px',\n opacity: '90%',\n transform: 'scale(0.9)',\n '@media (max-width: 425px)': {\n width: '10px',\n height: '10px',\n },\n },\n },\n});\n\nconst defaultAnnouncement: CarouselAnnouncerFunction = (index: number, totalSlides: number) => {\n return `Carousel slide ${index + 1} of ${totalSlides}`;\n};\n\nexport interface CarouselWithCustomNavProps {\n /**\n * Carousel items/children\n */\n children: ReactNode;\n \n /**\n * Whether carousel should loop (circular)\n * @default true\n */\n circular?: boolean;\n \n /**\n * Whether carousel is draggable\n * @default true\n */\n draggable?: boolean;\n \n /**\n * Alignment of carousel items\n * @default \"start\"\n */\n align?: 'start' | 'center' | 'end';\n \n /**\n * Whether to remove whitespace between items\n * @default false\n */\n whitespace?: boolean;\n \n /**\n * Announcement function for accessibility\n */\n announcement?: CarouselAnnouncerFunction;\n \n /**\n * Active index (controlled)\n */\n activeIndex?: number;\n \n /**\n * Callback when active index changes\n */\n onActiveIndexChange?: (index: number) => void;\n \n /**\n * ARIA label for the carousel slider\n * @default \"Carousel\"\n */\n ariaLabel?: string;\n \n /**\n * Whether to use dark background for navigation\n * @default true\n */\n darkNavBackground?: boolean;\n \n /**\n * Additional className for carousel container\n */\n className?: string;\n \n /**\n * Whether to enable card focus mode\n * @default false\n */\n cardFocus?: boolean;\n}\n\nexport const CarouselWithCustomNav: React.FC<CarouselWithCustomNavProps> = ({\n children,\n circular = true,\n draggable = true,\n align = 'start',\n whitespace = false,\n announcement = defaultAnnouncement,\n activeIndex: controlledIndex,\n onActiveIndexChange,\n ariaLabel = 'Carousel',\n darkNavBackground = true,\n className,\n cardFocus = false,\n}) => {\n const styles = useStyles();\n const [internalIndex, setInternalIndex] = useState(0);\n \n // Use controlled index if provided, otherwise use internal state\n const activeIndex = controlledIndex !== undefined ? controlledIndex : internalIndex;\n \n const handleIndexChange = useCallback((index: number) => {\n if (controlledIndex === undefined) {\n setInternalIndex(index);\n }\n onActiveIndexChange?.(index);\n }, [controlledIndex, onActiveIndexChange]);\n\n return (\n <Carousel\n circular={circular}\n draggable={draggable}\n align={align}\n className={mergeClasses(styles.carousel, className)}\n whitespace={whitespace}\n announcement={announcement}\n activeIndex={activeIndex}\n onActiveIndexChange={(_, data) => handleIndexChange(data.index)}\n >\n <CarouselViewport>\n <CarouselSlider\n cardFocus={cardFocus}\n aria-label={ariaLabel}\n >\n {children}\n </CarouselSlider>\n </CarouselViewport>\n <CarouselNav\n style={{\n backgroundColor: darkNavBackground\n ? tokens.colorSubtleBackgroundInverted\n : tokens.colorSubtleBackground,\n marginTop: tokens.spacingVerticalXL,\n }}\n appearance=\"brand\"\n className={styles.carouselNavButton}\n >\n {index => <CarouselNavButton aria-label={`Slide ${index + 1}`} />}\n </CarouselNav>\n </Carousel>\n );\n};\n\nexport default CarouselWithCustomNav;\n","import React from 'react';\nimport {\n Body1,\n Button,\n CarouselCard,\n makeStyles,\n mergeClasses,\n Skeleton,\n SkeletonItem,\n Subtitle2,\n tokens,\n} from '@fluentui/react-components';\nimport { Col, Row } from 'react-grid-system';\n\nconst useStyles = makeStyles({\n actionCard: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'hidden',\n textAlign: 'center',\n width: '360px',\n maxWidth: '360px',\n margin: '0px 6px',\n boxShadow: tokens.shadow4,\n backgroundColor: tokens.colorNeutralForegroundInverted,\n '@media (max-width: 1024px)': {\n width: '200px',\n maxWidth: '200px',\n },\n '@media (max-width: 768px)': {\n width: '190px',\n maxWidth: '190px',\n },\n '@media (max-width: 480px)': {\n width: '180px',\n maxWidth: '180px',\n margin: '0px 4px',\n },\n },\n imageContainer: {\n position: 'relative',\n width: '100%',\n height: '202px',\n overflow: 'hidden',\n '@media (max-width: 1024px)': {\n height: '120px',\n },\n '@media (max-width: 768px)': {\n height: '110px',\n },\n '@media (max-width: 480px)': {\n height: '100px',\n },\n },\n image: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'center',\n },\n info: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n alignContent: 'center',\n justifyContent: 'space-between',\n gap: tokens.spacingVerticalSNudge,\n '@media (max-width: 1024px)': {\n padding: tokens.spacingHorizontalSNudge,\n gap: tokens.spacingVerticalSNudge,\n },\n '@media (max-width: 768px)': {\n padding: tokens.spacingVerticalS,\n gap: tokens.spacingVerticalXS,\n },\n '@media (max-width: 480px)': {\n padding: tokens.spacingVerticalSNudge,\n gap: tokens.spacingVerticalXS,\n },\n },\n infoWrapper: {\n padding: tokens.spacingHorizontalM,\n },\n buttonWrapper:{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n title:{\n lineClamp: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n }\n});\n\nexport interface CardPromoProps {\n /**\n * Image URL for the promo\n */\n imageUrl: string;\n \n /**\n * Promo title/heading\n */\n title: string;\n \n /**\n * Promo description/subtitle\n */\n description: string;\n \n /**\n * Image alt text\n * @default \"Promo image\"\n */\n imageAlt?: string;\n \n /**\n * Index of the card (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of cards (for accessibility)\n */\n totalCards?: number;\n \n /**\n * Click handler for the card\n */\n onClick?: () => void;\n\n /**\n * Show Button\n */\n showButton?: boolean;\n\n /**\n * Button Text\n */\n buttonText?: string;\n\n /**\n * custom className\n */\n className?: string;\n\n /**\n * custom image className\n */\n imageClassName?: string;\n\n /**\n * custom description className\n */\n descriptionClassName?: string;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n\n /**\n * Image Only\n */\n imageOnly?: boolean;\n}\n\nexport const CardPromo: React.FC<CardPromoProps> = ({\n imageUrl,\n title,\n description,\n imageAlt = 'Promo image',\n index = 0,\n totalCards,\n onClick,\n showButton = false,\n buttonText = 'Lihat Detail',\n className,\n imageClassName,\n descriptionClassName,\n isLoading = false,\n imageOnly = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalCards\n ? `Card ${index + 1} of ${totalCards}`\n : `Promo card ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n style={{ cursor: 'default' }}\n >\n <Skeleton aria-label=\"Loading content\">\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <SkeletonItem shape=\"rectangle\" style={{ width: '100%', height: '100%' }} />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12}>\n <SkeletonItem style={{ width: '70%', height: '20px' }} />\n <SkeletonItem style={{ width: '90%', height: '16px' }} />\n <SkeletonItem style={{ width: '80%', height: '16px' }} />\n </Col>\n </Row>\n )}\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n aria-label={ariaLabel}\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n >\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <img\n className={classes.image}\n src={imageUrl}\n role=\"presentation\"\n alt={imageAlt}\n />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12} sm={12} md={12} lg={showButton ? 8 : 12} xl={showButton ? 8 : 12} xxl={showButton ? 8 : 12} xxxl={showButton ? 8 : 12}>\n <Subtitle2 className={classes.title}>{title}</Subtitle2>\n <Body1 className={mergeClasses(classes.title, descriptionClassName)}>{description}</Body1>\n </Col>\n {showButton && (\n <Col className={classes.buttonWrapper} xs={12} sm={12} md={12} lg={showButton ? 4 : 0} xl={showButton ? 4 : 0} xxl={showButton ? 4 : 0} xxxl={showButton ? 4 : 0}>\n <Button\n appearance=\"primary\"\n size=\"small\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n shape='circular'\n >\n {buttonText}\n </Button>\n </Col>\n )}\n </Row>\n )}\n </CarouselCard>\n );\n};\n\nexport default CardPromo;\n","import React from 'react';\nimport {\n CarouselCard,\n makeStyles,\n Skeleton,\n SkeletonItem,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n bannerCard: {\n overflow: 'hidden',\n width: '100%',\n maxWidth: '100%',\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n height: '450px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n bannerImage: {\n width: '100%',\n height: 'auto',\n objectFit: 'cover',\n display: 'block',\n cursor: 'pointer',\n borderRadius: tokens.borderRadiusXLarge,\n },\n});\n\nexport interface CardBannerProps {\n /**\n * Banner image URL\n */\n imageUrl: string;\n \n /**\n * Banner alt text\n */\n alt: string;\n \n /**\n * Index of the banner (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of banners (for accessibility)\n */\n totalBanners?: number;\n \n /**\n * Click handler for the banner\n */\n onClick?: () => void;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n}\n\nexport const CardBanner: React.FC<CardBannerProps> = ({\n imageUrl,\n alt,\n index = 0,\n totalBanners,\n onClick,\n isLoading = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalBanners\n ? `Banner ${index + 1} of ${totalBanners}`\n : `Banner ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard className={classes.bannerCard}>\n <Skeleton aria-label=\"Loading banner\" style={{ width: '100%', height: '100%' }}>\n <SkeletonItem \n shape=\"rectangle\" \n style={{ \n width: '100%', \n height: '100%', \n borderRadius: tokens.borderRadiusXLarge \n }} \n />\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n className={classes.bannerCard}\n aria-label={ariaLabel}\n >\n <img\n className={classes.bannerImage}\n src={imageUrl}\n alt={alt}\n role=\"presentation\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n />\n </CarouselCard>\n );\n};\n\nexport default CardBanner;\n","import React, { ReactNode } from 'react';\nimport {\n Badge,\n Button,\n Caption1,\n Caption1Strong,\n Caption2,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n shorthands,\n Subtitle2,\n Title2,\n Title3,\n tokens,\n Tooltip,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n ticketWrapper: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'visible',\n boxShadow: tokens.shadow4,\n display: 'flex',\n width: '100%',\n marginBottom: '2rem',\n minHeight: '323px',\n padding: 0,\n '@media (max-width: 1200px)': {\n flexDirection: 'column',\n },\n },\n ticketLeftCard: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '3em',\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n position: 'relative',\n overflow: 'visible',\n flexDirection: 'column',\n '@media (min-width: 1200px)': {\n borderRight: `0.7em dashed ${tokens.colorNeutralBackground1Hover}`,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n '@media (max-width: 1200px)': {\n borderBottom: `0.5em dashed ${tokens.colorNeutralBackground1Hover}`,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n gap: '1rem',\n flexDirection: 'row',\n justifyContent: 'space-around',\n padding: '2rem',\n },\n },\n circularLeft: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-50px',\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularLeftMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularRightMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n ticketMiddleCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n padding: '2rem',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n '@media (max-width: 768px)': {\n padding: '1rem',\n },\n },\n ticketInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.5em',\n },\n ticketTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: '0.5em',\n },\n ticketDuration: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.5rem',\n },\n dividerContainer: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyItems: 'center',\n width: '100%',\n },\n ticketButtons: {\n display: 'flex',\n gap: '1rem',\n marginTop: '1rem',\n '@media (max-width: 768px)': {\n flexDirection: 'column',\n },\n },\n ticketRightCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n position: 'relative',\n overflow: 'visible',\n background: 'linear-gradient(75deg, #58C91B 0%, #1949E0 103.3%)',\n padding: '5em',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n color: tokens.colorNeutralForegroundInverted,\n '@media (max-width: 1200px)': {\n padding: '2rem',\n borderTopRightRadius: 0,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n },\n '@media (max-width: 768px)': {\n padding: '1rem',\n },\n },\n priceCard: {\n border: '1px solid #FFF',\n background: 'rgba(255, 255, 255, 0.30)',\n backdropFilter: 'blur(17.5px)',\n borderRadius: tokens.borderRadiusLarge,\n padding: '1.2rem',\n gap: '1rem',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n '@media (max-width: 768px)': {\n padding: '1rem',\n },\n },\n facilitiesSection: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n },\n facilitiesList: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.75rem',\n },\n facilityItem: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n fontSize: '14px',\n },\n circularRight: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-50px',\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n asdpLogo: {\n width: 'clamp(50px, 20vw, 150px)',\n },\n});\n\nexport interface CardTicketButton {\n label: string;\n icon?: JSX.Element;\n onClick?: () => void;\n}\n\nexport interface CardTicketProps {\n /**\n * Ship type badge configuration\n */\n shipType: {\n label: string;\n color: 'brand' | 'danger' | 'important' | 'informative' | 'severe' | 'subtle' | 'success' | 'warning';\n tooltip?: string;\n };\n \n /**\n * Logo image source\n * @default \"/assets/logo/asdp-default.svg\"\n */\n logoSrc?: string;\n \n /**\n * Ship name\n */\n shipName: string;\n \n /**\n * Available seats configuration\n */\n availableSeats: {\n count: number;\n threshold?: number; // Seats count threshold for color (default: 50)\n };\n \n /**\n * Departure information\n */\n departure: {\n day: string;\n time: string;\n location: string;\n };\n \n /**\n * Arrival information\n */\n arrival: {\n day: string;\n time: string;\n location: string;\n };\n \n /**\n * Duration text\n */\n duration: string;\n \n /**\n * Middle section action buttons (max 2)\n */\n actionButtons?: CardTicketButton[];\n \n /**\n * Price display (formatted string)\n */\n price: string;\n \n /**\n * Primary button configuration\n */\n primaryButton: CardTicketButton;\n \n /**\n * List of facilities\n */\n facilities: string[];\n \n /**\n * Custom icon for ship indicator\n */\n shipIcon?: JSX.Element;\n \n /**\n * Custom icon for facilities checkmark\n */\n facilityIcon?: JSX.Element;\n}\n\nexport const CardTicket: React.FC<CardTicketProps> = ({\n shipType,\n logoSrc = '/assets/logo/asdp-default.svg',\n shipName,\n availableSeats,\n departure,\n arrival,\n duration,\n actionButtons = [],\n price,\n primaryButton,\n facilities,\n shipIcon,\n facilityIcon,\n}) => {\n const styles = useStyles();\n const threshold = availableSeats.threshold ?? 50;\n const isLowSeats = availableSeats.count <= threshold;\n\n return (\n <div className={styles.ticketWrapper}>\n {/* Left Section */}\n <Card className={styles.ticketLeftCard}>\n <Tooltip\n content={shipType.tooltip || shipType.label}\n relationship=\"label\"\n appearance=\"inverted\"\n >\n <Badge\n size=\"large\"\n appearance=\"filled\"\n color={shipType.color}\n iconPosition=\"before\"\n shape=\"rounded\"\n >\n {shipType.label}\n </Badge>\n </Tooltip>\n \n <img\n src={logoSrc}\n className={styles.asdpLogo}\n alt=\"Logo\"\n />\n \n {/* Mobile: Show availability badge */}\n <div style={{ display: 'none' }}>\n <Badge\n size=\"large\"\n appearance=\"tint\"\n color={isLowSeats ? 'danger' : 'success'}\n iconPosition=\"after\"\n shape=\"rounded\"\n >\n Tersedia {availableSeats.count}\n </Badge>\n </div>\n \n <Subtitle2>{shipName}</Subtitle2>\n \n {/* Circular decorations - Desktop */}\n <div style={{ display: 'none' }}>\n {Array.from({ length: 5 }).map((_, index) => (\n <div\n key={index}\n className={styles.circularLeft}\n style={{\n top: `${18 + index * 60}px`,\n }}\n />\n ))}\n </div>\n \n {/* Circular decorations - Mobile */}\n <div className={styles.circularLeftMd} />\n <div className={styles.circularRightMd} />\n </Card>\n\n {/* Middle Section */}\n <Card className={styles.ticketMiddleCard}>\n {/* Desktop: Show availability badge */}\n <Badge\n size=\"extra-large\"\n appearance=\"tint\"\n color={isLowSeats ? 'danger' : 'success'}\n iconPosition=\"after\"\n shape=\"rounded\"\n >\n Tersedia {availableSeats.count}\n </Badge>\n\n <div>\n <div className={styles.ticketInfo}>\n <div className={styles.ticketTime}>\n <Caption1>{departure.day}</Caption1>\n <Title2>{departure.time}</Title2>\n <Caption1>{departure.location}</Caption1>\n </div>\n \n <div className={styles.ticketDuration}>\n <Caption2>Estimasi {duration}</Caption2>\n <div className={styles.dividerContainer}>\n <Divider>\n {shipIcon || <span>🚢</span>}\n </Divider>\n </div>\n </div>\n \n <div className={styles.ticketTime}>\n <Caption1>{arrival.day}</Caption1>\n <Title2>{arrival.time}</Title2>\n <Caption1>{arrival.location}</Caption1>\n </div>\n </div>\n </div>\n \n {actionButtons.length > 0 && (\n <div className={styles.ticketButtons}>\n {actionButtons.slice(0, 2).map((button, idx) => (\n <Button\n key={idx}\n appearance=\"outline\"\n shape=\"circular\"\n style={{\n flex: 1,\n borderColor: tokens.colorBrandBackground,\n color: tokens.colorBrandBackground,\n }}\n icon={button.icon}\n size=\"medium\"\n onClick={button.onClick}\n >\n {button.label}\n </Button>\n ))}\n </div>\n )}\n </Card>\n\n {/* Right Section */}\n <Card className={styles.ticketRightCard}>\n <div className={styles.priceCard}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\n <Subtitle2>Total harga</Subtitle2>\n <Title3 style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\n IDR {price}\n </Title3>\n </div>\n <Button\n onClick={primaryButton.onClick}\n appearance=\"primary\"\n size=\"medium\"\n shape=\"circular\"\n icon={primaryButton.icon}\n style={{ backgroundColor: '#58C91B' }}\n >\n {primaryButton.label}\n </Button>\n </div>\n \n <div className={styles.facilitiesSection}>\n <Subtitle2>Fasilitas</Subtitle2>\n <div className={styles.facilitiesList}>\n {facilities.map((facility, idx) => (\n <div key={idx} className={styles.facilityItem}>\n {facilityIcon || <span>✓</span>}\n <Caption1Strong>{facility}</Caption1Strong>\n </div>\n ))}\n </div>\n </div>\n \n {/* Circular decorations - Desktop */}\n <div style={{ display: 'none' }}>\n {Array.from({ length: 5 }).map((_, index) => (\n <div\n key={index}\n className={styles.circularRight}\n style={{\n top: `${18 + index * 60}px`,\n }}\n />\n ))}\n </div>\n </Card>\n </div>\n );\n};\n\nexport default CardTicket;\n","import React from 'react';\n\n/**\n * Horizontal ticket card background with decorative perforated edges\n * Use this for desktop/landscape layouts\n */\nconst BackgroundTicketCard = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 1850 465\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32114)\">\n <path\n d=\"M1819.6 9.85962C1815.43 8.63925 1810.75 8.00891 1806.01 8.02751H523.015C517.214 8.02224 511.553 8.98897 506.816 10.7941C502.078 12.5993 498.497 15.1537 496.568 18.1041C492.794 23.9726 485.817 29.088 476.552 32.7781C467.288 36.4682 456.169 38.5603 444.659 38.7794C443.997 38.7794 443.3 38.7794 442.604 38.7794C430.731 38.7805 419.152 36.7877 409.476 33.0776C399.799 29.3676 392.505 24.1246 388.606 18.0766C386.681 15.1284 383.106 12.5753 378.374 10.7702C373.643 8.96512 367.989 7.99718 362.193 8.00001H43.9587C40.2864 7.9988 36.6498 8.38797 33.2567 9.1453C29.8635 9.90262 26.7806 11.0133 24.184 12.4137C21.5873 13.814 19.5279 15.4767 18.1237 17.3066C16.7194 19.1365 15.9978 21.0978 16 23.0782V425.922C15.9978 427.902 16.7194 429.863 18.1237 431.693C19.5279 433.523 21.5873 435.186 24.184 436.586C26.7806 437.987 29.8635 439.097 33.2567 439.855C36.6498 440.612 40.2864 441.001 43.9587 441H362.193C367.99 441.005 373.646 440.039 378.379 438.233C383.111 436.428 386.685 433.873 388.606 430.923C392.505 424.875 399.799 419.632 409.476 415.922C419.152 412.212 430.731 410.219 442.604 410.221C443.3 410.221 443.997 410.221 444.659 410.221C456.169 410.44 467.288 412.532 476.552 416.222C485.817 419.912 492.794 425.027 496.568 430.896C498.495 433.847 502.075 436.402 506.814 438.208C511.552 440.013 517.214 440.979 523.015 440.973H1806.04C1809.71 440.974 1813.35 440.585 1816.74 439.827C1820.14 439.07 1823.22 437.959 1825.82 436.559C1828.41 435.159 1830.47 433.496 1831.88 431.666C1833.28 429.836 1834 427.875 1834 425.894V23.0599C1834 20.3673 1832.66 17.7243 1830.13 15.4037C1827.59 13.0831 1823.96 11.1692 1819.6 9.85962ZM447.343 390.645C447.352 391.126 447.104 391.599 446.628 392.007C446.152 392.415 445.469 392.74 444.659 392.944C444.032 393.133 443.322 393.228 442.604 393.219C441.977 393.22 441.355 393.154 440.775 393.025C440.195 392.896 439.668 392.707 439.224 392.467C438.78 392.228 438.429 391.944 438.19 391.631C437.951 391.318 437.829 390.983 437.831 390.645V360.818C437.831 360.135 438.334 359.48 439.229 358.998C440.124 358.515 441.338 358.244 442.604 358.244C443.317 358.24 444.022 358.328 444.659 358.5C445.145 358.623 445.587 358.791 445.967 358.995C446.856 359.484 447.351 360.142 447.343 360.827V390.645ZM447.343 339.556C447.352 340.038 447.104 340.511 446.628 340.919C446.152 341.326 445.469 341.652 444.659 341.856C444.029 342.04 443.321 342.135 442.604 342.13C441.975 342.134 441.352 342.07 440.769 341.942C440.187 341.814 439.658 341.624 439.214 341.385C438.769 341.145 438.418 340.86 438.18 340.546C437.943 340.232 437.824 339.895 437.831 339.556V309.702C437.829 309.364 437.951 309.028 438.19 308.716C438.429 308.403 438.78 308.119 439.224 307.879C439.668 307.64 440.195 307.45 440.775 307.322C441.355 307.193 441.977 307.127 442.604 307.128C443.317 307.124 444.022 307.212 444.659 307.384C445.144 307.504 445.587 307.669 445.967 307.87C446.853 308.36 447.347 309.018 447.343 309.702V339.556ZM447.343 288.468C447.35 288.949 447.101 289.422 446.625 289.829C446.149 290.237 445.467 290.562 444.659 290.767C444.029 290.952 443.321 291.047 442.604 291.042C441.971 291.043 441.345 290.975 440.761 290.843C440.178 290.711 439.649 290.517 439.207 290.273C438.761 290.033 438.409 289.747 438.173 289.432C437.937 289.117 437.82 288.78 437.831 288.441V258.614C437.829 258.275 437.951 257.94 438.19 257.627C438.429 257.314 438.78 257.03 439.224 256.791C439.668 256.552 440.195 256.362 440.775 256.233C441.355 256.104 441.977 256.039 442.604 256.04C443.317 256.036 444.022 256.123 444.659 256.296C445.148 256.413 445.591 256.577 445.967 256.782C446.853 257.272 447.347 257.929 447.343 258.614V288.468ZM447.343 237.371C447.353 237.854 447.105 238.328 446.63 238.737C446.154 239.147 445.47 239.474 444.659 239.679C444.028 239.861 443.32 239.953 442.604 239.945C441.977 239.946 441.355 239.88 440.775 239.751C440.195 239.622 439.668 239.433 439.224 239.193C438.78 238.954 438.429 238.67 438.19 238.357C437.951 238.044 437.829 237.709 437.831 237.371V207.535C437.831 207.197 437.954 206.863 438.195 206.551C438.435 206.239 438.786 205.956 439.23 205.718C439.673 205.479 440.2 205.291 440.779 205.162C441.358 205.034 441.978 204.969 442.604 204.97C443.319 204.968 444.023 205.059 444.659 205.235C445.148 205.352 445.591 205.516 445.967 205.721C446.41 205.962 446.759 206.248 446.995 206.563C447.232 206.877 447.35 207.214 447.343 207.553V237.371ZM447.343 186.282C447.354 186.764 447.107 187.238 446.63 187.646C446.154 188.054 445.47 188.379 444.659 188.582C444.032 188.771 443.322 188.866 442.604 188.856C441.335 188.859 440.115 188.592 439.207 188.114C438.327 187.622 437.834 186.966 437.831 186.282V156.456C437.831 155.773 438.334 155.118 439.229 154.635C440.124 154.153 441.338 153.881 442.604 153.881C443.875 153.883 445.095 154.152 446.001 154.633C446.887 155.122 447.381 155.78 447.377 156.465L447.343 186.282ZM447.343 135.194C447.352 135.676 447.104 136.149 446.628 136.556C446.152 136.964 445.469 137.289 444.659 137.493C444.032 137.683 443.322 137.778 442.604 137.768C441.977 137.769 441.355 137.704 440.775 137.575C440.195 137.446 439.668 137.256 439.224 137.017C438.78 136.778 438.429 136.493 438.19 136.18C437.951 135.868 437.829 135.532 437.831 135.194V105.367C437.831 104.685 438.334 104.03 439.229 103.547C440.124 103.064 441.338 102.793 442.604 102.793C443.317 102.789 444.022 102.877 444.659 103.05C445.145 103.173 445.587 103.34 445.967 103.544C446.856 104.033 447.351 104.692 447.343 105.376V135.194ZM447.343 84.1057C447.352 84.5874 447.104 85.0604 446.628 85.4681C446.152 85.8758 445.469 86.201 444.659 86.405C444.029 86.5898 443.321 86.6845 442.604 86.6798C441.975 86.6835 441.352 86.6194 440.769 86.4913C440.187 86.3632 439.658 86.1739 439.214 85.9341C438.769 85.6943 438.418 85.409 438.18 85.0951C437.943 84.7811 437.824 84.4447 437.831 84.1057V54.279C437.829 53.9407 437.951 53.6054 438.19 53.2925C438.429 52.9797 438.78 52.6954 439.224 52.4561C439.668 52.2168 440.195 52.0273 440.775 51.8983C441.355 51.7694 441.977 51.7037 442.604 51.7049C443.317 51.7007 444.022 51.7886 444.659 51.9614C445.144 52.0812 445.587 52.2455 445.967 52.4469C446.856 52.9357 447.351 53.5943 447.343 54.279V84.1057Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32114\"\n x=\"0\"\n y=\"0\"\n width=\"1850\"\n height=\"465\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_156_32114\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\" />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32114\"\n result=\"effect2_dropShadow_156_32114\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32114\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCard;\n","import React from 'react';\n\n/**\n * Vertical ticket card background with decorative perforated edges\n * Use this for mobile/portrait layouts\n */\nconst BackgroundTicketCardVertical = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 465 1750\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32115)\">\n <path\n d=\"M455.14 1719.6C456.36 1715.43 456.99 1710.75 456.973 1706.01V423.015C456.978 417.214 456.011 411.553 454.206 406.816C452.401 402.078 449.846 398.497 446.896 396.568C441.027 392.794 435.912 385.817 432.222 376.552C428.532 367.288 426.44 356.169 426.221 344.659C426.221 343.997 426.221 343.3 426.221 342.604C426.219 330.731 428.212 319.152 431.922 309.476C435.632 299.799 440.875 292.505 446.923 288.606C449.872 286.681 452.425 283.106 454.23 278.374C456.035 273.643 457.003 267.989 457 262.193V43.9587C457.001 40.2864 456.612 36.6498 455.855 33.2567C455.097 29.8635 453.987 26.7806 452.586 24.184C451.186 21.5873 449.523 19.5279 447.693 18.1237C445.863 16.7194 443.902 15.9978 441.922 16H23.0782C21.0978 16 19.1365 16.7194 17.3066 18.1237C15.4767 19.5279 13.814 21.5873 12.4137 24.184C11.0133 26.7806 9.90262 29.8635 9.1453 33.2567C8.38797 36.6498 7.9988 40.2864 8.00001 43.9587V262.193C7.99512 267.99 8.96103 273.646 10.7672 278.379C12.5723 283.111 15.1274 286.685 18.0766 288.606C24.1246 292.505 29.3676 299.799 33.0776 309.476C36.7877 319.152 38.7805 330.731 38.7794 342.604C38.7794 343.3 38.7794 343.997 38.7794 344.659C38.5603 356.169 36.4682 367.288 32.7781 376.552C29.088 385.817 23.9726 392.794 18.1041 396.568C15.1537 398.495 12.5993 402.075 10.7941 406.814C8.98897 411.552 8.02224 417.214 8.02751 423.015V1706.04C8.02604 1709.71 8.41503 1713.35 9.17279 1716.74C9.93055 1720.14 11.0413 1723.22 12.4414 1725.82C13.8414 1728.41 15.5041 1730.47 17.3342 1731.88C19.1643 1733.28 21.1253 1734 23.1059 1734H441.94C444.633 1734 447.276 1732.66 449.596 1730.13C451.917 1727.59 453.831 1723.96 455.14 1719.6ZM64.3552 347.343C63.8743 347.352 63.4013 347.104 62.9936 346.628C62.5859 346.152 62.261 345.469 62.0569 344.659C61.8675 344.032 61.7723 343.322 61.7814 342.604C61.7799 341.977 61.8461 341.355 61.975 340.775C62.1039 340.195 62.2932 339.668 62.5325 339.224C62.7718 338.78 63.0562 338.429 63.3691 338.19C63.682 337.951 64.0173 337.829 64.3552 337.831H94.1823C94.8653 337.831 95.5203 338.334 96.0023 339.229C96.4843 340.124 96.7557 341.338 96.7557 342.604C96.7599 343.317 96.672 344.022 96.5 344.659C96.3771 345.145 96.2092 345.587 96.0051 345.967C95.5163 346.856 94.8585 347.351 94.1733 347.343H64.3552ZM115.444 347.343C114.962 347.352 114.489 347.104 114.081 346.628C113.674 346.152 113.349 345.469 113.145 344.659C112.96 344.029 112.865 343.321 112.87 342.604C112.866 341.975 112.93 341.352 113.058 340.769C113.186 340.187 113.376 339.658 113.615 339.214C113.855 338.769 114.14 338.418 114.454 338.18C114.768 337.943 115.105 337.824 115.444 337.831H145.298C145.636 337.829 145.972 337.951 146.284 338.19C146.597 338.429 146.881 338.78 147.121 339.224C147.36 339.668 147.55 340.195 147.678 340.775C147.807 341.355 147.873 341.977 147.872 342.604C147.876 343.317 147.788 344.022 147.616 344.659C147.496 345.144 147.331 345.587 147.13 345.967C146.64 346.853 145.982 347.347 145.298 347.343H115.444ZM166.532 347.343C166.051 347.35 165.578 347.101 165.171 346.625C164.763 346.149 164.438 345.467 164.233 344.659C164.048 344.029 163.953 343.321 163.958 342.604C163.957 341.971 164.025 341.345 164.157 340.761C164.289 340.178 164.483 339.649 164.727 339.207C164.967 338.761 165.253 338.409 165.568 338.173C165.883 337.937 166.22 337.82 166.559 337.831H196.386C196.725 337.829 197.06 337.951 197.373 338.19C197.686 338.429 197.97 338.78 198.209 339.224C198.448 339.668 198.638 340.195 198.767 340.775C198.896 341.355 198.961 341.977 198.96 342.604C199.036 343.317 198.948 344.022 198.776 344.659C198.659 345.148 198.505 345.591 198.299 345.967C197.809 346.853 197.152 347.347 196.468 347.343H166.532ZM217.629 347.343C217.146 347.353 216.672 347.105 216.263 346.63C215.853 346.154 215.526 345.47 215.321 344.659C215.139 344.028 215.047 343.32 215.055 342.604C215.054 341.977 215.12 341.355 215.249 340.775C215.378 340.195 215.567 339.668 215.807 339.224C216.046 338.78 216.33 338.429 216.643 338.19C216.956 337.951 217.291 337.829 217.629 337.831H247.465C247.803 337.831 248.137 337.954 248.449 338.195C248.761 338.435 249.044 338.786 249.282 339.23C249.521 339.673 249.709 340.2 249.838 340.779C249.966 341.358 250.031 341.978 250.03 342.604C250.032 343.319 249.941 344.023 249.765 344.659C249.648 345.148 249.484 345.591 249.279 345.967C248.964 346.41 248.578 346.759 248.163 346.995C247.748 347.232 247.311 347.35 246.873 347.343H217.629ZM268.718 347.343C268.236 347.354 267.762 347.107 267.354 346.63C266.946 346.154 266.621 345.47 266.418 344.659C266.229 344.032 266.134 343.322 266.144 342.604C266.141 341.335 266.408 340.115 266.886 339.207C267.378 338.327 268.034 337.834 268.718 337.831H298.544C299.227 337.831 299.882 338.334 300.365 339.229C300.847 340.124 301.119 341.338 301.119 342.604C301.117 343.875 300.848 345.095 300.367 346.001C299.878 346.887 299.22 347.381 298.535 347.377L268.718 347.343ZM319.806 347.343C319.324 347.352 318.851 347.104 318.444 346.628C318.036 346.152 317.711 345.469 317.507 344.659C317.317 344.032 317.222 343.322 317.232 342.604C317.231 341.977 317.296 341.355 317.425 340.775C317.554 340.195 317.744 339.668 317.983 339.224C318.222 338.78 318.507 338.429 318.82 338.19C319.132 337.951 319.468 337.829 319.806 337.831H349.633C350.315 337.831 350.97 338.334 351.453 339.229C351.936 340.124 352.207 341.338 352.207 342.604C352.211 343.317 352.123 344.022 351.95 344.659C351.827 345.145 351.66 345.587 351.456 345.967C350.967 346.856 350.308 347.351 349.624 347.343H319.806ZM370.894 347.343C370.413 347.352 369.94 347.104 369.532 346.628C369.124 346.152 368.799 345.469 368.595 344.659C368.41 344.029 368.315 343.321 368.32 342.604C368.316 341.975 368.38 341.352 368.508 340.769C368.637 340.187 368.826 339.658 369.066 339.214C369.306 338.769 369.592 338.418 369.905 338.18C370.219 337.943 370.555 337.824 370.894 337.831H400.721C401.059 337.829 401.395 337.951 401.707 338.19C402.02 338.429 402.305 388.78 402.544 339.224C402.783 339.668 402.973 340.195 403.102 340.775C403.231 341.355 403.296 341.977 403.295 342.604C403.299 343.317 403.212 344.022 403.039 344.659C402.919 345.144 402.755 345.587 402.553 345.967C402.064 346.856 401.406 347.351 400.721 347.343H370.894Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32115\"\n x=\"0\"\n y=\"0\"\n width=\"465\"\n height=\"1750\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_156_32115\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32115\"\n result=\"effect2_dropShadow_156_32115\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32115\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCardVertical;\n","import React from 'react';\nimport {\n Button,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n tokens,\n} from '@fluentui/react-components';\nimport { Language } from '../../types/globalTypes';\n\nconst useStyles = makeStyles({\n card: {\n width: '100%',\n boxSizing: 'border-box',\n padding: '0px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n menuList: {\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1200px)': {\n flexDirection: 'row',\n overflowX: 'auto',\n flexWrap: 'nowrap',\n gap: '0px',\n WebkitOverflowScrolling: 'touch',\n scrollbarWidth: 'thin',\n justifyContent: 'space-around',\n },\n },\n menuItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: '12px',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n textAlign: 'left',\n transition: 'background-color 0.2s ease',\n textDecoration: 'none',\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1,\n border: 'none',\n gap: '12px',\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n '@media (max-width: 1200px)': {\n padding: '10px 12px',\n flexShrink: 0,\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n },\n },\n menuItemActive: {\n backgroundColor: tokens.colorNeutralBackground3,\n color: tokens.colorNeutralForeground1,\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground3Hover,\n },\n },\n logo: {\n height: '32px',\n width: '32px',\n flexShrink: 0,\n },\n textContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n '@media (max-width: 1200px)': {\n alignItems: 'center',\n },\n },\n label: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n lineHeight: '1.2',\n },\n description: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n lineHeight: '1.4',\n '@media (max-width: 1200px)': {\n fontSize: tokens.fontSizeBase100,\n whiteSpace: 'nowrap',\n },\n },\n dividerVertical: {\n '@media (min-width: 1200px)': {\n display: 'none',\n },\n },\n dividerHorizontal: {\n '@media (max-width: 1200px)': {\n display: 'none',\n },\n },\n});\n\n// Built-in service menu items with i18n\nconst SERVICE_MENU_ITEMS = {\n ferry: {\n id: 'ferry',\n logo: '/assets/images/icons/ferry.svg',\n labels: {\n id: { label: 'Ferry', description: 'Layanan penyeberangan ferry ASDP' },\n en: { label: 'Ferry', description: 'ASDP Ferry Crossing Service' },\n },\n },\n ifcs: {\n id: 'ifcs',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n en: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n },\n },\n skpt: {\n id: 'skpt',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'SKPT', description: 'Sistem Karcis Penumpang Terpadu' },\n en: { label: 'SKPT', description: 'Integrated Passenger Ticketing System' },\n },\n },\n hotel: {\n id: 'hotel',\n logo: '/assets/images/icons/hotel.svg',\n labels: {\n id: { label: 'Hotel', description: 'Layanan pemesanan hotel' },\n en: { label: 'Hotel', description: 'Hotel Booking Service' },\n },\n },\n other: {\n id: 'other',\n logo: '/assets/images/icons/other.svg',\n labels: {\n id: { label: 'Lainnya', description: 'Layanan lainnya' },\n en: { label: 'Other', description: 'Other Services' },\n },\n },\n} as const;\n\nexport type ServiceId = keyof typeof SERVICE_MENU_ITEMS;\n\nexport interface CardServiceMenuProps {\n /**\n * Currently active service ID\n * @default 'ferry'\n */\n activeServiceId?: ServiceId;\n \n /**\n * Language for labels (Indonesian or English)\n * @default 'id'\n */\n language?: Language;\n \n /**\n * Callback when a service is clicked\n */\n onServiceClick?: (serviceId: ServiceId) => void;\n \n /**\n * Whether to show descriptions on desktop\n * @default true\n */\n showDescriptions?: boolean;\n \n /**\n * Custom className for the card\n */\n className?: string;\n}\n\nexport const CardServiceMenu: React.FC<CardServiceMenuProps> = ({\n activeServiceId = 'ferry',\n language = 'id',\n onServiceClick,\n showDescriptions = true,\n className,\n}) => {\n const styles = useStyles();\n\n const getMenuItemClass = (serviceId: ServiceId) => {\n const isActive = activeServiceId === serviceId;\n return mergeClasses(\n styles.menuItem,\n isActive && styles.menuItemActive\n );\n };\n\n const menuItems = Object.values(SERVICE_MENU_ITEMS);\n\n return (\n <Card className={mergeClasses(styles.card, className)}>\n <div className={styles.menuList}>\n {menuItems.map((item, index) => {\n const { label, description } = item.labels[language];\n \n return (\n <React.Fragment key={item.id}>\n <Button\n className={getMenuItemClass(item.id as ServiceId)}\n onClick={() => onServiceClick?.(item.id as ServiceId)}\n >\n <img\n src={item.logo}\n alt={label}\n className={styles.logo}\n />\n <div className={styles.textContent}>\n <span className={styles.label}>{label}</span>\n {showDescriptions && (\n <span className={styles.description}>\n {description}\n </span>\n )}\n </div>\n </Button>\n {index < menuItems.length - 1 && (\n <>\n <Divider className={styles.dividerHorizontal} />\n <Divider vertical className={styles.dividerVertical} />\n </>\n )}\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default CardServiceMenu;\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#001a1bff',\n '20': '#02383bff',\n '30': '#002426',\n '40': '#004044',\n '50': '#005D62',\n '60': '#007A81',\n '70': '#00969F',\n '80': '#00B3BD',\n '90': '#29BFC8',\n '100': '#52CBD2',\n '110': '#7AD7DD',\n '120': '#A3E4E7',\n '130': '#CCF0F2',\n '140': '#E1F7F8',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '40': 4,\n '60': 6,\n '70': 7,\n '80': 8,\n '100': 10,\n '120': 12,\n '150': 15,\n '160': 16,\n '170': 17,\n '180': 18,\n '190': 19,\n '200': 20,\n '220': 22,\n '240': 24,\n '260': 26,\n '270': 27,\n '280': 28,\n '320': 32,\n '360': 36,\n '400': 40,\n '480': 48,\n '520': 52,\n '560': 56,\n '580': 58,\n '600': 60,\n '640': 64,\n '680': 68,\n '720': 72,\n '760': 76,\n '800': 80,\n '860': 86,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1020': 102,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '190': 19,\n '200': 20,\n '220': 22,\n};\n\nexport const fontWeight = {\n 'Regular': 400,\n 'Medium': 500,\n 'Semibold': 600,\n};\n\nexport const lineHeight = {\n 'lineHeightBase210': 21,\n};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#5C9F38',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\nexport const foundationColors = {\n 'Foundation_Danger_error': '#FD3A3A',\n};\n\nexport const schemeColors = {\n 'Scheme_Secondary': '#426900',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#00B3BD',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#00B3BD',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#C50F1F',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n foundationColors,\n lightModeColors,\n darkModeColors,\n schemeColors,\n};\n","import { Calendar } from '@fluentui/react-calendar-compat';\nimport {\n Input,\n InputProps,\n Popover,\n PopoverSurface,\n PopoverTrigger,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { forwardRef, useState } from 'react';\n\ninterface DatePickerInputProps extends InputProps {\n field: {\n value: string;\n onChange: (value: string) => void;\n onBlur?: () => void;\n };\n max?: string;\n}\n\nconst DatePickerInput = forwardRef<HTMLInputElement, DatePickerInputProps>(\n (\n {\n field,\n placeholder,\n disabled,\n appearance,\n size,\n contentBefore,\n onClick,\n style,\n max,\n ...restProps\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const dateValue = field.value ? new Date(field.value) : undefined;\n\n const onSelectDate = (date: Date | null | undefined) => {\n if (date) {\n // Adjust for timezone offset to ensure the date string is correct\n const offset = date.getTimezoneOffset();\n const adjustedDate = new Date(date.getTime() - offset * 60 * 1000);\n field.onChange(adjustedDate.toISOString().split('T')[0]);\n setIsOpen(false);\n }\n };\n\n const formatDate = (dateString: string) => {\n if (!dateString) return '';\n const date = new Date(dateString);\n return date.toLocaleDateString('id-ID', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n };\n\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e?.preventDefault();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n onClick?.(e);\n };\n\n return (\n <Popover open={isOpen} onOpenChange={(_, data) => setIsOpen(data.open)} trapFocus>\n <PopoverTrigger disableButtonEnhancement>\n <Input\n {...restProps}\n value={formatDate(field.value)}\n readOnly\n placeholder={placeholder || 'Pilih tanggal'}\n disabled={disabled}\n appearance={appearance}\n size={size}\n contentBefore={contentBefore}\n onClick={handleInputClick}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n ...style,\n }}\n contentAfter={\n <div\n onClick={e => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n }}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Icon icon=\"fluent:calendar-24-regular\" />\n </div>\n }\n />\n </PopoverTrigger>\n <PopoverSurface tabIndex={-1} style={{ maxWidth: '530px' }}>\n <Calendar\n value={dateValue}\n onSelectDate={onSelectDate}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n maxDate={max ? new Date(max) : undefined}\n />\n </PopoverSurface>\n </Popover>\n );\n },\n);\n\nDatePickerInput.displayName = 'DatePickerInput';\n\nexport default DatePickerInput;\n","import React, { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport {\n Button,\n Checkbox,\n Field,\n Input,\n Label,\n Radio,\n RadioGroup,\n Switch,\n Text,\n Textarea,\n makeStyles,\n tokens,\n typographyStyles,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Control, Controller, FieldValues, Path } from 'react-hook-form';\nimport PhoneInputComponent from 'react-phone-input-2';\n// import 'react-phone-input-2/lib/style.css';\nimport Select from 'react-select';\n\nimport tokensV2, { fontWeight, sharedColors } from '../../constants/generated/tokensV2';\n\nimport DatePickerInput from './DatePickerInput';\nimport { InputDynamicProps, InputType, PhoneValue, CountryCode, SelectOption, RadioOption } from './types';\n\n// Handle both default and named exports for PhoneInput\nconst PhoneInput = (PhoneInputComponent as any).default || PhoneInputComponent;\nconst useStyles = makeStyles({\n field: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n marginBottom: tokens.spacingVerticalM,\n },\n errorText: {\n color: tokens.colorPaletteRedBackground1,\n fontSize: tokens.fontSizeBase200,\n },\n helperText: {\n color: tokens.colorNeutralForeground2,\n fontSize: tokens.fontSizeBase200,\n },\n disabledFilledLighter: {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n '& input': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n },\n },\n fileInput: {\n padding: tokens.spacingVerticalS,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n backgroundColor: tokens.colorNeutralBackground1,\n fontSize: tokens.fontSizeBase300,\n '&:focus': {\n outline: `2px solid ${tokens.colorBrandStroke1}`,\n },\n },\n reactSelect: {\n // Custom styles akan dihandle via styles prop react-select\n },\n reactSelectError: {\n // Custom styles akan dihandle via styles prop react-select\n },\n phoneContainer: {\n display: 'flex',\n gap: tokens.spacingHorizontalS,\n alignItems: 'flex-start',\n width: '100%',\n },\n phoneCountrySelect: {\n minWidth: '120px',\n maxWidth: '120px',\n flexShrink: 0,\n },\n switchWrapper: {\n '& .fui-Switch': {\n minHeight: '20px',\n },\n '& .fui-Switch__indicator': {\n height: '20px',\n width: '40px',\n borderRadius: '10px',\n },\n '& .fui-Switch__thumb': {\n height: '14px',\n width: '14px',\n borderRadius: '50%',\n },\n },\n otpInput: {\n '& input': {\n textAlign: 'center',\n },\n },\n inputWithAutocomplete: {\n '& input:-webkit-autofill': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n '-webkit-text-fill-color': `${tokens.colorNeutralForeground1} !important`,\n },\n '& input:-webkit-autofill:hover': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:focus': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:active': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n },\n phoneInputWrapper: {\n width: '100%',\n '& .react-tel-input': {\n width: '100%',\n },\n '& .react-tel-input .form-control': {\n width: '100%',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingVerticalS,\n paddingLeft: '48px',\n fontSize: tokens.fontSizeBase300,\n fontFamily: tokens.fontFamilyBase,\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n outline: 'none',\n height: 'auto',\n minHeight: '40px',\n },\n '& .react-tel-input .form-control::placeholder': {\n fontSize: tokens.fontSizeBase400,\n },\n '& .react-tel-input .form-control:hover': {\n border: `1px solid ${tokens.colorNeutralStroke1Hover}`,\n },\n '& .react-tel-input .form-control:focus': {\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\n // boxShadow: `0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n '& .react-tel-input .form-control:disabled': {\n backgroundColor: tokens.colorNeutralBackground4,\n color: tokens.colorNeutralForegroundDisabled,\n cursor: 'not-allowed',\n },\n '& .react-tel-input .flag-dropdown': {\n border: 'none',\n backgroundColor: 'transparent',\n borderRadius: tokens.borderRadiusMedium,\n },\n '& .react-tel-input .selected-flag': {\n padding: '0 0 0 8px',\n width: '40px',\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .selected-flag:hover': {\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .flag-dropdown.open .selected-flag': {\n backgroundColor: 'transparent',\n },\n },\n phoneInputError: {\n '& .react-tel-input .form-control': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n },\n '& .react-tel-input .form-control:focus': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n boxShadow: `0 0 0 1px ${tokens.colorPaletteRedBorder2}`,\n },\n },\n classRadioGroup: {\n display: 'flex',\n flexDirection: 'row',\n gap: '12px',\n },\n classRadio: {\n '& .fui-Radio__indicator': {\n display: 'none',\n },\n '& .fui-Radio__label': {\n padding: '10px 24px',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusCircular,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n fontSize: tokens.fontSizeBase300,\n color: tokens.colorNeutralForeground2,\n },\n '&:hover .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n },\n '& .fui-Radio__input:checked ~ .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Fallback for aria-checked if needed\n '&[aria-checked=\"true\"] .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Disabled state styling\n '& .fui-Radio__input:disabled ~ .fui-Radio__label': {\n opacity: 0.6,\n cursor: 'not-allowed',\n backgroundColor: tokens.colorNeutralBackground4,\n },\n '&:hover .fui-Radio__input:disabled ~ .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n },\n },\n});\n\n// Helper function to check if it's a valid phone number start\n// const isValidPhoneStart = (value: string): boolean => {\n// if (!value || value.length < 6) return false;\n\n// // Phone number patterns for international numbers:\n// // - Must be all digits\n// // - Length between 6-15 digits (international standard)\n// // - Common patterns: starts with 0, +, or direct country code (1-9)\n// const cleanValue = value.replace(/[\\s\\-\\(\\)]/g, ''); // Remove common phone formatting\n\n// // Check if it's all digits (after removing + at start if present)\n// const numericValue = cleanValue.replace(/^\\+/, '');\n// const isAllDigits = /^\\d+$/.test(numericValue);\n\n// // Must be all digits and have reasonable length for phone number (6-15 digits)\n// return isAllDigits && numericValue.length >= 6 && numericValue.length <= 15;\n// };\n\n// Helper function to detect input type for identity field\nconst detectIdentityType = (value: string): 'email' | 'phone' | 'id' => {\n if (!value) return 'id';\n\n // Ensure value is a string to prevent \"includes/startsWith is not a function\" errors\n const stringValue = String(value);\n\n // Check if it's an email (contains @)\n if (stringValue.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (stringValue.startsWith('+')) return 'phone';\n\n // Check if it's all numeric (phone without +)\n // This handles the case when PhoneInput returns just numbers\n // const isAllNumeric = /^\\d+$/.test(value);\n // if (isAllNumeric && value.length >= 10) return 'phone';\n\n // Otherwise it's an ID (KTP/SIM/Passport - mixed alphanumeric or short numbers)\n return 'id';\n};\n\nconst detectEmailOrPhone = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (value.startsWith('+')) return 'phone';\n\n return 'none';\n};\n\n// Helper function khusus untuk emailOrPhone type - deteksi lebih strict\nconst detectEmailOrPhoneStrict = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with + (international format)\n if (value.startsWith('+')) return 'phone';\n\n // Check if it's Indonesian phone format starting with 0 (e.g., 08xxx)\n if (/^0\\d/.test(value)) return 'phone';\n\n // Check if it's Indonesian phone without + (e.g., 628xxx)\n if (/^62\\d/.test(value)) return 'phone';\n\n return 'none';\n};\n\nconst InputDynamic: React.FC<InputDynamicProps> = ({\n name,\n control,\n label,\n type,\n placeholder,\n required = false,\n disabled = false,\n options = [],\n multiple = false,\n accept,\n rows = 3,\n min,\n max,\n step,\n isMultiSelect = false,\n selectScrollbarColor,\n contentBefore,\n appearance = 'outline',\n validationRules,\n helperText,\n className,\n layout,\n size,\n onClick,\n style,\n defaultCountry = 'ID',\n maxLength,\n autoAdvance = false,\n otpIndex,\n hasError = false,\n autoComplete,\n onInput,\n contentAfter,\n onChange,\n}: InputDynamicProps) => {\n\n const styles = useStyles();\n const [showPassword, setShowPassword] = useState(false);\n const [isPhoneMode, setIsPhoneMode] = useState(false);\n const [emailOrPhoneType, setEmailOrPhoneType] = useState<'email' | 'phone' | 'none'>('none');\n const [identityType, setIdentityType] = useState<'email' | 'phone' | 'id'>('id');\n const [lastPhoneValue, setLastPhoneValue] = useState('');\n const [lastEmailOrPhoneValue, setLastEmailOrPhoneValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const phoneInputRef = useRef<any>(null);\n const emailOrPhoneInputRef = useRef<any>(null);\n const shouldFocusRef = useRef(false);\n const isBackspaceNavigationRef = useRef(false);\n\n // Custom styles untuk react-select\n const getSelectStyles = (hasError: boolean) => ({\n menuPortal: (base: any) => ({\n ...base,\n zIndex: 9999999,\n borderRadius: tokens.borderRadiusMedium,\n }),\n control: (provided: any, state: any) => ({\n ...provided,\n borderColor: hasError\n ? tokens.colorPaletteRedBorder2\n : state.isFocused\n ? tokens.colorBrandStroke1\n : tokens.colorNeutralStroke1,\n borderRadius: tokens.borderRadiusMedium,\n minHeight: '40px',\n fontSize: tokens.fontSizeBase400,\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: state.isFocused\n ? `0 0 0 2px ${hasError ? tokens.colorPaletteRedBorder2 : tokens.colorBrandStroke1}`\n : 'none',\n '&:hover': {\n borderColor: hasError ? tokens.colorPaletteRedBorder2 : tokens.colorNeutralStroke1Hover,\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n zIndex: 9999,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: 0, // Opsional: bersihkan padding agar scrollbar mepet ke pinggir\n maxHeight: '300px', // Pastikan ada limit height agar scrollbar muncul\n\n /* Targetkan Webkit Scrollbar di menuList */\n '&::-webkit-scrollbar': {\n width: '8px',\n display: 'block', // Pastikan tampil\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: tokens.colorNeutralBackground2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: selectScrollbarColor || tokens.colorNeutralStroke2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackground,\n },\n '&::-webkit-scrollbar-thumb:active': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackgroundPressed,\n },\n }),\n option: (provided: any, state: any) => ({\n ...provided,\n fontSize: tokens.fontSizeBase300,\n color: state.isSelected\n ? tokens.colorNeutralForegroundOnBrand\n : tokens.colorNeutralForeground1,\n backgroundColor: state.isSelected\n ? tokens.colorBrandBackground\n : state.isFocused\n ? tokens.colorNeutralBackground1Hover\n : 'transparent',\n }),\n placeholder: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground3,\n fontSize: tokens.fontSizeBase400,\n }),\n singleValue: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase400,\n }),\n });\n\n // Focus the input when mode changes\n useEffect(() => {\n if (shouldFocusRef.current) {\n // Small delay to ensure the new input is mounted\n setTimeout(() => {\n // console.log(\n // 'Focusing input for type:',\n // identityType,\n // 'shouldFocusRef:',\n // shouldFocusRef.current,\n // );\n if (identityType === 'phone' && phoneInputRef.current) {\n // PhoneInput uses an internal input element\n const phoneInput = phoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n // Set cursor to end of input\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n // Set cursor to end of input only for text-like inputs\n // email, number, date, etc. don't support setSelectionRange\n const inputType = inputRef.current.type;\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [identityType]);\n\n // Focus handling for emailOrPhone type\n useEffect(() => {\n if (shouldFocusRef.current && type === 'emailOrPhone') {\n setTimeout(() => {\n if (emailOrPhoneType === 'phone' && emailOrPhoneInputRef.current) {\n const phoneInput = emailOrPhoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n const inputType = inputRef.current.type;\n // Only use setSelectionRange on input types that support it\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [emailOrPhoneType, type]);\n\n // const updatePhoneMode = (value: any) => {\n // const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n // const nextMode = isValidPhoneStart(stringValue);\n // if (nextMode !== isPhoneMode) {\n // setIsPhoneMode(nextMode);\n // }\n // };\n\n const updateIdentityType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n const detectedType = detectIdentityType(stringValue);\n if (detectedType !== identityType) {\n setIdentityType(detectedType);\n }\n };\n\n const updateEmailOrPhoneType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : '';\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n if (detectedType !== emailOrPhoneType) {\n setEmailOrPhoneType(detectedType);\n }\n };\n\n const renderInput = (field: any, error?: string) => {\n // Make border transparent when disabled and appearance is not outline/underline\n const shouldTransparentBorder =\n disabled && appearance !== 'outline' && appearance !== 'underline';\n\n const inputStyle = shouldTransparentBorder ? { ...style, border: 'transparent' } : style;\n\n const handleInputChange = (e: any) => {\n field.onChange(e);\n if (onChange) {\n onChange(e.target?.value ?? e);\n }\n };\n\n const commonProps = {\n ...field,\n onChange: handleInputChange,\n value: field.value ?? '',\n placeholder,\n disabled,\n appearance: error ? 'invalid' : appearance,\n size,\n contentBefore,\n onClick,\n style: inputStyle,\n maxLength,\n autoComplete: autoComplete || 'off',\n contentAfter,\n max,\n } as const;\n const otpMatch = /^otp(\\d+)$/.exec(String(name));\n const otpIndex = otpMatch ? parseInt(otpMatch[1], 10) : null;\n\n // Handle emailOrPhone type - khusus untuk email atau nomor HP saja\n if (type === 'emailOrPhone') {\n updateEmailOrPhoneType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' = 'text';\n let inputPlaceholder = placeholder || 'Email atau Nomor HP';\n\n if (emailOrPhoneType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (emailOrPhoneType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor HP';\n }\n\n // Normalize Indonesian phone numbers: convert 08xxx to +628xxx\n const normalizePhoneNumber = (val: string): string => {\n if (!val) return val;\n // Convert 08xxx to +628xxx\n if (val.startsWith('08')) {\n return '+62' + val.substring(1);\n }\n // Convert 628xxx to +628xxx\n if (val.startsWith('62') && !val.startsWith('+')) {\n return '+' + val;\n }\n return val;\n };\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n const match = val.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return val;\n };\n\n const displayValue =\n emailOrPhoneType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {emailOrPhoneType === 'phone' ? (\n <div\n ref={emailOrPhoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n\n const countryDialCode = data?.dialCode || '';\n\n if (value === countryDialCode) {\n const dialCodeChanged =\n lastEmailOrPhoneValue &&\n lastEmailOrPhoneValue !== countryDialCode &&\n !lastEmailOrPhoneValue.startsWith(countryDialCode);\n\n const isInitial = !lastEmailOrPhoneValue;\n const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n return;\n } else {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n }\n\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = emailOrPhoneType !== detectEmailOrPhoneStrict(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n // Auto-normalize phone numbers for Indonesian format\n let normalizedValue = newValue;\n const detectedType = detectEmailOrPhoneStrict(newValue);\n if (detectedType === 'phone') {\n normalizedValue = normalizePhoneNumber(newValue);\n }\n\n field.onChange(normalizedValue);\n updateEmailOrPhoneType(normalizedValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n // If this is an identity type, check and update mode\n if (type === 'identity') {\n // update type whenever value changes\n updateIdentityType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' | 'number' = 'text';\n let inputPlaceholder = placeholder || 'Email, KTP, SIM, Passport, atau Nomor Telepon';\n\n if (identityType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (identityType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor telepon';\n } else if (identityType === 'id') {\n inputType = 'text';\n inputPlaceholder = placeholder || 'KTP, SIM, atau Passport';\n }\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n // E.g., 6208... should become 628...\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const displayValue = identityType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {identityType === 'phone' ? (\n <div\n ref={phoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n // If completely empty, switch back to id mode\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n\n // Get the country dial code\n const countryDialCode = data?.dialCode || '';\n\n // If value is just the country code\n if (value === countryDialCode) {\n // Check if dial code changed (user is changing country)\n const dialCodeChanged =\n lastPhoneValue &&\n lastPhoneValue !== countryDialCode &&\n !lastPhoneValue.startsWith(countryDialCode);\n\n // Check if this is initial state (user just typed +)\n const isInitial = !lastPhoneValue;\n\n // Check if user had a full number and now changing country\n const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n // Keep in phone mode\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n return;\n } else {\n // User is deleting digits back to dial code only - switch to ID\n shouldFocusRef.current = true; // Set focus flag before switching\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n }\n\n // PhoneInput returns value without +, so we add it\n const phoneValue = '+' + value;\n\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = identityType !== detectIdentityType(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n field.onChange(newValue);\n\n // Update type whenever input changes\n updateIdentityType(newValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n switch (type) {\n case 'textarea':\n return <Textarea {...commonProps} rows={rows} resize=\"vertical\" />;\n\n case 'select':\n return (\n <Select\n {...field}\n name={`${String(name)}_${Math.random().toString(36).substring(7)}`}\n isDisabled={disabled}\n placeholder={placeholder}\n options={options}\n styles={getSelectStyles(!!error)}\n className={styles.reactSelect}\n classNamePrefix=\"react-select\"\n isMulti={isMultiSelect}\n inputProps={{\n autoComplete: 'new-password',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n spellCheck: 'false',\n }}\n value={\n isMultiSelect\n ? options.filter(option => field.value?.includes(option.value))\n : options.find(option => option.value === field.value) || null\n }\n onChange={(selectedOption: any) => {\n if (isMultiSelect) {\n const values = selectedOption\n ? selectedOption.map((opt: SelectOption) => opt.value)\n : [];\n field.onChange(values);\n } else {\n field.onChange(selectedOption ? selectedOption.value : '');\n }\n }}\n getOptionLabel={(option: SelectOption) => option.label}\n getOptionValue={(option: SelectOption) => option.value}\n isOptionDisabled={(option: SelectOption) => option.disabled || false}\n \n />\n );\n\n case 'phone': {\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const cleanedFieldValue = cleanPhoneValue(field.value || '');\n\n return (\n <div className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}>\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={cleanedFieldValue}\n onChange={(value: string, data: any) => {\n const cleanedValue = cleanPhoneValue(value || '');\n field.onChange(cleanedValue);\n }}\n placeholder={placeholder || 'Nomor telepon'}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n );\n }\n\n \n case 'file':\n return (\n <input\n {...field}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n disabled={disabled}\n className={styles.fileInput}\n value={undefined}\n onChange={e => {\n const files = e.target.files;\n field.onChange(multiple ? files : files?.[0]);\n }}\n />\n );\n\n case 'switch':\n return (\n <div className={styles.switchWrapper}>\n <Switch\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n />\n </div>\n );\n\n case 'date': {\n return (\n <DatePickerInput\n field={field}\n placeholder={placeholder}\n disabled={disabled}\n appearance={error ? 'outline' : appearance}\n size={size}\n onClick={onClick}\n style={inputStyle}\n max={max ? String(max) : undefined}\n />\n );\n }\n\n case 'radio':\n return (\n <RadioGroup {...field} disabled={disabled} layout={layout ?? 'vertical'}>\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </RadioGroup>\n );\n\n case 'radiobutton':\n return (\n <RadioGroup\n {...field}\n disabled={disabled}\n layout={layout ?? 'horizontal'}\n className={styles.classRadioGroup}\n >\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={disabled || option.disabled}\n className={styles.classRadio}\n />\n ))}\n </RadioGroup>\n );\n\n case 'checkbox':\n return (\n <Checkbox\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n label={label}\n />\n );\n\n case 'number':\n return (\n <Input\n {...commonProps}\n type=\"number\"\n min={min}\n max={max}\n step={step}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'time':\n case 'datetime-local':\n return (\n <Input\n {...commonProps}\n type={type}\n min={min}\n max={max}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'password':\n return (\n <Input\n {...commonProps}\n type={showPassword ? 'text' : 'password'}\n className={styles.inputWithAutocomplete}\n contentAfter={\n <Button\n appearance=\"transparent\"\n icon={\n showPassword ? (\n <Icon icon=\"fluent:eye-off-24-filled\" />\n ) : (\n <Icon icon=\"fluent:eye-24-filled\" />\n )\n }\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n onClick={() => setShowPassword(!showPassword)}\n tabIndex={-1}\n type=\"button\"\n />\n }\n />\n );\n\n case 'otp': {\n // OTP specific handling\n const setRefs = (el: any) => {\n try {\n if (field.ref) {\n if (typeof field.ref === 'function') field.ref(el);\n else (field.ref as MutableRefObject<any>).current = el;\n }\n } catch {\n /* ignore */\n }\n (inputRef as MutableRefObject<HTMLInputElement | null>).current = el;\n };\n\n const handleChange = (e: any) => {\n const val = e?.target?.value ?? '';\n const numericValue = val.replace(/\\D/g, '');\n\n // Update nilai input langsung\n if (inputRef.current) {\n inputRef.current.value = numericValue;\n }\n\n // Buat event baru dengan nilai numeric\n const numericEvent = {\n ...e,\n target: {\n ...e.target,\n value: numericValue,\n },\n };\n\n field.onChange(numericEvent);\n\n if (autoAdvance && otpIndex && maxLength && numericValue.length >= maxLength) {\n const next = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${otpIndex + 1}\"]`,\n );\n if (next) next.focus();\n }\n };\n\n const handleKeyPress = (e: any) => {\n const char = e.key;\n if (\n !/^\\d$/.test(char) &&\n char !== 'Backspace' &&\n char !== 'Delete' &&\n char !== 'Tab' &&\n char !== 'ArrowLeft' &&\n char !== 'ArrowRight'\n ) {\n e.preventDefault();\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (e.key === 'Backspace') {\n const curVal = field.value || '';\n if (!curVal && otpIndex !== null && otpIndex !== undefined) {\n const prevIndex = otpIndex - 1;\n if (prevIndex >= 1) {\n // Set flag before focusing to prevent handleFocus interference\n isBackspaceNavigationRef.current = true;\n const prev = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${prevIndex}\"]`,\n );\n if (prev) {\n prev.focus();\n // Flag will be reset in handleFocus after navigation completes\n }\n }\n }\n }\n };\n\n const handleClick = (e: any) => {\n // Prevent clicking on previous inputs - redirect to correct position\n if (otpIndex) {\n // Find the last filled input\n let lastFilledIndex = 0;\n for (let i = 1; i <= 6; i++) {\n const input = document.querySelector<HTMLInputElement>(`[data-otp-index=\"${i}\"]`);\n if (input && input.value) {\n lastFilledIndex = i;\n } else {\n break;\n }\n }\n\n // Determine target index: if all filled, stay on last; otherwise go to first empty\n const targetIndex = lastFilledIndex === 6 ? 6 : lastFilledIndex + 1;\n\n // If user clicks on any input before the target, redirect to target\n if (otpIndex < targetIndex) {\n e.preventDefault();\n const targetInput = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${targetIndex}\"]`,\n );\n if (targetInput) {\n targetInput.focus();\n const length = targetInput.value?.length || 0;\n setTimeout(() => {\n targetInput.setSelectionRange(length, length);\n }, 0);\n }\n return;\n }\n }\n\n // If click on current input, ensure cursor is at the end\n if (inputRef.current) {\n const length = inputRef.current.value?.length || 0;\n setTimeout(() => {\n inputRef.current?.setSelectionRange(length, length);\n }, 0);\n }\n };\n\n const handleMouseDown = (e: any) => {\n // Track that user is clicking (not using keyboard navigation)\n isBackspaceNavigationRef.current = false;\n\n // Cegah seleksi teks dengan mouse\n if (field.value) {\n e.preventDefault();\n if (inputRef.current) {\n inputRef.current.focus();\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n }\n };\n\n const handleSelect = (e: any) => {\n // Paksa kursor tetap di akhir\n if (inputRef.current && field.value) {\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n };\n\n const handleFocus = (e: any) => {};\n\n const inputAttrs: any = {};\n if (otpIndex) inputAttrs['data-otp-index'] = otpIndex;\n\n // Default OTP styles\n const otpStyles = {\n height: '57px',\n borderRadius: tokens.borderRadiusXLarge,\n textAlign: 'center' as const,\n ...typographyStyles.title2,\n fontWeight: fontWeight.Medium,\n lineHeight: tokens.lineHeightHero800,\n borderColor: hasError ? sharedColors.Shared_Cranberry_Primary : undefined,\n ...style, // Allow override from props\n };\n\n return (\n <Input\n {...commonProps}\n type=\"tel\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyPress={handleKeyPress}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n onSelect={handleSelect}\n onFocus={handleFocus}\n ref={setRefs}\n style={otpStyles}\n className={styles.otpInput}\n {...inputAttrs}\n />\n );\n }\n\n default:\n return (\n <Input\n {...commonProps}\n type={type}\n onInput={onInput}\n className={styles.inputWithAutocomplete}\n />\n );\n }\n };\n\n const getValidationRules = () => {\n const rules: any = {};\n\n if (required) {\n rules.required = validationRules?.required || 'Field ini wajib diisi';\n }\n\n if (validationRules?.minLength) {\n rules.minLength = validationRules.minLength;\n }\n\n if (validationRules?.maxLength) {\n rules.maxLength = validationRules.maxLength;\n }\n\n if (validationRules?.pattern) {\n rules.pattern = validationRules.pattern;\n }\n\n if (validationRules?.min) {\n rules.min = validationRules.min;\n }\n\n if (validationRules?.max) {\n rules.max = validationRules.max;\n }\n\n if (validationRules?.validate) {\n rules.validate = validationRules.validate;\n }\n\n // Add default email validation\n if (type === 'email') {\n rules.pattern = {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n message: 'Email tidak valid',\n };\n }\n\n // Add validation for emailOrPhone type - khusus email atau nomor HP\n if (type === 'emailOrPhone') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Email atau nomor HP wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : '';\n\n if (!stringValue) return true;\n\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor HP harus dalam format internasional (contoh: +628123456789)';\n }\n const phoneDigits = stringValue.substring(1);\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor HP hanya boleh berisi angka setelah +';\n }\n if (phoneDigits.length < 10) {\n return 'Nomor HP minimal 10 digit';\n }\n } else {\n return 'Masukkan email atau nomor HP yang valid';\n }\n\n return true;\n };\n }\n\n // Add validation for identity type (can be email, phone, or other ID)\n if (type === 'identity') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Field ini wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n\n if (!stringValue) return true;\n\n const detectedType = detectIdentityType(stringValue);\n\n // Validate based on detected type\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor telepon harus diawali dengan +';\n }\n const phoneDigits = stringValue.substring(1); // Remove + prefix\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor telepon hanya boleh berisi angka setelah +';\n }\n }\n // else if (detectedType === 'id') {\n // // Validate ID (only digits for KTP/SIM/Passport numbers)\n // if (!/^\\d+$/.test(stringValue)) {\n // return 'Nomor identitas hanya boleh berisi angka';\n // }\n // }\n\n return true;\n };\n }\n\n // Add default phone validation\n if (type === 'phone') {\n rules.validate = (value: string) => {\n if (required && !value) {\n return 'Nomor telepon wajib diisi';\n }\n // react-phone-number-input already handles validation\n return true;\n };\n }\n\n \n\n return rules;\n };\n\n return (\n <Controller\n name={name}\n control={control}\n rules={getValidationRules()}\n render={({ field, fieldState: { error } }) => (\n <Field\n className={`${styles.field} ${className || ''}`}\n validationMessage={error?.message}\n validationState={error ? 'error' : 'none'}\n >\n {label && type !== 'checkbox' && <Label required={required}>{label}</Label>}\n\n {renderInput(field, error?.message)}\n\n {helperText && !error && (\n <Text size={200} style={{ textAlign: 'left' }} className={styles.helperText}>\n {helperText}\n </Text>\n )}\n </Field>\n )}\n />\n );\n}\n\nexport default InputDynamic;\n\n","import { CountryCode } from './types';\n\n// Default country codes\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'BA',\n name: 'Bosnia and Herzegovina',\n dialCode: '+387',\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\n },\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'CF',\n name: 'Central African Republic',\n dialCode: '+236',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\n\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\n\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\n\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n {\n code: 'KN',\n name: 'Saint Kitts and Nevis',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'VC',\n name: 'Saint Vincent and the Grenadines',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'ST',\n name: 'Sao Tome and Principe',\n dialCode: '+239',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'TC',\n name: 'Turks and Caicos Islands',\n dialCode: '+1',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n {\n code: 'AE',\n name: 'United Arab Emirates',\n dialCode: '+971',\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\n },\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\n];\n","import { Language } from '../../types/globalTypes';\nimport { CardTicketSearchLabels } from './CardTicketSearch.types';\n\nexport const DEFAULT_LABELS: Record<Language, CardTicketSearchLabels> = {\n id: {\n fromLabel: 'Dari',\n toLabel: 'Ke',\n departureDateLabel: 'Tanggal Berangkat',\n returnDateLabel: 'Tanggal Pulang',\n serviceClassLabel: 'Kelas Layanan',\n typeOfServiceLabel: 'Jenis Layanan',\n passengerLabel: 'Penumpang',\n roundTripLabel: 'Pulang Pergi',\n searchButton: 'Cari Tiket',\n placeholderPort: 'Pilih Pelabuhan Asal',\n placeholderDestinationPort: 'Pilih Pelabuhan Tujuan',\n placeholderDepartureDate: 'Pilih Tanggal Keberangkatan',\n placeholderReturnDate: 'Pilih Tanggal Kepulangan',\n placeholderTypeClass: 'Pilih Kelas Layanan',\n placeholderTypeService: 'Pilih Jenis Layanan',\n placeholderPassenger: 'Pilih Jumlah Penumpang',\n },\n en: {\n fromLabel: 'From',\n toLabel: 'To',\n departureDateLabel: 'Departure Date',\n returnDateLabel: 'Return Date',\n serviceClassLabel: 'Service Class',\n typeOfServiceLabel: 'Service Type',\n passengerLabel: 'Passenger',\n roundTripLabel: 'Round Trip',\n searchButton: 'Search Ticket',\n placeholderPort: 'Select Origin Port',\n placeholderDestinationPort: 'Select Destination Port',\n placeholderDepartureDate: 'Select Departure Date',\n placeholderReturnDate: 'Select Return Date',\n placeholderTypeClass: 'Select Service Class',\n placeholderTypeService: 'Select Service Type',\n placeholderPassenger: 'Select Number of Passengers',\n },\n};\n\nexport const DEFAULT_MENU_ITEMS = [\n {\n id: 'ferry',\n label: 'Ferry',\n logo: '/assets/images/icons/ferry.svg',\n description: 'ASDP Ferry Crossing Service',\n },\n {\n id: 'ifcs',\n label: 'IFCS',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Ferry Control System',\n },\n {\n id: 'skpt',\n label: 'SKPT',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Passenger Ticketing System',\n },\n {\n id: 'hotel',\n label: 'Hotel',\n logo: '/assets/images/icons/hotel.svg',\n description: 'Hotel Booking Service',\n },\n {\n id: 'other',\n label: 'Other',\n logo: '/assets/images/icons/other.svg',\n description: 'Other Services',\n },\n];\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#000000',\n '20': '#03060e',\n '30': '#060b1c',\n '40': '#09112a',\n '50': '#0c1738',\n '60': '#122255',\n '70': '#182e71',\n '80': '#1e398d',\n '90': '#4b60a4',\n '100': '#7787bb',\n '110': '#a4afd1',\n '120': '#bac2dd',\n '130': '#d0d6e8',\n '140': '#e7e9f4',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '80': 8,\n '100': 10,\n '120': 12,\n '130': 13,\n '150': 15,\n '160': 16,\n '180': 18,\n '200': 20,\n '220': 22,\n '240': 24,\n '280': 28,\n '300': 30,\n '320': 32,\n '340': 34,\n '360': 36,\n '400': 40,\n '440': 44,\n '450': 45,\n '470': 47,\n '480': 48,\n '500': 50,\n '510': 51,\n '520': 52,\n '560': 56,\n '600': 60,\n '790': 79,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1050': 105,\n '1120': 112,\n '1200': 120,\n '1222': 122,\n '1360': 136,\n '1520': 152,\n '2000': 200,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '220': 22,\n};\n\nexport const fontWeight = {\n 'medium': 500,\n 'semibold': 600,\n 'bold': 700,\n};\n\nexport const lineHeight = {};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#8dc63f',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#1e398d',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#1e398d',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#00969f',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#00b3bd',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#7ad7dd',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\nexport const schemaColors = {\n 'secondary': '#426900',\n 'outline_variant': '#C4C7C7',\n 'Surface_Variant': '#E0E3E3',\n 'Primary': '#004F8F',\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n lightModeColors,\n darkModeColors,\n schemaColors,\n};\n","import { BrandVariants } from '@fluentui/react-components';\n\n// import { brandColors } from './generated/tokens';\nimport { brandColors as brandColorsV1 } from './generated/tokens';\nimport { brandColors as brandColorsV2 } from './generated/tokensV2';\n\n\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\nconst brandColors = !isV2Path ? brandColorsV2 : brandColorsV1;\n/**\n * Brand Colors from generated tokens (auto-resolved from Figma)\n * All token references have been resolved at build time\n */\nexport const customBrand: BrandVariants = {\n 10: brandColors['10'],\n 20: brandColors['20'],\n 30: brandColors['30'],\n 40: brandColors['40'],\n 50: brandColors['50'],\n 60: brandColors['60'],\n 70: brandColors['70'],\n 80: brandColors['80'],\n 90: brandColors['90'],\n 100: brandColors['100'],\n 110: brandColors['110'],\n 120: brandColors['120'],\n 130: brandColors['130'],\n 140: brandColors['140'],\n 150: brandColors['150'],\n 160: brandColors['160'],\n};\n","/**\n * Design Tokens from generated Figma tokens\n * All token references have been resolved at build time\n */\n\nimport {\n borderRadius as borderRadiusV1,\n darkModeColors as darkColorsV1,\n lightModeColors as lightColorsV1,\n spacing as spacingV1,\n strokeWidth as strokeWidthV1,\n} from './generated/tokens';\nimport {\n borderRadius as borderRadiusV2,\n darkModeColors as darkColorsV2,\n lightModeColors as lightColorsV2,\n spacing as spacingV2,\n strokeWidth as strokeWidthV2,\n} from './generated/tokensV2';\n\n// Check if current path starts with /v2\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\n// Select tokens based on path\nconst generatedBorderRadius = !isV2Path ? borderRadiusV2 : borderRadiusV1;\nconst generatedDarkColors = !isV2Path ? darkColorsV2 : darkColorsV1;\nconst generatedLightColors = !isV2Path ? lightColorsV2 : lightColorsV1;\nconst generatedSpacing = !isV2Path ? spacingV2 : spacingV1;\nconst generatedStrokeWidth = !isV2Path ? strokeWidthV2 : strokeWidthV1;\n\n\n/**\n * Core design system tokens\n */\nexport const designTokens = {\n // Spacing from Figma\n spacing: {\n none: '0px',\n xxs: `${generatedSpacing['20']}px`,\n xs: `${generatedSpacing['40']}px`,\n sNudge: `${generatedSpacing['60']}px`,\n s: `${generatedSpacing['80']}px`,\n mNudge: `${generatedSpacing['100']}px`,\n m: `${generatedSpacing['120']}px`,\n l: `${generatedSpacing['160']}px`,\n xl: `${generatedSpacing['200']}px`,\n xxl: `${generatedSpacing['240']}px`,\n xxxl: `${generatedSpacing['320']}px`,\n },\n\n // Border radius from Figma\n borderRadius: {\n none: 0,\n small: generatedBorderRadius['20'],\n medium: generatedBorderRadius['40'],\n large: generatedBorderRadius['80'],\n xLarge: generatedBorderRadius['120'],\n circular: '50%',\n },\n\n // Typography - Font sizes\n fontSize: {\n 100: 10,\n 200: 12,\n 300: 14,\n 400: 16,\n 500: 20,\n 550: 22,\n 600: 24,\n 700: 28,\n 800: 32,\n 900: 40,\n 1000: 68,\n },\n\n // Typography - Font weights\n fontWeight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n\n // Typography - Line heights\n lineHeight: {\n 100: 14,\n 200: 16,\n 300: 20,\n 400: 22,\n 500: 28,\n 600: 32,\n },\n\n // Font families\n fontFamily: {\n body: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n heading: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n mono: ['Consolas', 'Monaco', 'monospace'],\n },\n\n // Stroke widths\n strokeWidth: {\n thin: generatedStrokeWidth['10'],\n thick: generatedStrokeWidth['15'],\n thicker: generatedStrokeWidth['20'],\n thickest: generatedStrokeWidth['30'],\n },\n\n // Shadows\n shadows: {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n },\n\n // Breakpoints for responsive design\n breakpoints: {\n xs: '320px',\n sm: '480px',\n md: '768px',\n lg: '1024px',\n xl: '1200px',\n xxl: '1440px',\n },\n\n color: {\n customGreen: '#426900',\n },\n};\n\n/**\n * Light Mode Semantic Colors from generated tokens\n */\nexport const lightModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedLightColors.Neutral_Background_1_Rest,\n 2: generatedLightColors.Neutral_Background_2_Rest,\n 3: generatedLightColors.Neutral_Background_3_Rest,\n 4: generatedLightColors.Neutral_Background_4_Rest,\n 5: generatedLightColors.Neutral_Background_5_Rest,\n 6: generatedLightColors.Neutral_Background_6_Rest,\n inverted: generatedLightColors.Neutral_Background_Inverted_Rest,\n disabled: generatedLightColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedLightColors.Neutral_Foreground_1_Rest,\n 2: generatedLightColors.Neutral_Foreground_2_Rest,\n 3: generatedLightColors.Neutral_Foreground_3_Rest,\n 4: generatedLightColors.Neutral_Foreground_4_Rest,\n disabled: generatedLightColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedLightColors.Brand_Background_1_Rest,\n backgroundHover: generatedLightColors.Brand_Background_1_Hover,\n backgroundPressed: generatedLightColors.Brand_Background_1_Pressed,\n foreground: generatedLightColors.Brand_Foreground_1_Rest,\n stroke: generatedLightColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedLightColors.Status_Success_Foreground_1_Rest,\n warning: generatedLightColors.Status_Warning_Foreground_1_Rest,\n danger: generatedLightColors.Status_Danger_Foreground_1_Rest,\n error: generatedLightColors.Status_Danger_Foreground_1_Rest,\n info: '#0078d4',\n },\n\n // Borders\n border: {\n 1: generatedLightColors.Neutral_Stroke_1_Rest,\n 2: generatedLightColors.Neutral_Stroke_2_Rest,\n disabled: generatedLightColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n\n/**\n * Dark Mode Semantic Colors from generated tokens\n */\nexport const darkModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedDarkColors.Neutral_Background_1_Rest,\n 2: generatedDarkColors.Neutral_Background_2_Rest,\n 3: generatedDarkColors.Neutral_Background_3_Rest,\n 4: generatedDarkColors.Neutral_Background_4_Rest,\n 5: generatedDarkColors.Neutral_Background_5_Rest,\n 6: generatedDarkColors.Neutral_Background_6_Rest,\n inverted: generatedDarkColors.Neutral_Background_Inverted_Rest,\n disabled: generatedDarkColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedDarkColors.Neutral_Foreground_1_Rest,\n 2: generatedDarkColors.Neutral_Foreground_2_Rest,\n 3: generatedDarkColors.Neutral_Foreground_3_Rest,\n 4: generatedDarkColors.Neutral_Foreground_4_Rest,\n disabled: generatedDarkColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedDarkColors.Brand_Background_1_Rest,\n backgroundHover: generatedDarkColors.Brand_Background_1_Hover,\n backgroundPressed: generatedDarkColors.Brand_Background_1_Pressed,\n foreground: generatedDarkColors.Brand_Foreground_1_Rest,\n stroke: generatedDarkColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedDarkColors.Status_Success_Foreground_1_Rest,\n warning: generatedDarkColors.Status_Warning_Foreground_1_Rest,\n danger: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n error: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n info: '#4cc2ff',\n },\n\n // Borders\n border: {\n 1: generatedDarkColors.Neutral_Stroke_1_Rest,\n 2: generatedDarkColors.Neutral_Stroke_2_Rest,\n disabled: generatedDarkColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n","import { Theme, createDarkTheme, createLightTheme } from '@fluentui/react-components';\n\nimport { customBrand } from './brandColors';\nimport { darkModeColors, designTokens, lightModeColors } from './designTokens';\n\nexport const extendedTokens = {\n breakpointXs: designTokens.breakpoints.xs,\n breakpointSm: designTokens.breakpoints.sm,\n breakpointMd: designTokens.breakpoints.md,\n breakpointLg: designTokens.breakpoints.lg,\n breakpointXl: designTokens.breakpoints.xl,\n breakpointXxl: designTokens.breakpoints.xxl,\n};\n\n/**\n * Custom Light Theme using Figma Fluent UI Tokens\n */\nexport const customLightTheme: Theme = {\n ...createLightTheme(customBrand),\n\n // Brand colors from Figma\n colorBrandBackground: customBrand[80],\n colorBrandBackgroundHover: customBrand[70],\n colorBrandBackgroundPressed: customBrand[60],\n colorBrandBackgroundSelected: customBrand[80],\n colorBrandForeground1: customBrand[80],\n colorBrandForeground2: customBrand[70],\n colorBrandForegroundLink: customBrand[70],\n colorBrandForegroundLinkHover: customBrand[60],\n colorBrandForegroundLinkPressed: customBrand[50],\n colorBrandForegroundLinkSelected: customBrand[70],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: lightModeColors.background[1],\n colorNeutralBackground2: lightModeColors.background[2],\n colorNeutralBackground3: lightModeColors.background[3],\n colorNeutralBackground4: lightModeColors.background[4],\n colorNeutralBackground5: lightModeColors.background[5],\n colorNeutralBackground6: lightModeColors.background[6],\n colorNeutralBackgroundInverted: lightModeColors.background.inverted,\n colorNeutralBackgroundDisabled: lightModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: lightModeColors.foreground[1],\n colorNeutralForeground2: lightModeColors.foreground[2],\n colorNeutralForeground3: lightModeColors.foreground[3],\n colorNeutralForeground4: lightModeColors.foreground[4],\n colorNeutralForegroundDisabled: lightModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: lightModeColors.border[1],\n colorNeutralStroke2: lightModeColors.border[2],\n colorNeutralStrokeDisabled: lightModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: lightModeColors.status.success,\n colorPaletteYellowForeground1: lightModeColors.status.warning,\n colorPaletteRedForeground1: lightModeColors.status.danger,\n\n // Spacing from Figma Global tokens\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n // Border radius from Figma\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n // Shadows from design tokens\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n // Typography - Font families from Figma\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n // Font sizes from Figma Global tokens\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n // Font weights from Figma\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n // Line heights from Figma\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n // Stroke widths from Figma\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n/**\n * Custom Dark Theme using Figma Fluent UI Tokens\n */\nexport const customDarkTheme: Theme = {\n ...createDarkTheme(customBrand),\n\n // Brand colors from Figma (inverted for dark mode)\n colorBrandBackground: customBrand[100],\n colorBrandBackgroundHover: customBrand[110],\n colorBrandBackgroundPressed: customBrand[120],\n colorBrandBackgroundSelected: customBrand[100],\n colorBrandForeground1: customBrand[100],\n colorBrandForeground2: customBrand[110],\n colorBrandForegroundLink: customBrand[110],\n colorBrandForegroundLinkHover: customBrand[120],\n colorBrandForegroundLinkPressed: customBrand[130],\n colorBrandForegroundLinkSelected: customBrand[110],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: darkModeColors.background[1],\n colorNeutralBackground2: darkModeColors.background[2],\n colorNeutralBackground3: darkModeColors.background[3],\n colorNeutralBackground4: darkModeColors.background[4],\n colorNeutralBackground5: darkModeColors.background[5],\n colorNeutralBackground6: darkModeColors.background[6],\n colorNeutralBackgroundInverted: darkModeColors.background.inverted,\n colorNeutralBackgroundDisabled: darkModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: darkModeColors.foreground[1],\n colorNeutralForeground2: darkModeColors.foreground[2],\n colorNeutralForeground3: darkModeColors.foreground[3],\n colorNeutralForeground4: darkModeColors.foreground[4],\n colorNeutralForegroundDisabled: darkModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: darkModeColors.border[1],\n colorNeutralStroke2: darkModeColors.border[2],\n colorNeutralStrokeDisabled: darkModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: darkModeColors.status.success,\n colorPaletteYellowForeground1: darkModeColors.status.warning,\n colorPaletteRedForeground1: darkModeColors.status.danger,\n\n // Same spacing, border radius, typography as light theme\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n// Extended theme interface for custom properties\nexport interface ExtendedTheme extends Theme {\n // Custom color palette\n customColors: {\n light: typeof lightModeColors;\n dark: typeof darkModeColors;\n };\n\n // Design tokens\n designTokens: typeof designTokens;\n\n // Spacing helpers\n spacing: typeof designTokens.spacing;\n\n // Border radius helpers\n borderRadius: typeof designTokens.borderRadius;\n}\n\n// Create extended themes with additional properties\nexport const extendedLightTheme: ExtendedTheme = {\n ...customLightTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\nexport const extendedDarkTheme: ExtendedTheme = {\n ...customDarkTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\n// Theme variants for easy access\nexport const themeVariants = {\n light: customLightTheme,\n dark: customDarkTheme,\n extendedLight: extendedLightTheme,\n extendedDark: extendedDarkTheme,\n} as const;\n\n// Export current theme getter function\nexport const getCurrentTheme = (isDark: boolean, extended: boolean = false) => {\n if (extended) {\n return isDark ? extendedDarkTheme : extendedLightTheme;\n }\n return isDark ? customDarkTheme : customLightTheme;\n};\n","import React from 'react';\nimport { Button, Divider, makeStyles, tokens } from '@fluentui/react-components';\nimport { Icon } from '@iconify/react/dist/iconify.js';\nimport { Col, Row, Visible } from 'react-grid-system';\nimport { useForm, useWatch } from 'react-hook-form';\n\nimport { BackgroundTicketCard, BackgroundTicketCardVertical } from '../BackgroundTicketCard';\nimport { CardServiceMenu, ServiceId } from '../CardServiceMenu';\nimport { InputDynamic } from '../InputDynamic';\n\nimport {\n CardTicketSearchFormData,\n CardTicketSearchProps,\n} from './CardTicketSearch.types';\nimport { DEFAULT_LABELS } from './CardTicketSearch.constants';\nimport { extendedTokens } from '../../constants';\nimport { Language } from '../../types/globalTypes';\n\n\nconst useStyles = makeStyles({\n card: {\n position: 'relative',\n width: '100%',\n padding: 0,\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '0',\n },\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n scale: '1',\n },\n marginTop: '5rem',\n },\n svgBackground: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 0,\n },\n formField: {\n padding: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n borderRadius: tokens.borderRadiusXLarge,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n height: '100%',\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n },\n deviderButton: {\n display: 'flex',\n justifyContent: 'center',\n position: 'absolute',\n left: '18px',\n bottom: '-16px',\n width: '90%',\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n switchIcon: {\n display: 'inline-flex',\n transition: 'transform 0.3s ease',\n },\n switchIconRotate: {\n transform: 'rotate(180deg)',\n },\n searchButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n serviceMenuCard: {\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n margin: tokens.spacingVerticalM,\n },\n [`@media (min-width: ${extendedTokens.breakpointLg})`]: {\n margin: tokens.spacingVerticalL,\n },\n [`@media (min-width: ${extendedTokens.breakpointXl})`]: {\n margin: tokens.spacingVerticalXXXL,\n maxWidth: '70%',\n },\n },\n ticketSearchRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px !important',\n },\n },\n formContainerCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '20px !important',\n paddingRight: '20px !important',\n marginBottom: '1rem',\n marginTop: '8rem',\n },\n },\n serviceCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '15px !important',\n paddingRight: '15px !important',\n marginTop: '16px',\n },\n },\n formInnerRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n margin: '0 !important',\n },\n },\n formFieldRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n gap: '12px !important',\n },\n },\n});\n\nexport const CardTicketSearch: React.FC<CardTicketSearchProps> = ({\n language = 'id',\n from = '',\n to = '',\n startDate = '',\n endDate = '',\n roundTrip = false,\n serviceClass = '',\n typeOfService = '',\n passenger = '',\n toDisabled = false,\n endDateDisabled = false,\n serviceClassDisabled = false,\n typeOfServiceDisabled = false,\n switchDisabled = false,\n roundTripDisabled = false,\n submitDisabled = false,\n onFromClick,\n onToClick,\n onFromChange,\n onStartDateClick,\n onEndDateClick,\n onServiceClassClick,\n onTypeOfServiceClick,\n onPassengerClick,\n onSwitchClick,\n onRoundTripChange,\n onSubmit,\n activeServiceId = 'ferry',\n labels: customLabels,\n className,\n isRotating = false,\n showPassengerField = false,\n showRoundTrip = true,\n}) => {\n const styles = useStyles();\n \n // Merge default labels with custom labels\n const labels = React.useMemo(\n () => ({ ...DEFAULT_LABELS[language as Language], ...customLabels }),\n [language, customLabels]\n );\n const { control, setValue, getValues, handleSubmit } = useForm<CardTicketSearchFormData>({\n defaultValues: {\n from,\n to,\n startDate,\n roundTrip,\n endDate,\n serviceClass,\n typeOfService,\n passenger,\n },\n });\n\n const roundTripValue = useWatch({\n control,\n name: 'roundTrip',\n defaultValue: roundTrip,\n });\n\n // Update form values when props change\n React.useEffect(() => {\n setValue('from', from);\n setValue('to', to);\n setValue('startDate', startDate);\n setValue('endDate', endDate);\n setValue('roundTrip', roundTrip);\n setValue('serviceClass', serviceClass);\n setValue('typeOfService', typeOfService);\n setValue('passenger', passenger);\n }, [from, to, startDate, endDate, roundTrip, serviceClass, typeOfService, passenger, setValue]);\n\n // Handle round trip change\n React.useEffect(() => {\n if (onRoundTripChange) {\n onRoundTripChange(roundTripValue);\n }\n }, [roundTripValue, onRoundTripChange]);\n\n const handleFormSubmit = (data: CardTicketSearchFormData) => {\n if (onSubmit) {\n onSubmit(data);\n }\n };\n\n const handleFromChange = () => {\n setValue('to', '');\n if (onFromChange) {\n onFromChange();\n }\n };\n\n return (\n <div className={`${styles.card} ${className || ''}`}>\n <Visible xl xxl xxxl>\n <BackgroundTicketCard className={styles.svgBackground} />\n </Visible>\n <Visible xs sm md lg>\n <BackgroundTicketCardVertical className={styles.svgBackground} />\n </Visible>\n <Row\n style={{\n paddingTop: '1rem',\n paddingBottom: '2rem',\n }}\n className={styles.ticketSearchRow}\n >\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={3}\n xxl={3}\n xxxl={3}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '0px',\n }}\n >\n <CardServiceMenu\n className={styles.serviceMenuCard}\n activeServiceId={activeServiceId}\n language={language as Language}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={0.4} xxl={0.4} xxxl={0.4} />\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={8.6}\n xxl={8.6}\n xxxl={8.6}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n }}\n className={styles.formContainerCol}\n >\n <form onSubmit={handleSubmit(handleFormSubmit)}>\n <Row style={{ width: '100%' }} className={styles.formInnerRow}>\n <Col xs={12} sm={12} lg={12} xl={6} xxl={6} xxxl={6}>\n <Row style={{ gap: '16px' }} className={styles.formFieldRow}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"from\"\n label={labels.fromLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPort}\n onClick={onFromClick}\n onChange={handleFromChange}\n validationRules={{\n required: 'Pelabuhan asal wajib diisi',\n }}\n required\n />\n <div className={styles.deviderButton}>\n <Divider />{' '}\n <Button\n onClick={onSwitchClick}\n className={styles.buttonSwitch}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"large\"\n disabled={switchDisabled}\n icon={\n <div\n className={`${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ''}`}\n >\n <img\n src=\"/assets/images/icons/switch.svg\"\n alt=\"Switch\"\n width={26}\n height={26}\n />\n </div>\n }\n />\n </div>\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"to\"\n label={labels.toLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n disabled={toDisabled}\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDestinationPort}\n onClick={onToClick}\n validationRules={{\n required: 'Pelabuhan tujuan wajib diisi',\n }}\n required\n />\n </Col>\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%' }}>\n <Col xs={7} sm={7} md={7} lg={7} xl={7} xxl={7} xxxl={7}>\n <div style={{ position: 'relative', zIndex: 2 }}>\n <InputDynamic\n name=\"startDate\"\n label={labels.departureDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDepartureDate}\n onClick={onStartDateClick}\n required\n validationRules={{\n required: 'Tanggal Berangkat wajib diisi',\n }}\n />\n </div>\n </Col>\n {showRoundTrip && <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{ display: 'flex', justifyContent: 'end' }}\n >\n <InputDynamic\n name=\"roundTrip\"\n label={labels.roundTripLabel}\n control={control}\n type=\"switch\"\n disabled={roundTripDisabled}\n size=\"medium\"\n />\n </Col>}\n \n {roundTripValue && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"endDate\"\n label={labels.returnDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderReturnDate}\n onClick={onEndDateClick}\n disabled={endDateDisabled}\n style={{ borderColor: 'transparent' }}\n required={roundTripValue}\n validationRules={{\n required: 'Tanggal Pulang wajib diisi',\n }}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Visible xl xxl xxxl>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={1}\n xxl={1}\n xxxl={1}\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}\n >\n <Divider vertical style={{ height: '100%' }} />\n </Col>\n </Visible>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{\n paddingRight: '2rem',\n paddingLeft: '8px',\n }}\n className={styles.serviceCol}\n >\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"serviceClass\"\n label={labels.serviceClassLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeClass}\n onClick={onServiceClassClick}\n required\n disabled={serviceClassDisabled}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"typeOfService\"\n label={labels.typeOfServiceLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:apps-list-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeService}\n onClick={onTypeOfServiceClick}\n required\n disabled={typeOfServiceDisabled}\n />\n </Col>\n {showPassengerField && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n required\n name=\"passenger\"\n label={labels.passengerLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPassenger}\n onClick={onPassengerClick}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <Button\n className={styles.searchButton}\n appearance=\"primary\"\n size=\"large\"\n type=\"submit\"\n icon={<Icon icon=\"fluent:vehicle-ship-20-filled\" />}\n disabled={submitDisabled}\n >\n {labels.searchButton}\n </Button>\n </Col>\n </Row>\n </Col>\n </Row>\n </form>\n </Col>\n </Row>\n </div>\n );\n};\n\nexport default CardTicketSearch;\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n Input,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogTitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: '8px',\n },\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n searchInput: {\n width: '100%',\n marginBottom: '16px',\n },\n resultList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingRight: '1rem',\n },\n resultItem: {\n padding: '16px 20px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n backgroundColor: tokens.colorNeutralBackground1,\n position: 'relative',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n borderBottom: `1px solid ${tokens.colorBrandBackground}`,\n },\n },\n resultItemSelected: {\n backgroundColor: tokens.colorNeutralBackground1,\n borderLeft: `4px solid ${tokens.colorBrandBackground}`,\n paddingLeft: '16px',\n },\n harborName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground1,\n marginBottom: '2px',\n },\n harborLocation: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n },\n buttonContainer: {\n display: 'flex',\n gap: '1rem',\n marginBottom: '1rem',\n flexWrap: 'wrap',\n },\n circularButton: {\n borderRadius: tokens.borderRadiusCircular,\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n dangerText: {\n color: tokens.colorStatusDangerForeground1,\n },\n historyItem: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n iconMargin: {\n marginRight: '0.5rem',\n },\n cursorPointer: {\n cursor: 'pointer',\n },\n sectionTitle: {\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n harborList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginBottom: '1rem',\n },\n harborItem: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n emptyState: {\n textAlign: 'center',\n padding: '32px',\n color: tokens.colorNeutralForeground3,\n },\n});\n\n/**\n * Harbor item interface\n */\nexport interface HarborItem {\n /**\n * Unique identifier for the harbor\n */\n id: number;\n \n /**\n * Display name of the harbor\n */\n name: string;\n}\n\n/**\n * Props for ModalSearchHarbor component\n */\nexport interface ModalSearchHarborProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n * @default \"Pilih Pelabuhan\"\n */\n title?: string;\n \n /**\n * Type of modal - origin or destination\n * @default \"origin\"\n */\n modalType?: 'origin' | 'destination';\n \n /**\n * List of harbors to display\n */\n harbors: HarborItem[];\n \n /**\n * List of favorite harbors\n */\n favoriteHarbors: HarborItem[];\n \n /**\n * List of last searched harbors\n */\n lastSearchedHarbors: HarborItem[];\n \n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n \n /**\n * Current search query value\n */\n searchQuery: string;\n \n /**\n * Callback when search query changes\n */\n onSearchChange: (query: string) => void;\n \n /**\n * Callback when a harbor is selected\n */\n onSelectHarbor: (harbor: HarborItem) => void;\n \n /**\n * Callback when favorite is toggled\n */\n onToggleFavorite: (harbor: HarborItem) => void;\n \n /**\n * Callback when adding to last searched\n */\n onAddLastSearched: (harbor: HarborItem) => void;\n \n /**\n * Callback when removing from last searched\n */\n onRemoveLastSearched: (harborId: number) => void;\n \n /**\n * Callback when clearing all last searched\n */\n onClearLastSearched: () => void;\n}\n\n/**\n * ModalSearchHarbor - A reusable modal component for searching and selecting harbors\n * \n * This component provides a searchable modal interface for selecting harbors with features like:\n * - Search functionality\n * - Favorite harbors quick access\n * - Last searched history\n * - Loading states\n * \n * @example\n * ```tsx\n * <ModalSearchHarbor\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Pelabuhan Asal\"\n * harbors={harborList}\n * favoriteHarbors={favorites}\n * lastSearchedHarbors={history}\n * searchQuery={search}\n * onSearchChange={setSearch}\n * onSelectHarbor={handleSelect}\n * onToggleFavorite={handleToggleFavorite}\n * onAddLastSearched={handleAddHistory}\n * onRemoveLastSearched={handleRemoveHistory}\n * onClearLastSearched={handleClearHistory}\n * />\n * ```\n */\nexport const ModalSearchHarbor: React.FC<ModalSearchHarborProps> = ({\n open,\n onClose,\n title = 'Pilih Pelabuhan',\n modalType = 'origin',\n harbors,\n favoriteHarbors,\n lastSearchedHarbors,\n isLoading = false,\n searchQuery,\n onSearchChange,\n onSelectHarbor,\n onToggleFavorite,\n onAddLastSearched,\n onRemoveLastSearched,\n onClearLastSearched,\n}) => {\n const styles = useStyles();\n\n const handleSelect = (harbor: HarborItem) => {\n onAddLastSearched(harbor);\n onSelectHarbor(harbor);\n onSearchChange('');\n };\n\n const handleClose = () => {\n onClose();\n onSearchChange('');\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n <div>\n <Input\n className={styles.searchInput}\n value={searchQuery}\n onChange={e => onSearchChange(e.target.value)}\n placeholder=\"Cari Pelabuhan...\"\n contentBefore={\n <Icon icon=\"fluent:search-24-regular\" color={tokens.colorNeutralForeground3} />\n }\n size=\"large\"\n />\n </div>\n \n {/* Favorite Harbors */}\n {favoriteHarbors.length > 0 && (\n <div className={styles.buttonContainer}>\n {favoriteHarbors.map(harbor => (\n <Button\n onClick={() => handleSelect(harbor)}\n key={harbor.id}\n size=\"medium\"\n appearance=\"outline\"\n iconPosition=\"before\"\n className={styles.circularButton}\n icon={<Icon icon=\"fluent:ribbon-20-filled\" />}\n >\n <Body1>{harbor.name}</Body1>\n </Button>\n ))}\n </div>\n )}\n \n <Divider />\n\n <div className={styles.resultList}>\n {/* Last Searched Section */}\n {lastSearchedHarbors.length > 0 && (\n <>\n <div className={styles.headerRow}>\n <Body1Strong>Terakhir dicari</Body1Strong>\n <Caption1\n className={`${styles.dangerText} ${styles.cursorPointer}`}\n onClick={onClearLastSearched}\n >\n Hapus Semua\n </Caption1>\n </div>\n\n <div>\n {lastSearchedHarbors.map(harbor => (\n <div className={styles.historyItem} key={harbor.id}>\n <div\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n onClick={() => onRemoveLastSearched(harbor.id)}\n icon=\"fluent:dismiss-24-regular\"\n color={tokens.colorStatusDangerForeground1}\n className={styles.cursorPointer}\n />\n </div>\n ))}\n </div>\n <Divider />\n </>\n )}\n\n {/* All Harbors Section */}\n <Body1Strong className={styles.sectionTitle}>Semua Pelabuhan</Body1Strong>\n <div className={styles.harborList}>\n {isLoading ? (\n <div className={styles.emptyState}>Memuat data...</div>\n ) : harbors.length > 0 ? (\n harbors.map((harbor, index) => (\n <div key={index} className={styles.harborItem}>\n <div\n className={styles.cursorPointer}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n icon={\n favoriteHarbors.find(fav => fav.id === harbor.id)\n ? 'fluent:star-24-filled'\n : 'fluent:star-24-regular'\n }\n color={tokens.colorBrandBackground}\n className={styles.cursorPointer}\n onClick={() => onToggleFavorite(harbor)}\n />\n </div>\n ))\n ) : (\n <div className={styles.emptyState}>Pelabuhan tidak ditemukan</div>\n )}\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSearchHarbor;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Calendar, type CalendarDayGridStyles } from '@fluentui/react-calendar-compat';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport moment from 'moment';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n paddingBottom: '20px',\n width: '100%',\n overflow: 'hidden',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n tabContainer: {\n display: 'flex',\n gap: '0px',\n marginBottom: '16px',\n borderBottom: `2px solid ${tokens.colorNeutralStroke2}`,\n },\n tab: {\n flex: 1,\n padding: '12px 16px',\n cursor: 'pointer',\n textAlign: 'center',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground3,\n borderBottom: '2px solid transparent',\n marginBottom: '-2px',\n transition: 'all 0.2s ease',\n backgroundColor: 'transparent',\n border: 'none',\n ':hover': {\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n tabActive: {\n color: tokens.colorBrandForeground1,\n fontWeight: tokens.fontWeightSemibold,\n borderBottom: `2px solid ${tokens.colorBrandBackground}`,\n },\n calendarContainer: {\n display: 'flex',\n gap: '20px',\n justifyContent: 'center',\n alignItems: 'flex-start',\n width: '100%',\n },\n rangeCalendar: {\n '& .ms-CalendarDay': {\n position: 'relative',\n },\n '& button[class*=\"ms-CalendarDay\"]': {\n borderRadius: '999px',\n transition: 'all 0.15s ease',\n border: 'none',\n '&:hover': {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n },\n },\n },\n rangeStart: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderTopLeftRadius: '999px !important',\n borderBottomLeftRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeEnd: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderTopRightRadius: '999px !important',\n borderBottomRightRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeMiddle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderRadius: '0px !important',\n },\n rangePreview: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n borderRadius: '0px !important',\n boxShadow: `inset 0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n rangeSingle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n});\n\n/**\n * Tab type for trip selection\n */\nexport type TabType = 'one-way' | 'round-trip';\n\n/**\n * Props for ModalSelectDate component\n */\nexport interface ModalSelectDateProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tanggal\"\n */\n title?: string;\n\n /**\n * Initial selected departure date\n */\n selectedDepartureDate?: Date;\n\n /**\n * Initial selected return date (for round trip)\n */\n selectedReturnDate?: Date;\n\n /**\n * Initial tab selection\n * @default \"one-way\"\n */\n initialTab?: TabType;\n\n /**\n * Whether to show tabs for one-way/round-trip selection\n * @default true\n */\n showTabs?: boolean;\n\n /**\n * Callback when departure date is selected\n */\n onSelectDepartureDate: (date: Date) => void;\n\n /**\n * Callback when return date is selected (for round trip)\n */\n onSelectReturnDate?: (date: Date) => void;\n\n /**\n * Callback when tab changes\n */\n onTabChange?: (tab: TabType) => void;\n\n /**\n * Minimum selectable date\n * @default new Date()\n */\n minDate?: Date;\n\n /**\n * Maximum selectable date\n */\n maxDate?: Date;\n\n /**\n * Date format for internal handling\n * @default \"DD MMMM YYYY\"\n */\n dateFormat?: string;\n}\n\n/**\n * ModalSelectDate - A reusable modal component for selecting dates\n * \n * This component provides a date selection modal with features like:\n * - Single date selection (one-way)\n * - Date range selection (round-trip)\n * - Visual range preview on hover\n * - Customizable date constraints\n * \n * @example\n * ```tsx\n * <ModalSelectDate\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tanggal Keberangkatan\"\n * selectedDepartureDate={departureDate}\n * selectedReturnDate={returnDate}\n * onSelectDepartureDate={setDepartureDate}\n * onSelectReturnDate={setReturnDate}\n * onTabChange={handleTabChange}\n * />\n * ```\n */\nexport const ModalSelectDate: React.FC<ModalSelectDateProps> = ({\n open,\n onClose,\n title = 'Pilih Tanggal',\n selectedDepartureDate,\n selectedReturnDate,\n initialTab = 'one-way',\n showTabs = true,\n onSelectDepartureDate,\n onSelectReturnDate,\n onTabChange,\n minDate = new Date(),\n maxDate,\n dateFormat = 'DD MMMM YYYY',\n}) => {\n const styles = useStyles();\n\n const [selectedDate, setSelectedDate] = useState<Date | undefined>(selectedDepartureDate);\n const [selectedEndDate, setSelectedEndDate] = useState<Date | undefined>(selectedReturnDate);\n const [hoveredDate, setHoveredDate] = useState<Date | undefined>();\n const [activeTab, setActiveTab] = useState<TabType>(initialTab);\n\n const previewEndDate = useMemo(() => {\n if (selectedEndDate) return selectedEndDate;\n if (selectedDate && hoveredDate && hoveredDate > selectedDate) {\n return hoveredDate;\n }\n return undefined;\n }, [hoveredDate, selectedDate, selectedEndDate]);\n\n const isSameCalendarDay = (first?: Date, second?: Date) => {\n if (!first || !second) return false;\n return moment(first).isSame(second, 'day');\n };\n\n // Reset state when modal opens\n useEffect(() => {\n if (open) {\n setSelectedDate(selectedDepartureDate);\n setSelectedEndDate(selectedReturnDate);\n setActiveTab(initialTab);\n setHoveredDate(undefined);\n }\n }, [open, selectedDepartureDate, selectedReturnDate, initialTab]);\n\n const handleTabChange = (tab: TabType) => {\n setActiveTab(tab);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n\n if (onTabChange) {\n onTabChange(tab);\n }\n };\n\n const handleClose = () => {\n setHoveredDate(undefined);\n onClose();\n };\n\n const handleDateSelect = (date: Date | null | undefined) => {\n if (!date) return;\n\n const currentStart = selectedDate;\n\n if (activeTab === 'round-trip') {\n // Range selection mode\n if (!currentStart || selectedEndDate) {\n // First click or restart selection\n setSelectedDate(date);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n // Clear return date when starting new selection\n }\n } else {\n // Second click - set end date\n if (date < currentStart) {\n // If end date is before start date, swap them\n setSelectedEndDate(currentStart);\n setSelectedDate(date);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(currentStart);\n }\n } else {\n setSelectedEndDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(date);\n }\n }\n setHoveredDate(undefined);\n handleClose();\n }\n } else {\n // Single date selection mode\n setSelectedDate(date);\n onSelectDepartureDate(date);\n handleClose();\n }\n };\n\n const handleCustomDayCellRef = useCallback(\n (element: HTMLElement | null, date: Date, _classNames?: CalendarDayGridStyles) => {\n if (!element) return;\n\n const removeTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.remove(token));\n };\n const addTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.add(token));\n };\n const removableClasses = [\n styles.rangeStart,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n ];\n removableClasses.forEach(removeTokens);\n\n if (activeTab !== 'round-trip' || !selectedDate) {\n element.onmouseenter = null;\n element.onmouseleave = null;\n return;\n }\n\n const endDateForVisual = previewEndDate;\n const startTime = selectedDate.getTime();\n const endTime = endDateForVisual?.getTime();\n const currentTime = date.getTime();\n const isSameStartEnd = isSameCalendarDay(endDateForVisual, selectedDate);\n const isStartDay = isSameCalendarDay(date, selectedDate);\n const isEndDay = isSameCalendarDay(date, endDateForVisual);\n\n if (isStartDay && (!endDateForVisual || isSameStartEnd)) {\n addTokens(styles.rangeSingle);\n } else {\n if (isStartDay) {\n addTokens(styles.rangeStart);\n }\n if (isEndDay && !isSameStartEnd) {\n addTokens(styles.rangeEnd);\n }\n }\n\n if (endTime && currentTime > startTime && currentTime < endTime) {\n addTokens(selectedEndDate ? styles.rangeMiddle : styles.rangePreview);\n }\n\n if (!selectedEndDate) {\n element.onmouseenter = () => {\n if (date < selectedDate) return;\n setHoveredDate(prev => {\n if (isSameCalendarDay(prev, date)) {\n return prev;\n }\n return date;\n });\n };\n element.onmouseleave = () => {\n setHoveredDate(undefined);\n };\n } else {\n element.onmouseenter = null;\n element.onmouseleave = null;\n }\n },\n [\n activeTab,\n previewEndDate,\n selectedDate,\n selectedEndDate,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n styles.rangeStart,\n ],\n );\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {/* Tabs */}\n {showTabs && (\n <div className={styles.tabContainer}>\n <button\n disabled={activeTab === 'round-trip'}\n className={`${styles.tab} ${activeTab === 'one-way' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('one-way')}\n >\n Sekali Jalan\n </button>\n <button\n className={`${styles.tab} ${activeTab === 'round-trip' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('round-trip')}\n disabled={activeTab === 'one-way'}\n >\n Pulang Pergi\n </button>\n </div>\n )}\n\n {/* Calendar */}\n <div className={styles.calendarContainer}>\n <div style={{ width: '100%' }}>\n <div className={activeTab === 'round-trip' ? styles.rangeCalendar : ''}>\n <Calendar\n minDate={minDate}\n maxDate={maxDate}\n value={selectedDate}\n onSelectDate={handleDateSelect}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n allFocusable\n calendarDayProps={{\n customDayCellRef: handleCustomDayCellRef,\n }}\n />\n </div>\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSelectDate;\n","import React, { useEffect, useState } from 'react';\nimport {\n Body1,\n Button,\n Caption1,\n Checkbox,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n serviceList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingLeft: '20px',\n },\n serviceItem: {\n padding: '16px 0px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n cursor: 'pointer',\n transition: 'background-color 0.2s ease',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n serviceContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n },\n serviceName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground1,\n },\n serviceType: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n },\n serviceDescription: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n lineHeight: '1.4',\n },\n footer: {\n padding: '16px 20px',\n borderTop: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n saveButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n});\n\n/**\n * Service item structure\n */\nexport interface ServiceItem {\n /**\n * Unique identifier for the service\n */\n id: number;\n \n /**\n * Display name of the service type\n */\n serviceTypeName: string;\n \n /**\n * Code identifier for the service type\n */\n serviceTypeCode: string;\n \n /**\n * Detailed description of the service\n */\n serviceDescription: string;\n}\n\n/**\n * Props for ModalService component\n */\nexport interface ModalServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Kelas Layanan\"\n */\n title?: string;\n\n /**\n * Array of available services\n */\n services: ServiceItem[];\n\n /**\n * Array of currently selected service IDs\n */\n selectedServiceIds: number[];\n\n /**\n * Callback when save button is clicked\n * @param services - Array of selected service items\n */\n onSave: (services: ServiceItem[]) => void;\n\n /**\n * Loading state for services data\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Error state for services data\n * @default false\n */\n isError?: boolean;\n}\n\n/**\n * ModalService - A reusable modal component for selecting service classes\n * \n * This component provides a service selection modal with features like:\n * - Multiple service selection with checkboxes\n * - Select all/deselect all functionality\n * - Service details display (name, code, description)\n * - Save validation (requires at least one selection)\n * \n * @example\n * ```tsx\n * <ModalService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Kelas Layanan\"\n * services={servicesList}\n * selectedServiceIds={selectedIds}\n * onSave={handleSave}\n * isLoading={isLoading}\n * isError={isError}\n * />\n * ```\n */\nexport const ModalService: React.FC<ModalServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Kelas Layanan',\n services,\n selectedServiceIds,\n onSave,\n isLoading = false,\n isError = false,\n}) => {\n const styles = useStyles();\n const [selectedServices, setSelectedServices] = useState<number[]>(selectedServiceIds);\n\n // Reset selectedServices when modal opens or selectedServiceIds prop changes\n useEffect(() => {\n if (open) {\n // If selectedServiceIds is provided and not empty, use it\n if (selectedServiceIds && selectedServiceIds.length > 0) {\n // Filter to only include IDs that exist in services list\n const validIds = services\n .filter(s => selectedServiceIds.includes(s.id))\n .map(s => s.id);\n setSelectedServices(validIds);\n } else {\n // If no selection, select all by default\n setSelectedServices(services.map(s => s.id));\n }\n }\n }, [open, services, selectedServiceIds]);\n\n const handleClose = () => {\n onClose();\n };\n\n const handleToggleService = (serviceId: number) => {\n setSelectedServices(prev => {\n if (prev.includes(serviceId)) {\n return prev.filter(id => id !== serviceId);\n } else {\n return [...prev, serviceId];\n }\n });\n };\n\n const handleToggleAll = () => {\n if (selectedServices.length === services.length) {\n setSelectedServices([]);\n } else {\n setSelectedServices(services.map(s => s.id));\n }\n };\n\n const handleSave = () => {\n const selectedServiceItems = services.filter(s => selectedServices.includes(s.id));\n onSave(selectedServiceItems);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : isError ? (\n <Body1>Error loading services</Body1>\n ) : (\n <>\n <div className={styles.serviceList}>\n <div className={styles.headerRow}>\n <Body1>Pilih Semua</Body1>\n <Checkbox\n checked={selectedServices.length === services.length}\n onChange={handleToggleAll}\n />\n </div>\n {services.map(service => (\n <div\n key={service.id}\n className={styles.serviceItem}\n onClick={() => handleToggleService(service.id)}\n >\n <div className={styles.serviceContent}>\n <Body1 className={styles.serviceName}>{service.serviceTypeName}</Body1>\n <Caption1 className={styles.serviceType}>{service.serviceTypeCode}</Caption1>\n <Caption1 className={styles.serviceDescription}>\n {service.serviceDescription}\n </Caption1>\n </div>\n <Checkbox\n checked={selectedServices.includes(service.id)}\n onChange={() => handleToggleService(service.id)}\n />\n </div>\n ))}\n </div>\n <div className={styles.footer}>\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.saveButton}\n onClick={handleSave}\n disabled={selectedServices.length === 0}\n >\n Simpan\n </Button>\n </div>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalService;\n","/**\n * Service class codes for passenger services\n */\nexport type PassengerServiceCode = 'ECONOMY' | 'BUSINESS' | 'EXECUTIVE';\n\n/**\n * Service class data structure\n */\nexport interface ServiceClass {\n id: number;\n name: string;\n key: string;\n serviceName: PassengerServiceCode;\n}\n\n/**\n * Default service classes available\n */\nexport const DEFAULT_SERVICE_CLASSES: ServiceClass[] = [\n { id: 1, name: 'Ekonomi', key: 'ekonomi', serviceName: 'ECONOMY' },\n { id: 2, name: 'Bisnis', key: 'bisnis', serviceName: 'BUSINESS' },\n { id: 3, name: 'Eksekutif', key: 'eksekutif', serviceName: 'EXECUTIVE' },\n];\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n MessageBar,\n MessageBarBody,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_SERVICE_CLASSES, type PassengerServiceCode, type ServiceClass } from './constants';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n },\n accordionItem: {\n borderRadius: tokens.borderRadiusXLarge,\n marginBottom: '1rem',\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n passengerCount: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n },\n counterButton: {\n minWidth: '24px',\n height: '24px',\n padding: '0',\n borderRadius: tokens.borderRadiusCircular,\n color: tokens.colorBrandBackground,\n border: `1px solid ${tokens.colorBrandBackground}`,\n '&:hover': {\n border: `1px solid ${tokens.colorBrandBackgroundHover}`,\n color: tokens.colorBrandBackgroundHover,\n },\n '&:disabled': {\n border: `1px solid ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n countText: {\n minWidth: '24px',\n textAlign: 'center',\n },\n nestedSection: {\n borderTop: `2px solid ${tokens.colorBrandBackground}`,\n display: 'flex',\n flexDirection: 'column',\n padding: '0.6rem',\n },\n nestedRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '4px',\n borderRadius: tokens.borderRadiusSmall,\n backgroundColor: tokens.colorNeutralBackground1,\n },\n submitButton: {\n marginTop: '16px',\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n accordionPanel: {\n margin: 0,\n },\n});\n\n/**\n * Passenger object structure\n */\nexport interface Passenger {\n [key: string]: any;\n}\n\n/**\n * Service with passenger count\n */\nexport interface PassengerService {\n serviceId: number;\n serviceName: PassengerServiceCode;\n count: number;\n passengers: Passenger[];\n}\n\n/**\n * Passenger type from API\n */\nexport interface PassengerType {\n id: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n}\n\n/**\n * Selected passenger item structure\n */\nexport interface SelectedPassengerItem {\n passengerTypeId: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n services: PassengerService[];\n}\n\n/**\n * Props for ModalTotalPassengers component\n */\nexport interface ModalTotalPassengersProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Jumlah Penumpang\"\n */\n title?: string;\n\n /**\n * Array of passenger types from API\n */\n passengerTypes: PassengerType[];\n\n /**\n * Array of service classes\n * @default DEFAULT_SERVICE_CLASSES\n */\n serviceClasses?: ServiceClass[];\n\n /**\n * Currently selected passengers\n */\n selectedPassengers: SelectedPassengerItem[];\n\n /**\n * Callback when save button is clicked\n */\n onSave: (passengers: SelectedPassengerItem[]) => void;\n\n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Maximum number of passengers allowed\n * @default 10\n */\n maxPassengers?: number;\n\n /**\n * Message to display in the info bar\n * @default \"Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.\"\n */\n infoMessage?: string;\n}\n\n/**\n * ModalTotalPassengers - A reusable modal component for selecting passenger counts\n * \n * This component provides a passenger selection modal with features like:\n * - Accordion for each passenger type\n * - Counter for each service class (Economy, Business, Executive)\n * - Automatic default selection (1 adult economy)\n * - Validation and save functionality\n * \n * @example\n * ```tsx\n * <ModalTotalPassengers\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Jumlah Penumpang\"\n * passengerTypes={passengerTypes}\n * selectedPassengers={selectedPassengers}\n * onSave={handleSave}\n * />\n * ```\n */\nexport const ModalTotalPassengers: React.FC<ModalTotalPassengersProps> = ({\n open,\n onClose,\n title = 'Pilih Jumlah Penumpang',\n passengerTypes,\n serviceClasses = DEFAULT_SERVICE_CLASSES,\n selectedPassengers,\n onSave,\n isLoading = false,\n maxPassengers = 10,\n infoMessage,\n}) => {\n const styles = useStyles();\n const [passengers, setPassengers] = useState<SelectedPassengerItem[]>([]);\n const [openItems, setOpenItems] = useState<string[]>([]);\n\n const defaultInfoMessage = `Anda dapat menambahkan hingga ${maxPassengers} penumpang pada golongan kendaraan ini.`;\n\n // Initialize passengers state when modal opens or data changes\n useEffect(() => {\n if (passengerTypes.length === 0) return;\n\n // Create default structure for all passenger types\n const defaultPassengers: SelectedPassengerItem[] = passengerTypes.map(passengerType => ({\n passengerTypeId: passengerType.id,\n passengerTypeCode: passengerType.passengerTypeCode,\n passengerTypeName: passengerType.passengerTypeName,\n services: serviceClasses.map(sc => ({\n serviceId: sc.id,\n serviceName: sc.serviceName,\n count: 0,\n passengers: [],\n })),\n }));\n\n // If selectedPassengers has data, merge with default structure\n if (selectedPassengers && selectedPassengers.length > 0) {\n const mergedPassengers = defaultPassengers.map(defaultP => {\n const selectedP = selectedPassengers.find(\n p => p.passengerTypeCode === defaultP.passengerTypeCode,\n );\n if (selectedP) {\n // Merge services - update counts and passengers from selected\n const mergedServices = defaultP.services.map(defaultS => {\n const selectedS = selectedP.services.find(s => s.serviceName === defaultS.serviceName);\n return selectedS\n ? { ...defaultS, count: selectedS.count, passengers: selectedS.passengers || [] }\n : defaultS;\n });\n return { ...defaultP, services: mergedServices };\n }\n return defaultP;\n });\n setPassengers(mergedPassengers);\n\n // Set accordion open items for passenger types that have data\n const itemsWithData = selectedPassengers\n .filter(p => p.services.some(s => s.count > 0))\n .map(p => {\n const passengerType = passengerTypes.find(\n pt => pt.passengerTypeCode === p.passengerTypeCode,\n );\n return passengerType ? String(passengerType.id) : '';\n })\n .filter(id => id !== '');\n setOpenItems(itemsWithData);\n } else {\n setPassengers(defaultPassengers);\n setOpenItems([]);\n }\n }, [open, passengerTypes, serviceClasses, selectedPassengers]);\n\n // Get service count for a specific passenger type and service\n const getServiceCount = (\n passengerTypeCode: string,\n serviceName: PassengerServiceCode,\n ): number => {\n const passenger = passengers.find(p => p.passengerTypeCode === passengerTypeCode);\n if (!passenger) return 0;\n const service = passenger.services.find(s => s.serviceName === serviceName);\n return service?.count || 0;\n };\n\n // Get total description for a passenger type\n const getTotalForType = (passengerTypeCode: string) => {\n const passenger = passengers.find(p => p.passengerTypeCode === passengerTypeCode);\n if (!passenger) return '0';\n\n const parts: string[] = [];\n passenger.services.forEach(service => {\n if (service.count > 0) {\n const serviceClass = serviceClasses.find(sc => sc.serviceName === service.serviceName);\n const serviceName = serviceClass?.name || service.serviceName;\n parts.push(`${service.count} ${serviceName}`);\n }\n });\n\n return parts.length > 0 ? parts.join(', ') : '0';\n };\n\n const handleIncrement = (passengerTypeCode: string, serviceName: PassengerServiceCode) => {\n setPassengers(prev =>\n prev.map(passenger => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map(service => {\n if (service.serviceName === serviceName) {\n const newCount = service.count + 1;\n const newPassengers = [...(service.passengers || [])];\n\n // Add new empty passenger objects until we reach newCount\n while (newPassengers.length < newCount) {\n newPassengers.push({} as Passenger);\n }\n\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleDecrement = (passengerTypeCode: string, serviceName: PassengerServiceCode) => {\n setPassengers(prev =>\n prev.map(passenger => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map(service => {\n if (service.serviceName === serviceName && service.count > 0) {\n const newCount = service.count - 1;\n const newPassengers = (service.passengers || []).slice(0, newCount);\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleSave = () => {\n // Filter out passengers with all services at count 0\n const filteredPassengers = passengers\n .map(passenger => ({\n ...passenger,\n services: passenger.services.filter(service => service.count > 0),\n }))\n .filter(passenger => passenger.services.length > 0);\n\n onSave(filteredPassengers);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-12-regular\" />}\n onClick={onClose}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <MessageBar shape=\"rounded\">\n <MessageBarBody>\n {infoMessage || defaultInfoMessage}\n </MessageBarBody>\n </MessageBar>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : (\n <>\n <Accordion\n collapsible\n multiple\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems as string[])}\n className={styles.passengerSection}\n >\n {passengerTypes.map(passengerType => {\n return (\n <AccordionItem\n key={passengerType.id}\n value={String(passengerType.id)}\n className={styles.accordionItem}\n >\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n {passengerType.passengerTypeName} (\n {getTotalForType(passengerType.passengerTypeCode)})\n </AccordionHeader>\n <AccordionPanel className={styles.accordionPanel}>\n <div className={styles.nestedSection}>\n {serviceClasses.map(service => (\n <div key={service.key} className={styles.nestedRow}>\n <Body1>{service.name}</Body1>\n <div className={styles.passengerCount}>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:subtract-12-regular\" />}\n onClick={e => {\n e.stopPropagation();\n handleDecrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n disabled={\n getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n ) === 0\n }\n />\n <Body1 className={styles.countText}>\n {getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n )}\n </Body1>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:add-12-regular\" />}\n onClick={e => {\n e.stopPropagation();\n handleIncrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n />\n </div>\n </div>\n ))}\n </div>\n </AccordionPanel>\n </AccordionItem>\n );\n })}\n </Accordion>\n\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.submitButton}\n onClick={handleSave}\n >\n Simpan\n </Button>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTotalPassengers;\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n mergeClasses,\n Radio,\n RadioGroup,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { ReactNode, useEffect, useState } from 'react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionItem: {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n width: '100%',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n },\n accordionTitleAndInfo: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n marginLeft: tokens.spacingHorizontalM,\n flex: 1,\n },\n accordionBody: {\n marginLeft: '100px',\n },\n footer: {\n marginTop: tokens.spacingVerticalL,\n display: 'flex',\n gap: tokens.spacingHorizontalM,\n justifyContent: 'flex-end',\n },\n});\n\n/**\n * Service type item structure\n */\nexport interface TypeOfService {\n id: number;\n image: string;\n title: string;\n info: string;\n price: number;\n type: string;\n parentId?: number;\n parentTitle?: string;\n child: TypeOfService[];\n typeOfPassanger: string;\n}\n\n/**\n * Props for ModalTypeOfService component\n */\nexport interface ModalTypeOfServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tipe Layanan\"\n */\n title?: string;\n\n /**\n * Array of service types\n */\n serviceTypes: TypeOfService[];\n\n /**\n * Currently selected service\n */\n selectedService?: TypeOfService | null;\n\n /**\n * Callback when save button is clicked\n */\n onSave: (service: TypeOfService) => void;\n\n /**\n * Optional custom image renderer\n * Useful for Next.js Image component or other custom renderers\n */\n renderImage?: (props: { src: string; alt: string; width: number; height: number }) => ReactNode;\n}\n\n/**\n * ModalTypeOfService - A reusable modal component for selecting service types\n * \n * This component provides a service type selection modal with features like:\n * - Accordion for categories with children (vehicles, goods, etc.)\n * - Radio buttons for individual selections\n * - Image display for each service type\n * - Customizable image renderer for framework-specific components\n * \n * @example\n * ```tsx\n * <ModalTypeOfService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tipe Layanan\"\n * serviceTypes={serviceTypes}\n * selectedService={selectedService}\n * onSave={handleSave}\n * renderImage={(props) => <Image {...props} />}\n * />\n * ```\n */\nexport const ModalTypeOfService: React.FC<ModalTypeOfServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Tipe Layanan',\n serviceTypes,\n selectedService,\n onSave,\n renderImage,\n}) => {\n const styles = useStyles();\n const [selectedServiceTitle, setSelectedServiceTitle] = useState<string>(\n selectedService?.title || '',\n );\n const [openItems, setOpenItems] = useState<number | undefined>(() => {\n // Initialize openItems based on selected service\n if (!selectedService) return undefined;\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild) {\n return item.id;\n }\n }\n }\n return undefined;\n });\n\n // Default image renderer using standard img tag\n const defaultRenderImage = ({ src, alt, width, height }: { src: string; alt: string; width: number; height: number }) => (\n <img src={src} alt={alt} width={width} height={height} style={{ objectFit: 'contain' }} />\n );\n\n const imageRenderer = renderImage || defaultRenderImage;\n\n // Reset local state when modal opens or selected service changes\n useEffect(() => {\n const newTitle = selectedService?.title || '';\n\n // Only update if the value actually changed\n if (newTitle !== selectedServiceTitle) {\n setSelectedServiceTitle(newTitle);\n }\n\n // Find and open the parent accordion if selected service is a child\n if (selectedService) {\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild && openItems !== item.id) {\n setOpenItems(item.id);\n break;\n }\n }\n }\n } else if (openItems !== undefined) {\n setOpenItems(undefined);\n }\n }, [open, selectedService?.title]);\n\n const handleConfirm = () => {\n if (selectedServiceTitle) {\n // Find the selected service item from serviceTypes\n let selectedItem: TypeOfService | null = null;\n\n for (const item of serviceTypes) {\n if (item.title === selectedServiceTitle) {\n // Top level item selected\n selectedItem = {\n id: item.id,\n image: item.image,\n title: item.title,\n info: item.info,\n price: item.price,\n parentTitle: '',\n parentId: 0,\n type: item.type,\n typeOfPassanger: item.typeOfPassanger,\n child: [],\n };\n break;\n }\n if (item.child && item.child.length > 0) {\n const childItem = item.child.find(child => child.title === selectedServiceTitle);\n if (childItem) {\n selectedItem = {\n id: childItem.id,\n image: childItem.image,\n title: childItem.title,\n info: childItem.info,\n price: childItem.price,\n parentTitle: childItem.parentTitle,\n parentId: childItem.parentId,\n type: childItem.type,\n typeOfPassanger: childItem.typeOfPassanger,\n child: [],\n };\n break;\n }\n }\n }\n\n if (selectedItem) {\n onSave(selectedItem);\n }\n }\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={onClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <Accordion\n collapsible\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems[0] as number)}\n className={styles.passengerSection}\n >\n <RadioGroup\n value={selectedServiceTitle}\n onChange={(_, data) => setSelectedServiceTitle(data.value)}\n >\n {serviceTypes.map((item, index) => {\n if (item.type === 'accordion') {\n return (\n <AccordionItem key={index} value={item.id} className={styles.accordionItem}>\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n <div>\n {imageRenderer({ src: item.image, alt: 'vehicles', width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n </AccordionHeader>\n <AccordionPanel className={styles.accordionBody}>\n {item.child.length > 0 &&\n item.child.map((childItem, childIndex) => (\n <div\n key={childIndex}\n className={mergeClasses(\n styles.accordionHeader,\n styles.accordionItem,\n )}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div>\n {imageRenderer({\n src: childItem.image,\n alt: childItem.title,\n width: 48,\n height: 48,\n })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{childItem.title}</Body1>\n <Caption1>{childItem.info}</Caption1>\n </div>\n <Radio value={childItem.title} />\n </div>\n ))}\n </AccordionPanel>\n </AccordionItem>\n );\n } else if (item.type === 'radio') {\n return (\n <div\n key={index}\n className={mergeClasses(styles.accordionHeader, styles.accordionItem)}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div style={{ marginLeft: 2 }}>\n {imageRenderer({ src: item.image, alt: item.title, width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo} style={{ marginLeft: 18 }}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n <Radio value={item.title} />\n </div>\n );\n }\n return null;\n })}\n </RadioGroup>\n </Accordion>\n <div className={styles.footer}>\n <Button appearance=\"secondary\" shape=\"circular\" onClick={onClose}>\n Batal\n </Button>\n <Button\n appearance=\"primary\"\n shape=\"circular\"\n onClick={handleConfirm}\n disabled={!selectedServiceTitle}\n >\n Simpan\n </Button>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTypeOfService;\n","/**\n * Default paths for vehicle icon images\n * These images are bundled with the library in the assets directory\n */\nexport const DEFAULT_VEHICLE_ICONS = {\n pedestrian: '/assets/images/icons/pedestrian.webp',\n roadbike: '/assets/images/icons/roadbike.webp',\n motorbike1: '/assets/images/icons/motorbike-1.webp',\n motorbike2: '/assets/images/icons/motorbike-2.svg',\n smallCar: '/assets/images/icons/small-car.webp',\n smallBus: '/assets/images/icons/small-bus.webp',\n bigBus: '/assets/images/icons/big-bus.webp',\n truck: '/assets/images/icons/truck.webp',\n bigTruck: '/assets/images/icons/big-truck.webp',\n looseLoad: '/assets/images/icons/loose-load.webp',\n} as const;\n\n/**\n * Helper function to get asset URL\n * Can be overridden by consuming applications\n */\nexport const getAssetUrl = (path: string): string => {\n return path;\n};\n"]}
|