@protonradio/proton-ui 0.11.3 → 0.11.4

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 (76) hide show
  1. package/README.md +2 -42
  2. package/dist/Button-D5vY_uZz.js.map +1 -1
  3. package/dist/Button-R07nvJbw.mjs.map +1 -1
  4. package/dist/color2k-CpDB_dpw.mjs +168 -0
  5. package/dist/color2k-CpDB_dpw.mjs.map +1 -0
  6. package/dist/color2k-DCgwXUem.js +2 -0
  7. package/dist/color2k-DCgwXUem.js.map +1 -0
  8. package/dist/{colors.es.js → colors-CWaj9dFz.mjs} +7 -7
  9. package/dist/colors-CWaj9dFz.mjs.map +1 -0
  10. package/dist/colors-CebzFjpe.js +2 -0
  11. package/dist/colors-CebzFjpe.js.map +1 -0
  12. package/dist/colors-Ceyo4oCJ.mjs +34 -0
  13. package/dist/colors-Ceyo4oCJ.mjs.map +1 -0
  14. package/dist/colors-CmSJBHaf.js +2 -0
  15. package/dist/colors-CmSJBHaf.js.map +1 -0
  16. package/dist/colors-DL1dYffC.js +2 -0
  17. package/dist/colors-DL1dYffC.js.map +1 -0
  18. package/dist/colors-DMkDnu4U.mjs +34 -0
  19. package/dist/colors-DMkDnu4U.mjs.map +1 -0
  20. package/dist/constants.cjs.js +1 -1
  21. package/dist/constants.cjs.js.map +1 -1
  22. package/dist/constants.d.ts +0 -12
  23. package/dist/constants.es.js +0 -3
  24. package/dist/constants.es.js.map +1 -1
  25. package/dist/dark.d.ts +87 -0
  26. package/dist/hooks.cjs.js +1 -1
  27. package/dist/hooks.cjs.js.map +1 -1
  28. package/dist/hooks.es.js +12 -11
  29. package/dist/hooks.es.js.map +1 -1
  30. package/dist/image-CUSfY1_T.js +2 -0
  31. package/dist/image-CUSfY1_T.js.map +1 -0
  32. package/dist/{image-GZPhSCuF.mjs → image-DFyN0Kd9.mjs} +47 -45
  33. package/dist/image-DFyN0Kd9.mjs.map +1 -0
  34. package/dist/index.cjs.js +3 -3
  35. package/dist/index.cjs.js.map +1 -1
  36. package/dist/index.d.ts +4 -4
  37. package/dist/index.es.js +66 -63
  38. package/dist/index.es.js.map +1 -1
  39. package/dist/light.d.ts +78 -0
  40. package/dist/theme/dark.cjs.js +2 -0
  41. package/dist/theme/dark.cjs.js.map +1 -0
  42. package/dist/theme/dark.d.ts +2 -0
  43. package/dist/theme/dark.es.js +58 -0
  44. package/dist/theme/dark.es.js.map +1 -0
  45. package/dist/theme/light.cjs.js +2 -0
  46. package/dist/theme/light.cjs.js.map +1 -0
  47. package/dist/theme/light.d.ts +2 -0
  48. package/dist/theme/light.es.js +58 -0
  49. package/dist/theme/light.es.js.map +1 -0
  50. package/dist/theme.cjs.js +2 -0
  51. package/dist/theme.cjs.js.map +1 -0
  52. package/dist/{themes.d.ts → theme.d.ts} +12 -33
  53. package/dist/theme.es.js +19 -0
  54. package/dist/theme.es.js.map +1 -0
  55. package/dist/utils.cjs.js +1 -1
  56. package/dist/utils.es.js +2 -2
  57. package/package.json +21 -16
  58. package/dist/colors.cjs.js +0 -2
  59. package/dist/colors.cjs.js.map +0 -1
  60. package/dist/colors.d.ts +0 -42
  61. package/dist/colors.es.js.map +0 -1
  62. package/dist/image-C7s3ABus.js +0 -2
  63. package/dist/image-C7s3ABus.js.map +0 -1
  64. package/dist/image-GZPhSCuF.mjs.map +0 -1
  65. package/dist/index-CMjT6Imo.js +0 -2
  66. package/dist/index-CMjT6Imo.js.map +0 -1
  67. package/dist/index-Clgyr6Mk.mjs +0 -317
  68. package/dist/index-Clgyr6Mk.mjs.map +0 -1
  69. package/dist/theme-DQsfWeLo.mjs +0 -12
  70. package/dist/theme-DQsfWeLo.mjs.map +0 -1
  71. package/dist/theme-Dc0Ahjq9.js +0 -2
  72. package/dist/theme-Dc0Ahjq9.js.map +0 -1
  73. package/dist/themes.cjs.js +0 -2
  74. package/dist/themes.cjs.js.map +0 -1
  75. package/dist/themes.es.js +0 -23
  76. package/dist/themes.es.js.map +0 -1
@@ -0,0 +1,78 @@
1
+ export declare const LIGHT_BORDER = "#DDDDDD";
2
+
3
+ export declare const LIGHT_ELEVATION = "#F7F8F9";
4
+
5
+ export declare const LIGHT_GRAYSCALE: ProtonColorScale;
6
+
7
+ export declare const LIGHT_PALETTE: ProtonPalette;
8
+
9
+ export declare const LIGHT_SECONDARY_SCALE: ProtonColorScale;
10
+
11
+ export declare const LIGHT_STYLESHEET: ProtonStyleSheet;
12
+
13
+ declare type ProtonColorScale = {
14
+ SUPER_DARK: string;
15
+ DARK: string;
16
+ MEDIUM: string;
17
+ MEDIUM_LIGHT: string;
18
+ LIGHT: string;
19
+ LIGHTEST: string;
20
+ SUPER_LIGHT: string;
21
+ WHITE: string;
22
+ };
23
+
24
+ declare type ProtonPalette = {
25
+ BASE_COLOR: string;
26
+ BRAND: {
27
+ PRIMARY: string;
28
+ PRIMARY_LIGHT: string;
29
+ PRIMARY_SUPER_LIGHT: string;
30
+ SECONDARY: string;
31
+ SECONDARY_LIGHT: string;
32
+ SECONDARY_SUPER_LIGHT: string;
33
+ };
34
+ PRIMARY: ProtonColorScale;
35
+ SECONDARY: ProtonColorScale;
36
+ GRAYSCALE: ProtonColorScale;
37
+ };
38
+
39
+ declare interface ProtonStyleSheet {
40
+ "--proton-control__background-color": string;
41
+ "--proton-control__background-color-light": string;
42
+ "--proton-control__text-color": string;
43
+ "--proton-control__title-color": string;
44
+ "--proton-control__border-color": string;
45
+ "--proton-control__shadow-color": string;
46
+ "--proton-control__hover-color": string;
47
+ "--proton-control__border-radius": string;
48
+ "--proton-control__interactive-color": string;
49
+ "--proton-color__primary": string;
50
+ "--proton-color__primary-light": string;
51
+ "--proton-color__primary-super-light": string;
52
+ "--proton-color__secondary": string;
53
+ "--proton-color__secondary-light": string;
54
+ "--proton-color__secondary-super-light": string;
55
+ "--proton-color__danger-super-dark": string;
56
+ "--proton-color__danger-dark": string;
57
+ "--proton-color__danger-medium": string;
58
+ "--proton-color__danger-light": string;
59
+ "--proton-color__danger-super-light": string;
60
+ "--proton-color__warning-dark": string;
61
+ "--proton-color__warning-medium": string;
62
+ "--proton-color__warning-light": string;
63
+ "--proton-color__warning-super-light": string;
64
+ "--proton-color__success-dark": string;
65
+ "--proton-color__success-medium": string;
66
+ "--proton-color__success-light": string;
67
+ "--proton-color__success-super-light": string;
68
+ "--proton-color__gray-super-dark": string;
69
+ "--proton-color__gray-dark": string;
70
+ "--proton-color__gray-medium": string;
71
+ "--proton-color__gray-medium-light": string;
72
+ "--proton-color__gray-light": string;
73
+ "--proton-color__gray-lightest": string;
74
+ "--proton-color__gray-super-light": string;
75
+ "--proton-color__white": string;
76
+ }
77
+
78
+ export { }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../colors-CebzFjpe.js"),_=require("../color2k-DCgwXUem.js"),o=require("../colors-CmSJBHaf.js"),A={"--proton-control__background-color":r.DARK_GRAYSCALE.DARK,"--proton-control__background-color-light":r.ELEVATION,"--proton-control__text-color":r.DARK_GRAYSCALE.WHITE,"--proton-control__title-color":"#FFFFFF","--proton-control__border-color":r.BORDER,"--proton-control__hover-color":r.DARK_GRAYSCALE.MEDIUM,"--proton-control__shadow-color":_.transparentize(r.DARK_GRAYSCALE.LIGHTEST,.5),"--proton-control__border-radius":"4px","--proton-control__interactive-color":o.BRAND.PRIMARY_LIGHT,"--proton-color__primary":o.BRAND.PRIMARY,"--proton-color__primary-light":o.BRAND.PRIMARY_LIGHT,"--proton-color__primary-super-light":o.BRAND.PRIMARY_SUPER_LIGHT,"--proton-color__secondary":o.BRAND.SECONDARY,"--proton-color__secondary-light":o.BRAND.SECONDARY_LIGHT,"--proton-color__secondary-super-light":o.BRAND.SECONDARY_SUPER_LIGHT,"--proton-color__danger-super-dark":o.DANGER.SUPER_DARK,"--proton-color__danger-dark":o.DANGER.DARK,"--proton-color__danger-medium":o.DANGER.MEDIUM,"--proton-color__danger-light":o.DANGER.LIGHT,"--proton-color__danger-super-light":o.DANGER.SUPER_LIGHT,"--proton-color__warning-dark":o.WARNING.DARK,"--proton-color__warning-medium":o.WARNING.MEDIUM,"--proton-color__warning-light":o.WARNING.LIGHT,"--proton-color__warning-super-light":o.WARNING.SUPER_LIGHT,"--proton-color__success-dark":o.SUCCESS.DARK,"--proton-color__success-medium":o.SUCCESS.MEDIUM,"--proton-color__success-light":o.SUCCESS.LIGHT,"--proton-color__success-super-light":o.SUCCESS.SUPER_LIGHT,"--proton-color__gray-super-dark":r.DARK_GRAYSCALE.SUPER_DARK,"--proton-color__gray-dark":r.DARK_GRAYSCALE.DARK,"--proton-color__gray-medium":r.DARK_GRAYSCALE.MEDIUM,"--proton-color__gray-medium-light":r.DARK_GRAYSCALE.MEDIUM_LIGHT,"--proton-color__gray-light":r.DARK_GRAYSCALE.LIGHT,"--proton-color__gray-lightest":r.DARK_GRAYSCALE.LIGHTEST,"--proton-color__gray-super-light":r.DARK_GRAYSCALE.SUPER_LIGHT,"--proton-color__white":r.DARK_GRAYSCALE.WHITE};exports.DARK_BORDER=r.BORDER;exports.DARK_ELEVATION=r.ELEVATION;exports.DARK_GRAYSCALE=r.DARK_GRAYSCALE;exports.DARK_PALETTE=r.DARK_PALETTE;exports.DARK_SECONDARY=r.DARK_SECONDARY;exports.DARK_STYLESHEET=A;
2
+ //# sourceMappingURL=dark.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.cjs.js","sources":["../../src/design/darkTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\r\nimport { BORDER, DARK_GRAYSCALE, ELEVATION } from \"./colors\";\r\nimport { DANGER, WARNING, SUCCESS, BRAND } from \"../colors\";\r\nimport type { ProtonStyleSheet } from \"../types\";\r\n\r\nexport const DARK_STYLESHEET: ProtonStyleSheet = {\r\n // Control/component colors\r\n \"--proton-control__background-color\": DARK_GRAYSCALE.DARK,\r\n \"--proton-control__background-color-light\": ELEVATION,\r\n \"--proton-control__text-color\": DARK_GRAYSCALE.WHITE,\r\n \"--proton-control__title-color\": \"#FFFFFF\",\r\n \"--proton-control__border-color\": BORDER,\r\n \"--proton-control__hover-color\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-control__shadow-color\": transparentize(\r\n DARK_GRAYSCALE.LIGHTEST,\r\n 0.5\r\n ),\r\n \"--proton-control__border-radius\": \"4px\",\r\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\r\n\r\n // Brand colors\r\n \"--proton-color__primary\": BRAND.PRIMARY,\r\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\r\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\r\n \"--proton-color__secondary\": BRAND.SECONDARY,\r\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\r\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\r\n\r\n // Semantic colors\r\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\r\n \"--proton-color__danger-dark\": DANGER.DARK,\r\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\r\n \"--proton-color__danger-light\": DANGER.LIGHT,\r\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\r\n \"--proton-color__warning-dark\": WARNING.DARK,\r\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\r\n \"--proton-color__warning-light\": WARNING.LIGHT,\r\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\r\n \"--proton-color__success-dark\": SUCCESS.DARK,\r\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\r\n \"--proton-color__success-light\": SUCCESS.LIGHT,\r\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\r\n\r\n // Grayscale colors\r\n \"--proton-color__gray-super-dark\": DARK_GRAYSCALE.SUPER_DARK,\r\n \"--proton-color__gray-dark\": DARK_GRAYSCALE.DARK,\r\n \"--proton-color__gray-medium\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-color__gray-medium-light\": DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n \"--proton-color__gray-light\": DARK_GRAYSCALE.LIGHT,\r\n \"--proton-color__gray-lightest\": DARK_GRAYSCALE.LIGHTEST,\r\n \"--proton-color__gray-super-light\": DARK_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-color__white\": DARK_GRAYSCALE.WHITE,\r\n};\r\n"],"names":["DARK_STYLESHEET","DARK_GRAYSCALE","ELEVATION","BORDER","transparentize","BRAND","DANGER","WARNING","SUCCESS"],"mappings":"gMAKaA,EAAoC,CAE/C,qCAAsCC,EAAe,eAAA,KACrD,2CAA4CC,EAAA,UAC5C,+BAAgCD,EAAe,eAAA,MAC/C,gCAAiC,UACjC,iCAAkCE,EAAA,OAClC,gCAAiCF,EAAe,eAAA,OAChD,iCAAkCG,EAAA,eAChCH,EAAAA,eAAe,SACf,EACF,EACA,kCAAmC,MACnC,sCAAuCI,EAAM,MAAA,cAG7C,0BAA2BA,EAAM,MAAA,QACjC,gCAAiCA,EAAM,MAAA,cACvC,sCAAuCA,EAAM,MAAA,oBAC7C,4BAA6BA,EAAM,MAAA,UACnC,kCAAmCA,EAAM,MAAA,gBACzC,wCAAyCA,EAAM,MAAA,sBAG/C,oCAAqCC,EAAO,OAAA,WAC5C,8BAA+BA,EAAO,OAAA,KACtC,gCAAiCA,EAAO,OAAA,OACxC,+BAAgCA,EAAO,OAAA,MACvC,qCAAsCA,EAAO,OAAA,YAC7C,+BAAgCC,EAAQ,QAAA,KACxC,iCAAkCA,EAAQ,QAAA,OAC1C,gCAAiCA,EAAQ,QAAA,MACzC,sCAAuCA,EAAQ,QAAA,YAC/C,+BAAgCC,EAAQ,QAAA,KACxC,iCAAkCA,EAAQ,QAAA,OAC1C,gCAAiCA,EAAQ,QAAA,MACzC,sCAAuCA,EAAQ,QAAA,YAG/C,kCAAmCP,EAAe,eAAA,WAClD,4BAA6BA,EAAe,eAAA,KAC5C,8BAA+BA,EAAe,eAAA,OAC9C,oCAAqCA,EAAe,eAAA,aACpD,6BAA8BA,EAAe,eAAA,MAC7C,gCAAiCA,EAAe,eAAA,SAChD,mCAAoCA,EAAe,eAAA,YACnD,wBAAyBA,EAAe,eAAA,KAC1C"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/design/darkTheme/index'
2
+ export {}
@@ -0,0 +1,58 @@
1
+ import { a as o, E as l, B as c } from "../colors-Ceyo4oCJ.mjs";
2
+ import { D as g, b as I } from "../colors-Ceyo4oCJ.mjs";
3
+ import { t as p } from "../color2k-CpDB_dpw.mjs";
4
+ import { a as r, D as _, W as t, S as n } from "../colors-CWaj9dFz.mjs";
5
+ const e = {
6
+ // Control/component colors
7
+ "--proton-control__background-color": o.DARK,
8
+ "--proton-control__background-color-light": l,
9
+ "--proton-control__text-color": o.WHITE,
10
+ "--proton-control__title-color": "#FFFFFF",
11
+ "--proton-control__border-color": c,
12
+ "--proton-control__hover-color": o.MEDIUM,
13
+ "--proton-control__shadow-color": p(
14
+ o.LIGHTEST,
15
+ 0.5
16
+ ),
17
+ "--proton-control__border-radius": "4px",
18
+ "--proton-control__interactive-color": r.PRIMARY_LIGHT,
19
+ // Brand colors
20
+ "--proton-color__primary": r.PRIMARY,
21
+ "--proton-color__primary-light": r.PRIMARY_LIGHT,
22
+ "--proton-color__primary-super-light": r.PRIMARY_SUPER_LIGHT,
23
+ "--proton-color__secondary": r.SECONDARY,
24
+ "--proton-color__secondary-light": r.SECONDARY_LIGHT,
25
+ "--proton-color__secondary-super-light": r.SECONDARY_SUPER_LIGHT,
26
+ // Semantic colors
27
+ "--proton-color__danger-super-dark": _.SUPER_DARK,
28
+ "--proton-color__danger-dark": _.DARK,
29
+ "--proton-color__danger-medium": _.MEDIUM,
30
+ "--proton-color__danger-light": _.LIGHT,
31
+ "--proton-color__danger-super-light": _.SUPER_LIGHT,
32
+ "--proton-color__warning-dark": t.DARK,
33
+ "--proton-color__warning-medium": t.MEDIUM,
34
+ "--proton-color__warning-light": t.LIGHT,
35
+ "--proton-color__warning-super-light": t.SUPER_LIGHT,
36
+ "--proton-color__success-dark": n.DARK,
37
+ "--proton-color__success-medium": n.MEDIUM,
38
+ "--proton-color__success-light": n.LIGHT,
39
+ "--proton-color__success-super-light": n.SUPER_LIGHT,
40
+ // Grayscale colors
41
+ "--proton-color__gray-super-dark": o.SUPER_DARK,
42
+ "--proton-color__gray-dark": o.DARK,
43
+ "--proton-color__gray-medium": o.MEDIUM,
44
+ "--proton-color__gray-medium-light": o.MEDIUM_LIGHT,
45
+ "--proton-color__gray-light": o.LIGHT,
46
+ "--proton-color__gray-lightest": o.LIGHTEST,
47
+ "--proton-color__gray-super-light": o.SUPER_LIGHT,
48
+ "--proton-color__white": o.WHITE
49
+ };
50
+ export {
51
+ c as DARK_BORDER,
52
+ l as DARK_ELEVATION,
53
+ o as DARK_GRAYSCALE,
54
+ g as DARK_PALETTE,
55
+ I as DARK_SECONDARY,
56
+ e as DARK_STYLESHEET
57
+ };
58
+ //# sourceMappingURL=dark.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.es.js","sources":["../../src/design/darkTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\r\nimport { BORDER, DARK_GRAYSCALE, ELEVATION } from \"./colors\";\r\nimport { DANGER, WARNING, SUCCESS, BRAND } from \"../colors\";\r\nimport type { ProtonStyleSheet } from \"../types\";\r\n\r\nexport const DARK_STYLESHEET: ProtonStyleSheet = {\r\n // Control/component colors\r\n \"--proton-control__background-color\": DARK_GRAYSCALE.DARK,\r\n \"--proton-control__background-color-light\": ELEVATION,\r\n \"--proton-control__text-color\": DARK_GRAYSCALE.WHITE,\r\n \"--proton-control__title-color\": \"#FFFFFF\",\r\n \"--proton-control__border-color\": BORDER,\r\n \"--proton-control__hover-color\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-control__shadow-color\": transparentize(\r\n DARK_GRAYSCALE.LIGHTEST,\r\n 0.5\r\n ),\r\n \"--proton-control__border-radius\": \"4px\",\r\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\r\n\r\n // Brand colors\r\n \"--proton-color__primary\": BRAND.PRIMARY,\r\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\r\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\r\n \"--proton-color__secondary\": BRAND.SECONDARY,\r\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\r\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\r\n\r\n // Semantic colors\r\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\r\n \"--proton-color__danger-dark\": DANGER.DARK,\r\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\r\n \"--proton-color__danger-light\": DANGER.LIGHT,\r\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\r\n \"--proton-color__warning-dark\": WARNING.DARK,\r\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\r\n \"--proton-color__warning-light\": WARNING.LIGHT,\r\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\r\n \"--proton-color__success-dark\": SUCCESS.DARK,\r\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\r\n \"--proton-color__success-light\": SUCCESS.LIGHT,\r\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\r\n\r\n // Grayscale colors\r\n \"--proton-color__gray-super-dark\": DARK_GRAYSCALE.SUPER_DARK,\r\n \"--proton-color__gray-dark\": DARK_GRAYSCALE.DARK,\r\n \"--proton-color__gray-medium\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-color__gray-medium-light\": DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n \"--proton-color__gray-light\": DARK_GRAYSCALE.LIGHT,\r\n \"--proton-color__gray-lightest\": DARK_GRAYSCALE.LIGHTEST,\r\n \"--proton-color__gray-super-light\": DARK_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-color__white\": DARK_GRAYSCALE.WHITE,\r\n};\r\n"],"names":["DARK_STYLESHEET","DARK_GRAYSCALE","ELEVATION","BORDER","transparentize","BRAND","DANGER","WARNING","SUCCESS"],"mappings":";;;;AAKO,MAAMA,IAAoC;AAAA;AAAA,EAE/C,sCAAsCC,EAAe;AAAA,EACrD,4CAA4CC;AAAA,EAC5C,gCAAgCD,EAAe;AAAA,EAC/C,iCAAiC;AAAA,EACjC,kCAAkCE;AAAA,EAClC,iCAAiCF,EAAe;AAAA,EAChD,kCAAkCG;AAAA,IAChCH,EAAe;AAAA,IACf;AAAA,EACF;AAAA,EACA,mCAAmC;AAAA,EACnC,uCAAuCI,EAAM;AAAA;AAAA,EAG7C,2BAA2BA,EAAM;AAAA,EACjC,iCAAiCA,EAAM;AAAA,EACvC,uCAAuCA,EAAM;AAAA,EAC7C,6BAA6BA,EAAM;AAAA,EACnC,mCAAmCA,EAAM;AAAA,EACzC,yCAAyCA,EAAM;AAAA;AAAA,EAG/C,qCAAqCC,EAAO;AAAA,EAC5C,+BAA+BA,EAAO;AAAA,EACtC,iCAAiCA,EAAO;AAAA,EACxC,gCAAgCA,EAAO;AAAA,EACvC,sCAAsCA,EAAO;AAAA,EAC7C,gCAAgCC,EAAQ;AAAA,EACxC,kCAAkCA,EAAQ;AAAA,EAC1C,iCAAiCA,EAAQ;AAAA,EACzC,uCAAuCA,EAAQ;AAAA,EAC/C,gCAAgCC,EAAQ;AAAA,EACxC,kCAAkCA,EAAQ;AAAA,EAC1C,iCAAiCA,EAAQ;AAAA,EACzC,uCAAuCA,EAAQ;AAAA;AAAA,EAG/C,mCAAmCP,EAAe;AAAA,EAClD,6BAA6BA,EAAe;AAAA,EAC5C,+BAA+BA,EAAe;AAAA,EAC9C,qCAAqCA,EAAe;AAAA,EACpD,8BAA8BA,EAAe;AAAA,EAC7C,iCAAiCA,EAAe;AAAA,EAChD,oCAAoCA,EAAe;AAAA,EACnD,yBAAyBA,EAAe;AAC1C;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../colors-DL1dYffC.js"),_=require("../color2k-DCgwXUem.js"),o=require("../colors-CmSJBHaf.js"),t={"--proton-control__background-color":o.BACKGROUNDS.WHITE,"--proton-control__background-color-light":r.ELEVATION,"--proton-control__text-color":r.LIGHT_GRAYSCALE.DARK,"--proton-control__title-color":r.LIGHT_GRAYSCALE.SUPER_DARK,"--proton-control__border-color":r.BORDER,"--proton-control__hover-color":r.LIGHT_GRAYSCALE.SUPER_LIGHT,"--proton-control__shadow-color":_.transparentize(r.LIGHT_GRAYSCALE.SUPER_DARK,.9),"--proton-control__border-radius":"4px","--proton-control__interactive-color":o.BRAND.PRIMARY_LIGHT,"--proton-color__primary":o.BRAND.PRIMARY,"--proton-color__primary-light":o.BRAND.PRIMARY_LIGHT,"--proton-color__primary-super-light":o.BRAND.PRIMARY_SUPER_LIGHT,"--proton-color__secondary":o.BRAND.SECONDARY,"--proton-color__secondary-light":o.BRAND.SECONDARY_LIGHT,"--proton-color__secondary-super-light":o.BRAND.SECONDARY_SUPER_LIGHT,"--proton-color__danger-super-dark":o.DANGER.SUPER_DARK,"--proton-color__danger-dark":o.DANGER.DARK,"--proton-color__danger-medium":o.DANGER.MEDIUM,"--proton-color__danger-light":o.DANGER.LIGHT,"--proton-color__danger-super-light":o.DANGER.SUPER_LIGHT,"--proton-color__warning-dark":o.WARNING.DARK,"--proton-color__warning-medium":o.WARNING.MEDIUM,"--proton-color__warning-light":o.WARNING.LIGHT,"--proton-color__warning-super-light":o.WARNING.SUPER_LIGHT,"--proton-color__success-dark":o.SUCCESS.DARK,"--proton-color__success-medium":o.SUCCESS.MEDIUM,"--proton-color__success-light":o.SUCCESS.LIGHT,"--proton-color__success-super-light":o.SUCCESS.SUPER_LIGHT,"--proton-color__gray-super-dark":r.LIGHT_GRAYSCALE.SUPER_DARK,"--proton-color__gray-dark":r.LIGHT_GRAYSCALE.DARK,"--proton-color__gray-medium":r.LIGHT_GRAYSCALE.MEDIUM,"--proton-color__gray-medium-light":r.LIGHT_GRAYSCALE.MEDIUM_LIGHT,"--proton-color__gray-light":r.LIGHT_GRAYSCALE.LIGHT,"--proton-color__gray-lightest":r.LIGHT_GRAYSCALE.LIGHTEST,"--proton-color__gray-super-light":r.LIGHT_GRAYSCALE.SUPER_LIGHT,"--proton-color__white":r.LIGHT_GRAYSCALE.WHITE};exports.LIGHT_BORDER=r.BORDER;exports.LIGHT_ELEVATION=r.ELEVATION;exports.LIGHT_GRAYSCALE=r.LIGHT_GRAYSCALE;exports.LIGHT_PALETTE=r.LIGHT_PALETTE;exports.LIGHT_SECONDARY_SCALE=r.LIGHT_SECONDARY_SCALE;exports.LIGHT_STYLESHEET=t;
2
+ //# sourceMappingURL=light.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.cjs.js","sources":["../../src/design/lightTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\r\nimport { BACKGROUNDS, BRAND, DANGER, WARNING, SUCCESS } from \"../colors\";\r\nimport { ELEVATION, LIGHT_GRAYSCALE } from \"./colors\";\r\nimport { BORDER } from \"./colors\";\r\nimport type { ProtonStyleSheet } from \"../types\";\r\n\r\nexport const LIGHT_STYLESHEET: ProtonStyleSheet = {\r\n // Control/component colors\r\n \"--proton-control__background-color\": BACKGROUNDS.WHITE,\r\n \"--proton-control__background-color-light\": ELEVATION,\r\n \"--proton-control__text-color\": LIGHT_GRAYSCALE.DARK,\r\n \"--proton-control__title-color\": LIGHT_GRAYSCALE.SUPER_DARK,\r\n \"--proton-control__border-color\": BORDER,\r\n \"--proton-control__hover-color\": LIGHT_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-control__shadow-color\": transparentize(\r\n LIGHT_GRAYSCALE.SUPER_DARK,\r\n 0.9\r\n ),\r\n \"--proton-control__border-radius\": \"4px\",\r\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\r\n\r\n // Brand colors\r\n \"--proton-color__primary\": BRAND.PRIMARY,\r\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\r\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\r\n \"--proton-color__secondary\": BRAND.SECONDARY,\r\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\r\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\r\n\r\n // Semantic colors\r\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\r\n \"--proton-color__danger-dark\": DANGER.DARK,\r\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\r\n \"--proton-color__danger-light\": DANGER.LIGHT,\r\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\r\n \"--proton-color__warning-dark\": WARNING.DARK,\r\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\r\n \"--proton-color__warning-light\": WARNING.LIGHT,\r\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\r\n \"--proton-color__success-dark\": SUCCESS.DARK,\r\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\r\n \"--proton-color__success-light\": SUCCESS.LIGHT,\r\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\r\n\r\n // Grayscale colors\r\n \"--proton-color__gray-super-dark\": LIGHT_GRAYSCALE.SUPER_DARK,\r\n \"--proton-color__gray-dark\": LIGHT_GRAYSCALE.DARK,\r\n \"--proton-color__gray-medium\": LIGHT_GRAYSCALE.MEDIUM,\r\n \"--proton-color__gray-medium-light\": LIGHT_GRAYSCALE.MEDIUM_LIGHT,\r\n \"--proton-color__gray-light\": LIGHT_GRAYSCALE.LIGHT,\r\n \"--proton-color__gray-lightest\": LIGHT_GRAYSCALE.LIGHTEST,\r\n \"--proton-color__gray-super-light\": LIGHT_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-color__white\": LIGHT_GRAYSCALE.WHITE,\r\n};\r\n"],"names":["LIGHT_STYLESHEET","BACKGROUNDS","ELEVATION","LIGHT_GRAYSCALE","BORDER","transparentize","BRAND","DANGER","WARNING","SUCCESS"],"mappings":"gMAMaA,EAAqC,CAEhD,qCAAsCC,EAAY,YAAA,MAClD,2CAA4CC,EAAA,UAC5C,+BAAgCC,EAAgB,gBAAA,KAChD,gCAAiCA,EAAgB,gBAAA,WACjD,iCAAkCC,EAAA,OAClC,gCAAiCD,EAAgB,gBAAA,YACjD,iCAAkCE,EAAA,eAChCF,EAAAA,gBAAgB,WAChB,EACF,EACA,kCAAmC,MACnC,sCAAuCG,EAAM,MAAA,cAG7C,0BAA2BA,EAAM,MAAA,QACjC,gCAAiCA,EAAM,MAAA,cACvC,sCAAuCA,EAAM,MAAA,oBAC7C,4BAA6BA,EAAM,MAAA,UACnC,kCAAmCA,EAAM,MAAA,gBACzC,wCAAyCA,EAAM,MAAA,sBAG/C,oCAAqCC,EAAO,OAAA,WAC5C,8BAA+BA,EAAO,OAAA,KACtC,gCAAiCA,EAAO,OAAA,OACxC,+BAAgCA,EAAO,OAAA,MACvC,qCAAsCA,EAAO,OAAA,YAC7C,+BAAgCC,EAAQ,QAAA,KACxC,iCAAkCA,EAAQ,QAAA,OAC1C,gCAAiCA,EAAQ,QAAA,MACzC,sCAAuCA,EAAQ,QAAA,YAC/C,+BAAgCC,EAAQ,QAAA,KACxC,iCAAkCA,EAAQ,QAAA,OAC1C,gCAAiCA,EAAQ,QAAA,MACzC,sCAAuCA,EAAQ,QAAA,YAG/C,kCAAmCN,EAAgB,gBAAA,WACnD,4BAA6BA,EAAgB,gBAAA,KAC7C,8BAA+BA,EAAgB,gBAAA,OAC/C,oCAAqCA,EAAgB,gBAAA,aACrD,6BAA8BA,EAAgB,gBAAA,MAC9C,gCAAiCA,EAAgB,gBAAA,SACjD,mCAAoCA,EAAgB,gBAAA,YACpD,wBAAyBA,EAAgB,gBAAA,KAC3C"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/design/lightTheme/index'
2
+ export {}
@@ -0,0 +1,58 @@
1
+ import { E as l, a as o, B as c } from "../colors-DMkDnu4U.mjs";
2
+ import { L as g, b as T } from "../colors-DMkDnu4U.mjs";
3
+ import { t as p } from "../color2k-CpDB_dpw.mjs";
4
+ import { B as a, a as r, D as _, W as t, S as n } from "../colors-CWaj9dFz.mjs";
5
+ const e = {
6
+ // Control/component colors
7
+ "--proton-control__background-color": a.WHITE,
8
+ "--proton-control__background-color-light": l,
9
+ "--proton-control__text-color": o.DARK,
10
+ "--proton-control__title-color": o.SUPER_DARK,
11
+ "--proton-control__border-color": c,
12
+ "--proton-control__hover-color": o.SUPER_LIGHT,
13
+ "--proton-control__shadow-color": p(
14
+ o.SUPER_DARK,
15
+ 0.9
16
+ ),
17
+ "--proton-control__border-radius": "4px",
18
+ "--proton-control__interactive-color": r.PRIMARY_LIGHT,
19
+ // Brand colors
20
+ "--proton-color__primary": r.PRIMARY,
21
+ "--proton-color__primary-light": r.PRIMARY_LIGHT,
22
+ "--proton-color__primary-super-light": r.PRIMARY_SUPER_LIGHT,
23
+ "--proton-color__secondary": r.SECONDARY,
24
+ "--proton-color__secondary-light": r.SECONDARY_LIGHT,
25
+ "--proton-color__secondary-super-light": r.SECONDARY_SUPER_LIGHT,
26
+ // Semantic colors
27
+ "--proton-color__danger-super-dark": _.SUPER_DARK,
28
+ "--proton-color__danger-dark": _.DARK,
29
+ "--proton-color__danger-medium": _.MEDIUM,
30
+ "--proton-color__danger-light": _.LIGHT,
31
+ "--proton-color__danger-super-light": _.SUPER_LIGHT,
32
+ "--proton-color__warning-dark": t.DARK,
33
+ "--proton-color__warning-medium": t.MEDIUM,
34
+ "--proton-color__warning-light": t.LIGHT,
35
+ "--proton-color__warning-super-light": t.SUPER_LIGHT,
36
+ "--proton-color__success-dark": n.DARK,
37
+ "--proton-color__success-medium": n.MEDIUM,
38
+ "--proton-color__success-light": n.LIGHT,
39
+ "--proton-color__success-super-light": n.SUPER_LIGHT,
40
+ // Grayscale colors
41
+ "--proton-color__gray-super-dark": o.SUPER_DARK,
42
+ "--proton-color__gray-dark": o.DARK,
43
+ "--proton-color__gray-medium": o.MEDIUM,
44
+ "--proton-color__gray-medium-light": o.MEDIUM_LIGHT,
45
+ "--proton-color__gray-light": o.LIGHT,
46
+ "--proton-color__gray-lightest": o.LIGHTEST,
47
+ "--proton-color__gray-super-light": o.SUPER_LIGHT,
48
+ "--proton-color__white": o.WHITE
49
+ };
50
+ export {
51
+ c as LIGHT_BORDER,
52
+ l as LIGHT_ELEVATION,
53
+ o as LIGHT_GRAYSCALE,
54
+ g as LIGHT_PALETTE,
55
+ T as LIGHT_SECONDARY_SCALE,
56
+ e as LIGHT_STYLESHEET
57
+ };
58
+ //# sourceMappingURL=light.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.es.js","sources":["../../src/design/lightTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\r\nimport { BACKGROUNDS, BRAND, DANGER, WARNING, SUCCESS } from \"../colors\";\r\nimport { ELEVATION, LIGHT_GRAYSCALE } from \"./colors\";\r\nimport { BORDER } from \"./colors\";\r\nimport type { ProtonStyleSheet } from \"../types\";\r\n\r\nexport const LIGHT_STYLESHEET: ProtonStyleSheet = {\r\n // Control/component colors\r\n \"--proton-control__background-color\": BACKGROUNDS.WHITE,\r\n \"--proton-control__background-color-light\": ELEVATION,\r\n \"--proton-control__text-color\": LIGHT_GRAYSCALE.DARK,\r\n \"--proton-control__title-color\": LIGHT_GRAYSCALE.SUPER_DARK,\r\n \"--proton-control__border-color\": BORDER,\r\n \"--proton-control__hover-color\": LIGHT_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-control__shadow-color\": transparentize(\r\n LIGHT_GRAYSCALE.SUPER_DARK,\r\n 0.9\r\n ),\r\n \"--proton-control__border-radius\": \"4px\",\r\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\r\n\r\n // Brand colors\r\n \"--proton-color__primary\": BRAND.PRIMARY,\r\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\r\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\r\n \"--proton-color__secondary\": BRAND.SECONDARY,\r\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\r\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\r\n\r\n // Semantic colors\r\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\r\n \"--proton-color__danger-dark\": DANGER.DARK,\r\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\r\n \"--proton-color__danger-light\": DANGER.LIGHT,\r\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\r\n \"--proton-color__warning-dark\": WARNING.DARK,\r\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\r\n \"--proton-color__warning-light\": WARNING.LIGHT,\r\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\r\n \"--proton-color__success-dark\": SUCCESS.DARK,\r\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\r\n \"--proton-color__success-light\": SUCCESS.LIGHT,\r\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\r\n\r\n // Grayscale colors\r\n \"--proton-color__gray-super-dark\": LIGHT_GRAYSCALE.SUPER_DARK,\r\n \"--proton-color__gray-dark\": LIGHT_GRAYSCALE.DARK,\r\n \"--proton-color__gray-medium\": LIGHT_GRAYSCALE.MEDIUM,\r\n \"--proton-color__gray-medium-light\": LIGHT_GRAYSCALE.MEDIUM_LIGHT,\r\n \"--proton-color__gray-light\": LIGHT_GRAYSCALE.LIGHT,\r\n \"--proton-color__gray-lightest\": LIGHT_GRAYSCALE.LIGHTEST,\r\n \"--proton-color__gray-super-light\": LIGHT_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-color__white\": LIGHT_GRAYSCALE.WHITE,\r\n};\r\n"],"names":["LIGHT_STYLESHEET","BACKGROUNDS","ELEVATION","LIGHT_GRAYSCALE","BORDER","transparentize","BRAND","DANGER","WARNING","SUCCESS"],"mappings":";;;;AAMO,MAAMA,IAAqC;AAAA;AAAA,EAEhD,sCAAsCC,EAAY;AAAA,EAClD,4CAA4CC;AAAA,EAC5C,gCAAgCC,EAAgB;AAAA,EAChD,iCAAiCA,EAAgB;AAAA,EACjD,kCAAkCC;AAAA,EAClC,iCAAiCD,EAAgB;AAAA,EACjD,kCAAkCE;AAAA,IAChCF,EAAgB;AAAA,IAChB;AAAA,EACF;AAAA,EACA,mCAAmC;AAAA,EACnC,uCAAuCG,EAAM;AAAA;AAAA,EAG7C,2BAA2BA,EAAM;AAAA,EACjC,iCAAiCA,EAAM;AAAA,EACvC,uCAAuCA,EAAM;AAAA,EAC7C,6BAA6BA,EAAM;AAAA,EACnC,mCAAmCA,EAAM;AAAA,EACzC,yCAAyCA,EAAM;AAAA;AAAA,EAG/C,qCAAqCC,EAAO;AAAA,EAC5C,+BAA+BA,EAAO;AAAA,EACtC,iCAAiCA,EAAO;AAAA,EACxC,gCAAgCA,EAAO;AAAA,EACvC,sCAAsCA,EAAO;AAAA,EAC7C,gCAAgCC,EAAQ;AAAA,EACxC,kCAAkCA,EAAQ;AAAA,EAC1C,iCAAiCA,EAAQ;AAAA,EACzC,uCAAuCA,EAAQ;AAAA,EAC/C,gCAAgCC,EAAQ;AAAA,EACxC,kCAAkCA,EAAQ;AAAA,EAC1C,iCAAiCA,EAAQ;AAAA,EACzC,uCAAuCA,EAAQ;AAAA;AAAA,EAG/C,mCAAmCN,EAAgB;AAAA,EACnD,6BAA6BA,EAAgB;AAAA,EAC7C,+BAA+BA,EAAgB;AAAA,EAC/C,qCAAqCA,EAAgB;AAAA,EACrD,8BAA8BA,EAAgB;AAAA,EAC9C,iCAAiCA,EAAgB;AAAA,EACjD,oCAAoCA,EAAgB;AAAA,EACpD,yBAAyBA,EAAgB;AAC3C;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./colors-CmSJBHaf.js"),A={DARK:"dark",LIGHT:"light"},E={[A.DARK]:"proton-ui__theme--dark",[A.LIGHT]:"proton-ui__theme--light"};exports.BACKGROUNDS=S.BACKGROUNDS;exports.BRAND=S.BRAND;exports.BRAND_PRIMARY_SCALE=S.BRAND_PRIMARY_SCALE;exports.DANGER=S.DANGER;exports.SUCCESS=S.SUCCESS;exports.WARNING=S.WARNING;exports.THEMES=A;exports.THEME_CLASSES=E;
2
+ //# sourceMappingURL=theme.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.cjs.js","sources":["../src/design/theme.ts"],"sourcesContent":["export const THEMES = {\r\n DARK: \"dark\",\r\n LIGHT: \"light\",\r\n} as const;\r\n\r\nexport const THEME_CLASSES = {\r\n [THEMES.DARK]: \"proton-ui__theme--dark\",\r\n [THEMES.LIGHT]: \"proton-ui__theme--light\",\r\n};"],"names":["THEMES","THEME_CLASSES"],"mappings":"wHAAaA,EAAS,CACpB,KAAM,OACN,MAAO,OACT,EAEaC,EAAgB,CAC3B,CAACD,EAAO,IAAI,EAAG,yBACf,CAACA,EAAO,KAAK,EAAG,yBAClB"}
@@ -9,39 +9,6 @@ export declare const BRAND_PRIMARY_SCALE: ProtonColorScale;
9
9
 
10
10
  export declare const DANGER: Partial<ProtonColorScale>;
11
11
 
12
- export declare const DARK_BORDER: string;
13
-
14
- export declare const DARK_ELEVATION: string;
15
-
16
- export declare const DARK_GRAYSCALE: ProtonColorScale;
17
-
18
- export declare const DARK_PALETTE: ProtonPalette;
19
-
20
- export declare const DARK_SECONDARY: {
21
- SUPER_DARK: string;
22
- DARK: string;
23
- MEDIUM: string;
24
- MEDIUM_LIGHT: string;
25
- LIGHT: string;
26
- LIGHTEST: string;
27
- SUPER_LIGHT: string;
28
- WHITE: string;
29
- };
30
-
31
- export declare const DARK_STYLESHEET: ProtonStyleSheet;
32
-
33
- export declare const LIGHT_BORDER: string;
34
-
35
- export declare const LIGHT_ELEVATION: string;
36
-
37
- export declare const LIGHT_GRAYSCALE: ProtonColorScale;
38
-
39
- export declare const LIGHT_PALETTE: ProtonPalette;
40
-
41
- export declare const LIGHT_SECONDARY_SCALE: ProtonColorScale;
42
-
43
- export declare const LIGHT_STYLESHEET: ProtonStyleSheet;
44
-
45
12
  export declare type ProtonColorScale = {
46
13
  SUPER_DARK: string;
47
14
  DARK: string;
@@ -107,8 +74,20 @@ export declare interface ProtonStyleSheet {
107
74
  "--proton-color__white": string;
108
75
  }
109
76
 
77
+ export declare type ProtonTheme = (typeof THEMES)[keyof typeof THEMES];
78
+
110
79
  export declare const SUCCESS: Partial<ProtonColorScale>;
111
80
 
81
+ export declare const THEME_CLASSES: {
82
+ dark: string;
83
+ light: string;
84
+ };
85
+
86
+ export declare const THEMES: {
87
+ readonly DARK: "dark";
88
+ readonly LIGHT: "light";
89
+ };
90
+
112
91
  export declare const WARNING: Partial<ProtonColorScale>;
113
92
 
114
93
  export { }
@@ -0,0 +1,19 @@
1
+ import { B as o, a as R, b as s, D as E, S as r, W as D } from "./colors-CWaj9dFz.mjs";
2
+ const t = {
3
+ DARK: "dark",
4
+ LIGHT: "light"
5
+ }, A = {
6
+ [t.DARK]: "proton-ui__theme--dark",
7
+ [t.LIGHT]: "proton-ui__theme--light"
8
+ };
9
+ export {
10
+ o as BACKGROUNDS,
11
+ R as BRAND,
12
+ s as BRAND_PRIMARY_SCALE,
13
+ E as DANGER,
14
+ r as SUCCESS,
15
+ t as THEMES,
16
+ A as THEME_CLASSES,
17
+ D as WARNING
18
+ };
19
+ //# sourceMappingURL=theme.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.es.js","sources":["../src/design/theme.ts"],"sourcesContent":["export const THEMES = {\r\n DARK: \"dark\",\r\n LIGHT: \"light\",\r\n} as const;\r\n\r\nexport const THEME_CLASSES = {\r\n [THEMES.DARK]: \"proton-ui__theme--dark\",\r\n [THEMES.LIGHT]: \"proton-ui__theme--light\",\r\n};"],"names":["THEMES","THEME_CLASSES"],"mappings":";AAAO,MAAMA,IAAS;AAAA,EACpB,MAAM;AAAA,EACN,OAAO;AACT,GAEaC,IAAgB;AAAA,EAC3B,CAACD,EAAO,IAAI,GAAG;AAAA,EACf,CAACA,EAAO,KAAK,GAAG;AAClB;"}
package/dist/utils.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CMjT6Imo.js"),t=require("./navigation-DdxS0JoV.js"),a=require("./image-C7s3ABus.js"),r=require("./copy-DxIZCnfT.js");exports.arrayToRgbString=e.arrayToRgbString;exports.darken=e.darken;exports.desaturate=e.desaturate;exports.lighten=e.lighten;exports.saturate=e.saturate;exports.toHex=e.toHex;exports.toRgba=e.toRgba;exports.transparentize=e.transparentize;exports.csx=t.csx;exports.handleInternalNavigation=t.handleInternalNavigation;exports.isUrlExternal=t.isUrlExternal;exports.generatePalette=a.generatePalette;exports.getDominantColor=a.getDominantColor;exports.copyTextToClipboard=r.copyTextToClipboard;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./color2k-DCgwXUem.js"),t=require("./navigation-DdxS0JoV.js"),a=require("./image-CUSfY1_T.js"),r=require("./copy-DxIZCnfT.js");exports.arrayToRgbString=e.arrayToRgbString;exports.darken=e.darken;exports.desaturate=e.desaturate;exports.lighten=e.lighten;exports.saturate=e.saturate;exports.toHex=e.toHex;exports.toRgba=e.toRgba;exports.transparentize=e.transparentize;exports.csx=t.csx;exports.handleInternalNavigation=t.handleInternalNavigation;exports.isUrlExternal=t.isUrlExternal;exports.generatePalette=a.generatePalette;exports.getDominantColor=a.getDominantColor;exports.copyTextToClipboard=r.copyTextToClipboard;
2
2
  //# sourceMappingURL=utils.cjs.js.map
package/dist/utils.es.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as e, b as r, d as s, l as o, s as n, c as i, e as l, t as g } from "./index-Clgyr6Mk.mjs";
1
+ import { a as e, b as r, d as s, l as o, s as n, c as i, e as l, t as g } from "./color2k-CpDB_dpw.mjs";
2
2
  import { c as p, h as c, i as d } from "./navigation-DsfDNfej.mjs";
3
- import { g as b, a as f } from "./image-GZPhSCuF.mjs";
3
+ import { g as b, a as f } from "./image-DFyN0Kd9.mjs";
4
4
  import { c as T } from "./copy-qSgElu2b.mjs";
5
5
  export {
6
6
  e as arrayToRgbString,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@protonradio/proton-ui",
3
- "version": "0.11.3",
3
+ "version": "0.11.4",
4
4
  "description": "",
5
5
  "main": "./dist/proton-ui.umd.js",
6
6
  "module": "./dist/proton-ui.es.js",
@@ -30,20 +30,22 @@
30
30
  "import": "./dist/hooks.es.js",
31
31
  "require": "./dist/hooks.cjs.js"
32
32
  },
33
- "./colors": {
34
- "types": "./dist/colors.d.ts",
35
- "import": "./dist/colors.es.js",
36
- "require": "./dist/colors.cjs.js"
33
+ "./theme": {
34
+ "types": "./dist/design.d.ts",
35
+ "import": "./dist/design.es.js",
36
+ "require": "./dist/design.cjs.js"
37
37
  },
38
- "./themes": {
39
- "types": "./dist/themes.d.ts",
40
- "import": "./dist/themes.es.js",
41
- "require": "./dist/themes.cjs.js"
38
+ "./theme/light": {
39
+ "types": "./dist/theme-light.d.ts",
40
+ "import": "./dist/theme-light.es.js",
41
+ "require": "./dist/theme-light.cjs.js"
42
+ },
43
+ "./theme/dark": {
44
+ "types": "./dist/theme-dark.d.ts",
45
+ "import": "./dist/theme-dark.es.js",
46
+ "require": "./dist/theme-dark.cjs.js"
42
47
  }
43
48
  },
44
- "sideEffects": [
45
- "**/*.css"
46
- ],
47
49
  "typesVersions": {
48
50
  "*": {
49
51
  "*": [
@@ -61,11 +63,14 @@
61
63
  "hooks": [
62
64
  "./dist/hooks.d.ts"
63
65
  ],
64
- "colors": [
65
- "./dist/colors.d.ts"
66
+ "theme": [
67
+ "./dist/design.d.ts"
68
+ ],
69
+ "theme/light": [
70
+ "./dist/theme-light.d.ts"
66
71
  ],
67
- "themes": [
68
- "./dist/themes.d.ts"
72
+ "theme/dark": [
73
+ "./dist/theme-dark.d.ts"
69
74
  ]
70
75
  }
71
76
  },
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R={BLACK:"#121212",WHITE:"#FFFFFF"},I={PRIMARY:"#E26014",PRIMARY_LIGHT:"#FBE5D7",PRIMARY_SUPER_LIGHT:"#FFF7F0",SECONDARY:"#2a9edb",SECONDARY_LIGHT:"#b5d9ff",SECONDARY_SUPER_LIGHT:"#d9e7fa"},A={SUPER_DARK:"#2d1304",DARK:"#5a2608",MEDIUM:"#883a0c",MEDIUM_LIGHT:"#b54d10",LIGHT:"#e88043",LIGHTEST:"#eea072",SUPER_LIGHT:"#f9dfd0",WHITE:"#fcfbfa"},E={SUPER_DARK:"#991b1b",DARK:"#a80724",MEDIUM:"#e23f5c",LIGHT:"#f16880",SUPER_LIGHT:"#ffe1e1"},S={DARK:"#8b5600",MEDIUM:"#b37208",LIGHT:"#ffac23",SUPER_LIGHT:"#fff0c9"},D={DARK:"#247800",MEDIUM:"#339a07",LIGHT:"#66cf39",SUPER_LIGHT:"#deffd1"};exports.BACKGROUNDS=R;exports.BRAND=I;exports.BRAND_PRIMARY_SCALE=A;exports.DANGER=E;exports.SUCCESS=D;exports.WARNING=S;
2
- //# sourceMappingURL=colors.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.cjs.js","sources":["../src/design/colors.ts"],"sourcesContent":["import { ProtonColorScale, ProtonPalette } from \"./types\";\r\n\r\n/* Base Colors */\r\n\r\nexport const BACKGROUNDS = {\r\n BLACK: \"#121212\",\r\n WHITE: \"#FFFFFF\",\r\n};\r\n\r\nexport const BRAND: ProtonPalette[\"BRAND\"] = {\r\n PRIMARY: \"#E26014\",\r\n PRIMARY_LIGHT: \"#FBE5D7\",\r\n PRIMARY_SUPER_LIGHT: \"#FFF7F0\",\r\n SECONDARY: \"#2a9edb\",\r\n SECONDARY_LIGHT: \"#b5d9ff\",\r\n SECONDARY_SUPER_LIGHT: \"#d9e7fa\",\r\n};\r\n\r\nexport const BRAND_PRIMARY_SCALE: ProtonColorScale = {\r\n SUPER_DARK: \"#2d1304\",\r\n DARK: \"#5a2608\",\r\n MEDIUM: \"#883a0c\",\r\n MEDIUM_LIGHT: \"#b54d10\",\r\n LIGHT: \"#e88043\",\r\n LIGHTEST: \"#eea072\",\r\n SUPER_LIGHT: \"#f9dfd0\",\r\n WHITE: \"#fcfbfa\",\r\n};\r\n\r\n/* Semantic Colors */\r\n\r\nexport const DANGER: Partial<ProtonColorScale> = {\r\n SUPER_DARK: \"#991b1b\",\r\n DARK: \"#a80724\",\r\n MEDIUM: \"#e23f5c\",\r\n LIGHT: \"#f16880\",\r\n SUPER_LIGHT: \"#ffe1e1\",\r\n};\r\n\r\nexport const WARNING: Partial<ProtonColorScale> = {\r\n DARK: \"#8b5600\",\r\n MEDIUM: \"#b37208\",\r\n LIGHT: \"#ffac23\",\r\n SUPER_LIGHT: \"#fff0c9\",\r\n};\r\n\r\nexport const SUCCESS: Partial<ProtonColorScale> = {\r\n DARK: \"#247800\",\r\n MEDIUM: \"#339a07\",\r\n LIGHT: \"#66cf39\",\r\n SUPER_LIGHT: \"#deffd1\",\r\n};\r\n"],"names":["BACKGROUNDS","BRAND","BRAND_PRIMARY_SCALE","DANGER","WARNING","SUCCESS"],"mappings":"gFAIO,MAAMA,EAAc,CACzB,MAAO,UACP,MAAO,SACT,EAEaC,EAAgC,CAC3C,QAAS,UACT,cAAe,UACf,oBAAqB,UACrB,UAAW,UACX,gBAAiB,UACjB,sBAAuB,SACzB,EAEaC,EAAwC,CACnD,WAAY,UACZ,KAAM,UACN,OAAQ,UACR,aAAc,UACd,MAAO,UACP,SAAU,UACV,YAAa,UACb,MAAO,SACT,EAIaC,EAAoC,CAC/C,WAAY,UACZ,KAAM,UACN,OAAQ,UACR,MAAO,UACP,YAAa,SACf,EAEaC,EAAqC,CAChD,KAAM,UACN,OAAQ,UACR,MAAO,UACP,YAAa,SACf,EAEaC,EAAqC,CAChD,KAAM,UACN,OAAQ,UACR,MAAO,UACP,YAAa,SACf"}
package/dist/colors.d.ts DELETED
@@ -1,42 +0,0 @@
1
- export declare const BACKGROUNDS: {
2
- BLACK: string;
3
- WHITE: string;
4
- };
5
-
6
- export declare const BRAND: ProtonPalette["BRAND"];
7
-
8
- export declare const BRAND_PRIMARY_SCALE: ProtonColorScale;
9
-
10
- export declare const DANGER: Partial<ProtonColorScale>;
11
-
12
- declare type ProtonColorScale = {
13
- SUPER_DARK: string;
14
- DARK: string;
15
- MEDIUM: string;
16
- MEDIUM_LIGHT: string;
17
- LIGHT: string;
18
- LIGHTEST: string;
19
- SUPER_LIGHT: string;
20
- WHITE: string;
21
- };
22
-
23
- declare type ProtonPalette = {
24
- BASE_COLOR: string;
25
- BRAND: {
26
- PRIMARY: string;
27
- PRIMARY_LIGHT: string;
28
- PRIMARY_SUPER_LIGHT: string;
29
- SECONDARY: string;
30
- SECONDARY_LIGHT: string;
31
- SECONDARY_SUPER_LIGHT: string;
32
- };
33
- PRIMARY: ProtonColorScale;
34
- SECONDARY: ProtonColorScale;
35
- GRAYSCALE: ProtonColorScale;
36
- };
37
-
38
- export declare const SUCCESS: Partial<ProtonColorScale>;
39
-
40
- export declare const WARNING: Partial<ProtonColorScale>;
41
-
42
- export { }
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.es.js","sources":["../src/design/colors.ts"],"sourcesContent":["import { ProtonColorScale, ProtonPalette } from \"./types\";\r\n\r\n/* Base Colors */\r\n\r\nexport const BACKGROUNDS = {\r\n BLACK: \"#121212\",\r\n WHITE: \"#FFFFFF\",\r\n};\r\n\r\nexport const BRAND: ProtonPalette[\"BRAND\"] = {\r\n PRIMARY: \"#E26014\",\r\n PRIMARY_LIGHT: \"#FBE5D7\",\r\n PRIMARY_SUPER_LIGHT: \"#FFF7F0\",\r\n SECONDARY: \"#2a9edb\",\r\n SECONDARY_LIGHT: \"#b5d9ff\",\r\n SECONDARY_SUPER_LIGHT: \"#d9e7fa\",\r\n};\r\n\r\nexport const BRAND_PRIMARY_SCALE: ProtonColorScale = {\r\n SUPER_DARK: \"#2d1304\",\r\n DARK: \"#5a2608\",\r\n MEDIUM: \"#883a0c\",\r\n MEDIUM_LIGHT: \"#b54d10\",\r\n LIGHT: \"#e88043\",\r\n LIGHTEST: \"#eea072\",\r\n SUPER_LIGHT: \"#f9dfd0\",\r\n WHITE: \"#fcfbfa\",\r\n};\r\n\r\n/* Semantic Colors */\r\n\r\nexport const DANGER: Partial<ProtonColorScale> = {\r\n SUPER_DARK: \"#991b1b\",\r\n DARK: \"#a80724\",\r\n MEDIUM: \"#e23f5c\",\r\n LIGHT: \"#f16880\",\r\n SUPER_LIGHT: \"#ffe1e1\",\r\n};\r\n\r\nexport const WARNING: Partial<ProtonColorScale> = {\r\n DARK: \"#8b5600\",\r\n MEDIUM: \"#b37208\",\r\n LIGHT: \"#ffac23\",\r\n SUPER_LIGHT: \"#fff0c9\",\r\n};\r\n\r\nexport const SUCCESS: Partial<ProtonColorScale> = {\r\n DARK: \"#247800\",\r\n MEDIUM: \"#339a07\",\r\n LIGHT: \"#66cf39\",\r\n SUPER_LIGHT: \"#deffd1\",\r\n};\r\n"],"names":["BACKGROUNDS","BRAND","BRAND_PRIMARY_SCALE","DANGER","WARNING","SUCCESS"],"mappings":"AAIO,MAAMA,IAAc;AAAA,EACzB,OAAO;AAAA,EACP,OAAO;AACT,GAEaC,IAAgC;AAAA,EAC3C,SAAS;AAAA,EACT,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,uBAAuB;AACzB,GAEaC,IAAwC;AAAA,EACnD,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AAAA,EACb,OAAO;AACT,GAIaC,IAAoC;AAAA,EAC/C,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AACf,GAEaC,IAAqC;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AACf,GAEaC,IAAqC;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AACf;"}
@@ -1,2 +0,0 @@
1
- "use strict";const t=require("./index-CMjT6Imo.js"),d=require("colorthief"),T=a=>{const r=t.arrayToRgbString(a),n=t.getScale("#FFFFFF",r,"#000000"),e=Array.from({length:12},(R,E)=>{const S=n(E/11);return t.desaturate(S,.0085)}),i=e.map(R=>t.saturate(g(R),.005)),u=t.toRgba(t.saturate(t.adjustHue(r,180),1)),m=t.getScale("#FFFFFF",u,"#000000"),s=Array.from({length:12},(R,E)=>{const S=m(E/11);return t.desaturate(S,.1)}),c=s.map(R=>t.desaturate(g(R),.22)),A=D(t.saturate(i[5],.115)),L=t.desaturate(c[4],.02);return{BASE_COLOR:t.arrayToRgbString(a),BRAND:{PRIMARY:A,PRIMARY_LIGHT:o(A,.25,{min:.6,max:.8}),PRIMARY_SUPER_LIGHT:o(A,.15,{min:.8,max:.9}),SECONDARY:L,SECONDARY_LIGHT:o(L,.25,{min:.6,max:.8}),SECONDARY_SUPER_LIGHT:o(L,.15,{min:.8,max:.9})},PRIMARY:{SUPER_DARK:o(l(e[9]),-.6,{min:0,max:.02}),DARK:o(l(e[8]),-.4,{min:.01,max:.02}),MEDIUM:o(i[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:o(t.desaturate(i[6],.1),.08),LIGHT:o(t.saturate(i[5],.1),.16),LIGHTEST:o(t.saturate(i[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:o(i[1],.02,{min:.76,max:.92}),WHITE:o(i[1],.11,{min:.9,max:.98})},SECONDARY:{SUPER_DARK:o(l(s[9]),-.6,{min:0,max:.02}),DARK:o(l(s[8]),-.4,{min:.01,max:.02}),MEDIUM:o(c[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:o(c[6],.1),LIGHT:o(t.saturate(c[5],.1),.16),LIGHTEST:o(t.saturate(c[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:o(c[1],.02,{min:.76,max:.92}),WHITE:o(c[1],.11,{min:.9,max:.98})},GRAYSCALE:{SUPER_DARK:t.DARK_GRAYSCALE.SUPER_DARK,DARK:t.DARK_GRAYSCALE.DARK,MEDIUM:t.DARK_GRAYSCALE.MEDIUM,MEDIUM_LIGHT:t.DARK_GRAYSCALE.MEDIUM_LIGHT,LIGHT:t.DARK_GRAYSCALE.LIGHT,LIGHTEST:t.DARK_GRAYSCALE.LIGHTEST,SUPER_LIGHT:t.DARK_GRAYSCALE.SUPER_LIGHT,WHITE:t.DARK_GRAYSCALE.WHITE}}},o=(a,r,n={min:.03,max:.97})=>{let e=a,i=t.getLuminance(e);if(n.min<0&&(n.min=0),n.max>1&&(n.max=1),n.min>=n.max)throw new Error("Invalid range: min must be less than max");if(r>0){const m=n.max-i;if(m<=0)return t.toRgba(e);const s=r*(m/(1-i));e=t.lighten(e,s)}else if(r<0){const m=i-n.min;if(m<=0)return t.toRgba(e);const s=r*(m/i);e=t.darken(e,Math.abs(s))}const u=t.getLuminance(e);return(u>n.max||u<n.min)&&(e=I(e,n)),t.toRgba(e)},I=(a,r)=>{let n=a,e=t.getLuminance(n);for(;e>r.max;)n=t.darken(n,.05),e=t.getLuminance(n);for(;e<r.min;)n=t.lighten(n,.05),e=t.getLuminance(n);return t.toRgba(n)},l=a=>{for(;t.hasBadContrast(a,"readable",t.LIGHT_GRAYSCALE.DARK);)a=t.lighten(a,.01);return t.toRgba(a)},D=a=>{for(;t.hasBadContrast(t.LIGHT_GRAYSCALE.SUPER_LIGHT,"readable",a);)a=t.darken(a,.01);return t.toRgba(a)},g=a=>{let r=a,n=t.getLuminance(t.toRgba(r)),e=0;const i=6;for(;n<.16&&e<i;)e++,r=t.lighten(r,.1),n=t.getLuminance(t.toRgba(r));for(;n>.6&&e<i;)e++,r=t.darken(r,.1),n=t.getLuminance(t.toRgba(r));return t.toRgba(r)};function G(a){return a instanceof HTMLImageElement?Promise.resolve(C(a)):_(a)}function C(a){try{return new d().getColor(a)}catch{return[255,255,255]}}function _(a){return new Promise((r,n)=>{const e=document.createElement("img");e.crossOrigin="anonymous",e.onload=()=>{try{const i=new d().getColor(e);r(i)}catch{r([255,255,255])}},e.onerror=()=>n(new Error("Failed to load image")),e.src=a})}exports.generatePalette=T;exports.getDominantColor=G;
2
- //# sourceMappingURL=image-C7s3ABus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-C7s3ABus.js","sources":["../src/utils/palette.ts","../src/utils/image.ts"],"sourcesContent":["import {\r\n adjustHue,\r\n darken,\r\n getLuminance,\r\n getScale,\r\n hasBadContrast,\r\n lighten,\r\n toRgba,\r\n} from \"color2k\";\r\nimport { ProtonPalette, RGBArray } from \"../design/types\";\r\nimport { arrayToRgbString, desaturate, saturate } from \"./color2k\";\r\nimport { LIGHT_GRAYSCALE } from \"../design/lightTheme\";\r\nimport { DARK_GRAYSCALE } from \"../design/darkTheme\";\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): ProtonPalette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n const brandSecondary = desaturate(adjustedSecondaryScale[4], 0.02);\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(brandPrimary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n SECONDARY: brandSecondary,\r\n SECONDARY_LIGHT: lightenWithinRange(brandSecondary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(brandSecondary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(primaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n //interactive components\r\n MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedPrimaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedPrimaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(secondaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n // interactive components\r\n MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(adjustedSecondaryScale[6], 0.1),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedSecondaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedSecondaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedSecondaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n //TODO: make theme aware grayscale color scale\r\n //Can we remove the basecolor after this?\r\n GRAYSCALE: {\r\n SUPER_DARK: DARK_GRAYSCALE.SUPER_DARK,\r\n DARK: DARK_GRAYSCALE.DARK,\r\n MEDIUM: DARK_GRAYSCALE.MEDIUM,\r\n MEDIUM_LIGHT: DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n LIGHT: DARK_GRAYSCALE.LIGHT,\r\n LIGHTEST: DARK_GRAYSCALE.LIGHTEST,\r\n SUPER_LIGHT: DARK_GRAYSCALE.SUPER_LIGHT,\r\n WHITE: DARK_GRAYSCALE.WHITE,\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", LIGHT_GRAYSCALE.DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(LIGHT_GRAYSCALE.SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","import ColorThief from \"colorthief\";\r\nimport type { RGBArray } from \"../design/types\";\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns A Promise that resolves to an RGB array.\r\n */\r\nexport function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;\r\nexport function getDominantColor(image: string): Promise<RGBArray>;\r\nexport function getDominantColor(\r\n image: HTMLImageElement | string\r\n): Promise<RGBArray> {\r\n if (image instanceof HTMLImageElement) {\r\n return Promise.resolve(getDominantColorFromImage(image));\r\n } else {\r\n return getDominantColorFromImageUrl(image);\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImage(image: HTMLImageElement): RGBArray {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImageUrl(url: string): Promise<RGBArray> {\r\n return new Promise((resolve, reject) => {\r\n const imgElement = document.createElement(\"img\");\r\n imgElement.crossOrigin = \"anonymous\";\r\n\r\n imgElement.onload = () => {\r\n try {\r\n const baseColor = new ColorThief().getColor(imgElement);\r\n resolve(baseColor);\r\n } catch {\r\n resolve([255, 255, 255]);\r\n }\r\n };\r\n\r\n imgElement.onerror = () => reject(new Error(\"Failed to load image\"));\r\n imgElement.src = url;\r\n });\r\n}\r\n"],"names":["generatePalette","baseColor","primaryRgba","arrayToRgbString","primaryScaleFunc","getScale","primaryScale","_","i","color","desaturate","adjustedPrimaryScale","saturate","adjustBrightnessForLuminance","secondaryColor","toRgba","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","brandSecondary","lightenWithinRange","lightenForContrast","DARK_GRAYSCALE","amount","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","LIGHT_GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS","getDominantColor","image","getDominantColorFromImage","getDominantColorFromImageUrl","ColorThief","url","resolve","reject","imgElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-GZPhSCuF.mjs","sources":["../src/utils/palette.ts","../src/utils/image.ts"],"sourcesContent":["import {\r\n adjustHue,\r\n darken,\r\n getLuminance,\r\n getScale,\r\n hasBadContrast,\r\n lighten,\r\n toRgba,\r\n} from \"color2k\";\r\nimport { ProtonPalette, RGBArray } from \"../design/types\";\r\nimport { arrayToRgbString, desaturate, saturate } from \"./color2k\";\r\nimport { LIGHT_GRAYSCALE } from \"../design/lightTheme\";\r\nimport { DARK_GRAYSCALE } from \"../design/darkTheme\";\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): ProtonPalette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n const brandSecondary = desaturate(adjustedSecondaryScale[4], 0.02);\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(brandPrimary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n SECONDARY: brandSecondary,\r\n SECONDARY_LIGHT: lightenWithinRange(brandSecondary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(brandSecondary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(primaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n //interactive components\r\n MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedPrimaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedPrimaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(secondaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n // interactive components\r\n MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(adjustedSecondaryScale[6], 0.1),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedSecondaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedSecondaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedSecondaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n //TODO: make theme aware grayscale color scale\r\n //Can we remove the basecolor after this?\r\n GRAYSCALE: {\r\n SUPER_DARK: DARK_GRAYSCALE.SUPER_DARK,\r\n DARK: DARK_GRAYSCALE.DARK,\r\n MEDIUM: DARK_GRAYSCALE.MEDIUM,\r\n MEDIUM_LIGHT: DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n LIGHT: DARK_GRAYSCALE.LIGHT,\r\n LIGHTEST: DARK_GRAYSCALE.LIGHTEST,\r\n SUPER_LIGHT: DARK_GRAYSCALE.SUPER_LIGHT,\r\n WHITE: DARK_GRAYSCALE.WHITE,\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", LIGHT_GRAYSCALE.DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(LIGHT_GRAYSCALE.SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","import ColorThief from \"colorthief\";\r\nimport type { RGBArray } from \"../design/types\";\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns A Promise that resolves to an RGB array.\r\n */\r\nexport function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;\r\nexport function getDominantColor(image: string): Promise<RGBArray>;\r\nexport function getDominantColor(\r\n image: HTMLImageElement | string\r\n): Promise<RGBArray> {\r\n if (image instanceof HTMLImageElement) {\r\n return Promise.resolve(getDominantColorFromImage(image));\r\n } else {\r\n return getDominantColorFromImageUrl(image);\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImage(image: HTMLImageElement): RGBArray {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImageUrl(url: string): Promise<RGBArray> {\r\n return new Promise((resolve, reject) => {\r\n const imgElement = document.createElement(\"img\");\r\n imgElement.crossOrigin = \"anonymous\";\r\n\r\n imgElement.onload = () => {\r\n try {\r\n const baseColor = new ColorThief().getColor(imgElement);\r\n resolve(baseColor);\r\n } catch {\r\n resolve([255, 255, 255]);\r\n }\r\n };\r\n\r\n imgElement.onerror = () => reject(new Error(\"Failed to load image\"));\r\n imgElement.src = url;\r\n });\r\n}\r\n"],"names":["generatePalette","baseColor","primaryRgba","arrayToRgbString","primaryScaleFunc","getScale","primaryScale","_","i","color","desaturate","adjustedPrimaryScale","saturate","adjustBrightnessForLuminance","secondaryColor","toRgba","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","brandSecondary","lightenWithinRange","lightenForContrast","DARK_GRAYSCALE","amount","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","LIGHT_GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS","getDominantColor","image","getDominantColorFromImage","getDominantColorFromImageUrl","ColorThief","url","resolve","reject","imgElement"],"mappings":";;AA8Ba,MAAAA,IAAkB,CAACC,MAAuC;AAC/D,QAAAC,IAAcC,EAAiBF,CAAS,GAExCG,IAAmBC,EAAS,WAAWH,GAAa,SAAS,GAC7DI,IAAe,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAACC,GAAGC,MAAM;AAClD,UAAAC,IAAQL,EAAiBI,IAAI,EAAE;AAC9B,WAAAE,EAAWD,GAAO,KAAM;AAAA,EAAA,CAChC,GAEKE,IAAuBL,EAAa;AAAA,IAAI,CAACG,MAC7CG,EAASC,EAA6BJ,CAAK,GAAG,IAAK;AAAA,EAAA,GAG/CK,IAAiBC,EAAOH,EAASI,EAAUd,GAAa,GAAG,GAAG,CAAC,CAAC,GAEhEe,IAAqBZ,EAAS,WAAWS,GAAgB,SAAS,GAClEI,IAAiB,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAACX,GAAGC,MAAM;AACpD,UAAAC,IAAQQ,EAAmBT,IAAI,EAAE;AAChC,WAAAE,EAAWD,GAAO,GAAG;AAAA,EAAA,CAC7B,GAEKU,IAAyBD,EAAe;AAAA,IAAI,CAACT,MACjDC,EAAWG,EAA6BJ,CAAK,GAAG,IAAI;AAAA,EAAA,GAGhDW,IAAeC;AAAA,IACnBT,EAASD,EAAqB,CAAC,GAAG,KAAK;AAAA,EAAA,GAEnCW,IAAiBZ,EAAWS,EAAuB,CAAC,GAAG,IAAI;AAE1D,SAAA;AAAA,IACL,YAAYhB,EAAiBF,CAAS;AAAA,IACtC,OAAO;AAAA,MACL,SAASmB;AAAA,MACT,eAAeG,EAAmBH,GAAc,MAAM;AAAA,QACpD,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,MACD,qBAAqBG,EAAmBH,GAAc,MAAM;AAAA,QAC1D,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,MACD,WAAWE;AAAA,MACX,iBAAiBC,EAAmBD,GAAgB,MAAM;AAAA,QACxD,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,MACD,uBAAuBC,EAAmBD,GAAgB,MAAM;AAAA,QAC9D,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,IACH;AAAA,IACA,SAAS;AAAA;AAAA,MAEP,YAAYC;AAAA,QACVC,EAAmBlB,EAAa,CAAC,CAAC;AAAA,QAClC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,MAAMiB,EAAmBC,EAAmBlB,EAAa,CAAC,CAAC,GAAG,MAAM;AAAA,QAClE,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA;AAAA,MAED,QAAQiB,EAAmBZ,EAAqB,CAAC,GAAG,MAAM;AAAA,QACxD,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA;AAAA,MAED,cAAcY;AAAA,QACZb,EAAWC,EAAqB,CAAC,GAAG,GAAG;AAAA,QACvC;AAAA,MACF;AAAA;AAAA,MAEA,OAAOY,EAAmBX,EAASD,EAAqB,CAAC,GAAG,GAAG,GAAG,IAAI;AAAA;AAAA,MAEtE,UAAUY;AAAA,QACRX,EAASD,EAAqB,CAAC,GAAG,GAAG;AAAA,QACrC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,aAAaY,EAAmBZ,EAAqB,CAAC,GAAG,MAAM;AAAA,QAC7D,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,MACD,OAAOY,EAAmBZ,EAAqB,CAAC,GAAG,MAAM;AAAA,QACvD,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,IACH;AAAA,IACA,WAAW;AAAA;AAAA,MAET,YAAYY;AAAA,QACVC,EAAmBN,EAAe,CAAC,CAAC;AAAA,QACpC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,MAAMK,EAAmBC,EAAmBN,EAAe,CAAC,CAAC,GAAG,MAAM;AAAA,QACpE,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA;AAAA,MAED,QAAQK,EAAmBJ,EAAuB,CAAC,GAAG,MAAM;AAAA,QAC1D,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA;AAAA,MAED,cAAcI,EAAmBJ,EAAuB,CAAC,GAAG,GAAG;AAAA;AAAA,MAE/D,OAAOI,EAAmBX,EAASO,EAAuB,CAAC,GAAG,GAAG,GAAG,IAAI;AAAA;AAAA,MAExE,UAAUI;AAAA,QACRX,EAASO,EAAuB,CAAC,GAAG,GAAG;AAAA,QACvC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,aAAaI,EAAmBJ,EAAuB,CAAC,GAAG,MAAM;AAAA,QAC/D,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,MACD,OAAOI,EAAmBJ,EAAuB,CAAC,GAAG,MAAM;AAAA,QACzD,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,IACH;AAAA;AAAA;AAAA,IAGA,WAAW;AAAA,MACT,YAAYM,EAAe;AAAA,MAC3B,MAAMA,EAAe;AAAA,MACrB,QAAQA,EAAe;AAAA,MACvB,cAAcA,EAAe;AAAA,MAC7B,OAAOA,EAAe;AAAA,MACtB,UAAUA,EAAe;AAAA,MACzB,aAAaA,EAAe;AAAA,MAC5B,OAAOA,EAAe;AAAA,IACxB;AAAA,EAAA;AAEJ,GAEMF,IAAqB,CACzBd,GACAiB,GACAC,IAAsC,EAAE,KAAK,MAAM,KAAK,WAC7C;AACX,MAAIC,IAAgBnB,GAChBoB,IAAmBC,EAAaF,CAAa;AAK7C,MAFAD,EAAM,MAAM,MAAGA,EAAM,MAAM,IAC3BA,EAAM,MAAM,MAAGA,EAAM,MAAM,IAC3BA,EAAM,OAAOA,EAAM;AACf,UAAA,IAAI,MAAM,0CAA0C;AAI5D,MAAID,IAAS,GAAG;AAER,UAAAK,IAAqBJ,EAAM,MAAME;AACvC,QAAIE,KAAsB,EAAU,QAAAhB,EAAOa,CAAa;AAGlD,UAAAI,IAAeN,KAAUK,KAAsB,IAAIF;AACzC,IAAAD,IAAAK,EAAQL,GAAeI,CAAY;AAAA,EAAA,WAG5CN,IAAS,GAAG;AAEb,UAAAK,IAAqBF,IAAmBF,EAAM;AACpD,QAAII,KAAsB,EAAU,QAAAhB,EAAOa,CAAa;AAGlD,UAAAI,IAAeN,KAAUK,IAAqBF;AACpD,IAAAD,IAAgBM,EAAON,GAAe,KAAK,IAAII,CAAY,CAAC;AAAA,EAC9D;AAGM,QAAAG,IAAiBL,EAAaF,CAAa;AAC7C,UAAAO,IAAiBR,EAAM,OAEhBQ,IAAiBR,EAAM,SAChBC,IAAAQ,EAA4BR,GAAeD,CAAK,IAG3DZ,EAAOa,CAAa;AAC7B,GAEMQ,IAA8B,CAClC3B,GACAkB,MACW;AACX,MAAIC,IAAgBnB,GAChB4B,IAAYP,EAAaF,CAAa;AAGnC,SAAAS,IAAYV,EAAM;AACP,IAAAC,IAAAM,EAAON,GAAe,IAAI,GAC1CS,IAAYP,EAAaF,CAAa;AAIjC,SAAAS,IAAYV,EAAM;AACP,IAAAC,IAAAK,EAAQL,GAAe,IAAI,GAC3CS,IAAYP,EAAaF,CAAa;AAGxC,SAAOb,EAAOa,CAAa;AAC7B,GAEMJ,IAAqB,CAACf,MAA0B;AACpD,SAAO6B,EAAe7B,GAAO,YAAY8B,EAAgB,IAAI;AACnD,IAAA9B,IAAAwB,EAAQxB,GAAO,IAAI;AAE7B,SAAOM,EAAON,CAAK;AACrB,GAEMY,IAAoB,CAACZ,MAA0B;AACnD,SAAO6B,EAAeC,EAAgB,aAAa,YAAY9B,CAAK;AAC1D,IAAAA,IAAAyB,EAAOzB,GAAO,IAAI;AAE5B,SAAOM,EAAON,CAAK;AACrB,GAEMI,IAA+B,CAACJ,MAA0B;AAC9D,MAAI+B,IAAe/B,GACfoB,IAAmBC,EAAaf,EAAOyB,CAAY,CAAC,GACpDC,IAAqB;AACzB,QAAMC,IAAe;AAEd,SAAAb,IAAmB,QAAQY,IAAqBC;AACrD,IAAAD,KACeD,IAAAP,EAAQO,GAAc,GAAG,GACrBX,IAAAC,EAAaf,EAAOyB,CAAY,CAAC;AAG/C,SAAAX,IAAmB,OAAOY,IAAqBC;AACpD,IAAAD,KACeD,IAAAN,EAAOM,GAAc,GAAG,GACpBX,IAAAC,EAAaf,EAAOyB,CAAY,CAAC;AAGtD,SAAOzB,EAAOyB,CAAY;AAC5B;ACjRO,SAASG,EACdC,GACmB;AACnB,SAAIA,aAAiB,mBACZ,QAAQ,QAAQC,EAA0BD,CAAK,CAAC,IAEhDE,EAA6BF,CAAK;AAE7C;AAEA,SAASC,EAA0BD,GAAmC;AAChE,MAAA;AAGK,WAFY,IAAIG,IACM,SAASH,CAAK;AAAA,EACpC,QACD;AACC,WAAA,CAAC,KAAK,KAAK,GAAG;AAAA,EACvB;AACF;AAEA,SAASE,EAA6BE,GAAgC;AACpE,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AAChC,UAAAC,IAAa,SAAS,cAAc,KAAK;AAC/C,IAAAA,EAAW,cAAc,aAEzBA,EAAW,SAAS,MAAM;AACpB,UAAA;AACF,cAAMlD,IAAY,IAAI8C,EAAW,EAAE,SAASI,CAAU;AACtD,QAAAF,EAAQhD,CAAS;AAAA,MAAA,QACX;AACN,QAAAgD,EAAQ,CAAC,KAAK,KAAK,GAAG,CAAC;AAAA,MACzB;AAAA,IAAA,GAGFE,EAAW,UAAU,MAAMD,EAAO,IAAI,MAAM,sBAAsB,CAAC,GACnEC,EAAW,MAAMH;AAAA,EAAA,CAClB;AACH;"}