@zydon/common 2.9.22 → 2.9.23

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.
Files changed (55) hide show
  1. package/dist/chunk-4734QSYC.js +46 -0
  2. package/dist/chunk-4734QSYC.js.map +1 -0
  3. package/dist/{chunk-Q2AVS24Z.js → chunk-7GJMLPJV.js} +3 -3
  4. package/dist/{chunk-X4F3O7PX.js → chunk-BKL525ZD.js} +3 -3
  5. package/dist/{chunk-LZQ7OFKO.js → chunk-JUAHRU5E.js} +2 -2
  6. package/dist/{chunk-YXRL4O4H.js → chunk-P2QZJ57W.js} +2 -2
  7. package/dist/{chunk-YXRL4O4H.js.map → chunk-P2QZJ57W.js.map} +1 -1
  8. package/dist/{chunk-7LBBLVDC.js → chunk-PUMCHXCD.js} +2 -2
  9. package/dist/{chunk-IF6OSFZ7.js → chunk-PVVI3GEL.js} +2 -2
  10. package/dist/{chunk-JM3SE72J.js → chunk-TAA5KCEG.js} +5 -5
  11. package/dist/{chunk-YDU3ZCS7.js → chunk-UE7W6ACG.js} +2 -2
  12. package/dist/{chunk-T3RP2QXG.js → chunk-XUD7JMEF.js} +2 -2
  13. package/dist/{chunk-GLRLKFPS.js → chunk-Y66XXBB3.js} +6 -4
  14. package/dist/chunk-Y66XXBB3.js.map +1 -0
  15. package/dist/components/Analytics/OverviewAnalytics/index.js +4 -4
  16. package/dist/components/Analytics/PartnerAnalysis/index.js +4 -4
  17. package/dist/components/AvatarButton/index.js +5 -5
  18. package/dist/components/Common/index.js +5 -5
  19. package/dist/components/DataCards/index.js +2 -2
  20. package/dist/components/DataGrid/index.js +3 -3
  21. package/dist/components/DataView/index.js +4 -4
  22. package/dist/components/DynamicDataView/index.js +4 -4
  23. package/dist/components/EmptyContent/index.js +2 -2
  24. package/dist/components/Label/index.js +2 -2
  25. package/dist/components/ListBundles/index.js +2 -2
  26. package/dist/components/SplashScreen/index.js +1 -1
  27. package/dist/components/StepUpDialog/index.js +1 -1
  28. package/dist/components/ToggleTheme/index.js +5 -5
  29. package/dist/components/WebhookCard/index.js +2 -2
  30. package/dist/components/carousel/index.js +2 -2
  31. package/dist/components/form/Address/index.js +1 -1
  32. package/dist/components/form/Field/index.js +1 -1
  33. package/dist/components/form/Password/index.js +2 -2
  34. package/dist/components/form/Password/index.js.map +1 -1
  35. package/dist/components/form/Webhook/index.js +1 -1
  36. package/dist/hooks/useThemeToggle.js +5 -5
  37. package/dist/index.d.ts +1 -1
  38. package/dist/index.js +5 -5
  39. package/dist/theme/core/index.js +3 -3
  40. package/dist/theme/styles/index.d.ts +2 -1
  41. package/dist/theme/styles/index.js +1 -1
  42. package/dist/theme/theme-provider.js +5 -5
  43. package/dist/theme/with-settings/index.js +3 -3
  44. package/package.json +1 -1
  45. package/dist/chunk-GLRLKFPS.js.map +0 -1
  46. package/dist/chunk-YPL4KIKN.js +0 -46
  47. package/dist/chunk-YPL4KIKN.js.map +0 -1
  48. /package/dist/{chunk-Q2AVS24Z.js.map → chunk-7GJMLPJV.js.map} +0 -0
  49. /package/dist/{chunk-X4F3O7PX.js.map → chunk-BKL525ZD.js.map} +0 -0
  50. /package/dist/{chunk-LZQ7OFKO.js.map → chunk-JUAHRU5E.js.map} +0 -0
  51. /package/dist/{chunk-7LBBLVDC.js.map → chunk-PUMCHXCD.js.map} +0 -0
  52. /package/dist/{chunk-IF6OSFZ7.js.map → chunk-PVVI3GEL.js.map} +0 -0
  53. /package/dist/{chunk-JM3SE72J.js.map → chunk-TAA5KCEG.js.map} +0 -0
  54. /package/dist/{chunk-YDU3ZCS7.js.map → chunk-UE7W6ACG.js.map} +0 -0
  55. /package/dist/{chunk-T3RP2QXG.js.map → chunk-XUD7JMEF.js.map} +0 -0
@@ -6,16 +6,16 @@ import { a as a$3 } from '../../chunk-JGASCDBR.js';
6
6
  import '../../chunk-TPOL2YXC.js';
7
7
  import { a as a$1 } from '../../chunk-LQRRMVFN.js';
8
8
  import '../../chunk-5KEVIB7P.js';
9
- import '../../chunk-JM3SE72J.js';
9
+ import '../../chunk-TAA5KCEG.js';
10
10
  import '../../chunk-373WGZZL.js';
11
11
  import '../../chunk-WUFEPE2G.js';
12
12
  import '../../chunk-BX2DSNRV.js';
13
- import '../../chunk-X4F3O7PX.js';
14
- import '../../chunk-Q2AVS24Z.js';
13
+ import '../../chunk-BKL525ZD.js';
14
+ import '../../chunk-7GJMLPJV.js';
15
15
  import '../../chunk-LNESYSHP.js';
16
- import '../../chunk-YPL4KIKN.js';
16
+ import '../../chunk-4734QSYC.js';
17
17
  import '../../chunk-HBOBTNB5.js';
18
- import '../../chunk-GLRLKFPS.js';
18
+ import '../../chunk-Y66XXBB3.js';
19
19
  import E from '@mui/material/Avatar';
20
20
  import s from '@mui/material/Divider';
21
21
  import c from '@mui/material/Stack';
@@ -1,15 +1,15 @@
1
1
  import { a } from '../../chunk-JGASCDBR.js';
2
2
  import '../../chunk-TPOL2YXC.js';
3
- import { b } from '../../chunk-JM3SE72J.js';
3
+ import { b } from '../../chunk-TAA5KCEG.js';
4
4
  import '../../chunk-373WGZZL.js';
5
5
  import '../../chunk-WUFEPE2G.js';
6
6
  import '../../chunk-BX2DSNRV.js';
7
- import '../../chunk-X4F3O7PX.js';
8
- import '../../chunk-Q2AVS24Z.js';
7
+ import '../../chunk-BKL525ZD.js';
8
+ import '../../chunk-7GJMLPJV.js';
9
9
  import '../../chunk-LNESYSHP.js';
10
- import '../../chunk-YPL4KIKN.js';
10
+ import '../../chunk-4734QSYC.js';
11
11
  import '../../chunk-HBOBTNB5.js';
12
- import { k } from '../../chunk-GLRLKFPS.js';
12
+ import { k } from '../../chunk-Y66XXBB3.js';
13
13
  import 'dayjs/locale/pt-br';
14
14
  import _ from 'dayjs';
15
15
  import { AdapterDayjs } from '@mui/x-date-pickers-pro/AdapterDayjs';
@@ -1,9 +1,9 @@
1
1
  import { c } from '../../chunk-FG2BVR7Y.js';
2
2
  import { a } from '../../chunk-X2NG6VDB.js';
3
- import { a as a$2 } from '../../chunk-LZQ7OFKO.js';
3
+ import { a as a$2 } from '../../chunk-JUAHRU5E.js';
4
4
  import '../../chunk-NIQW2J3M.js';
5
5
  import { a as a$1 } from '../../chunk-6U5LS7MP.js';
6
- import '../../chunk-GLRLKFPS.js';
6
+ import '../../chunk-Y66XXBB3.js';
7
7
  import { memo, useMemo } from 'react';
8
8
  import pt from 'react-fast-compare';
9
9
  import st from '@mui/material/Pagination';
@@ -1,7 +1,7 @@
1
- export { a as default } from '../../chunk-T3RP2QXG.js';
2
- import '../../chunk-LZQ7OFKO.js';
1
+ export { a as default } from '../../chunk-XUD7JMEF.js';
2
+ import '../../chunk-JUAHRU5E.js';
3
3
  import '../../chunk-NIQW2J3M.js';
4
4
  import '../../chunk-6U5LS7MP.js';
5
5
  import '../../chunk-RBTYTONM.js';
6
- import '../../chunk-GLRLKFPS.js';
6
+ import '../../chunk-Y66XXBB3.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
- export { b as DesktopFooter, a as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-IF6OSFZ7.js';
1
+ export { b as DesktopFooter, a as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-PVVI3GEL.js';
2
2
  import '../../chunk-3753JOQM.js';
3
3
  import '../../chunk-4F2NKGF6.js';
4
- import '../../chunk-T3RP2QXG.js';
5
- import '../../chunk-LZQ7OFKO.js';
4
+ import '../../chunk-XUD7JMEF.js';
5
+ import '../../chunk-JUAHRU5E.js';
6
6
  import '../../chunk-NIQW2J3M.js';
7
7
  import '../../chunk-6U5LS7MP.js';
8
8
  import '../../chunk-PRWQQJDL.js';
@@ -16,5 +16,5 @@ import '../../chunk-JGASCDBR.js';
16
16
  import '../../chunk-TPOL2YXC.js';
17
17
  import '../../chunk-LQRRMVFN.js';
18
18
  import '../../chunk-TXJ45CNA.js';
19
- import '../../chunk-GLRLKFPS.js';
19
+ import '../../chunk-Y66XXBB3.js';
20
20
  //# sourceMappingURL=index.js.map
@@ -3,11 +3,11 @@ import '../../chunk-4P2L7UJA.js';
3
3
  import { a as a$4 } from '../../chunk-E5SBGF5G.js';
4
4
  import { d, c } from '../../chunk-A7QSCOUE.js';
5
5
  import { h, a as a$6 } from '../../chunk-OF6623HG.js';
6
- import { d as d$1 } from '../../chunk-IF6OSFZ7.js';
6
+ import { d as d$1 } from '../../chunk-PVVI3GEL.js';
7
7
  import '../../chunk-3753JOQM.js';
8
8
  import '../../chunk-4F2NKGF6.js';
9
- import '../../chunk-T3RP2QXG.js';
10
- import '../../chunk-LZQ7OFKO.js';
9
+ import '../../chunk-XUD7JMEF.js';
10
+ import '../../chunk-JUAHRU5E.js';
11
11
  import '../../chunk-NIQW2J3M.js';
12
12
  import '../../chunk-6U5LS7MP.js';
13
13
  import '../../chunk-PRWQQJDL.js';
@@ -31,7 +31,7 @@ import { b } from '../../chunk-TXJ45CNA.js';
31
31
  import '../../chunk-FJBC6QA5.js';
32
32
  import '../../chunk-POTVACYB.js';
33
33
  import '../../chunk-ET3WPQIO.js';
34
- import '../../chunk-GLRLKFPS.js';
34
+ import '../../chunk-Y66XXBB3.js';
35
35
  import '../../chunk-SV2GIIMQ.js';
36
36
  import { a as a$2 } from '../../chunk-GNNZB7DN.js';
37
37
  import { memo, useState, useMemo, useCallback, useEffect, useRef } from 'react';
@@ -1,4 +1,4 @@
1
- export { a as default } from '../../chunk-LZQ7OFKO.js';
1
+ export { a as default } from '../../chunk-JUAHRU5E.js';
2
2
  import '../../chunk-NIQW2J3M.js';
3
- import '../../chunk-GLRLKFPS.js';
3
+ import '../../chunk-Y66XXBB3.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- export { a as default } from '../../chunk-7LBBLVDC.js';
2
- import '../../chunk-GLRLKFPS.js';
1
+ export { a as default } from '../../chunk-PUMCHXCD.js';
2
+ import '../../chunk-Y66XXBB3.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
1
  import { a as a$2 } from '../../chunk-RUABKHIV.js';
2
2
  import { a as a$1 } from '../../chunk-4F2NKGF6.js';
3
- import { o, a, f, k as k$1 } from '../../chunk-YDU3ZCS7.js';
3
+ import { o, a, f, k as k$1 } from '../../chunk-UE7W6ACG.js';
4
4
  import '../../chunk-JGASCDBR.js';
5
5
  import '../../chunk-TPOL2YXC.js';
6
- import '../../chunk-GLRLKFPS.js';
6
+ import '../../chunk-Y66XXBB3.js';
7
7
  import { Fragment } from 'react';
8
8
  import k from '@mui/material/Stack';
9
9
  import { styled } from '@mui/material/styles';
@@ -1,4 +1,4 @@
1
- import { k } from '../../chunk-GLRLKFPS.js';
1
+ import { k } from '../../chunk-Y66XXBB3.js';
2
2
  import t from '@mui/material/Box';
3
3
  import { m } from 'framer-motion';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { a as a$3 } from '../../chunk-YXRL4O4H.js';
1
+ import { a as a$3 } from '../../chunk-P2QZJ57W.js';
2
2
  import { a as a$4 } from '../../chunk-BT3FTBTT.js';
3
3
  import { a as a$2 } from '../../chunk-XAPSXJZO.js';
4
4
  import { a as a$1 } from '../../chunk-JGASCDBR.js';
@@ -1,13 +1,13 @@
1
1
  export { a as default } from '../../chunk-A7AOWJKX.js';
2
2
  import '../../chunk-5KEVIB7P.js';
3
- import '../../chunk-JM3SE72J.js';
3
+ import '../../chunk-TAA5KCEG.js';
4
4
  import '../../chunk-373WGZZL.js';
5
5
  import '../../chunk-WUFEPE2G.js';
6
6
  import '../../chunk-BX2DSNRV.js';
7
- import '../../chunk-X4F3O7PX.js';
8
- import '../../chunk-Q2AVS24Z.js';
7
+ import '../../chunk-BKL525ZD.js';
8
+ import '../../chunk-7GJMLPJV.js';
9
9
  import '../../chunk-LNESYSHP.js';
10
- import '../../chunk-YPL4KIKN.js';
10
+ import '../../chunk-4734QSYC.js';
11
11
  import '../../chunk-HBOBTNB5.js';
12
- import '../../chunk-GLRLKFPS.js';
12
+ import '../../chunk-Y66XXBB3.js';
13
13
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,11 @@
1
1
  import { d } from '../../chunk-JNDZPNQJ.js';
2
- import { a as a$3 } from '../../chunk-7LBBLVDC.js';
2
+ import { a as a$3 } from '../../chunk-PUMCHXCD.js';
3
3
  import { a as a$2 } from '../../chunk-UVPQR2Q2.js';
4
4
  import { a } from '../../chunk-CO2KQFUN.js';
5
5
  import { a as a$4 } from '../../chunk-JGASCDBR.js';
6
6
  import '../../chunk-TPOL2YXC.js';
7
7
  import { a as a$1 } from '../../chunk-LQRRMVFN.js';
8
- import '../../chunk-GLRLKFPS.js';
8
+ import '../../chunk-Y66XXBB3.js';
9
9
  import E from '@mui/material/Button';
10
10
  import N from '@mui/material/FormControlLabel';
11
11
  import O from '@mui/material/IconButton';
@@ -1,5 +1,5 @@
1
- export { j as ArrowButton, f as Carousel, g as CarouselArrowBasicButtons, i as CarouselArrowFloatButtons, h as CarouselArrowNumberButtons, k as CarouselDotButtons, l as CarouselProgressBar, c as CarouselSlide, n as CarouselThumb, m as CarouselThumbs, e as StyledContainer, d as StyledRoot, a as carouselBreakpoints, b as carouselClasses, o as useCarousel } from '../../chunk-YDU3ZCS7.js';
1
+ export { j as ArrowButton, f as Carousel, g as CarouselArrowBasicButtons, i as CarouselArrowFloatButtons, h as CarouselArrowNumberButtons, k as CarouselDotButtons, l as CarouselProgressBar, c as CarouselSlide, n as CarouselThumb, m as CarouselThumbs, e as StyledContainer, d as StyledRoot, a as carouselBreakpoints, b as carouselClasses, o as useCarousel } from '../../chunk-UE7W6ACG.js';
2
2
  import '../../chunk-JGASCDBR.js';
3
3
  import '../../chunk-TPOL2YXC.js';
4
- import '../../chunk-GLRLKFPS.js';
4
+ import '../../chunk-Y66XXBB3.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  import { a as a$3 } from '../../../chunk-MSCOIJQ5.js';
2
2
  import { a } from '../../../chunk-X64QHBVQ.js';
3
- import { a as a$1 } from '../../../chunk-YXRL4O4H.js';
3
+ import { a as a$1 } from '../../../chunk-P2QZJ57W.js';
4
4
  import '../../../chunk-RTC7H5E5.js';
5
5
  import { a as a$2 } from '../../../chunk-T745PFSO.js';
6
6
  import '../../../chunk-BT6L5NSF.js';
@@ -1,2 +1,2 @@
1
- export { a as default } from '../../../chunk-YXRL4O4H.js';
1
+ export { a as default } from '../../../chunk-P2QZJ57W.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { a } from '../../../chunk-YXRL4O4H.js';
1
+ import { a } from '../../../chunk-P2QZJ57W.js';
2
2
  import { d } from '../../../chunk-A3QLGMSB.js';
3
3
  import { a as a$1 } from '../../../chunk-JGASCDBR.js';
4
4
  import '../../../chunk-TPOL2YXC.js';
@@ -8,7 +8,7 @@ import y from '@mui/material/IconButton';
8
8
  import N from '@mui/material/InputAdornment';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
10
 
11
- var O=({name:o,sx:P,rules:n,passwordSize:d$1,specialCharacter:i,upperCaseChar:p,numberChar:l,showErrorMessage:x,match:r,helperText:m,InputProps:u,showButtonViewPassword:I=!0,...g})=>{let{watch:f}=useFormContext(),v=f(o),[t,C]=useState(!1),{hasNumberChar:V,hasSpecialCharacter:A,hasUpperCaseChar:F,isLengthValid:S}=d(v,d$1,l,i,p),H=(!A||!F||!S||!V)&&!x?"none":void 0;return jsx(a,{"data-intercom-target":o,...g,name:o,type:t?"text":"password",InputProps:{...u,endAdornment:jsxs(N,{position:"end",children:[u?.endAdornment,I&&jsx(y,{onClick:()=>C(!t),edge:"end","aria-label":"Mostrar/Ocultar senha",tabIndex:-1,children:jsx(a$1,{icon:t?"VIEW_ON":"VIEW_OFF"})})]})},rules:{...n,validate:{...n?.validate,validationPassword:h=>{let e=d(h,d$1,l,i,p);return !e.hasNumberChar||!e.hasSpecialCharacter||!e.hasUpperCaseChar||!e.isLengthValid?"Senha inv\xE1lida":r&&r.fieldPassword&&f(r.fieldPassword)!==h?"As senhas devem ser iguais":!0}}},sx:{...P,"& .MuiFormHelperText-root":{display:m?void 0:H}},forceShowHelperText:!0,helperText:m})},G=O;
11
+ var O=({name:o,sx:P,rules:n,passwordSize:d$1,specialCharacter:i,upperCaseChar:p,numberChar:l,showErrorMessage:x,match:r,helperText:m,InputProps:u,showButtonViewPassword:I=!0,...g})=>{let{watch:f}=useFormContext(),v=f(o),[t,C]=useState(!1),{hasNumberChar:V,hasSpecialCharacter:A,hasUpperCaseChar:F,isLengthValid:S}=d(v,d$1,l,i,p),H=(!A||!F||!S||!V)&&!x?"none":void 0;return jsx(a,{"data-intercom-target":o,...g,name:o,type:t?"text":"password",InputProps:{...u,endAdornment:jsxs(N,{position:"end",children:[u?.endAdornment,I&&jsx(y,{onClick:()=>C(!t),edge:"end","aria-label":"Mostrar/Ocultar senha",tabIndex:-1,children:jsx(a$1,{icon:t?"VIEW_OFF":"VIEW_ON"})})]})},rules:{...n,validate:{...n?.validate,validationPassword:h=>{let e=d(h,d$1,l,i,p);return !e.hasNumberChar||!e.hasSpecialCharacter||!e.hasUpperCaseChar||!e.isLengthValid?"Senha inv\xE1lida":r&&r.fieldPassword&&f(r.fieldPassword)!==h?"As senhas devem ser iguais":!0}}},sx:{...P,"& .MuiFormHelperText-root":{display:m?void 0:H}},forceShowHelperText:!0,helperText:m})},G=O;
12
12
 
13
13
  export { G as default };
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/form/Password/index.tsx"],"names":["useState","useFormContext","IconButton","InputAdornment","jsx","jsxs","Password","name","sx","rules","passwordSize","specialCharacter","upperCaseChar","numberChar","showErrorMessage","match","helperText","InputProps","showButtonViewPassword","other","watch","password","showPassword","setShowPassword","hasNumberChar","hasSpecialCharacter","hasUpperCaseChar","isLengthValid","validatePassword","display","Field_default","Icon_default","v","validation","Password_default"],"mappings":"gLAAA,OAAS,YAAAA,MAAgB,QACzB,OAAS,kBAAAC,MAAsB,kBAC/B,OAAOC,MAAgB,2BACvB,OAAOC,MAAoB,+BAwDjB,OAUM,OAAAC,EAVN,QAAAC,MAAA,oBAhDV,IAAMC,EAAW,CAAC,CAChB,KAAAC,EACA,GAAAC,EACA,MAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,uBAAAC,EAAyB,GACzB,GAAGC,CACL,IAAqB,CACnB,GAAM,CAAE,MAAAC,CAAM,EAAInB,EAAe,EAC3BoB,EAAWD,EAAMb,CAAI,EACrB,CAACe,EAAcC,CAAe,EAAIvB,EAAS,EAAK,EAChD,CACJ,cAAAwB,EACA,oBAAAC,EACA,iBAAAC,EACA,cAAAC,CACF,EAAIC,EACFP,EACAX,EACAG,EACAF,EACAC,CACF,EAQMiB,GALH,CAACJ,GACA,CAACC,GACD,CAACC,GACD,CAACH,IACH,CAACV,EAC8B,OAAS,OAE1C,OACEV,EAAC0B,EAAA,CACC,uBAAsBvB,EACrB,GAAGY,EACJ,KAAMZ,EACN,KAAMe,EAAe,OAAS,WAC9B,WAAY,CACV,GAAGL,EACH,aACEZ,EAACF,EAAA,CAAe,SAAS,MACtB,UAAAc,GAAY,aAEZC,GACCd,EAACF,EAAA,CACC,QAAS,IAAMqB,EAAgB,CAACD,CAAY,EAC5C,KAAK,MACL,aAAW,wBACX,SAAU,GAEV,SAAAlB,EAAC2B,EAAA,CAAK,KAAMT,EAAe,UAAY,WAAY,EACrD,GAEJ,CAEJ,EACA,MAAO,CACL,GAAGb,EACH,SAAU,CACR,GAAGA,GAAO,SACV,mBAAqBuB,GAAc,CACjC,IAAMC,EAAaL,EACjBI,EACAtB,EACAG,EACAF,EACAC,CACF,EAEA,MACE,CAACqB,EAAW,eACZ,CAACA,EAAW,qBACZ,CAACA,EAAW,kBACZ,CAACA,EAAW,cAEL,oBAELlB,GAASA,EAAM,eACKK,EAAML,EAAM,aAAa,IAEzBiB,EAAU,6BAG3B,EACT,CACF,CACF,EACA,GAAI,CACF,GAAGxB,EACH,4BAA6B,CAC3B,QAASQ,EAAa,OAAYa,CACpC,CACF,EACA,oBAAmB,GACnB,WAAYb,EACd,CAEJ,EAEOkB,EAAQ5B","sourcesContent":["import { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\n\nimport Field from 'components/form/Field';\nimport Icon from 'components/Icon';\nimport { validatePassword } from 'utils/validators';\n\nimport { PasswordProps } from './props';\n\nconst Password = ({\n name,\n sx,\n rules,\n passwordSize,\n specialCharacter,\n upperCaseChar,\n numberChar,\n showErrorMessage,\n match,\n helperText,\n InputProps,\n showButtonViewPassword = true,\n ...other\n}: PasswordProps) => {\n const { watch } = useFormContext();\n const password = watch(name);\n const [showPassword, setShowPassword] = useState(false);\n const {\n hasNumberChar,\n hasSpecialCharacter,\n hasUpperCaseChar,\n isLengthValid,\n } = validatePassword(\n password,\n passwordSize,\n numberChar,\n specialCharacter,\n upperCaseChar,\n );\n\n const hideHelperText =\n (!hasSpecialCharacter ||\n !hasUpperCaseChar ||\n !isLengthValid ||\n !hasNumberChar) &&\n !showErrorMessage;\n const display = hideHelperText ? 'none' : undefined;\n\n return (\n <Field\n data-intercom-target={name}\n {...other}\n name={name}\n type={showPassword ? 'text' : 'password'}\n InputProps={{\n ...InputProps,\n endAdornment: (\n <InputAdornment position=\"end\">\n {InputProps?.endAdornment}\n\n {showButtonViewPassword && (\n <IconButton\n onClick={() => setShowPassword(!showPassword)}\n edge=\"end\"\n aria-label=\"Mostrar/Ocultar senha\"\n tabIndex={-1}\n >\n <Icon icon={showPassword ? 'VIEW_ON' : 'VIEW_OFF'} />\n </IconButton>\n )}\n </InputAdornment>\n ),\n }}\n rules={{\n ...rules,\n validate: {\n ...rules?.validate,\n validationPassword: (v: string) => {\n const validation = validatePassword(\n v,\n passwordSize,\n numberChar,\n specialCharacter,\n upperCaseChar,\n );\n\n if (\n !validation.hasNumberChar ||\n !validation.hasSpecialCharacter ||\n !validation.hasUpperCaseChar ||\n !validation.isLengthValid\n )\n return 'Senha inválida';\n\n if (match && match.fieldPassword) {\n const passwordValue = watch(match.fieldPassword);\n\n if (passwordValue !== v) return 'As senhas devem ser iguais';\n }\n\n return true;\n },\n },\n }}\n sx={{\n ...sx,\n '& .MuiFormHelperText-root': {\n display: helperText ? undefined : display,\n },\n }}\n forceShowHelperText\n helperText={helperText}\n />\n );\n};\n\nexport default Password;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/form/Password/index.tsx"],"names":["useState","useFormContext","IconButton","InputAdornment","jsx","jsxs","Password","name","sx","rules","passwordSize","specialCharacter","upperCaseChar","numberChar","showErrorMessage","match","helperText","InputProps","showButtonViewPassword","other","watch","password","showPassword","setShowPassword","hasNumberChar","hasSpecialCharacter","hasUpperCaseChar","isLengthValid","validatePassword","display","Field_default","Icon_default","v","validation","Password_default"],"mappings":"gLAAA,OAAS,YAAAA,MAAgB,QACzB,OAAS,kBAAAC,MAAsB,kBAC/B,OAAOC,MAAgB,2BACvB,OAAOC,MAAoB,+BAwDjB,OAUM,OAAAC,EAVN,QAAAC,MAAA,oBAhDV,IAAMC,EAAW,CAAC,CAChB,KAAAC,EACA,GAAAC,EACA,MAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,uBAAAC,EAAyB,GACzB,GAAGC,CACL,IAAqB,CACnB,GAAM,CAAE,MAAAC,CAAM,EAAInB,EAAe,EAC3BoB,EAAWD,EAAMb,CAAI,EACrB,CAACe,EAAcC,CAAe,EAAIvB,EAAS,EAAK,EAChD,CACJ,cAAAwB,EACA,oBAAAC,EACA,iBAAAC,EACA,cAAAC,CACF,EAAIC,EACFP,EACAX,EACAG,EACAF,EACAC,CACF,EAQMiB,GALH,CAACJ,GACA,CAACC,GACD,CAACC,GACD,CAACH,IACH,CAACV,EAC8B,OAAS,OAE1C,OACEV,EAAC0B,EAAA,CACC,uBAAsBvB,EACrB,GAAGY,EACJ,KAAMZ,EACN,KAAMe,EAAe,OAAS,WAC9B,WAAY,CACV,GAAGL,EACH,aACEZ,EAACF,EAAA,CAAe,SAAS,MACtB,UAAAc,GAAY,aAEZC,GACCd,EAACF,EAAA,CACC,QAAS,IAAMqB,EAAgB,CAACD,CAAY,EAC5C,KAAK,MACL,aAAW,wBACX,SAAU,GAEV,SAAAlB,EAAC2B,EAAA,CAAK,KAAMT,EAAe,WAAa,UAAW,EACrD,GAEJ,CAEJ,EACA,MAAO,CACL,GAAGb,EACH,SAAU,CACR,GAAGA,GAAO,SACV,mBAAqBuB,GAAc,CACjC,IAAMC,EAAaL,EACjBI,EACAtB,EACAG,EACAF,EACAC,CACF,EAEA,MACE,CAACqB,EAAW,eACZ,CAACA,EAAW,qBACZ,CAACA,EAAW,kBACZ,CAACA,EAAW,cAEL,oBAELlB,GAASA,EAAM,eACKK,EAAML,EAAM,aAAa,IAEzBiB,EAAU,6BAG3B,EACT,CACF,CACF,EACA,GAAI,CACF,GAAGxB,EACH,4BAA6B,CAC3B,QAASQ,EAAa,OAAYa,CACpC,CACF,EACA,oBAAmB,GACnB,WAAYb,EACd,CAEJ,EAEOkB,EAAQ5B","sourcesContent":["import { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\n\nimport Field from 'components/form/Field';\nimport Icon from 'components/Icon';\nimport { validatePassword } from 'utils/validators';\n\nimport { PasswordProps } from './props';\n\nconst Password = ({\n name,\n sx,\n rules,\n passwordSize,\n specialCharacter,\n upperCaseChar,\n numberChar,\n showErrorMessage,\n match,\n helperText,\n InputProps,\n showButtonViewPassword = true,\n ...other\n}: PasswordProps) => {\n const { watch } = useFormContext();\n const password = watch(name);\n const [showPassword, setShowPassword] = useState(false);\n const {\n hasNumberChar,\n hasSpecialCharacter,\n hasUpperCaseChar,\n isLengthValid,\n } = validatePassword(\n password,\n passwordSize,\n numberChar,\n specialCharacter,\n upperCaseChar,\n );\n\n const hideHelperText =\n (!hasSpecialCharacter ||\n !hasUpperCaseChar ||\n !isLengthValid ||\n !hasNumberChar) &&\n !showErrorMessage;\n const display = hideHelperText ? 'none' : undefined;\n\n return (\n <Field\n data-intercom-target={name}\n {...other}\n name={name}\n type={showPassword ? 'text' : 'password'}\n InputProps={{\n ...InputProps,\n endAdornment: (\n <InputAdornment position=\"end\">\n {InputProps?.endAdornment}\n\n {showButtonViewPassword && (\n <IconButton\n onClick={() => setShowPassword(!showPassword)}\n edge=\"end\"\n aria-label=\"Mostrar/Ocultar senha\"\n tabIndex={-1}\n >\n <Icon icon={showPassword ? 'VIEW_OFF' : 'VIEW_ON'} />\n </IconButton>\n )}\n </InputAdornment>\n ),\n }}\n rules={{\n ...rules,\n validate: {\n ...rules?.validate,\n validationPassword: (v: string) => {\n const validation = validatePassword(\n v,\n passwordSize,\n numberChar,\n specialCharacter,\n upperCaseChar,\n );\n\n if (\n !validation.hasNumberChar ||\n !validation.hasSpecialCharacter ||\n !validation.hasUpperCaseChar ||\n !validation.isLengthValid\n )\n return 'Senha inválida';\n\n if (match && match.fieldPassword) {\n const passwordValue = watch(match.fieldPassword);\n\n if (passwordValue !== v) return 'As senhas devem ser iguais';\n }\n\n return true;\n },\n },\n }}\n sx={{\n ...sx,\n '& .MuiFormHelperText-root': {\n display: helperText ? undefined : display,\n },\n }}\n forceShowHelperText\n helperText={helperText}\n />\n );\n};\n\nexport default Password;\n"]}
@@ -1,4 +1,4 @@
1
- import { a as a$1 } from '../../../chunk-YXRL4O4H.js';
1
+ import { a as a$1 } from '../../../chunk-P2QZJ57W.js';
2
2
  import { a as a$2 } from '../../../chunk-T745PFSO.js';
3
3
  import { a as a$3 } from '../../../chunk-VTWYBXPN.js';
4
4
  import '../../../chunk-BT6L5NSF.js';
@@ -1,12 +1,12 @@
1
1
  export { a as useThemeToggle } from '../chunk-5KEVIB7P.js';
2
- import '../chunk-JM3SE72J.js';
2
+ import '../chunk-TAA5KCEG.js';
3
3
  import '../chunk-373WGZZL.js';
4
4
  import '../chunk-WUFEPE2G.js';
5
5
  import '../chunk-BX2DSNRV.js';
6
- import '../chunk-X4F3O7PX.js';
7
- import '../chunk-Q2AVS24Z.js';
6
+ import '../chunk-BKL525ZD.js';
7
+ import '../chunk-7GJMLPJV.js';
8
8
  import '../chunk-LNESYSHP.js';
9
- import '../chunk-YPL4KIKN.js';
9
+ import '../chunk-4734QSYC.js';
10
10
  import '../chunk-HBOBTNB5.js';
11
- import '../chunk-GLRLKFPS.js';
11
+ import '../chunk-Y66XXBB3.js';
12
12
  //# sourceMappingURL=useThemeToggle.js.map
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export { THEME_CONFIG, default as ThemeProvider } from './theme/theme-provider.j
5
5
  import { S as SettingsState } from './settings-583c107c.js';
6
6
  import { Theme as Theme$1 } from '@mui/material/styles';
7
7
  import { a as ThemeLocaleComponents } from './types-b8e8c021.js';
8
- export { BgBlurProps, BgGradientProps, BorderGradientProps, ColorWithAlpha, MaxLineProps, MediaFontSize, bgBlur, bgGradient, borderGradient, createPaletteChannel, hexToRgbChannel, hexToRgbaChannel, hideScrollX, hideScrollY, maxLine, mediaQueries, menuItem, paper, pxToRem, remToPx, responsiveFontSizes, setFont, stylesMode, textGradient, varAlpha } from './theme/styles/index.js';
8
+ export { BgBlurProps, BgGradientProps, BorderGradientProps, ColorWithAlpha, MaxLineProps, MediaFontSize, bgBlur, bgGradient, borderGradient, createPaletteChannel, hexToRgbChannel, hexToRgbaChannel, hideScrollX, hideScrollY, maxLine, mediaQueries, menuItem, paper, pxToRem, remToPx, responsiveFontSizes, setFont, stylesMode, textGradient, varAlpha, whenAutoFilled } from './theme/styles/index.js';
9
9
  export { useThemeToggle } from './hooks/useThemeToggle.js';
10
10
  import '@mui/lab/TimelineConnector';
11
11
  import '@mui/system';
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export { a as useThemeToggle } from './chunk-5KEVIB7P.js';
2
- export { b as ThemeProvider, a as createTheme } from './chunk-JM3SE72J.js';
2
+ export { b as ThemeProvider, a as createTheme } from './chunk-TAA5KCEG.js';
3
3
  import './chunk-373WGZZL.js';
4
4
  import './chunk-WUFEPE2G.js';
5
5
  export { c as SettingsProvider, b as useSettingsContext } from './chunk-BX2DSNRV.js';
6
- export { b as defaultFont, c as primaryFont, d as secondaryFont, a as shadows, e as typography } from './chunk-X4F3O7PX.js';
7
- import './chunk-Q2AVS24Z.js';
6
+ export { b as defaultFont, c as primaryFont, d as secondaryFont, a as shadows, e as typography } from './chunk-BKL525ZD.js';
7
+ import './chunk-7GJMLPJV.js';
8
8
  import './chunk-LNESYSHP.js';
9
- export { l as action, k as background, m as basePalette, p as colorSchemes, i as common, a as components, q as createShadowColor, r as customShadows, o as darkPalette, h as error, b as grey, e as info, n as lightPalette, c as primary, d as secondary, f as success, j as text, g as warning } from './chunk-YPL4KIKN.js';
9
+ export { l as action, k as background, m as basePalette, p as colorSchemes, i as common, a as components, q as createShadowColor, r as customShadows, o as darkPalette, h as error, b as grey, e as info, n as lightPalette, c as primary, d as secondary, f as success, j as text, g as warning } from './chunk-4734QSYC.js';
10
10
  import './chunk-HBOBTNB5.js';
11
- export { a as THEME_CONFIG, q as bgBlur, p as bgGradient, o as borderGradient, j as createPaletteChannel, h as hexToRgbChannel, i as hexToRgbaChannel, l as hideScrollX, m as hideScrollY, r as maxLine, c as mediaQueries, t as menuItem, s as paper, f as pxToRem, e as remToPx, g as responsiveFontSizes, d as setFont, b as stylesMode, n as textGradient, k as varAlpha } from './chunk-GLRLKFPS.js';
11
+ export { a as THEME_CONFIG, q as bgBlur, p as bgGradient, o as borderGradient, j as createPaletteChannel, h as hexToRgbChannel, i as hexToRgbaChannel, l as hideScrollX, m as hideScrollY, r as maxLine, c as mediaQueries, t as menuItem, s as paper, f as pxToRem, e as remToPx, g as responsiveFontSizes, d as setFont, b as stylesMode, n as textGradient, k as varAlpha, u as whenAutoFilled } from './chunk-Y66XXBB3.js';
12
12
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { b as defaultFont, c as primaryFont, d as secondaryFont, a as shadows, e as typography } from '../../chunk-X4F3O7PX.js';
2
- export { l as action, k as background, m as basePalette, p as colorSchemes, i as common, a as components, q as createShadowColor, r as customShadows, o as darkPalette, h as error, b as grey, e as info, n as lightPalette, c as primary, d as secondary, f as success, j as text, g as warning } from '../../chunk-YPL4KIKN.js';
1
+ export { b as defaultFont, c as primaryFont, d as secondaryFont, a as shadows, e as typography } from '../../chunk-BKL525ZD.js';
2
+ export { l as action, k as background, m as basePalette, p as colorSchemes, i as common, a as components, q as createShadowColor, r as customShadows, o as darkPalette, h as error, b as grey, e as info, n as lightPalette, c as primary, d as secondary, f as success, j as text, g as warning } from '../../chunk-4734QSYC.js';
3
3
  import '../../chunk-HBOBTNB5.js';
4
- import '../../chunk-GLRLKFPS.js';
4
+ import '../../chunk-Y66XXBB3.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1914,6 +1914,7 @@ declare function menuItem(theme: Theme): {
1914
1914
  colorRendering?: csstype.Property.ColorRendering | undefined;
1915
1915
  glyphOrientationVertical?: csstype.Property.GlyphOrientationVertical | undefined;
1916
1916
  };
1917
+ declare function whenAutoFilled(selector: string): string;
1917
1918
 
1918
1919
  declare const stylesMode: {
1919
1920
  light: string;
@@ -1949,4 +1950,4 @@ interface ColorWithAlpha {
1949
1950
  }
1950
1951
  declare function varAlpha(color: string, opacity?: number): string;
1951
1952
 
1952
- export { BgBlurProps, BgGradientProps, BorderGradientProps, ColorWithAlpha, MaxLineProps, MediaFontSize, bgBlur, bgGradient, borderGradient, createPaletteChannel, hexToRgbChannel, hexToRgbaChannel, hideScrollX, hideScrollY, maxLine, mediaQueries, menuItem, paper, pxToRem, remToPx, responsiveFontSizes, setFont, stylesMode, textGradient, varAlpha };
1953
+ export { BgBlurProps, BgGradientProps, BorderGradientProps, ColorWithAlpha, MaxLineProps, MediaFontSize, bgBlur, bgGradient, borderGradient, createPaletteChannel, hexToRgbChannel, hexToRgbaChannel, hideScrollX, hideScrollY, maxLine, mediaQueries, menuItem, paper, pxToRem, remToPx, responsiveFontSizes, setFont, stylesMode, textGradient, varAlpha, whenAutoFilled };
@@ -1,2 +1,2 @@
1
- export { q as bgBlur, p as bgGradient, o as borderGradient, j as createPaletteChannel, h as hexToRgbChannel, i as hexToRgbaChannel, l as hideScrollX, m as hideScrollY, r as maxLine, c as mediaQueries, t as menuItem, s as paper, f as pxToRem, e as remToPx, g as responsiveFontSizes, d as setFont, b as stylesMode, n as textGradient, k as varAlpha } from '../../chunk-GLRLKFPS.js';
1
+ export { q as bgBlur, p as bgGradient, o as borderGradient, j as createPaletteChannel, h as hexToRgbChannel, i as hexToRgbaChannel, l as hideScrollX, m as hideScrollY, r as maxLine, c as mediaQueries, t as menuItem, s as paper, f as pxToRem, e as remToPx, g as responsiveFontSizes, d as setFont, b as stylesMode, n as textGradient, k as varAlpha, u as whenAutoFilled } from '../../chunk-Y66XXBB3.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,11 @@
1
- export { b as default } from '../chunk-JM3SE72J.js';
1
+ export { b as default } from '../chunk-TAA5KCEG.js';
2
2
  import '../chunk-373WGZZL.js';
3
3
  import '../chunk-WUFEPE2G.js';
4
4
  export { b as useSettingsContext } from '../chunk-BX2DSNRV.js';
5
- import '../chunk-X4F3O7PX.js';
6
- import '../chunk-Q2AVS24Z.js';
5
+ import '../chunk-BKL525ZD.js';
6
+ import '../chunk-7GJMLPJV.js';
7
7
  import '../chunk-LNESYSHP.js';
8
- import '../chunk-YPL4KIKN.js';
8
+ import '../chunk-4734QSYC.js';
9
9
  import '../chunk-HBOBTNB5.js';
10
- export { a as THEME_CONFIG } from '../chunk-GLRLKFPS.js';
10
+ export { a as THEME_CONFIG } from '../chunk-Y66XXBB3.js';
11
11
  //# sourceMappingURL=theme-provider.js.map
@@ -1,6 +1,6 @@
1
- export { c as buildPrimaryColors, b as updateComponentsWithSettings, a as updateCoreWithSettings } from '../../chunk-Q2AVS24Z.js';
1
+ export { c as buildPrimaryColors, b as updateComponentsWithSettings, a as updateCoreWithSettings } from '../../chunk-7GJMLPJV.js';
2
2
  import '../../chunk-LNESYSHP.js';
3
- import '../../chunk-YPL4KIKN.js';
3
+ import '../../chunk-4734QSYC.js';
4
4
  import '../../chunk-HBOBTNB5.js';
5
- import '../../chunk-GLRLKFPS.js';
5
+ import '../../chunk-Y66XXBB3.js';
6
6
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.22",
3
+ "version": "2.9.23",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/styles/mixins.ts","../src/theme/scheme-config.ts","../src/theme/styles/utils.ts"],"names":["autocompleteClasses","checkboxClasses","dividerClasses","menuItemClasses","THEME_CONFIG","stylesMode","mediaQueries","setFont","fontName","remToPx","value","pxToRem","responsiveFontSizes","sm","md","lg","hexToRgbChannel","hex","r","g","b","hexToRgbaChannel","alpha","hexAlpha","createPaletteChannel","hexPalette","channelPalette","key","varAlpha","color","opacity","hideScrollX","hideScrollY","textGradient","borderGradient","props","bgGradient","imgUrl","bgBlur","blur","getFontSize","fontSize","getLineHeight","lineHeight","maxLine","line","persistent","baseStyles","fontSizeBase","fontSizeSm","fontSizeMd","fontSizeLg","cyanBlur","redBlur","paper","theme","dropdown","menuItem"],"mappings":"AAAA,OAAS,uBAAAA,MAA2B,6BACpC,OAAS,mBAAAC,MAAuB,yBAChC,OAAS,kBAAAC,MAAsB,wBAC/B,OAAS,mBAAAC,MAAuB,yBCHzB,IAAMC,EAAe,CAC1B,YAAa,WACb,UAAW,uBACb,ECCO,IAAMC,EAAa,CACxB,MAAO,IAAID,EAAa,uBACxB,KAAM,IAAIA,EAAa,qBACzB,EAEaE,EAAe,CAC1B,KAAM,yBACN,KAAM,2BACN,KAAM,2BACN,KAAM,4BACN,KAAM,2BACR,EAKO,SAASC,EAAQC,EAAkB,CACxC,MAAO,IAAIA,gJACb,CAKO,SAASC,EAAQC,EAAuB,CAC7C,OAAO,KAAK,MAAM,WAAWA,CAAK,EAAI,EAAE,CAC1C,CAKO,SAASC,EAAQD,EAAuB,CAC7C,MAAO,GAAGA,EAAQ,OACpB,CAKO,SAASE,EAAoB,CAClC,GAAAC,EACA,GAAAC,EACA,GAAAC,CACF,EAIG,CACD,MAAO,CACL,CAACT,EAAa,IAAI,EAAG,CAAE,SAAUK,EAAQE,CAAE,CAAE,EAC7C,CAACP,EAAa,IAAI,EAAG,CAAE,SAAUK,EAAQG,CAAE,CAAE,EAC7C,CAACR,EAAa,IAAI,EAAG,CAAE,SAAUK,EAAQI,CAAE,CAAE,CAC/C,CACF,CAKO,SAASC,EAAgBC,EAAa,CAC3C,GAAI,CAAC,kBAAkB,KAAKA,CAAG,EAC7B,MAAM,IAAI,MAAM,sBAAsBA,GAAK,EAG7C,IAAMC,EAAI,SAASD,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACpCE,EAAI,SAASF,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACpCG,EAAI,SAASH,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EAE1C,MAAO,GAAGC,KAAKC,KAAKC,GACtB,CASO,SAASC,EAAiBJ,EAAaK,EAAwB,CAEpE,GAAI,CAAC,gCAAgC,KAAKL,CAAG,EAC3C,MAAM,IAAI,MACR,sBAAsBA,0CACxB,EAGF,IAAMC,EAAI,SAASD,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACpCE,EAAI,SAASF,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACpCG,EAAI,SAASH,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EAG1C,GAAIA,EAAI,SAAW,EAAG,CACpB,IAAMM,EAAW,SAASN,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EAAI,IAErD,MAAO,GAAGC,KAAKC,KAAKC,OADDE,IAAU,OAAYA,EAAQC,IAKnD,OAAID,IAAU,OACL,GAAGJ,KAAKC,KAAKC,OAAOE,IAItB,GAAGJ,KAAKC,KAAKC,GACtB,CAKO,SAASI,EAAqBC,EAAoC,CACvE,IAAMC,EAAyC,CAAC,EAEhD,cAAO,QAAQD,CAAU,EAAE,QAAQ,CAAC,CAACE,EAAKjB,CAAK,IAAM,CACnDgB,EAAe,GAAGC,UAAY,EAAIX,EAAgBN,CAAK,CACzD,CAAC,EAEM,CAAE,GAAGe,EAAY,GAAGC,CAAe,CAC5C,CAaO,SAASE,EAASC,EAAeC,EAAU,EAAG,CAOnD,GALED,EAAM,WAAW,GAAG,GACpBA,EAAM,WAAW,KAAK,GACtBA,EAAM,WAAW,MAAM,GACtB,CAACA,EAAM,SAAS,KAAK,GAAKA,EAAM,SAAS,SAAS,EAGnD,MAAM,IAAI,MACR,sCAAsCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASxC,EAGF,MAAO,QAAQA,OAAWC,IAC5B,CF1IO,IAAMC,EAAyB,CACpC,gBAAiB,OACjB,eAAgB,OAChB,UAAW,OACX,uBAAwB,CAAE,QAAS,MAAO,CAC5C,EAEaC,EAAyB,CACpC,gBAAiB,OACjB,eAAgB,OAChB,UAAW,OACX,uBAAwB,CAAE,QAAS,MAAO,CAC5C,EAMO,SAASC,EAAaJ,EAA0B,CACrD,MAAO,CACL,WAAY,mBAAmBA,KAC/B,qBAAsB,OACtB,oBAAqB,cACrB,eAAgB,OAChB,cAAe,cACf,MAAO,aACT,CACF,CAWO,SAASK,EAAeC,EAAwC,CACrE,MAAO,CACL,MAAO,EACP,MAAO,OACP,QAAS,KACT,OAAQ,OACR,OAAQ,OACR,SAAU,WACV,aAAc,UACd,QAASA,GAAO,SAAW,MAE3B,KAAM,mEACN,WACE,mEACF,cAAe,UACf,oBAAqB,MACrB,GAAIA,GAAO,OAAS,CAClB,WAAY,mBAAmBA,EAAM,QACvC,CACF,CACF,CAWO,SAASC,EAAW,CAAE,MAAAP,EAAO,OAAAQ,CAAO,EAA+B,CACxE,OAAIA,EACK,CACL,WAAY,mBAAmBR,WAAeQ,KAC9C,eAAgB,QAChB,iBAAkB,YAClB,mBAAoB,eACtB,EAEK,CAAE,WAAY,mBAAmBR,IAAS,CACnD,CAYO,SAASS,EAAO,CAAE,MAAAT,EAAO,KAAAU,EAAO,EAAG,OAAAF,CAAO,EAA2B,CAC1E,OAAIA,EACK,CACL,SAAU,WACV,gBAAiB,OAAOA,KACxB,YAAa,CACX,SAAU,WACV,IAAK,EACL,KAAM,EACN,OAAQ,EACR,QAAS,KACT,MAAO,OACP,OAAQ,OACR,eAAgB,QAAQE,OACxB,qBAAsB,QAAQA,OAC9B,gBAAiBV,CACnB,CACF,EAEK,CACL,eAAgB,QAAQU,OACxB,qBAAsB,QAAQA,OAC9B,gBAAiBV,CACnB,CACF,CAiBA,SAASW,EAAYC,EAA2C,CAC9D,OAAO,OAAOA,GAAa,SAAWhC,EAAQgC,CAAQ,EAAIA,CAC5D,CAEA,SAASC,EACPC,EACAF,EACA,CACA,OAAI,OAAOE,GAAe,SACjBF,EAAWhC,EAAQkC,CAAU,EAAIF,EAAW,EAE9CE,CACT,CAEO,SAASC,EAAQ,CAAE,KAAAC,EAAM,WAAAC,CAAW,EAA4B,CACrE,IAAMC,EAAwB,CAC5B,SAAU,SACV,QAAS,cACT,aAAc,WACd,gBAAiBF,EACjB,gBAAiB,UACnB,EAEA,GAAIC,EAAY,CACd,IAAME,EAAeR,EAAYM,EAAW,QAAQ,EAC9CG,EAAaT,EAChBM,EAA6BxC,EAAa,IAAI,GAAG,QACpD,EACM4C,EAAaV,EAChBM,EAA6BxC,EAAa,IAAI,GAAG,QACpD,EACM6C,EAAaX,EAChBM,EAA6BxC,EAAa,IAAI,GAAG,QACpD,EAEMqC,EAAaD,EAAcI,EAAW,WAAYE,CAAY,EAEpE,MAAO,CACL,GAAGD,EACH,GAAIJ,GAAc,CAChB,GAAIK,GAAgB,CAAE,OAAQA,EAAeL,EAAaE,CAAK,EAC/D,GAAII,GAAc,CAChB,CAAC3C,EAAa,IAAI,EAAG,CAAE,OAAQ2C,EAAaN,EAAaE,CAAK,CAChE,EACA,GAAIK,GAAc,CAChB,CAAC5C,EAAa,IAAI,EAAG,CAAE,OAAQ4C,EAAaP,EAAaE,CAAK,CAChE,EACA,GAAIM,GAAc,CAChB,CAAC7C,EAAa,IAAI,EAAG,CAAE,OAAQ6C,EAAaR,EAAaE,CAAK,CAChE,CACF,CACF,EAGF,OAAOE,CACT,CAYA,IAAMK,EACJ,4ltBACIC,EACJ,gngBAEK,SAASC,EAAM,CAAE,MAAAC,EAAO,MAAA1B,EAAO,SAAA2B,CAAS,EAAe,CAC5D,MAAO,CACL,GAAGlB,EAAO,CACR,MAAOT,GAASD,EAAS2B,EAAM,KAAK,QAAQ,WAAW,aAAc,EAAG,EACxE,KAAM,EACR,CAAC,EACD,gBAAiB,GAAGH,MAAaC,IACjC,iBAAkB,uBAClB,mBAAoB,yBACpB,eAAgB,WAChB,GAAIE,EAAM,YAAc,OAAS,CAC/B,mBAAoB,wBACtB,EACA,GAAIC,GAAY,CACd,QAASD,EAAM,QAAQ,EAAG,EAC1B,UAAWA,EAAM,cAAc,SAC/B,aAAc,GAAGA,EAAM,MAAM,aAAe,QAC9C,CACF,CACF,CAMO,SAASE,EAASF,EAAc,CACrC,MAAO,CACL,GAAGA,EAAM,WAAW,MACpB,QAASA,EAAM,QAAQ,IAAM,CAAC,EAC9B,aAAcA,EAAM,MAAM,aAAe,IACzC,uBAAwB,CAAE,aAAc,CAAE,EAC1C,CAAC,KAAKpD,EAAgB,UAAU,EAAG,CACjC,WAAYoD,EAAM,WAAW,mBAC7B,gBAAiBA,EAAM,KAAK,QAAQ,OAAO,SAC3C,UAAW,CAAE,gBAAiBA,EAAM,KAAK,QAAQ,OAAO,KAAM,CAChE,EACA,CAAC,MAAMtD,EAAgB,MAAM,EAAG,CAC9B,QAASsD,EAAM,QAAQ,EAAG,EAC1B,WAAYA,EAAM,QAAQ,GAAI,EAC9B,YAAaA,EAAM,QAAQ,EAAG,CAChC,EACA,CAAC,KAAKvD,EAAoB,8BAA8B,EAAG,CACzD,gBAAiBuD,EAAM,KAAK,QAAQ,OAAO,SAC3C,UAAW,CAAE,gBAAiBA,EAAM,KAAK,QAAQ,OAAO,KAAM,CAChE,EACA,CAAC,MAAMrD,EAAe,MAAM,EAAG,CAAE,OAAQqD,EAAM,QAAQ,GAAK,CAAC,CAAE,CACjE,CACF","sourcesContent":["import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport { checkboxClasses } from '@mui/material/Checkbox';\nimport { dividerClasses } from '@mui/material/Divider';\nimport { menuItemClasses } from '@mui/material/MenuItem';\nimport type { CSSObject, Theme } from '@mui/material/styles';\n\nimport { mediaQueries, remToPx, varAlpha } from './utils';\n\n// ----------------------------------------------------------------------\n\n/**\n * Usage:\n * ...hideScrollX,\n * ...hideScrollY,\n */\nexport const hideScrollX: CSSObject = {\n msOverflowStyle: 'none',\n scrollbarWidth: 'none',\n overflowX: 'auto',\n '&::-webkit-scrollbar': { display: 'none' },\n};\n\nexport const hideScrollY: CSSObject = {\n msOverflowStyle: 'none',\n scrollbarWidth: 'none',\n overflowY: 'auto',\n '&::-webkit-scrollbar': { display: 'none' },\n};\n\n/**\n * Usage:\n * ...textGradient(`to right, ${theme.vars.palette.text.primary}, ${alpha(theme.vars.palette.text.primary, 0.2)}`\n */\nexport function textGradient(color: string): CSSObject {\n return {\n background: `linear-gradient(${color})`,\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundClip: 'text',\n textFillColor: 'transparent',\n color: 'transparent',\n };\n}\n\n/**\n * Usage:\n * ...borderGradient({ color: `to right, ${theme.vars.palette.text.primary}, ${alpha(theme.vars.palette.text.primary, 0.2)}`, padding: '4px' }),\n */\nexport type BorderGradientProps = {\n color?: string;\n padding?: string;\n};\n\nexport function borderGradient(props?: BorderGradientProps): CSSObject {\n return {\n inset: 0,\n width: '100%',\n content: '\"\"',\n height: '100%',\n margin: 'auto',\n position: 'absolute',\n borderRadius: 'inherit',\n padding: props?.padding ?? '2px',\n //\n mask: 'linear-gradient(#FFF 0 0) content-box, linear-gradient(#FFF 0 0)',\n WebkitMask:\n 'linear-gradient(#FFF 0 0) content-box, linear-gradient(#FFF 0 0)',\n maskComposite: 'exclude',\n WebkitMaskComposite: 'xor',\n ...(props?.color && {\n background: `linear-gradient(${props.color})`,\n }),\n };\n}\n\n/**\n * Usage:\n * ...bgGradient({ color: `to right, ${theme.vars.palette.grey[900]} 25%, ${varAlpha(theme.vars.palette.primary.darkerChannel, 0.88)}`, imgUrl: '/assets/background/overlay.png' }),\n */\nexport type BgGradientProps = {\n color: string;\n imgUrl?: string;\n};\n\nexport function bgGradient({ color, imgUrl }: BgGradientProps): CSSObject {\n if (imgUrl) {\n return {\n background: `linear-gradient(${color}), url(${imgUrl})`,\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n };\n }\n return { background: `linear-gradient(${color})` };\n}\n\n/**\n * Usage:\n * ...bgBlur({ color: `varAlpha(theme.vars.palette.background.paperChannel, 0.8)`, imgUrl: '/assets/background/overlay.png', blur: 6 }),\n */\nexport type BgBlurProps = {\n color: string;\n blur?: number;\n imgUrl?: string;\n};\n\nexport function bgBlur({ color, blur = 6, imgUrl }: BgBlurProps): CSSObject {\n if (imgUrl) {\n return {\n position: 'relative',\n backgroundImage: `url(${imgUrl})`,\n '&::before': {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 9,\n content: '\"\"',\n width: '100%',\n height: '100%',\n backdropFilter: `blur(${blur}px)`,\n WebkitBackdropFilter: `blur(${blur}px)`,\n backgroundColor: color,\n },\n };\n }\n return {\n backdropFilter: `blur(${blur}px)`,\n WebkitBackdropFilter: `blur(${blur}px)`,\n backgroundColor: color,\n };\n}\n\n/**\n * Usage:\n * ...maxLine({ line: 2, persistent: theme.typography.caption }),\n */\nexport type MediaFontSize = {\n [key: string]: {\n fontSize: React.CSSProperties['fontSize'];\n };\n};\n\nexport type MaxLineProps = {\n line: number;\n persistent?: Partial<React.CSSProperties>;\n};\n\nfunction getFontSize(fontSize: React.CSSProperties['fontSize']) {\n return typeof fontSize === 'string' ? remToPx(fontSize) : fontSize;\n}\n\nfunction getLineHeight(\n lineHeight: React.CSSProperties['lineHeight'],\n fontSize?: number,\n) {\n if (typeof lineHeight === 'string') {\n return fontSize ? remToPx(lineHeight) / fontSize : 1;\n }\n return lineHeight;\n}\n\nexport function maxLine({ line, persistent }: MaxLineProps): CSSObject {\n const baseStyles: CSSObject = {\n overflow: 'hidden',\n display: '-webkit-box',\n textOverflow: 'ellipsis',\n WebkitLineClamp: line,\n WebkitBoxOrient: 'vertical',\n };\n\n if (persistent) {\n const fontSizeBase = getFontSize(persistent.fontSize);\n const fontSizeSm = getFontSize(\n (persistent as MediaFontSize)[mediaQueries.upSm]?.fontSize,\n );\n const fontSizeMd = getFontSize(\n (persistent as MediaFontSize)[mediaQueries.upMd]?.fontSize,\n );\n const fontSizeLg = getFontSize(\n (persistent as MediaFontSize)[mediaQueries.upLg]?.fontSize,\n );\n\n const lineHeight = getLineHeight(persistent.lineHeight, fontSizeBase);\n\n return {\n ...baseStyles,\n ...(lineHeight && {\n ...(fontSizeBase && { height: fontSizeBase * lineHeight * line }),\n ...(fontSizeSm && {\n [mediaQueries.upSm]: { height: fontSizeSm * lineHeight * line },\n }),\n ...(fontSizeMd && {\n [mediaQueries.upMd]: { height: fontSizeMd * lineHeight * line },\n }),\n ...(fontSizeLg && {\n [mediaQueries.upLg]: { height: fontSizeLg * lineHeight * line },\n }),\n }),\n };\n }\n\n return baseStyles;\n}\n\n/**\n * Usage:\n * ...paper({ theme, color: varAlpha(theme.vars.palette.background.paperChannel, 0.9), dropdown: true }),\n */\ntype PaperProps = {\n theme: Theme;\n color?: string;\n dropdown?: boolean;\n};\n\nconst cyanBlur =\n 'url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAENBSURBVHgB3X3dbhxHlubJEiVStn5Jlrkm2DBh0B5AvCSwVwN0zUOUH2JeorJeYh+iay8Xe10G9nKJxV5QwLQFg15z6aGLomRLtkSJrNzznZ+IE1FF2b3Tg2l02KnMjPypZH55/k+caLqua8hb03TE++josGtrsm20djxuWqx5OXrypJk8fdoNsR4Ou5Zyw/ZwMpHLZv1+05/NOqynvD/gxdf+L1mf97y6f9gc8vqAl7ff3m2OPn/TEa/37t3he35Dz15/1mH7GR/fvbvSrLy56q5s/YzXu37TY6Krj1fs8b/n5Q80XztrTu3wNi/Y3lq93dy67Henq7Nmy47N79h1M176/C5+vtWcP7ju+jM93q3ekuMN9834WN/Xl9edH/tL2rmt12+/bC7eP+o2Q//67VtN7/21wIFn2OT9hvd7766k7/rtaq+5vHa45JG3Hl4JuIwqdQ0D21U/iIMtr0Y4Tgr2OADsrR2NaMjn7fMprYEqjUFXkIeyOyHdmvSnzYAioIN0yav7xMAeMrCA9lD6Du/exb35i6KF9ssvP/ZWtna6Z2cnzS4BzFX5/ZX+p/LnXK0ySCff0wkDu8P7JwzuNsN6SgoxgMX6zO63Fe6Nvv5PfD2DOzOQAe6sL5v6IhlQAAGQ5QNA5wYD8vPLpvfgUeegbT7nD4aBw0EANWeALniNa3GOrHE8AItzsBZgNwwT3u6s/5y35TlmGdAzfJT2Afb5YE+2IhWH1lXbALc+p/WNyURWALAFsNLHoD8dMuVOG4BKvGAbh6Z/vi/rg/v3haqnfz5sXvECUA8O8a+By0DvG7CX975rjnjx7V/6P/aOt97IY+4xyMe8XvnlsgO42D6e/dCcCLiUwN15u9UBXAC79fJ2c3b5vjurgNW2Jf85uH0DdWbIzmyRF/1AX7oAuKFg9hiocwaZnivYAO/CwFKgnwtVOohYb/I1oN7zjUzNvQcK7tw+HnxEuCfaJm/PKH9wc/4Y0YdnBdh4wB6zaAFOGTODyB/JOHNkANiFbSKm1jbsgz378SNQMVg1U+1EgKbu6MlE2PNwNigZxJevOoB7eAiQD4sP5+3ju83g1UF3aFS89oJBNJD3DNwrpmrZZx4N1gwK3mHqdQomBneXgd5eu9NgAXvetvuDgm8xsMBPKJhZs/+2smXAfcbbzxsj3ASosGe8ZFAu1qAsBuccoDLFpvsYcOsCJq/5xHVyKia6MEq+sHOcqgU4KlkywI3U7tQs5/J58s31VWTcWruc44ME2HjUBgA3jaIr23ahUKyxZwd8ZGA7Jbe+MOhg81/x3wg2fcSUO7H7DJmUZ9MpgzzonHrBlCFj77961b0CJTOOAHrw5UEHKj48UAadAP/2abPGMhiy+NJlMPfvnt0tPoxj9FFm07mp3C37VPqeMhX311aa3turTsl4i8GfsyzuNfTTc6EGvL0Z/4fNzsCMrBUNLPr6zZ3eBWS0s9HnfMbGJoGS1wXUjM4mn3PO56zb9RdGln6erPmDATcgo+j1n281BXvfUJYtFwY9QXQCYy89hlZAdnBblcmy7YByXydymIG1c4goUzS+hLHJYHRNmHKZV3ftU14z0tNEvQPKKhbLW2PT3qZ/VkreZ0C9D4x67fMn3du7APc7VqoYXAZ2zwA9jjcwCgZLxjJnyoXsBfX23r5TZYQp9lrk7qlsbz96383Azra2ROaeyTk9VbQgw95tdM6M5V9+4VCmBCT7WWedABd9szeveqC6+e2VZl6Aq8A9vv1Tc/3R7Z73A1ztX2k6XtbXNxTcdHcSrtGz33XKxrNAB5CPqZ9FxsyeHR8ks2h/O42gE0AVMAuNejSCpsxK1igB3I7BpieieKU+ci1bKXnoACa1ioFj6r3PbPrQUSTVmOlAaRdUe5jPpsvvoDF/obtQqhjwXd7c5X+Od5Vqd+xsX58yqCp7QfV/kL4zZscA8dSUK6xV/p7RNh8rZXGf2TRTMq/79pJBTXip6RRj0ZFtgh0DjAth2RvCutetX970+4fdi/dzpvKfGu3XG0n/3Xtzungu1Apoz29vKdvm+50/j6xfjwsnYU6BDwzPeJ6eXGWzKlkMXxNoaSwgkmBfm0v6AYzTue0IFAttmZqjILvBpqlqg0C9g69V0Rp8qUDvPzZ2e5hhJVAyL6De1ddKgXty4Bthxfhn5c1OtzNbbaBYndhCpjHvGGuGzMW6xwqWGEWQuZDB1iCvlHJnsobsBbDCmGcqfTvTls+NgvEi5/6SeX9uoGMfVDk3OQ3qPJdjG4mK0R7f7jUvGFAycAG2UKZcY1/Lzy/TPYXNm1yGEob1evqwNsk/POcuFFi0mb8dOcojA9fB9nVWvqBojfRMO7jPLHkSFDJQLvp8W2XyNP2B0z8mYhVWDUUK0ApLfqGaMUyj/f0nQr2yw8ASqJhZ9DEpws/unjTQnOn4WEDfYeUK6J4YxSqooOatbr6GF62qlptHoNges2hozGcUm9saKnf9RaN19mIFENNonX2C8tbXFWSwYjLlypuDDAqOvwbqdZns1/s27rnJXAB90MbXjZO43PYPbzPcDwoXqLhxR0cTyTRuMvrjruu1sHFB2WOl2kDE0qBn+QcASgbYw4qKYSpBmy7sYAbXFSqAmyjZmipV2p4xFe/FfXFoHBOg3eX9q9mKgnuS2TRkMTGwrkGDSuHQgJwFW44mEjRoOA5gS7qd2/286LA4NwKLCpBo1aBsO18pdN4BZIDngINq/RjOi0pVJx/EY9LrmPZ4fVGdo+15+lBgWiX72ti42+WuRSuFjlljHmWHhvQFVo0mCtaYFhwdTsjoGxq4ZOAO+g7ylFzB6hvI6XqAbH6NQ6y/VceGa87xpy7Ne7Vn+zCRsD7mZUecGvlc39wWDdohPjW5q6YQ2b8K8paaRjO1IwG4asN6ZdKag7ydrzBLvaAFKt00bbcXtOXuNYN9T9lyCdhii8drkHHP649e95r3V4kOxe6Oz8fPDM+WsmgSqpSTXeaKFs3UGx0ccoJyZlXERgb0WGWuU+xQLp+IicR2YzeVBZr0VB4G5hJkMLEdjCWCu2/gAkhxUdofcESZmgEuQH4WwN3lZeXyqjsx0nXnxrax5dO37sbbFmUKW2fB/hWw3O5l8j1bAu66sWr0ucztnfF9mVqERQfWeh4cGEqdPQEX64vXPzURXACPxcGMIPvHknufy72dK7jpVZhsp3r+jNn0SkGeXalQjdu2sHcpU6/2G5uGtrwPk8gp2d2TE6ragJIuzTJ4ADv4vppKh9WZrlTJ/Unl8SUpxR6TAopWb0vbyfc5PTfaXcus1tn0lrBpo2UGd4tNIt92Jwa8VGQK1pyCv9jW5xsqI+dVv4Mq7NbBu/eQ1rH/+DFM0ebFixfE2/TCrsF52Ce75gV/EM4JMhVDpj8Xil2/vSFKnDtByJ8PfnB77kbd0HrQ7eDW5W30YgXnhq5H6SUCYKwnhihclUcTBd1NJTKWPAwOjynlUMPUgBZiNra8b8eccgE6tmuQ0Y5tjT74n0HB2+fMIjf5Bd3hP/jUwe2xe3LO4M4aZ8zKouG5+rRxh4Z7sFwGu6/ZX3bd3HFBDoSBBRAFPF4SkLaWfQbRwfQPAdsEKr+nVJruSUvYtmnT0dPl2jZYtMhg/7RFvo4oseUR272NBRfcoVG3tljGEmHKR4cL5y8Dd4GKjU2jOfV6izLYI0l+TAILpKz63f3VXu/ddedAA98khUG5DDL2BXBe94NbMj0rqSvQTSN4qkSm2kuk6MGwlhWmrCQJcKBMBhugFgBb8w/A1+vGzhuxl3Vd/4a3+EyFS5PMDnZ7d9QquEbJaY2m7Hgs57R2LnqGRr3q7FCq9rADKHgWlSlpg2LPwY1tfz/IW1sf2ToqWHvVdSKDeX3MQJ++U8rdqc4RQq7AlRcBjxUvWKdAws8aksOmuCEjuNwuDNwsCwNrfvGi+N2bKBnLI7tfBPnCqDk2/x0H133Z4vxYEp0SbRoU7Bq038i1ZwJbZioW0J2SSW0kgDl84mx4UnistElgsOid9bPZ9CoEGJxyo7lUs2oAHAG9qhQs34YdfLKjjo7ImsU1iejRI5a9L9mhseV6szalYsjkGcXWuSz2CM5GVrBiiwDLvrFYgN29/lnZPD4WY9sC5mOl5ccGfs3CRSkLmnek5Mii/ZmimeStMJOcPceW2XcMFeaIEoFyOejvrFmC+hw9wvaQ/3NQoU0D7oPPD3uff3swB2WDeu8HRQtNwI7A2rpgzRbQ9+A+zt1lRwf8lqBep9r5uQcYtrP9y+DC70xnLHMRZHi40c05qCCqM9tHHnpLsV1Sir1199185jLWXuZc/MD80s/4711X2wmAuGxNspiWtAg0fUBG271cPjf33KYuwYYNTmaXe5MIl1zUqJkU7V93WoiEruPAoyx3QZ9R7kpokDL9AlgHFzYxAMV5U2bVuj0g92A55e5TlrtOvcXvM7DHlsGxa13HDO4VvFihnVLdrIfBJaPgMwYXIPfezbsog1OgnpRKugCuuyKTjLyzskDRj4PpA6BePM4esS6yZAY6UbP+L8flHABLSqnJfjYTy+W7mGfJdaquzXmIGRcyONm/Fj3CMajYLUXHxohtXs/aGAc3ZG0VDRPIzqjFHmZAv2UqHpCCjH8Bqi/ejigncOwHP/SzcM4xlU1YMwf4kcGR2raGBcXXzCxagN3KbslNNilAwQDaKdc1Z7A+CeBTBhxv23WrF/aSyVgtggRCjY8zzUK+iqw1cgRwzb0HnW9jDfAfMRt/9PqWUD9YOZbHzg1IOQPZvWtxsM7OFizej6iWJBBQyujI9m9LRdwheC/Vw9HaXut9TzV7Y9/W3iCbHVgHmoxd3+dgPtYI9E8rpesweK4OPleftAMtrkpSoHeNekHJWGMR1swgy0KqNV8/n4kGbaFekkA+WDIWUm+P50/FPCpRUN5bEGEj93lbX88v2IEGJQu0JlMB4Eu+h1Aw7nePgWNwHTQHGjSM7ZfYf6yAy0JG0aaFN+xGLexqMmrlD0sWCg4YAzl5suQHqQo0BNbcmo2EtYDJsheaNNaAsDVFy6nYbWOioGoxBQ+NZU8BJgM9oMXmcvenHx/2fFscH8yqowPE2zGpiQQt2vtOWP72Nrc6yF1EkzzYC+6M4ILburGJ3Xip7C7FeAsvUm6uQUscN2i8UXcGuMJi7111j5OQXaZQ6ScAZQtUDGqXxdh6Y4l18gFBQ6f826pZw9uiX6HHpNGgZd/qurZhgQvXoSz/NBCgJRjwT4OBbNPXX+uLfzJroER9Mvuv9Mnsn+m//DP19p/usyk0aZ6SgvgJH//vv/7KoOwXchTtqRyn5uNfef3xtNm4/7xZfbdN71Z/SHbw/vZt8QV/wtsr765lDRn88I66/K7v6Bf67dWcNnl5wJT8CH/MtfqS/s9Kr7nH4N7HC3n0sLl+N2v+9fonuvf2ltq7rFg1P83pR76W+NyPASxjiDUo+Jz78II+smfGurl93f16q9esMRuEa/I5bydbl/Wc5s4a3QVE7y6bqCCBPeP4i3e95i6f0F3z/p1HfO4Lesv/3k3n3pX/Xtzl3jt8Ph9Yw7m/8L1xPf/e27dv6SOh4HeinZP9/tt5J54tevNG7vfx6pqEFj96vSb3Vi3a+TP0qS57sqBao7VUyuDYWtGih2IqYT+l6ti/Tr3QpkG5WHu6ztQixGmftel9jv0eHWUNWhoDDDnsytaH0mRByXOjXteiJYPDhK54raBE/1QqRpDFzQ3prucbZfaGuC1X7LyLHERwDfrR7Ww/KxB67ksxk5Qly8s3JwbMKGXXLzJlvzDqtfuI9mwaeROcIDjmiXyqTXN06WfdRoamyOBxa9kbnabnmCzWPOdRzt7QNi4jSeTsWMFsTRZHoAHqlLIdDBkM02hAcFFq/vPsk096ULLW/sebLlK+bBu4bgc7uJC/2N+ND8MK1unmVslWzyxutJWUZ9GW4+LgOntGm1vWY3LihyQ413RSEMHAXWcqayq2DtlLj5TlggV7/8Vt2N0v6KWB2/ExPy7y+57eB/d116dr09mz9ZwQWXK72MHdtPRbkcHRyRGjRy3JTkW9mYJBvVCy1As9MZNpImx80U05JZe9WBTkQ8meFGDfPNHQoKnSHvRH2wvggnoTuLaN/mNSD9aJKVi5baty9UhTdZBNiQwOSbJb1i6zNwjy98JMEH/pkrZjUSPIYY/r4sWLY4PlpCtVvgC4lzP+gF6r0uWODxXLTs9An2TBfm/13hxU/OJx9nhBebtYEnVq3ucQJBrARWIAnltyssQlOS5SZT3oUPia43FZP9XRDCmh3foHX3899z04NPqiXA3UFg73cZB1T9Nj31o67Nt/1FAhlmdBsTo2G1g06XAvbO9QFegnygnuL2cSA75e3RFw4eSAkoXtmaWcCvtdzamrnuPsDZS7LIbrIcAuKFvJPCKlfKxF6QIVGoV3LO9FS15hwBm85oop+aWCjvu9MMUsfixJq6YIcpmR6fYwHDSNRJPk18pokl/aFpp0bSapD1rZc2TKk0C/QwEZ8eA8qmFAoGP3ZHkabR1sALgyPIUBdm8WDidb2GSvRI8u1VzygAPayTkyOQDxNm2JJwt5WNvZB222r/z5y4aaBK8Q3uF5sInd4bEO82R9IwcZKh+ym0rYdieGm0famDWzPG9mKp+1J7fHLzKwYipVqT7xAS9SehBCiMai21ZSsoo4sMhgJMNTTbljcmWqtQUmE2xet3ezWjUUtyX2MrgxhUc9WFMqxyG5swPUHGXxZTCRoh2MthLA9YCDNA4VShRpW4P7cHScwlV5ZvbSQw0soJ3DPIKZ9MCWS/XrYhHHg5kf85+zTJaXyeBGUBHqa+ISwEWL8tnDD6BcZ+XoXEemxot0QuHGFHygmIFr2L5ncMJdeWGxYh8K05SDzyihrGx7XLHpRQpGc9AjvFRtDUJUKVOubiOFFqMcYlYHqPcgpOzU1FuHCQHsMeV4MAINvXchFswgnz5lNr2VE2Ph8JgxyE7JQsUbOYEtjTeyoL7YmJa62pPwIb9loyjXpD3I4H2KkIYK3f8s0aNHj+jllV4L+zcGHmpNPHrHluVpecKfpA9dXRfJ8r3kn5Qn0qBDpOaWZORCh6iSatDjFPvN4DpDnhjElKjXw4XIw5raugb6wOPBAJdlMHKxQLV5JEMGNmrSfp+1l2/FCN6l3ACur3tI12GQt6FoMeVi5IKft8X7ccxR4yG3B6UmHB0eHn91D5a7K0FV0UZNFxtoZOCCRTcMrmR32ClwVT4OIcboAXMF64WZVY8rMRCjW55xKfqEBBu67IMWqh2VMWEiS9ExWSyBhVGmZvVeZfmrW5MUdHC1CibSgBRwtYGJYiQJ2wLum6w9g02X+dCL7Zhy6NDbSdiAHJZ02W0bJsoUDDYNGazDVbbSmCMZfomdDUscd5+0hwpD4jmFl+qRnRchuoN9eKBA1ZKtYak5jWnRbgMLpKZ4iceKt2FqJc2ZAnv2iBIf91ytnuWDyfglpl5P5fVnbuqUHW/CnoVq8/7I9hvLzUq5WOS28KTQqIdG2Wr/TtO9fevA2LNvS+ehadBHiyk7y1oKF1KZthPDhmgAGjlYoGDJu/K48JqmyHqyXRxs5iD6uN/oi/bUnc0waMybULSn7Jjv2J0THiIkAzxRbWDjaDgPQLvZ5Q4O/40upN6Sp+34kBroDg/WO/r5wtImMbawyxGldlleFpQuBnhcJdwNJefKcziUSQ9EawYFV+OCKcviKHvdi4V+D/TXniys9mNOlrFoUHak4OOZbu9UqRzzcwUhhRBflvJYzrnjbDV7qSVtxwZ0eYzYc54wvggvedO2b/36fl6DHZs7K9AS0N4cYMoxXzfJbgr69ywPu0jRJXyQ6/ysF2oHN5RH9EP+Rk16FIavkFHvCEOYxoK+7IOCo/fKwXXzKIUSYR6FfCyAOrBjALsOF6LthTRZZ9Fg2StuBwdHhzfBtc+atI1AE2BPMrBpCKk5PjKoDCZiwu/w8voCbHJsUDUeiZSC/UX79rlR9bKkPGmiVc+TVp2jTA+Ts8QpOAcSsmsS/SlESaYMWrKfg7u5wVo9KJdBBtA9MYVaGx5qie+jOLDB1v4BNDh3JKQdSjnkQWZ9MYmGIo1hHiHIL0aTKVdTux/WRSbHYTksCdT78Puf5qBkd3TAXVkH/13ZukLA4pgxZXDJ2LPL4pM1s4ctN1rTZdXBdfvV1TwOWUEfMisl2S6ko8aMxfj7icoMgHUqMx+9P2q+Iq/DPaTvbJaAiyZQvMYzOVIcGM9oedfRpSrsWe7TNPzptT2E/YAW/y+6cWPRJKq2ObhEDUecRv/E5w8ywJ/MIL/2G8SLJrxIJGm43/WfUvOf/6cGGPAB7H583OySykgsq+/ecSRpVcyjH8jGKmH77m1h0f+b14gmYfkXiyJ50P+Bpc7Cn3uPwV25/FT8vfD2ffRy1utWfmke/qd79H8/4r/1oqOHV/fonuVG90wh/lcOLH208mPDRyQXun/rTdPduscRpl/p3MTbx6u8vuw1MWvx47lGebpbmfqxv4ZhKvM1A+mn5iPebuw+Hjlag6L08UccXeL4ERaOEr3laNTa9fvmLvcL+HzNY4sUvbHr3hjYuN9FuB/WkiLrhgFHlT6696Zpzl5Ts/aRKlnyQBDEN9TpENkM9o3xR8GlKZQLJ4cpWDKUgWSrG0ynvX41qt/HJKFhwJkQ7JeLNrC8iCXDVmLAIdvDJ42OTbIxSpabhYaxSpI2u4a02Zw4qxmVqkkXNTmQeiPJ72epqAnMp83AnqMMzrU16oHceZB3lMm1/Zpka+0N+8C4pFqx6wXzLfVZflYjLNo1aAN3bIO8FzQFsO9x2S3yN20/he0qC4aw1OCqmTRILPoQwB6YEeXjgw8VWPFJM7hYiz8arJmqlB14shjcrD/v6hYGgc9+aKQ+h5yI9J1TAVWT3ZEXPUt/BxICMAZJwGZw++z0mHso0cD1YIMD6i/VWaS6CbM/2MFAlMcHirlmLY4QBrQLgfsILlqUs97ivo/w79UfEIIjlu6jL31GKfEderSD7PsozjIOmnRruENGS//YR/mXAYkW45RSfEmT7aaWgdUPowvrEf5oqM8hANsoQ8/oEI16CQUnLRqUSwpwYR4RKDjL7WsbNormFAzDCYnvbiNJ0RUKplNlIsV2HgIS7uT3Sjoy1NPGBYPlupbt+3EI6WbQyrHvlIxrvL8e1eBpsnJ9fCYy044kXNiIjdvURGvAtyGFBwIaoEqK7TiM5J9M0j6GjrYYK4xB4ebgQjSJjKLd4THlJY3wp5xVGQebeTsKZpIMOiPVoBXcEwn6q2BnKu5fdqZAS0uj/W25tcHa84Zq0Gg+bMXrTcnz+ktfzQl4aI3ZmT74W855fp6GkxI5pelbR0kGrNM4pjDGyAHzgWXpfrBpKStWuCY6UPDhbBql0vOc4O7P1QQPXBofbBTrGZRN1KJjc3mM9tVk0tuXWPC4SApow/ltHB9c1cZCw/4rl7+kY4PFBw0K/scDdnY8Verdf0L03bOGLC8L1zq7dorW8UrHtmcyeabFWESj9mR4y/JwiZxLOHhlHRsjzGzaqVdevL1AH9TlfdKKZHiVwWDZOnZX2el6ADeyVs28sNH61vz8Xhh4RpQT3YvfrpoUaqPssBEKVp26o5va2DItWxngMJYcLlS4k4OhrJLswkRGOQcDF9TsnuoplUXPsO/gQoE+QpAfI/0B9Bt+rM+fdEe87DPQB5/szQlAI3SY3JffyAh/AK0qFve92bHI0l7j8WEUYyEAa+m0GmEyhSsNIT0TVg32nNJ5wKpZ0YpFVzZvV+BSyGQUuYi6HM+lHsfcyiOtB5B8vHCR+hpKJl3YvtzXPw5SyvZj6WOI4UxS6lXuozVF8LdInSw9mouwRF7tMljOYt48iu5LDzyMDVhSswqgonwDHBs+yhB28MBgHZBS70HwXsV2AFC/fdoUpZTuShWfMBDNyjkwoDkAsdOp4+NYQoiePnt6f2O+gyo7vN/zdJ7TrFVD0UqJ0hxdkkJi8FODgq2gGF5ms2RoiHuQfNySUqbVwHr/qJCx5NQHNvtAr5EI1ftQPSew6AS6a+yBPQs3eV6C6w647vZF4yD3hCKNPRcDvROIIfifwB0XYUMMBAfL9n1vXj4pptC+ssp2aPBm1eOCpbHHA6WTEmWDkpmiwbKzX/oLeiYgW2NwZX3stMxsmUGWkoasUWtJJRuvJCBvJ7ksXi5waIkynbFHy2tmYbySljJ0zbT/gSjTegW2t15gq164ReSnhSEp9OOcW6/fzcXmvVxkx3HERd08IgYHDUZqyHNbPNiVZyp2KGR4eJ6WDCPFKMO2++pPf+qBVbuP2rVrnAdly6obpiixZHaEBxrYGtr0/R84svSpadVeSomptv8jzVG/UouhIW/rqYQQ6ywPbwsDxNmrtctAp5gxr+Nw0tPN6w77XrMDTf/VsiyybUNT6nHD7p+mqiX7mMJIxPAhJKVooyygIol/2zrsJN6jGFlB1eAy0ZYV2U2m3PPwOzD7yoA/lQC76RSP10kAaAAYFAzNmUK/yOGhlrEcGLgDOza1NfanXojlwPO08POH9FbCh6Bko+VQIG2vGhSObdeuj6mMDcuYJWbPUbM+Ode6He700MIs2T6WxLyHWbOuC7Okiq8ol2DKWF1lNqbhNg+8+l0AzWppePx58+cy4aBuYv6Ee0ZzqFCsGFh8mNvMkXrpati9NmglacvBs+Xr1tagYGx3Nkh838oJt+EcKaM0mdi4JI4uDTjoz0t/MChGNABcMZkONY0WLFpMJmRaQvbCo8XgYtywyGCjYAAaU3nI8qT33ijFHpMWJJUaWuH3XJPeYd80KgCcGbhZFrOyxTL4zOTyPAwum1EwRZ5rFohr2kXa7UZmmXJdqKOVWqiaR2GITN8KkKYKsw88SsRgOrg451Kpd0uq8Wlzcw92PbjSCjnBdl2Sv6Y1d77dUSgnbDfy+h2mhIktnEAex5H+ngI/XCjZMWDn9nTKSteXGviXWpWHhw3APqCBXH/IspfNJi2vdGT2cUgCiBS8S3loKeQvgg67qKHVN6oFqKg+u3ZHKFfqV54D6K1uTu8lEUByp8lixltW1FPqaCnQUk6Y1AFCJiM93Sdrsbz/nJ0jG0HbtfyuTd8mpdIYpXI5L31+rwf5fUnockNlrIQwCefP+LlInDRbDyPQG6JPNKZFJ/mL1lJZI1qAtID/eKFWByU7mEKfFwNPmVnDkJ+F4qSD4MrkTow49NEOxFRscQdJ4Tl686bzEQ9orkmnrMvw23V82OtFg4qvzH3p5Q23qW6ag4kyw5JWy1S8tZXZtYNNVpM5Aourk1y2SBT6vHC3ZFOe/sC+7U+05nQc6GaUmlhzVRsa64IN+460vlTjy+CeURY3WzK6sJCx0VRyBMQGNkWq9RO1bqUqXRS9WnbOsKRYSe0Bu+ZlGsBFJdpJGjecreSkQTO4Ip+rDA8se1WmJYUkeG8nZvsemxxO7W05iM0LlEoNadJ0HhQqlcFqYNfkFfGgvFyJKSVa6qXnfl11nsfl4PbDtoCF38Dw1FV1fWLp+8BtY9fCjuFPPlVQb/1yOS+yTMjEAhmVOrgmT7zIG7gNykJlJSsoVM6aWxfF4UXEEYdepEWcHcKWR42XLzyymtGCtedzGBUj/WlK6gABwLSkeaxYgg42jPQwFGeRJmUOn+n1X5hny8zjZyfKqsVs2pUtLXNIuczhdigxLPlaUuLhfUcvb6ey/jqW+CyVTYtrD0okAIyqHAzIRi/J1EiWxZ9NDqsK1V+ihIlv2aYNiDK8oN7Q5OPb2ipKUVAoyghPVlKTI8WOYjaHNTGFjHL9vNSqMUwTy/JI+ZYMrlCrPiwiTloBwJQuv82ULAhhBvKRg3uoDhCxidHBSMMuRnv2GVPjNyaTbZs865LBBbC72E4U/H0Ad1vqWYJd35I8LQXXSwvLv8EREkOM8q77WhUPrBsvHwuoGYCAgvqzH+nW2qM5zY5YMXrMFPplJ96xCO6lUuv5qfb7x4L1lt3L75maOGE2uvkfVqrn1efzZ1RftBAyRhlqBIkioJVnq005WWPVoPVEjRVTdlHGXMuB1e0YGtDkwE9ijHgg8Hqp/zRlg8WIJcL0j4gwPaE1VrwOYTLBdSlYswPkDrPrd6xwfWcmE1PxLlPxMVMwyv1fnZ2kWtIklQDgn0aJpTMWjbz+tEzrubZJOrx4y61HNipCCrhkK7lv8hjsWwu5sJx+p3I6ATIrVqKhadbmRZOolUys2j/iqMAv8H0A8oJtztxjS6hX3a06WkPP2rbnxvMqS/aCpLRIsa0l36UAxJKPINbPam09fJIn58isWv+NSXgUkgCIlIIP4PgwzfptSAA4NFs4BSBIgxGeauvjmoTCv8tDTbE+Ji3UcvUPe+rwmOW0HvVXZ4r2YuEY6nJqtrKAL4l6Ril4iazI9E0BS2zbghVuWgHsLamB2WugDEV71VuyXx8qS3ezJ3OLuqZmSa25uIyGPrcvTxKMTaTcWrHqqAQ99rUxTmyJAC3+MWAB4L45Po4mPn4pt4GNV4qJeJJh+d9Yk/60jBNLlIlZsyhbsJGl5L/OzUJ3nxZF0wDsHi22ZWWXkPGx0meb2TIxgTRs5OTlsvO2qdS3XUOtZXPdzijHqbySD5L6+lY+IorTJLeDqUOUw5lo5UcTquOiUyoZGN3+wP9+qtcXFJx7aCFguNBdebnaKtujpUzFmWKH5IkAomDJyMNZN3nabwZ/zNe6Z6v2Ux+EavCqeB3INvqOPCtAZmXRyvBuMvloRKLFFNs4GjFtGzXn+rQKMZwi719d9IR1b2v9j+oRq5rTzlR9m2RMlChFVsYJXTMDdau4/iwxZKfSmImyDe4iE4q87zKPsSdmgHuPtzokGxYULKGgbnkwGKx41DTzmtL9GGTvn76i+Vd/8jixjR+2NkwbQ0Fc/NJfm+vyjyFODBn8ZTaZZKqdA521wwEHRes8DgouWLTM6fCd19LSIASmAMjAIjFgR+tqHVMi4x3L29phxevEZDOUMNjJcIAIVRcF1YgiC0+sPGSKRLC2DZjtVKM6NHeVVfnZkWrzJCF5wi45h3/TJ/PyURvbp/50p7TDARW4Y+0H8+gGtEitNZiRPbuLRFJpKafQ/mlIc5XNbDqNRs1kEg0mH9xikD+dNsMns272VGdFkyq0cmAg4Lo9nJqBLTO1QD5baBGHLm1OpdXXn3U6gccXRR6XU3Qs+xDZNNbvXj1P7lvM+UDmEJF3hygUvzR/eVkZe9/FWpiuoMXi4wDp2ivsnbnK5Bhqn5aXyLO+KOXOw71PU4LCmbDknEroJStOjZo1kLLVJS2a0uRnnUyyk+RuVwYdkmcrKF7NOALM9q9V4ZHp7lAhwGZGm5hf2lm2gMrgElh0wBBRpcMvtdQS+jEbC9jz4SuOM8+eCgCgYKyhTcPh8fCTn+aikDGrvvzuu0ApYNdqHF9VjpBd8vKHYeo7BCXYOZJKMllLHjDsCEWfVtPiZWrOv61n9NJ0ArHaba9xdi2AP8q1q72OZhwkV7fe2+Pu5PPdZvtUQdaPDqHQa/kI8TGCG2khtHQbA9FjDJ3VzarARYvmUyv/juVfKFbDMIbYMz6Qbdma0jUMXq6BlHvIbUoIPBwUdvHA9g8YaJhLUt4BLNsoF96sNMyUwQUFr75+LcGIK8m8VCr26gBUtZVfnnWg3jqPCxRxYoXVHFyYVdunZQ09B/fMwNUYs8ab0X8SalWfWSFU2WZQEfEBuFGN84/A908p39W3ZSaZAlxwFoQ+dXa33X/Rv9NKGTqL9gnQusaHkrrDo43+6iYVBaDaNw2cQcGg3lHOxpTm3i1QMoDtM/W6HJ7aMvgj732dsz7QXlUzo6Ehh/rg8zxIXID/HKMRP+uOZAq8e3LNCkyoL75Icllk8o5GnLC5K//Iv4TAhNfaQoKAzLWESFQINYIVor9SawRkZI34McCLaNUtUYJAcddJBkvynwEYNXYByI5FwHM29zLvuX6IABkfIp4Pozuu/kG5UqJgZ9OC0TgPZfHxwrV/2lscFF70j1U8SyYm9ielwgXHB1g0McgAmp4MmPLVo9V/MkjFWgbhnoeBsmVutEMHltn1gc1SioMM8j5mJxX2zMs337CH6zPRpOH1gjsTFA1ZfOw3NJem758+fyVjjsW9aRQc03FFPm9udSkjhCz3y4/Lvk4nAHDxgThwnmiwY0NpfEhNGiD3tswa8X3cJ0IsHxSeAaCSTch5onNX4ENd+eVqMeCfGmZbabterMDjAI+pnKxjbP5o5dLKqhEu3JfEvFGyj5Nzg+piw0MrtTS1ivCu503T42hNLd3X6fBi8WFdvX38rZpMTL37Qsl3JBNzr5rIQ3zV34RE+lC99u3rWU+m6QHYDO6OvbiFKgKWBuS3BOXqDKc+GeYf1Nxidlk6VG41PQc0sG6pTH+ej5Vm260GH4NPrukJ/XH8FdoOc5rCicOU3KOiKeuVJGkvMyyZlEmJUso275Y/3agddRpsUCqN4Ap8yMky00nh1DaQKgBepIUkCWAimR9TStPfSQ7XwCawxBkDijOiwTzy/bXPP++kmjiDK1UCXv8vY+HfSE41/NSg4Gfs0tz/TBMGpDGwUnuL3ZknDi76wZ6xbw19oA4Bm4+dGkt2QHL7g7hBd0LESiYHiVOz7Sio2L1z/1K4xelmAJ6XdE8B/XuJWyuw3xe/htthIs4TS03ahT7R17olTZ4PyxWsjJyOHS5HPEh/vLsl7FGQxQD4T18N5yiw1lKQwalweK7Kkx0g2pK3y/OomaJRY9rrWk4pzH4Y4sZxXY9pkt9mpPfMfemKtVM1gF0xf7UcN5kszVi3FBq3BD6yF3qVhscslm8CBRdeMjuGly95YVZDxI/NbX6Jk5PyfrkpqOAa+LC2XUfAfflZdv1xKQ7mERmsbDpkz4rPI2frdE0spRTNpLFq2FpqyccP8xrUC3CPpMy/suzWbzDUwmnDoceahkXJNLgusT8gA5H3D20ssRROs/WBFVHz67K9XCbhHlmuLVarRsUC7meh9taWZmSu2BoBCrIF4EIh8wmnoYhhickD/uL9nB2peKts3AH3c69saOupzSfhSh1YcyymWiMM9r/yi3INuV5Egv8BmvK/YpV3j72b93tN42y5EYpVCkaXyWaFjeoGNu0a9ihNWpmnwtOqtFkGY8E+1kKlyfkxCf/mIi19y6PWfOpB+t0pabqtlyRO5ZeMT99/pU8sg9jApqF1HeXnxiaAFmr+zAAnk8UsmAH2ngEtQ2HypQK0FB73qBQp9WB95/7G3GU2mWmVbGemWpXlCiBYqbBVB9ROjK5TZwXZfPuejj/2eHZZ9G3XnvMqlLOQ5yVNfDfWXPqr3PwRDdoGhreUZyT1Rc7RTEv/FCxebMrVKOdOg3V7MXEZu5SSAGLhtIlV5pkImHmWlqkcHZAnA2iPU/Ghz4PIlI0YMrxcolXvW3FxAxnAYhOAOvh4ETJaYi+7No9tLV4vKp0joFSnZIk129yJkNk+A7mci32AC3doP4Mp96ip9cTrXWuXnL+TC7tp5YJPu6Kan+sIznFIqVbGapkZWGjRSsXRZ1mGBqXL1rW55Bp2o8VbqKxUO1L5GzIvxbMlgX9N1ssZICqh4c+e/lHHGMfqeLFpGSZn03pMcqzZnJoG23nfPFypsEvcpjCCMeRYO9ApFRfszyjEXZ0il00pQ8O/Vy6rKcvC2HbDthwLedsif/slm0WLH4gcgx7gcteB3cojPCg8e5atNZAG9pjKwWji/Gg16JDOpZAIYOMSx3a8taT5lkrPFhLj990RMlETSif0GBTfjlO2UvKAtCSx5lgfFACjoRdlEalBIMLjxFH58sFtGP/kZRJxzr4lD9DR04UZXry5H1u2oZCZtr1LlOQg2GWqhkvK1vEx7FmfXBtKL8qlFBL1bb1b/XbRb78lIgTbDO5uVZjGLYSeKlgyzbs4oZsm4+wODt8WsGEXW0RpTLlomrFmNZ8spRZzH0pJRJhR8EcjldYcH/vGymXOQ/IJPGZdnPkhKl8AfmrgeiligDslCkZVbg7ufatmC3PKKRVjj13pwjmSCgRgsZCya4DhLylmbYr707VtTGlr7BEKGgj5OACJ5hOHxD4v3OZNHBPmRt2t/o5jW+/a760EDxyWlVdvhHIlJPrsG6qby9/Ipt0NaaWVOvIwYmxRm24rju3OkFEYyuJliQGyBiFULoNFxxERnhwgbei62CT5rKf2GwPKoxVlVhd2jhzcR3Zm+SwSkTpwz5dqYmlwOTxgGORmQ2Kkr2LTIqst9/qZDV/Fi3y290UxhPUZQDc26Ww9UXu17fc/piWUaqKgPuZ2uphzNuDdtX70/xaL9vxoT9BKQ1cKVmzk6jbxMjmM5kXTxhYylD4KOdTaJXJ53+Y5lI6hUvZRiDxRKqY2lbIQ4vGaUTcoZlQbkFcQKCrXuu3MIO9b5QCwZpJI1GGqByLPQsamwwA3p/A4FkrOZV/3Hr89gLxr1OwvO5aYIKrksFNfqHdNVTJCmguqkvkxcQEf065d48DC7JOxWt9pKrE/c0HBKfmu2o4zo4m8DZNoRaB9W6g6AEsBXBlqavU+WrJqecMwgtG0bIk4eVACfmunYKtcq6DrNAFQwg5CaeKpQa7aNocZDw9VBj/WFFxo2E61nhlyeJcf3wacL2vB0mJb+MceAH2WZiQ/aSSxz2qGxDqahYs0tBv7TV7HScBk38WCm3D2m34vHzMd50LAyqJJIn/dHq4IEwXuctChptoaXG+eEO9KlSwmf2OlnokVcmn9umHp0pxaIXG3jwcoyZSodyqUnarlFZr2QGZ1EbbMWnWaOv5QlSyckWLKvBxgiIztOwVfWvEXf2++Pt7SGpp7pFGqPQFbWx2OdJZdF2yLWjrZ8SsDE/u7pgPs2jEobw6oXIvtL0oRUn+d2K180doC9coNZdhKm5m1UC+CEQEoP5ao1wL9sh0GjVPt2bLWhj4YSmDV6ijJGV2DrwfzqdX7yKqYz6CWaXeQjlgECmk/X2Z7WSWxpwAd2J42gO6a9Wpgy/LC3CvGvm7sOwVjDaCP37xJ7HbVBsc5m3fgn1V/t5+/EmLVHunCsY9nv85XzLath+h4wESuwe8cZU4DzoTthm5oUfGqRzP4OCUn20i94xBpijJ45ENMQxCiJfV4ieKF6QHMKUJmNqUXCzltzwqlayjOkMyysfYkPp/JZZqunkoaru8hHXca9nXYqrLxFKHCtmnakngvLD2PrpAXzHIYIcij774LJpUm+9VDWqMyFltdInnZ+X7OftAH/Dd8AMB+ADZ+kAD5gwCbydSlOYbNNk7BiOKCoGQFkAsZLXJ3bDFkXWvzPkrT1U6GxronYdqeoVK2OEX6/RSMwPlC41LBZ1po2qKYPWXg/zjI6T92HDL5yNj1geV6vX2czSlfi2PkjQK9bwfkhTLI+5L/pQqNgI4wpd1/r5rI67Laj4PnAOZqpa1TGOReTwgm55li5Q8qyYceE6cPsGgBQ33TnQMt3mkDN41p6XRKHizU5Ly9aDubYDcPV3Zbkq3jvMPYRz0PL1EsfTCpALopXdC4JfoUgB1UcxTHupiifT/hiBRr1hKswDjkL5WlH/V/FHs05VuTUSwKsAF4K8q2ZgPghIqPMvAHn3wi17uGvWqs26nomVGZL4nqAgDPrKiMn5vEQqgoFDkCzsEzyXV24zR2y457psvRb1EwFWA75TYW6Q8flJ/ZlTw/adSBmtt6JlPy+HF2Y9axDfF0DTPTxhgnaNb7QtlG8aRA98MU8t6mYXvgfZaee2AlFYs87AMHPR8QyrYXicDG4eOy5HGk1mhWJS5QbdemFy3prznJES22fXO7ugiRXHHz4sG5cxPATfeBskpyQmDTnksdnRsjWppeLZRc97Uh4oTm9rE7Q9wuRktAZ90rzK6WgZ1SdoYchNrUGno0WxleLqkoUCbZx4CjD6HB9mE4LqwQE4eYfY3+ujqft2Xy0ZuYbYe5RtiHrlsQHfEe1XP7/o0UTCF+QJRYdZevUfw8KaAOSoxD9kfd5wPXVAlTRUtbZtXu0UKOdZP93HrcjrVDyk4SqmdbU2qGSeVzNmVFDHM75fTcg5B/nYrBhLflH4K4Ru+jpIQl3JvjZBl1xb5lxw9uKNdYfwQiKnCefUwL9wQ7DkNs5Xkpg/0hgCmOPHQfNeRy01DeqW7SBmCLL6S6t3pQ1NmhdnaeQr61Gwjuti6iUROtxeVlI7LnS6k7VrWd4h8bA+Xbw3COD5Nx7Vp0LZhdtu3zSnhGiWZ4HhTFrQGyAxZnbPMW628mIJztk9nlBzkTBaIgigFvyRPHa1cKDw+ycEHodCojQar3fFMLVFtgY8EJ0kydVqmrbbvI1qNGXbNrc49JFsiyqXvsujzpljlDRN6aO1NeRDCdEv2ydu1KlsvlwWAw94o/ztIH9TwSaciMvCr7d5r+jX5uRKvEO3agY6NqUF0731/Csgug4zRCTokvlN3u2z0EPgfV7rFstMf9V9POQ6Xy99hf8UGAYwtKV6LgOJmH+5+DvrXgxqR8g5znVcysFkpBuG3sBwNFo28Y5DKRjWa0GLK6M50pB5cmKbD9AW9PMshTu8fA1tPgLJlSDGzkPvrzDflgBszgBx0lmUCxkxIwlfJ24CUdq1F3Ue6jLdQTAxVDzNzPrxgjQAakH+JfBLDbxVRQcdSm8zDU4lpbR43a27hWuixZgM/LdrLJ5DLqpD7sNN28mFF5Kq5cyphZM1MwnCcakfLokylkYQgr2tTW7i6Zhm1n1U7NYIc1kN4WRkZSBrno83XU6PPwK2k1608UHG5QJyV6u9EOrpuD6YACGI06NamIuJ1GwUxeWhbC990jZhNvBfflKDhDKI2W8Mo96JtYgELGIJsDROuAxHxrm0NCYs5DnZxrNulwcEAGXEokKBMNphafGpCVQzbfNvYPmR3iKIBwarqf2Ls2n2RkYP2Cw6Hup35s8BrXDsJ1FJ1q+H2z133f11D6fH9gzzwIz4Dn/t0Ax6QAtFSUtAE2LWYxAPo6wYf7pceuS1FSv31piVJIsSPL/CDVsD1yxX1pjHEezIYYMgMGRcsAd++WmFAThVcjVBlwNJ/VCaeAjfusqAqgfv3YH0riQZbEbn5Bk5ZzoYD9Wan5vgGGlupfm78b7NSVuAPri0XQfeYZ9E2tqkEi8EOlanwAUzJgD8JHIx/ONI3bmlIQIfb3QDT9xTI4Oz2ytK3y9RLZJiCDZ8v3/bQxLdYBoaRRo7nwzdsi61H8NLLskALk7ajK9zIdK+Vip+amFIAM4Uhn4wOiYqZUojxrObanlG1tOfo1yTDYVwbalCo5zsenfyz7ALBTe32+1/LEPf14fK5i/ql07eAvV7LMZKKmqT8MUC6D0ipVq3ZNEoG6aUB57fGKJlUbkuix+EiJtrCTdUKQ5PakvI6A3tzKkhILifehfxI/AKIFBazepiV9rwIAaAdhgk7vGyy5tl4v+10K18fz8cy/G2BvC9VpA0W7C7OpVGmfhDpdRDdr2Qnk4BRpKYYTVVb7DDDYltnXhpnFS/5XLK1o916k5KHszKbEihixIkZNTPKb2kuahToiAwr1RBLFDKqj2vJWrbSVLV45CFdMwx3qGJm3V2F6QL/W3bUQQyv0O1vFooPjwyHyQERjvhADr1O3ZhLYsa4HSZBCMjRbd3Maex6FafTkNsHz5SWbUniRSH23kMmmG4jyBc7OsvvIhspYMoHK9IlJZMjjYQTXNHB+OS1zCPd1S0KgZZdg7dRXfgDTFMGSY/bsE/JRGlRq6zivmuoAa88zk62qBDNVH8phmEFuavcjuzf+6r9Eizb267BR4dgIJS85wjRuPPDg1IyIUyPDYPIfOVIBnjxfYyoLrZG5NH23NTtYJwUZ6z6UMvt+YsDCzx0GcEUm68dgANTzlk/StvxeAheuzqG80FlwpBA5Sx9oKpH0D/T9Mpi66FCcob10EqVOz5VIWLjWF80e5d82sPS+PiRvSome029qG9jHMpQkxWmDZ/2LWTQF37TsmH86Ju2xV4uBajt4uWJiQH2TlhaLnsbt8RKFrM3adkMpwV4T6734i49ydBbtmZviHCEq1p6+Kywd0amRfYDmRJkZ1eZEfJ2XMfu21YmiTxydK8oiIxeI8n1QXLd8WG3MOcvDaqdFXpr/FtZT0/6H1Xv+N7WKXQvYPoCNJOddE/ZS4l6jdlFbZX6MwicQ5bGz6ZE6UZbUBslOkdauK9ajTM1teO76XLQoo6HUQbmbWZW+QVjj3JigH5MApwG0+KLdi6YZoSW49TnudVsKdrgPhXPyGM1J4Qf4NwPs93B27THj1pPfYdIERUvOrUypDylctKQvXeNT3oY03dYouqWYqvvhHLDUp/ljoXBbNbDVkg7Si08ZJvp4s+rFiy0+pjTPsvvSa1U9Uq/v+2ntUGexGVYn7Mf+StRQunb4+x0dy1rQqJWiNKVaKBksWsE1uQwwSCfhqsElWtSwI9jGmhvfb0mHrlKodivK2djTgMZybWv3cE0cj+bb3rA9nPg45pGEIvFyZE5Gco+Zvr5oZ3v2Z2suU7xZcZwMFRRxo5oiiKsT6w8tgzLxDftw0oH08Xg8RZ4hsAZ16OhnKB8cP1f8fv4qFJyptxgnLq1I8zFIHalsL5djnfKZi9v1fpLTcQwz2+MoyKbBinG6TgamD4dSw8un+wlpYSVVjyLLjipYplw5V6NUSrUTNdfQf2RyPo/g0N9rQ6lHuxs5zTrFyrOmguo2GM/1idqhM7aPB1aB6Rl+CNzmryWDu8qMMllc3h5sG2FF/p/XytWTAhWS61NrFmdETTLZ/kg1ncy7JR3ZSZLWnqNt1OvTDexbMp9r38MwZX1rP9JWf6+cZy/5KChpcXGq2x/myTvRhj4sZ6gvnygDXXvcUpzbPyQrKldwkbDIvbU8VfE8fw0KXmgh0tTkiJNRr9nKJomXyuC6LZW/8fdsnWUwpZzslm6Qt/LvaOFYq91JMSv6TUabZp/cqcvuT8t+T0HoXKvHFLwSq6ZQJM6OR8Al8RDZpQb6so8KS/rw7Hr85L9JBi9rRslpPqboCNEIlGyXtG1Zm+MgZ60/BiNUmaMMsven8x3QMD65nKnN1hrBkilzY2AjHTe22hp3Hzqns4iX6QTJLSqHjKLb+rfCunVw7TeglYuoiN+2mWtpCA+FNqZEoeneY5sQNPQ5uO14/O9DwWjFZB+Bhes+lXHDbpGSa1NppORfsuxq3xWwZEZR9mt7wn6r5yTgvQxjV82P3Ia/JdrVkTritjSb1sB95CNz3vi9krlmif0C5BPN+07rUfWxUcUhjItQdTwGVqKL9ne7Kv8/WlZ6ClZdsmj/dgNoCX0HurVD467rddHxwfstJX0t2db+58d0oMYjVAqsimtwh1YDImNLyvfmGSVylgBm7BxBD/N3g53uU5aB+zTqJklJ4p8cmjwOE2kfJdPG/x06e00UKb8z8r/BuAllsULxPLvvhJ6q9owPzkQBwP73ksGRcimFoUzxsly9UEIxNMsHSkNYaTG3OlIsUSWDF5nDjXa129JtpIhgR+OOWSFTxweG3gxTdIvSiElsD01hk4q7X5GUkZJ7ynlZAXNtWsZgmX28HwbhRfEQr8cfGBXB3MbkzybnBxH178aiYyvjx/q7KSJB/kE05FZWdJLo41eV9RLLBhUvpgHJD1Bg1/iS2rbnc0xEeT+iMvsTra00cVP7m2Eq8GbnUfagxdTflpYrXe2S/fY39mO/LAZ00Ud5cL0/Xxvew39I6z5Q/MXInxKph5ZAoA/7sWuZHgGlJU28YgwkZnRraYmSVOSKBTBsQHvd71Sp9nRJdfHeiJmLDhJKMo+CPuDU7Od6cbnyPuNKZ8hA/9W16N/bYn2u0Kf7Bngc5qLT4Cqi7Xhxvgi0ZezY161qn/JBjE3z9rV8BKDurhOu0dm8jGT9vu3H7H7+YCYWNdUI/QBiEgBF8r5fk64jAa8bd1nJ82NR7xiRJTWMhI3JwPuWslwWX3wYi42lUPz+o1plTpEVg9ESe5rcl47jA+f32sMiyhSv7TxEIOSattM+3/Z9v288bvck/z0qf1u3wdLTb7d6La/lPrb2bYrny3b+reIZrF+v0+u74jf1b/Rjfm58tvaGc+QZ7Vmwnfb/I5tX+Kn2C4BbfUgvtyg03FEJCAUQ44cSX27xIpesC0Aog1+/6PpjWQpC3C//rvTsNbjpOdpu6YeyAHJ1fWsfmIOc7vG31hxY281fI+UvU8/RlxVfJt0A4MJC5UtfBgx1N1N3vV9zCwfBf6fmLss+xrgdKf2m5xFOFu5VP0/q/1tqRrmJsh3s/DWqWZUoLFBzTblGPTe+wPgy5IXScvCK86oXXlPyUmrzl69/4MJz1qDc9Ps3XUtLnpHi9t9ai+DmxVhz+HrTPi1SJy15gZEylrG6BDqVFEG/44VH8H8LoGVA/db5N1Hob937b5JFoy0HOT5s1xSeMDuW2WPb87Wz9+5DoNOHqYO636acmmq7JaDdBGqkunh82UdDN/wmLfnY/pYpOAF6E9hLAQvsfHEJXIAysPpx2HLjtYvHahAjK645wE3U1arrlaja/hCQ7e/QE4q+v+V20wNGt5VlkFSymmrKXwSMyu30suhm1rkM1A99BGmfslbehWdJnOYDsjxxmlqRo6xkLfsA0ofw99Iqik+aeJeUtUVgfy9HyOBTwf6XURBVx2oQF8Ct7td9AORlH9FNH1b6KP5eWs3WQx+ovALducCSF0iBtQWqoyUAFhTm5lvdl5w1/vsZ4Poj6Py3llB5t+xcv4/GzJf4Df6OKJiqF4OOzmLSy1izHl9uD/sN8weSjsn9EsD+YuP18RlCn4KdAczyP3AJWuQGZB9HBD6CnP0CtPBx/L0BTEvZ7sJx2bqRTUeZWYFeUAgFJ4y6T0uWS/WLXvpspSjoknWQPyzvKz4qO1b1JZDjb/w/gfYj10j1iBsAAAAASUVORK5CYII=\")';\nconst redBlur =\n 'url(\"data:image/png;base64,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\")';\n\nexport function paper({ theme, color, dropdown }: PaperProps) {\n return {\n ...bgBlur({\n color: color ?? varAlpha(theme.vars.palette.background.paperChannel, 0.9),\n blur: 20,\n }),\n backgroundImage: `${cyanBlur}, ${redBlur}`,\n backgroundRepeat: 'no-repeat, no-repeat',\n backgroundPosition: 'top right, left bottom',\n backgroundSize: '50%, 50%',\n ...(theme.direction === 'rtl' && {\n backgroundPosition: 'top left, right bottom',\n }),\n ...(dropdown && {\n padding: theme.spacing(0.5),\n boxShadow: theme.customShadows.dropdown,\n borderRadius: `${theme.shape.borderRadius * 1.25}px`,\n }),\n };\n}\n\n/**\n * Usage:\n * ...menuItem(theme)\n */\nexport function menuItem(theme: Theme) {\n return {\n ...theme.typography.body2,\n padding: theme.spacing(0.75, 1),\n borderRadius: theme.shape.borderRadius * 0.75,\n '&:not(:last-of-type)': { marginBottom: 4 },\n [`&.${menuItemClasses.selected}`]: {\n fontWeight: theme.typography.fontWeightSemiBold,\n backgroundColor: theme.vars.palette.action.selected,\n '&:hover': { backgroundColor: theme.vars.palette.action.hover },\n },\n [`& .${checkboxClasses.root}`]: {\n padding: theme.spacing(0.5),\n marginLeft: theme.spacing(-0.5),\n marginRight: theme.spacing(0.5),\n },\n [`&.${autocompleteClasses.option}[aria-selected=\"true\"]`]: {\n backgroundColor: theme.vars.palette.action.selected,\n '&:hover': { backgroundColor: theme.vars.palette.action.hover },\n },\n [`&+.${dividerClasses.root}`]: { margin: theme.spacing(0.5, 0) },\n };\n}\n","export const THEME_CONFIG = {\n STORAGE_KEY: 'mui-mode',\n ATTRIBUTE: 'data-mui-color-scheme',\n} as const;\n","// ----------------------------------------------------------------------\n\nimport { THEME_CONFIG } from 'theme/scheme-config';\n\nexport const stylesMode = {\n light: `[${THEME_CONFIG.ATTRIBUTE}=\"light\"] &`,\n dark: `[${THEME_CONFIG.ATTRIBUTE}=\"dark\"] &`,\n};\n\nexport const mediaQueries = {\n upXs: '@media (min-width:0px)',\n upSm: '@media (min-width:600px)',\n upMd: '@media (min-width:900px)',\n upLg: '@media (min-width:1200px)',\n upXl: '@media (min-width:1536px)',\n};\n\n/**\n * Set font family\n */\nexport function setFont(fontName: string) {\n return `\"${fontName}\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"`;\n}\n\n/**\n * Converts rem to px\n */\nexport function remToPx(value: string): number {\n return Math.round(parseFloat(value) * 16);\n}\n\n/**\n * Converts px to rem\n */\nexport function pxToRem(value: number): string {\n return `${value / 16}rem`;\n}\n\n/**\n * Responsive font sizes\n */\nexport function responsiveFontSizes({\n sm,\n md,\n lg,\n}: {\n sm: number;\n md: number;\n lg: number;\n}) {\n return {\n [mediaQueries.upSm]: { fontSize: pxToRem(sm) },\n [mediaQueries.upMd]: { fontSize: pxToRem(md) },\n [mediaQueries.upLg]: { fontSize: pxToRem(lg) },\n };\n}\n\n/**\n * Converts a hex color to RGB channels\n */\nexport function hexToRgbChannel(hex: string) {\n if (!/^#[0-9A-F]{6}$/i.test(hex)) {\n throw new Error(`Invalid hex color: ${hex}`);\n }\n\n const r = parseInt(hex.substring(1, 3), 16);\n const g = parseInt(hex.substring(3, 5), 16);\n const b = parseInt(hex.substring(5, 7), 16);\n\n return `${r} ${g} ${b}`;\n}\n\n/**\n * Converts a hex color to RGBA channels with optional alpha support\n * Supports:\n * - 6-digit hex: \"#FF0000\" -> \"255 0 0\"\n * - 8-digit hex: \"#FF000080\" -> \"255 0 0 / 0.5\"\n * - 6-digit hex with explicit alpha: hexToRgbaChannel(\"#FF0000\", 0.5) -> \"255 0 0 / 0.5\"\n */\nexport function hexToRgbaChannel(hex: string, alpha?: number): string {\n // Validate hex format (6 or 8 digits)\n if (!/^#[0-9A-F]{6}([0-9A-F]{2})?$/i.test(hex)) {\n throw new Error(\n `Invalid hex color: ${hex}. Expected #RRGGBB or #RRGGBBAA format.`,\n );\n }\n\n const r = parseInt(hex.substring(1, 3), 16);\n const g = parseInt(hex.substring(3, 5), 16);\n const b = parseInt(hex.substring(5, 7), 16);\n\n // Check if hex includes alpha (8-digit format)\n if (hex.length === 9) {\n const hexAlpha = parseInt(hex.substring(7, 9), 16) / 255;\n const finalAlpha = alpha !== undefined ? alpha : hexAlpha;\n return `${r} ${g} ${b} / ${finalAlpha}`;\n }\n\n // Use explicit alpha if provided\n if (alpha !== undefined) {\n return `${r} ${g} ${b} / ${alpha}`;\n }\n\n // Return RGB channels without alpha\n return `${r} ${g} ${b}`;\n}\n\n/**\n * Converts a hex color to RGB channels\n */\nexport function createPaletteChannel(hexPalette: Record<string, string>) {\n const channelPalette: Record<string, string> = {};\n\n Object.entries(hexPalette).forEach(([key, value]) => {\n channelPalette[`${key}Channel`] = hexToRgbChannel(value);\n });\n\n return { ...hexPalette, ...channelPalette };\n}\n\n/**\n * Color definition with optional alpha\n */\nexport interface ColorWithAlpha {\n color: string;\n alpha?: number;\n}\n\n/**\n * Color with alpha channel\n */\nexport function varAlpha(color: string, opacity = 1) {\n const unsupported =\n color.startsWith('#') ||\n color.startsWith('rgb') ||\n color.startsWith('rgba') ||\n (!color.includes('var') && color.includes('Channel'));\n\n if (unsupported) {\n throw new Error(\n `[Alpha]: Unsupported color format \"${color}\".\n Supported formats are:\n - RGB channels: \"0 184 217\".\n - CSS variables with \"Channel\" prefix: \"var(--palette-common-blackChannel, #000000)\".\n Unsupported formats are:\n - Hex: \"#00B8D9\".\n - RGB: \"rgb(0, 184, 217)\".\n - RGBA: \"rgba(0, 184, 217, 1)\".\n `,\n );\n }\n\n return `rgba(${color} / ${opacity})`;\n}\n"]}