@atlaskit/tokens 13.0.4 → 13.1.1

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 (343) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/codemods/css-to-design-tokens/lib/colors.tsx +3 -8
  3. package/codemods/css-to-design-tokens/lib/declaration.tsx +3 -13
  4. package/codemods/css-to-design-tokens/lib/extract-between-parentheses.tsx +4 -0
  5. package/codemods/css-to-design-tokens/lib/extract-less-var-name.tsx +3 -0
  6. package/codemods/css-to-design-tokens/lib/get-css-var-meta.tsx +13 -0
  7. package/codemods/css-to-design-tokens/lib/get-named-color-meta.tsx +5 -0
  8. package/codemods/css-to-design-tokens/lib/get-raw-color-meta.tsx +11 -0
  9. package/codemods/css-to-design-tokens/lib/is-css-declaration.tsx +3 -0
  10. package/codemods/css-to-design-tokens/lib/is-known-css-variable.tsx +5 -0
  11. package/codemods/css-to-design-tokens/lib/known-named-colors.tsx +150 -0
  12. package/codemods/css-to-design-tokens/lib/known-raw-colors.tsx +17 -0
  13. package/codemods/css-to-design-tokens/lib/known-variables.tsx +167 -0
  14. package/codemods/css-to-design-tokens/lib/legacy-colors.tsx +3 -335
  15. package/codemods/css-to-design-tokens/lib/meta.tsx +3 -28
  16. package/codemods/css-to-design-tokens/lib/split-css-value.tsx +4 -0
  17. package/codemods/css-to-design-tokens/lib/value.tsx +6 -9
  18. package/codemods/css-to-design-tokens/transform.tsx +3 -1
  19. package/dist/cjs/artifacts/palettes-raw/palette.js +35 -1
  20. package/dist/cjs/artifacts/themes/atlassian-dark-increased-contrast.js +2 -2
  21. package/dist/cjs/artifacts/themes/atlassian-dark.js +2 -2
  22. package/dist/cjs/artifacts/themes/atlassian-light-increased-contrast.js +2 -2
  23. package/dist/cjs/artifacts/themes/atlassian-light.js +2 -2
  24. package/dist/cjs/artifacts/token-default-values.js +2 -2
  25. package/dist/cjs/artifacts/tokens-raw/atlassian-dark-increased-contrast.js +3 -3
  26. package/dist/cjs/artifacts/tokens-raw/atlassian-dark.js +3 -3
  27. package/dist/cjs/artifacts/tokens-raw/atlassian-light-increased-contrast.js +3 -3
  28. package/dist/cjs/artifacts/tokens-raw/atlassian-light.js +3 -3
  29. package/dist/cjs/constants.js +1 -0
  30. package/dist/cjs/entry-points/theme-state-transformer.js +4 -3
  31. package/dist/cjs/entry-points/token-metadata.codegen.js +2 -2
  32. package/dist/cjs/get-custom-theme-styles.js +7 -6
  33. package/dist/cjs/get-global-theme.js +2 -2
  34. package/dist/cjs/get-theme-html-attrs.js +2 -2
  35. package/dist/cjs/get-theme-styles.js +27 -27
  36. package/dist/cjs/index.js +4 -3
  37. package/dist/cjs/is-color-mode.js +9 -0
  38. package/dist/cjs/is-theme-ids.js +12 -0
  39. package/dist/cjs/is-theme-kind.js +12 -0
  40. package/dist/cjs/set-global-theme.js +32 -31
  41. package/dist/cjs/theme-config.js +9 -43
  42. package/dist/cjs/theme-object-to-string.js +42 -0
  43. package/dist/cjs/theme-options-schema.js +1 -0
  44. package/dist/cjs/theme-state-defaults.js +39 -0
  45. package/dist/cjs/theme-state.js +5 -0
  46. package/dist/cjs/theme-string-to-object.js +51 -0
  47. package/dist/cjs/utils/additional-contrast-checker.js +43 -0
  48. package/dist/cjs/utils/custom-theme-loading-utils.js +0 -20
  49. package/dist/cjs/utils/custom-theme-token-contrast-check.js +2 -38
  50. package/dist/cjs/utils/delta-e.js +26 -0
  51. package/dist/cjs/utils/generate-colors.js +47 -0
  52. package/dist/cjs/utils/generate-token-map-with-contrast-check.js +32 -0
  53. package/dist/cjs/utils/{generate-custom-color-ramp.js → generate-token-map.js} +6 -71
  54. package/dist/cjs/utils/get-closest-color-index.js +3 -2
  55. package/dist/cjs/utils/get-contrast-ratio.js +22 -0
  56. package/dist/cjs/utils/hct-color-utils/alpha-from-argb.js +12 -0
  57. package/dist/cjs/utils/hct-color-utils/argb-from-linrgb.js +17 -0
  58. package/dist/cjs/utils/hct-color-utils/argb-from-lstar.js +21 -0
  59. package/dist/cjs/utils/hct-color-utils/argb-from-rgba.js +24 -0
  60. package/dist/cjs/utils/hct-color-utils/argb-from-xyz.js +29 -0
  61. package/dist/cjs/utils/hct-color-utils/blue-from-argb.js +12 -0
  62. package/dist/cjs/utils/hct-color-utils/clamp-component.js +15 -0
  63. package/dist/cjs/utils/hct-color-utils/contrast.js +10 -11
  64. package/dist/cjs/utils/hct-color-utils/green-from-argb.js +12 -0
  65. package/dist/cjs/utils/hct-color-utils/hct.js +18 -12
  66. package/dist/cjs/utils/hct-color-utils/index.js +4 -3
  67. package/dist/cjs/utils/hct-color-utils/lab-f.js +15 -0
  68. package/dist/cjs/utils/hct-color-utils/lab-invf.js +16 -0
  69. package/dist/cjs/utils/hct-color-utils/lstar-from-argb.js +34 -0
  70. package/dist/cjs/utils/hct-color-utils/lstar-from-y.js +21 -0
  71. package/dist/cjs/utils/hct-color-utils/red-from-argb.js +12 -0
  72. package/dist/cjs/utils/hct-color-utils/rgba-from-argb.js +28 -0
  73. package/dist/cjs/utils/hct-color-utils/rgba.js +1 -0
  74. package/dist/cjs/utils/hct-color-utils/viewing-conditions.js +5 -4
  75. package/dist/cjs/utils/hct-color-utils/white-point-d65.js +14 -0
  76. package/dist/cjs/utils/hct-color-utils/y-from-lstar.js +21 -0
  77. package/dist/cjs/utils/hex-to-hsl.js +52 -0
  78. package/dist/cjs/utils/hex-to-rgb-a.js +20 -0
  79. package/dist/cjs/utils/hex-to-rgb.js +19 -0
  80. package/dist/cjs/utils/is-valid-hex.js +10 -0
  81. package/dist/cjs/utils/load-theme-css.js +4 -4
  82. package/dist/cjs/utils/reduce-token-map.js +18 -0
  83. package/dist/cjs/utils/rgb-to-lab.js +24 -0
  84. package/dist/cjs/utils/theme-loading.js +8 -8
  85. package/dist/es2019/artifacts/palettes-raw/palette.js +35 -1
  86. package/dist/es2019/artifacts/themes/atlassian-dark-increased-contrast.js +2 -2
  87. package/dist/es2019/artifacts/themes/atlassian-dark.js +2 -2
  88. package/dist/es2019/artifacts/themes/atlassian-light-increased-contrast.js +2 -2
  89. package/dist/es2019/artifacts/themes/atlassian-light.js +2 -2
  90. package/dist/es2019/artifacts/token-default-values.js +2 -2
  91. package/dist/es2019/artifacts/tokens-raw/atlassian-dark-increased-contrast.js +3 -3
  92. package/dist/es2019/artifacts/tokens-raw/atlassian-dark.js +3 -3
  93. package/dist/es2019/artifacts/tokens-raw/atlassian-light-increased-contrast.js +3 -3
  94. package/dist/es2019/artifacts/tokens-raw/atlassian-light.js +3 -3
  95. package/dist/es2019/constants.js +1 -0
  96. package/dist/es2019/entry-points/theme-state-transformer.js +2 -1
  97. package/dist/es2019/entry-points/token-metadata.codegen.js +2 -2
  98. package/dist/es2019/get-custom-theme-styles.js +3 -2
  99. package/dist/es2019/get-global-theme.js +1 -1
  100. package/dist/es2019/get-theme-html-attrs.js +1 -1
  101. package/dist/es2019/index.js +2 -1
  102. package/dist/es2019/is-color-mode.js +3 -0
  103. package/dist/es2019/is-theme-ids.js +4 -0
  104. package/dist/es2019/is-theme-kind.js +4 -0
  105. package/dist/es2019/theme-config.js +5 -44
  106. package/dist/es2019/theme-object-to-string.js +28 -0
  107. package/dist/es2019/theme-options-schema.js +0 -0
  108. package/dist/es2019/theme-state-defaults.js +34 -0
  109. package/dist/es2019/theme-state.js +1 -0
  110. package/dist/es2019/theme-string-to-object.js +38 -0
  111. package/dist/es2019/utils/additional-contrast-checker.js +39 -0
  112. package/dist/es2019/utils/custom-theme-loading-utils.js +1 -9
  113. package/dist/es2019/utils/custom-theme-token-contrast-check.js +1 -39
  114. package/dist/es2019/utils/delta-e.js +20 -0
  115. package/dist/es2019/utils/generate-colors.js +39 -0
  116. package/dist/es2019/utils/generate-token-map-with-contrast-check.js +21 -0
  117. package/dist/es2019/utils/{generate-custom-color-ramp.js → generate-token-map.js} +3 -59
  118. package/dist/es2019/utils/get-closest-color-index.js +2 -1
  119. package/dist/es2019/utils/get-contrast-ratio.js +16 -0
  120. package/dist/es2019/utils/hct-color-utils/alpha-from-argb.js +6 -0
  121. package/dist/es2019/utils/hct-color-utils/argb-from-linrgb.js +12 -0
  122. package/dist/es2019/utils/hct-color-utils/argb-from-lstar.js +16 -0
  123. package/dist/es2019/utils/hct-color-utils/argb-from-rgba.js +19 -0
  124. package/dist/es2019/utils/hct-color-utils/argb-from-xyz.js +24 -0
  125. package/dist/es2019/utils/hct-color-utils/blue-from-argb.js +6 -0
  126. package/dist/es2019/utils/hct-color-utils/clamp-component.js +9 -0
  127. package/dist/es2019/utils/hct-color-utils/contrast.js +10 -10
  128. package/dist/es2019/utils/hct-color-utils/green-from-argb.js +6 -0
  129. package/dist/es2019/utils/hct-color-utils/hct.js +19 -12
  130. package/dist/es2019/utils/hct-color-utils/index.js +2 -1
  131. package/dist/es2019/utils/hct-color-utils/lab-f.js +9 -0
  132. package/dist/es2019/utils/hct-color-utils/lab-invf.js +10 -0
  133. package/dist/es2019/utils/hct-color-utils/lstar-from-argb.js +28 -0
  134. package/dist/es2019/utils/hct-color-utils/lstar-from-y.js +16 -0
  135. package/dist/es2019/utils/hct-color-utils/red-from-argb.js +6 -0
  136. package/dist/es2019/utils/hct-color-utils/rgba-from-argb.js +22 -0
  137. package/dist/es2019/utils/hct-color-utils/rgba.js +0 -0
  138. package/dist/es2019/utils/hct-color-utils/viewing-conditions.js +4 -3
  139. package/dist/es2019/utils/hct-color-utils/white-point-d65.js +8 -0
  140. package/dist/es2019/utils/hct-color-utils/y-from-lstar.js +16 -0
  141. package/dist/es2019/utils/hex-to-hsl.js +46 -0
  142. package/dist/es2019/utils/hex-to-rgb-a.js +14 -0
  143. package/dist/es2019/utils/hex-to-rgb.js +13 -0
  144. package/dist/es2019/utils/is-valid-hex.js +2 -0
  145. package/dist/es2019/utils/reduce-token-map.js +7 -0
  146. package/dist/es2019/utils/rgb-to-lab.js +18 -0
  147. package/dist/esm/artifacts/palettes-raw/palette.js +35 -1
  148. package/dist/esm/artifacts/themes/atlassian-dark-increased-contrast.js +2 -2
  149. package/dist/esm/artifacts/themes/atlassian-dark.js +2 -2
  150. package/dist/esm/artifacts/themes/atlassian-light-increased-contrast.js +2 -2
  151. package/dist/esm/artifacts/themes/atlassian-light.js +2 -2
  152. package/dist/esm/artifacts/token-default-values.js +2 -2
  153. package/dist/esm/artifacts/tokens-raw/atlassian-dark-increased-contrast.js +3 -3
  154. package/dist/esm/artifacts/tokens-raw/atlassian-dark.js +3 -3
  155. package/dist/esm/artifacts/tokens-raw/atlassian-light-increased-contrast.js +3 -3
  156. package/dist/esm/artifacts/tokens-raw/atlassian-light.js +3 -3
  157. package/dist/esm/constants.js +1 -0
  158. package/dist/esm/entry-points/theme-state-transformer.js +2 -1
  159. package/dist/esm/entry-points/token-metadata.codegen.js +2 -2
  160. package/dist/esm/get-custom-theme-styles.js +3 -2
  161. package/dist/esm/get-global-theme.js +1 -1
  162. package/dist/esm/get-theme-html-attrs.js +1 -1
  163. package/dist/esm/get-theme-styles.js +26 -26
  164. package/dist/esm/index.js +2 -1
  165. package/dist/esm/is-color-mode.js +3 -0
  166. package/dist/esm/is-theme-ids.js +6 -0
  167. package/dist/esm/is-theme-kind.js +6 -0
  168. package/dist/esm/set-global-theme.js +31 -30
  169. package/dist/esm/theme-config.js +5 -44
  170. package/dist/esm/theme-object-to-string.js +35 -0
  171. package/dist/esm/theme-options-schema.js +0 -0
  172. package/dist/esm/theme-state-defaults.js +34 -0
  173. package/dist/esm/theme-state.js +1 -0
  174. package/dist/esm/theme-string-to-object.js +44 -0
  175. package/dist/esm/utils/additional-contrast-checker.js +36 -0
  176. package/dist/esm/utils/custom-theme-loading-utils.js +1 -13
  177. package/dist/esm/utils/custom-theme-token-contrast-check.js +1 -36
  178. package/dist/esm/utils/delta-e.js +20 -0
  179. package/dist/esm/utils/generate-colors.js +40 -0
  180. package/dist/esm/utils/generate-token-map-with-contrast-check.js +25 -0
  181. package/dist/esm/utils/{generate-custom-color-ramp.js → generate-token-map.js} +3 -63
  182. package/dist/esm/utils/get-closest-color-index.js +2 -1
  183. package/dist/esm/utils/get-contrast-ratio.js +16 -0
  184. package/dist/esm/utils/hct-color-utils/alpha-from-argb.js +6 -0
  185. package/dist/esm/utils/hct-color-utils/argb-from-linrgb.js +12 -0
  186. package/dist/esm/utils/hct-color-utils/argb-from-lstar.js +16 -0
  187. package/dist/esm/utils/hct-color-utils/argb-from-rgba.js +18 -0
  188. package/dist/esm/utils/hct-color-utils/argb-from-xyz.js +24 -0
  189. package/dist/esm/utils/hct-color-utils/blue-from-argb.js +6 -0
  190. package/dist/esm/utils/hct-color-utils/clamp-component.js +9 -0
  191. package/dist/esm/utils/hct-color-utils/contrast.js +10 -10
  192. package/dist/esm/utils/hct-color-utils/green-from-argb.js +6 -0
  193. package/dist/esm/utils/hct-color-utils/hct.js +19 -12
  194. package/dist/esm/utils/hct-color-utils/index.js +2 -1
  195. package/dist/esm/utils/hct-color-utils/lab-f.js +9 -0
  196. package/dist/esm/utils/hct-color-utils/lab-invf.js +10 -0
  197. package/dist/esm/utils/hct-color-utils/lstar-from-argb.js +28 -0
  198. package/dist/esm/utils/hct-color-utils/lstar-from-y.js +16 -0
  199. package/dist/esm/utils/hct-color-utils/red-from-argb.js +6 -0
  200. package/dist/esm/utils/hct-color-utils/rgba-from-argb.js +22 -0
  201. package/dist/esm/utils/hct-color-utils/rgba.js +0 -0
  202. package/dist/esm/utils/hct-color-utils/viewing-conditions.js +5 -4
  203. package/dist/esm/utils/hct-color-utils/white-point-d65.js +8 -0
  204. package/dist/esm/utils/hct-color-utils/y-from-lstar.js +16 -0
  205. package/dist/esm/utils/hex-to-hsl.js +46 -0
  206. package/dist/esm/utils/hex-to-rgb-a.js +14 -0
  207. package/dist/esm/utils/hex-to-rgb.js +13 -0
  208. package/dist/esm/utils/is-valid-hex.js +4 -0
  209. package/dist/esm/utils/load-theme-css.js +4 -4
  210. package/dist/esm/utils/reduce-token-map.js +11 -0
  211. package/dist/esm/utils/rgb-to-lab.js +18 -0
  212. package/dist/esm/utils/theme-loading.js +8 -8
  213. package/dist/types/artifacts/palettes-raw/palette.d.ts +1 -1
  214. package/dist/types/artifacts/themes/atlassian-dark-increased-contrast.d.ts +2 -2
  215. package/dist/types/artifacts/themes/atlassian-dark.d.ts +2 -2
  216. package/dist/types/artifacts/themes/atlassian-light-increased-contrast.d.ts +2 -2
  217. package/dist/types/artifacts/themes/atlassian-light.d.ts +2 -2
  218. package/dist/types/artifacts/token-default-values.d.ts +2 -2
  219. package/dist/types/artifacts/tokens-raw/atlassian-dark-increased-contrast.d.ts +1 -1
  220. package/dist/types/artifacts/tokens-raw/atlassian-dark.d.ts +1 -1
  221. package/dist/types/artifacts/tokens-raw/atlassian-light-increased-contrast.d.ts +1 -1
  222. package/dist/types/artifacts/tokens-raw/atlassian-light.d.ts +1 -1
  223. package/dist/types/entry-points/theme-state-transformer.d.ts +2 -1
  224. package/dist/types/entry-points/token-metadata.codegen.d.ts +1 -1
  225. package/dist/types/index.d.ts +2 -1
  226. package/dist/types/is-color-mode.d.ts +2 -0
  227. package/dist/types/is-theme-ids.d.ts +2 -0
  228. package/dist/types/is-theme-kind.d.ts +4 -0
  229. package/dist/types/theme-color-modes.d.ts +1 -0
  230. package/dist/types/theme-config.d.ts +8 -40
  231. package/dist/types/theme-ids.d.ts +1 -0
  232. package/dist/types/theme-object-to-string.d.ts +13 -0
  233. package/dist/types/theme-options-schema.d.ts +7 -0
  234. package/dist/types/theme-state-defaults.d.ts +14 -0
  235. package/dist/types/theme-state.d.ts +17 -0
  236. package/dist/types/{theme-state-transformer.d.ts → theme-string-to-object.d.ts} +0 -12
  237. package/dist/types/utils/additional-contrast-checker.d.ts +9 -0
  238. package/dist/types/utils/custom-theme-loading-utils.d.ts +1 -6
  239. package/dist/types/utils/custom-theme-token-contrast-check.d.ts +0 -9
  240. package/dist/types/utils/delta-e.d.ts +1 -0
  241. package/dist/types/utils/generate-colors.d.ts +5 -0
  242. package/dist/types/utils/{generate-custom-color-ramp.d.ts → generate-token-map-with-contrast-check.d.ts} +1 -6
  243. package/dist/types/utils/generate-token-map.d.ts +9 -0
  244. package/dist/types/utils/get-contrast-ratio.d.ts +1 -0
  245. package/dist/types/utils/hct-color-utils/alpha-from-argb.d.ts +4 -0
  246. package/dist/types/utils/hct-color-utils/argb-from-linrgb.d.ts +4 -0
  247. package/dist/types/utils/hct-color-utils/argb-from-lstar.d.ts +8 -0
  248. package/dist/types/utils/hct-color-utils/argb-from-rgba.d.ts +8 -0
  249. package/dist/types/utils/hct-color-utils/argb-from-xyz.d.ts +4 -0
  250. package/dist/types/utils/hct-color-utils/blue-from-argb.d.ts +4 -0
  251. package/dist/types/utils/hct-color-utils/clamp-component.d.ts +1 -0
  252. package/dist/types/utils/hct-color-utils/green-from-argb.d.ts +4 -0
  253. package/dist/types/utils/hct-color-utils/index.d.ts +2 -1
  254. package/dist/types/utils/hct-color-utils/lab-f.d.ts +1 -0
  255. package/dist/types/utils/hct-color-utils/lab-invf.d.ts +1 -0
  256. package/dist/types/utils/hct-color-utils/lstar-from-argb.d.ts +7 -0
  257. package/dist/types/utils/hct-color-utils/lstar-from-y.d.ts +12 -0
  258. package/dist/types/utils/hct-color-utils/red-from-argb.d.ts +4 -0
  259. package/dist/types/utils/hct-color-utils/rgba-from-argb.d.ts +8 -0
  260. package/dist/types/utils/hct-color-utils/rgba.d.ts +14 -0
  261. package/dist/types/utils/hct-color-utils/white-point-d65.d.ts +6 -0
  262. package/dist/types/utils/hct-color-utils/y-from-lstar.d.ts +12 -0
  263. package/dist/types/utils/hex-to-hsl.d.ts +1 -0
  264. package/dist/types/utils/hex-to-rgb-a.d.ts +1 -0
  265. package/dist/types/utils/hex-to-rgb.d.ts +1 -0
  266. package/dist/types/utils/is-valid-hex.d.ts +1 -0
  267. package/dist/types/utils/reduce-token-map.d.ts +6 -0
  268. package/dist/types/utils/rgb-to-lab.d.ts +1 -0
  269. package/dist/types-ts4.5/artifacts/palettes-raw/palette.d.ts +1 -1
  270. package/dist/types-ts4.5/artifacts/themes/atlassian-dark-increased-contrast.d.ts +2 -2
  271. package/dist/types-ts4.5/artifacts/themes/atlassian-dark.d.ts +2 -2
  272. package/dist/types-ts4.5/artifacts/themes/atlassian-light-increased-contrast.d.ts +2 -2
  273. package/dist/types-ts4.5/artifacts/themes/atlassian-light.d.ts +2 -2
  274. package/dist/types-ts4.5/artifacts/token-default-values.d.ts +2 -2
  275. package/dist/types-ts4.5/artifacts/tokens-raw/atlassian-dark-increased-contrast.d.ts +1 -1
  276. package/dist/types-ts4.5/artifacts/tokens-raw/atlassian-dark.d.ts +1 -1
  277. package/dist/types-ts4.5/artifacts/tokens-raw/atlassian-light-increased-contrast.d.ts +1 -1
  278. package/dist/types-ts4.5/artifacts/tokens-raw/atlassian-light.d.ts +1 -1
  279. package/dist/types-ts4.5/entry-points/theme-state-transformer.d.ts +2 -1
  280. package/dist/types-ts4.5/entry-points/token-metadata.codegen.d.ts +1 -1
  281. package/dist/types-ts4.5/index.d.ts +2 -1
  282. package/dist/types-ts4.5/is-color-mode.d.ts +2 -0
  283. package/dist/types-ts4.5/is-theme-ids.d.ts +2 -0
  284. package/dist/types-ts4.5/is-theme-kind.d.ts +11 -0
  285. package/dist/types-ts4.5/theme-color-modes.d.ts +1 -0
  286. package/dist/types-ts4.5/theme-config.d.ts +8 -40
  287. package/dist/types-ts4.5/theme-ids.d.ts +1 -0
  288. package/dist/types-ts4.5/theme-object-to-string.d.ts +13 -0
  289. package/dist/types-ts4.5/theme-options-schema.d.ts +7 -0
  290. package/dist/types-ts4.5/theme-state-defaults.d.ts +14 -0
  291. package/dist/types-ts4.5/theme-state.d.ts +17 -0
  292. package/dist/types-ts4.5/{theme-state-transformer.d.ts → theme-string-to-object.d.ts} +0 -12
  293. package/dist/types-ts4.5/utils/additional-contrast-checker.d.ts +9 -0
  294. package/dist/types-ts4.5/utils/custom-theme-loading-utils.d.ts +1 -6
  295. package/dist/types-ts4.5/utils/custom-theme-token-contrast-check.d.ts +0 -9
  296. package/dist/types-ts4.5/utils/delta-e.d.ts +1 -0
  297. package/dist/types-ts4.5/utils/generate-colors.d.ts +5 -0
  298. package/dist/types-ts4.5/utils/{generate-custom-color-ramp.d.ts → generate-token-map-with-contrast-check.d.ts} +1 -8
  299. package/dist/types-ts4.5/utils/generate-token-map.d.ts +11 -0
  300. package/dist/types-ts4.5/utils/get-contrast-ratio.d.ts +1 -0
  301. package/dist/types-ts4.5/utils/hct-color-utils/alpha-from-argb.d.ts +4 -0
  302. package/dist/types-ts4.5/utils/hct-color-utils/argb-from-linrgb.d.ts +4 -0
  303. package/dist/types-ts4.5/utils/hct-color-utils/argb-from-lstar.d.ts +8 -0
  304. package/dist/types-ts4.5/utils/hct-color-utils/argb-from-rgba.d.ts +8 -0
  305. package/dist/types-ts4.5/utils/hct-color-utils/argb-from-xyz.d.ts +4 -0
  306. package/dist/types-ts4.5/utils/hct-color-utils/blue-from-argb.d.ts +4 -0
  307. package/dist/types-ts4.5/utils/hct-color-utils/clamp-component.d.ts +1 -0
  308. package/dist/types-ts4.5/utils/hct-color-utils/green-from-argb.d.ts +4 -0
  309. package/dist/types-ts4.5/utils/hct-color-utils/index.d.ts +2 -1
  310. package/dist/types-ts4.5/utils/hct-color-utils/lab-f.d.ts +1 -0
  311. package/dist/types-ts4.5/utils/hct-color-utils/lab-invf.d.ts +1 -0
  312. package/dist/types-ts4.5/utils/hct-color-utils/lstar-from-argb.d.ts +7 -0
  313. package/dist/types-ts4.5/utils/hct-color-utils/lstar-from-y.d.ts +12 -0
  314. package/dist/types-ts4.5/utils/hct-color-utils/red-from-argb.d.ts +4 -0
  315. package/dist/types-ts4.5/utils/hct-color-utils/rgba-from-argb.d.ts +8 -0
  316. package/dist/types-ts4.5/utils/hct-color-utils/rgba.d.ts +14 -0
  317. package/dist/types-ts4.5/utils/hct-color-utils/white-point-d65.d.ts +6 -0
  318. package/dist/types-ts4.5/utils/hct-color-utils/y-from-lstar.d.ts +12 -0
  319. package/dist/types-ts4.5/utils/hex-to-hsl.d.ts +5 -0
  320. package/dist/types-ts4.5/utils/hex-to-rgb-a.d.ts +6 -0
  321. package/dist/types-ts4.5/utils/hex-to-rgb.d.ts +5 -0
  322. package/dist/types-ts4.5/utils/is-valid-hex.d.ts +1 -0
  323. package/dist/types-ts4.5/utils/reduce-token-map.d.ts +6 -0
  324. package/dist/types-ts4.5/utils/rgb-to-lab.d.ts +5 -0
  325. package/figma/atlassian-dark-increased-contrast.json +1 -1
  326. package/figma/atlassian-dark.json +1 -1
  327. package/figma/atlassian-light-increased-contrast.json +1 -1
  328. package/figma/atlassian-light.json +1 -1
  329. package/package.json +12 -12
  330. package/tokens.docs.tsx +48 -46
  331. package/dist/cjs/theme-state-transformer.js +0 -92
  332. package/dist/cjs/utils/color-utils.js +0 -168
  333. package/dist/cjs/utils/hct-color-utils/color-utils.js +0 -271
  334. package/dist/es2019/theme-state-transformer.js +0 -69
  335. package/dist/es2019/utils/color-utils.js +0 -128
  336. package/dist/es2019/utils/hct-color-utils/color-utils.js +0 -241
  337. package/dist/esm/theme-state-transformer.js +0 -85
  338. package/dist/esm/utils/color-utils.js +0 -130
  339. package/dist/esm/utils/hct-color-utils/color-utils.js +0 -240
  340. package/dist/types/utils/color-utils.d.ts +0 -10
  341. package/dist/types/utils/hct-color-utils/color-utils.d.ts +0 -88
  342. package/dist/types-ts4.5/utils/color-utils.d.ts +0 -23
  343. package/dist/types-ts4.5/utils/hct-color-utils/color-utils.d.ts +0 -88
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.additionalContrastChecker = exports.additionalChecks = void 0;
8
- var _atlassianDarkTokenValueForContrastCheck = _interopRequireDefault(require("../artifacts/atlassian-dark-token-value-for-contrast-check"));
9
- var _atlassianLightTokenValueForContrastCheck = _interopRequireDefault(require("../artifacts/atlassian-light-token-value-for-contrast-check"));
10
- var _colorUtils = require("./color-utils");
6
+ exports.additionalChecks = void 0;
11
7
  var additionalChecks = exports.additionalChecks = [{
12
8
  foreground: 'color.text.brand',
13
9
  backgroundLight: 'elevation.surface.sunken',
@@ -49,36 +45,4 @@ var additionalChecks = exports.additionalChecks = [{
49
45
  // In light mode: darken the following tokens by one base token
50
46
  // In dark mode: lighten the following tokens by one base token
51
47
  updatedTokens: ['color.chart.brand', 'color.chart.brand.hovered']
52
- }];
53
- var getColorFromTokenRaw = function getColorFromTokenRaw(tokenName, mode) {
54
- return mode === 'light' ? _atlassianLightTokenValueForContrastCheck.default[tokenName] : _atlassianDarkTokenValueForContrastCheck.default[tokenName];
55
- };
56
- var additionalContrastChecker = exports.additionalContrastChecker = function additionalContrastChecker(_ref) {
57
- var customThemeTokenMap = _ref.customThemeTokenMap,
58
- mode = _ref.mode,
59
- themeRamp = _ref.themeRamp;
60
- var updatedCustomThemeTokenMap = {};
61
- var brandTokens = Object.keys(customThemeTokenMap);
62
- additionalChecks.forEach(function (pairing) {
63
- var backgroundLight = pairing.backgroundLight,
64
- backgroundDark = pairing.backgroundDark,
65
- foreground = pairing.foreground,
66
- desiredContrast = pairing.desiredContrast,
67
- updatedTokens = pairing.updatedTokens;
68
- var background = mode === 'light' ? backgroundLight : backgroundDark;
69
- var foregroundTokenValue = customThemeTokenMap[foreground];
70
- var backgroundTokenValue = customThemeTokenMap[background];
71
- var foregroundColor = brandTokens.includes(foreground) ? typeof foregroundTokenValue === 'string' ? foregroundTokenValue : themeRamp[foregroundTokenValue] : getColorFromTokenRaw(foreground, mode);
72
- var backgroundColor = brandTokens.includes(background) ? typeof backgroundTokenValue === 'string' ? backgroundTokenValue : themeRamp[backgroundTokenValue] : getColorFromTokenRaw(background, mode);
73
- var contrast = (0, _colorUtils.getContrastRatio)(foregroundColor, backgroundColor);
74
- if (contrast <= desiredContrast) {
75
- updatedTokens.forEach(function (token) {
76
- var rampValue = customThemeTokenMap[token];
77
- if (typeof rampValue === 'number') {
78
- updatedCustomThemeTokenMap[token] = mode === 'light' ? rampValue + 1 : rampValue - 1;
79
- }
80
- });
81
- }
82
- });
83
- return updatedCustomThemeTokenMap;
84
- };
48
+ }];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deltaE = deltaE;
7
+ var _rgbToLab = require("./rgb-to-lab");
8
+ function deltaE(rgbA, rgbB) {
9
+ var labA = (0, _rgbToLab.rgbToLab)(rgbA);
10
+ var labB = (0, _rgbToLab.rgbToLab)(rgbB);
11
+ var deltaL = labA[0] - labB[0];
12
+ var deltaA = labA[1] - labB[1];
13
+ var deltaB = labA[2] - labB[2];
14
+ var c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]);
15
+ var c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]);
16
+ var deltaC = c1 - c2;
17
+ var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC;
18
+ deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH);
19
+ var sc = 1.0 + 0.045 * c1;
20
+ var sh = 1.0 + 0.015 * c1;
21
+ var deltaLKlsl = deltaL / 1.0;
22
+ var deltaCkcsc = deltaC / sc;
23
+ var deltaHkhsh = deltaH / sh;
24
+ var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh;
25
+ return i < 0 ? 0 : Math.sqrt(i);
26
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.generateColors = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _getClosestColorIndex = require("./get-closest-color-index");
10
+ var _hctColorUtils = require("./hct-color-utils");
11
+ var _hexToHsl = require("./hex-to-hsl");
12
+ var _hexToRgbA = require("./hex-to-rgb-a");
13
+ var _hslToRgb = require("./hsl-to-rgb");
14
+ var _relativeLuminanceW3C = require("./relative-luminance-w3-c");
15
+ var _rgbToHex = require("./rgb-to-hex");
16
+ var lowLuminanceContrastRatios = [1.12, 1.33, 2.03, 2.73, 3.33, 4.27, 5.2, 6.62, 12.46, 14.25];
17
+ var highLuminanceContrastRatios = [1.08, 1.24, 1.55, 1.99, 2.45, 3.34, 4.64, 6.1, 10.19, 12.6];
18
+ var generateColors = exports.generateColors = function generateColors(brandColor) {
19
+ // Determine luminance
20
+ var HSLBrandColorHue = (0, _hexToHsl.hexToHSL)(brandColor)[0];
21
+ var baseRgb = (0, _hslToRgb.HSLToRGB)(HSLBrandColorHue, 100, 60);
22
+ var isLowLuminance = (0, _relativeLuminanceW3C.relativeLuminanceW3C)(baseRgb[0], baseRgb[1], baseRgb[2]) < 0.4;
23
+ // Choose right palette
24
+ var themeRatios = isLowLuminance ? lowLuminanceContrastRatios : highLuminanceContrastRatios;
25
+ var brandRgba = (0, _hexToRgbA.hexToRgbA)(brandColor);
26
+ var hctColor = _hctColorUtils.Hct.fromInt((0, _hctColorUtils.argbFromRgba)({
27
+ r: brandRgba[0],
28
+ g: brandRgba[1],
29
+ b: brandRgba[2],
30
+ a: brandRgba[3]
31
+ }));
32
+ var themeRamp = themeRatios.map(function (contrast) {
33
+ var rgbaColor = (0, _hctColorUtils.rgbaFromArgb)(_hctColorUtils.Hct.from(hctColor.hue, hctColor.chroma, _hctColorUtils.Contrast.darker(100, contrast) + 0.25 // Material's utils provide an offset
34
+ ).toInt());
35
+ return (0, _rgbToHex.rgbToHex)(rgbaColor.r, rgbaColor.g, rgbaColor.b);
36
+ });
37
+ var closestColorIndex = (0, _getClosestColorIndex.getClosestColorIndex)(themeRamp, brandColor);
38
+
39
+ // Replace closet color with brandColor
40
+ var updatedThemeRamp = (0, _toConsumableArray2.default)(themeRamp);
41
+ updatedThemeRamp[closestColorIndex] = brandColor;
42
+ return {
43
+ ramp: updatedThemeRamp,
44
+ // add the replaced color into the result
45
+ replacedColor: themeRamp[closestColorIndex]
46
+ };
47
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.generateTokenMapWithContrastCheck = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _additionalContrastChecker = require("./additional-contrast-checker");
11
+ var _generateColors = require("./generate-colors");
12
+ var _generateTokenMap = require("./generate-token-map");
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var generateTokenMapWithContrastCheck = exports.generateTokenMapWithContrastCheck = function generateTokenMapWithContrastCheck(brandColor, mode, themeRamp) {
16
+ var colors = themeRamp || (0, _generateColors.generateColors)(brandColor).ramp;
17
+ var tokenMaps = (0, _generateTokenMap.generateTokenMap)(brandColor, mode, colors);
18
+ var result = {};
19
+ Object.entries(tokenMaps).forEach(function (_ref) {
20
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
21
+ mode = _ref2[0],
22
+ map = _ref2[1];
23
+ if (mode === 'light' || mode === 'dark') {
24
+ result[mode] = _objectSpread(_objectSpread({}, map), (0, _additionalContrastChecker.additionalContrastChecker)({
25
+ customThemeTokenMap: map,
26
+ mode: mode,
27
+ themeRamp: colors
28
+ }));
29
+ }
30
+ });
31
+ return result;
32
+ };
@@ -4,59 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.generateTokenMapWithContrastCheck = exports.generateTokenMap = exports.generateColors = void 0;
8
- Object.defineProperty(exports, "getClosestColorIndex", {
9
- enumerable: true,
10
- get: function get() {
11
- return _getClosestColorIndex.getClosestColorIndex;
12
- }
13
- });
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ exports.generateTokenMap = void 0;
15
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
9
  var _atlassianDarkTokenValueForContrastCheck = _interopRequireDefault(require("../artifacts/atlassian-dark-token-value-for-contrast-check"));
18
- var _colorUtils = require("./color-utils");
19
- var _customThemeTokenContrastCheck = require("./custom-theme-token-contrast-check");
10
+ var _generateColors2 = require("./generate-colors");
20
11
  var _getClosestColorIndex = require("./get-closest-color-index");
21
- var _hctColorUtils = require("./hct-color-utils");
22
- var _hslToRgb = require("./hsl-to-rgb");
23
- var _relativeLuminanceW3C = require("./relative-luminance-w3-c");
24
- var _rgbToHex = require("./rgb-to-hex");
25
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
- var lowLuminanceContrastRatios = [1.12, 1.33, 2.03, 2.73, 3.33, 4.27, 5.2, 6.62, 12.46, 14.25];
28
- var highLuminanceContrastRatios = [1.08, 1.24, 1.55, 1.99, 2.45, 3.34, 4.64, 6.1, 10.19, 12.6];
29
- var generateColors = exports.generateColors = function generateColors(brandColor) {
30
- // Determine luminance
31
- var HSLBrandColorHue = (0, _colorUtils.hexToHSL)(brandColor)[0];
32
- var baseRgb = (0, _hslToRgb.HSLToRGB)(HSLBrandColorHue, 100, 60);
33
- var isLowLuminance = (0, _relativeLuminanceW3C.relativeLuminanceW3C)(baseRgb[0], baseRgb[1], baseRgb[2]) < 0.4;
34
- // Choose right palette
35
- var themeRatios = isLowLuminance ? lowLuminanceContrastRatios : highLuminanceContrastRatios;
36
- var brandRgba = (0, _colorUtils.hexToRgbA)(brandColor);
37
- var hctColor = _hctColorUtils.Hct.fromInt((0, _hctColorUtils.argbFromRgba)({
38
- r: brandRgba[0],
39
- g: brandRgba[1],
40
- b: brandRgba[2],
41
- a: brandRgba[3]
42
- }));
43
- var themeRamp = themeRatios.map(function (contrast) {
44
- var rgbaColor = (0, _hctColorUtils.rgbaFromArgb)(_hctColorUtils.Hct.from(hctColor.hue, hctColor.chroma, _hctColorUtils.Contrast.darker(100, contrast) + 0.25 // Material's utils provide an offset
45
- ).toInt());
46
- return (0, _rgbToHex.rgbToHex)(rgbaColor.r, rgbaColor.g, rgbaColor.b);
47
- });
48
- var closestColorIndex = (0, _getClosestColorIndex.getClosestColorIndex)(themeRamp, brandColor);
49
-
50
- // Replace closet color with brandColor
51
- var updatedThemeRamp = (0, _toConsumableArray2.default)(themeRamp);
52
- updatedThemeRamp[closestColorIndex] = brandColor;
53
- return {
54
- ramp: updatedThemeRamp,
55
- // add the replaced color into the result
56
- replacedColor: themeRamp[closestColorIndex]
57
- };
58
- };
59
-
12
+ var _getContrastRatio = require("./get-contrast-ratio");
60
13
  /**
61
14
  * Return the interaction tokens for a color, given its ramp position and the number of
62
15
  * needed interaction states. Use higher-indexed colors (i.e. darker colors) if possible;
@@ -77,14 +30,14 @@ function getInteractionStates(rampPosition, number, colors) {
77
30
  return result;
78
31
  }
79
32
  var generateTokenMap = exports.generateTokenMap = function generateTokenMap(brandColor, mode, themeRamp) {
80
- var _generateColors = generateColors(brandColor),
33
+ var _generateColors = (0, _generateColors2.generateColors)(brandColor),
81
34
  ramp = _generateColors.ramp,
82
35
  replacedColor = _generateColors.replacedColor;
83
36
  var colors = themeRamp || ramp;
84
37
  var closestColorIndex = (0, _getClosestColorIndex.getClosestColorIndex)(colors, brandColor);
85
38
  var customThemeTokenMapLight = {};
86
39
  var customThemeTokenMapDark = {};
87
- var inputContrast = (0, _colorUtils.getContrastRatio)(brandColor, '#FFFFFF');
40
+ var inputContrast = (0, _getContrastRatio.getContrastRatio)(brandColor, '#FFFFFF');
88
41
  // Branch based on brandColor's contrast against white
89
42
  if (inputContrast >= 4.5) {
90
43
  /**
@@ -199,7 +152,7 @@ var generateTokenMap = exports.generateTokenMap = function generateTokenMap(bran
199
152
  */
200
153
  if (inputContrast < 4.5) {
201
154
  var inverseTextColor = _atlassianDarkTokenValueForContrastCheck.default['color.text.inverse'];
202
- if ((0, _colorUtils.getContrastRatio)(inverseTextColor, brandColor) >= 4.5 && closestColorIndex >= 2) {
155
+ if ((0, _getContrastRatio.getContrastRatio)(inverseTextColor, brandColor) >= 4.5 && closestColorIndex >= 2) {
203
156
  customThemeTokenMapDark['color.background.brand.bold'] = closestColorIndex;
204
157
  customThemeTokenMapDark['color.background.brand.bold.hovered'] = closestColorIndex - 1;
205
158
  customThemeTokenMapDark['color.background.brand.bold.pressed'] = closestColorIndex - 2;
@@ -214,22 +167,4 @@ var generateTokenMap = exports.generateTokenMap = function generateTokenMap(bran
214
167
  light: customThemeTokenMapLight,
215
168
  dark: customThemeTokenMapDark
216
169
  };
217
- };
218
- var generateTokenMapWithContrastCheck = exports.generateTokenMapWithContrastCheck = function generateTokenMapWithContrastCheck(brandColor, mode, themeRamp) {
219
- var colors = themeRamp || generateColors(brandColor).ramp;
220
- var tokenMaps = generateTokenMap(brandColor, mode, colors);
221
- var result = {};
222
- Object.entries(tokenMaps).forEach(function (_ref3) {
223
- var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
224
- mode = _ref4[0],
225
- map = _ref4[1];
226
- if (mode === 'light' || mode === 'dark') {
227
- result[mode] = _objectSpread(_objectSpread({}, map), (0, _customThemeTokenContrastCheck.additionalContrastChecker)({
228
- customThemeTokenMap: map,
229
- mode: mode,
230
- themeRamp: colors
231
- }));
232
- }
233
- });
234
- return result;
235
170
  };
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getClosestColorIndex = void 0;
7
- var _colorUtils = require("./color-utils");
7
+ var _deltaE = require("./delta-e");
8
+ var _hexToRgb = require("./hex-to-rgb");
8
9
  var getClosestColorIndex = exports.getClosestColorIndex = function getClosestColorIndex(themeRamp, brandColor) {
9
10
  // Iterate over themeRamp and find whichever color is closest to brandColor
10
11
  var closestColorIndex = 0;
11
12
  var closestColorDistance = null;
12
13
  themeRamp.forEach(function (value, index) {
13
- var distance = (0, _colorUtils.deltaE)((0, _colorUtils.hexToRgb)(value), (0, _colorUtils.hexToRgb)(brandColor));
14
+ var distance = (0, _deltaE.deltaE)((0, _hexToRgb.hexToRgb)(value), (0, _hexToRgb.hexToRgb)(brandColor));
14
15
  if (closestColorDistance === null || distance < closestColorDistance) {
15
16
  closestColorIndex = index;
16
17
  closestColorDistance = distance;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getContrastRatio = getContrastRatio;
7
+ var _hexToRgb = require("./hex-to-rgb");
8
+ var _isValidHex = require("./is-valid-hex");
9
+ var _relativeLuminanceW3C = require("./relative-luminance-w3-c");
10
+ function getContrastRatio(foreground, background) {
11
+ if (!(0, _isValidHex.isValidHex)(foreground) || !(0, _isValidHex.isValidHex)(background)) {
12
+ throw new Error('Invalid HEX');
13
+ }
14
+ var foregroundRgb = (0, _hexToRgb.hexToRgb)(foreground);
15
+ var backgroundRgb = (0, _hexToRgb.hexToRgb)(background);
16
+ var foregroundLuminance = (0, _relativeLuminanceW3C.relativeLuminanceW3C)(foregroundRgb[0], foregroundRgb[1], foregroundRgb[2]);
17
+ var backgroundLuminance = (0, _relativeLuminanceW3C.relativeLuminanceW3C)(backgroundRgb[0], backgroundRgb[1], backgroundRgb[2]);
18
+ // calculate the color contrast ratio
19
+ var brightest = Math.max(foregroundLuminance, backgroundLuminance);
20
+ var darkest = Math.min(foregroundLuminance, backgroundLuminance);
21
+ return (brightest + 0.05) / (darkest + 0.05);
22
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.alphaFromArgb = alphaFromArgb;
7
+ /**
8
+ * Returns the alpha component of a color in ARGB format.
9
+ */
10
+ function alphaFromArgb(argb) {
11
+ return argb >> 24 & 255;
12
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.argbFromLinrgb = argbFromLinrgb;
7
+ var _argbFromRgb = require("./argb-from-rgb");
8
+ var _delinearized = require("./delinearized");
9
+ /**
10
+ * Converts a color from linear RGB components to ARGB format.
11
+ */
12
+ function argbFromLinrgb(linrgb) {
13
+ var r = (0, _delinearized.delinearized)(linrgb[0]);
14
+ var g = (0, _delinearized.delinearized)(linrgb[1]);
15
+ var b = (0, _delinearized.delinearized)(linrgb[2]);
16
+ return (0, _argbFromRgb.argbFromRgb)(r, g, b);
17
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.argbFromLstar = argbFromLstar;
7
+ var _argbFromRgb = require("./argb-from-rgb");
8
+ var _delinearized = require("./delinearized");
9
+ var _yFromLstar = require("./y-from-lstar");
10
+ /**
11
+ * Converts an L* value to an ARGB representation.
12
+ *
13
+ * @param lstar L* in L*a*b*
14
+ * @return ARGB representation of grayscale color with lightness
15
+ * matching L*
16
+ */
17
+ function argbFromLstar(lstar) {
18
+ var y = (0, _yFromLstar.yFromLstar)(lstar);
19
+ var component = (0, _delinearized.delinearized)(y);
20
+ return (0, _argbFromRgb.argbFromRgb)(component, component, component);
21
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.argbFromRgba = argbFromRgba;
7
+ var _clampComponent = require("./clamp-component");
8
+ /**
9
+ * Return int32 color from a given RGBA component
10
+ *
11
+ * @param rgba RGBA representation of a int32 color.
12
+ * @returns ARGB representation of a int32 color.
13
+ */
14
+ function argbFromRgba(_ref) {
15
+ var r = _ref.r,
16
+ g = _ref.g,
17
+ b = _ref.b,
18
+ a = _ref.a;
19
+ var rValue = (0, _clampComponent.clampComponent)(r);
20
+ var gValue = (0, _clampComponent.clampComponent)(g);
21
+ var bValue = (0, _clampComponent.clampComponent)(b);
22
+ var aValue = (0, _clampComponent.clampComponent)(a);
23
+ return aValue << 24 | rValue << 16 | gValue << 8 | bValue;
24
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.argbFromXyz = argbFromXyz;
7
+ var _argbFromRgb = require("./argb-from-rgb");
8
+ var _delinearized = require("./delinearized");
9
+ /**
10
+ * Color science utilities.
11
+ *
12
+ * Utility methods for color science constants and color space
13
+ * conversions that aren't HCT or CAM16.
14
+ */
15
+ var XYZ_TO_SRGB = [[3.2413774792388685, -1.5376652402851851, -0.49885366846268053], [-0.9691452513005321, 1.8758853451067872, 0.04156585616912061], [0.05562093689691305, -0.20395524564742123, 1.0571799111220335]];
16
+
17
+ /**
18
+ * Converts a color from ARGB to XYZ.
19
+ */
20
+ function argbFromXyz(x, y, z) {
21
+ var matrix = XYZ_TO_SRGB;
22
+ var linearR = matrix[0][0] * x + matrix[0][1] * y + matrix[0][2] * z;
23
+ var linearG = matrix[1][0] * x + matrix[1][1] * y + matrix[1][2] * z;
24
+ var linearB = matrix[2][0] * x + matrix[2][1] * y + matrix[2][2] * z;
25
+ var r = (0, _delinearized.delinearized)(linearR);
26
+ var g = (0, _delinearized.delinearized)(linearG);
27
+ var b = (0, _delinearized.delinearized)(linearB);
28
+ return (0, _argbFromRgb.argbFromRgb)(r, g, b);
29
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.blueFromArgb = blueFromArgb;
7
+ /**
8
+ * Returns the blue component of a color in ARGB format.
9
+ */
10
+ function blueFromArgb(argb) {
11
+ return argb & 255;
12
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clampComponent = clampComponent;
7
+ function clampComponent(value) {
8
+ if (value < 0) {
9
+ return 0;
10
+ }
11
+ if (value > 255) {
12
+ return 255;
13
+ }
14
+ return value;
15
+ }
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.Contrast = void 0;
9
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var utils = _interopRequireWildcard(require("./color-utils"));
12
- var math = _interopRequireWildcard(require("./math-utils"));
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
10
+ var _clampDouble = require("./clamp-double");
11
+ var _lstarFromY = require("./lstar-from-y");
12
+ var _yFromLstar = require("./y-from-lstar");
14
13
  /**
15
14
  * Below lines are copied from @material/material-color-utilities.
16
15
  * Do not modify it.
@@ -62,9 +61,9 @@ var Contrast = exports.Contrast = /*#__PURE__*/function () {
62
61
  * @param toneB Tone between 0 and 100. Values outside will be clamped.
63
62
  */
64
63
  function ratioOfTones(toneA, toneB) {
65
- toneA = math.clampDouble(0.0, 100.0, toneA);
66
- toneB = math.clampDouble(0.0, 100.0, toneB);
67
- return Contrast.ratioOfYs(utils.yFromLstar(toneA), utils.yFromLstar(toneB));
64
+ toneA = (0, _clampDouble.clampDouble)(0.0, 100.0, toneA);
65
+ toneB = (0, _clampDouble.clampDouble)(0.0, 100.0, toneB);
66
+ return Contrast.ratioOfYs((0, _yFromLstar.yFromLstar)(toneA), (0, _yFromLstar.yFromLstar)(toneB));
68
67
  }
69
68
  }, {
70
69
  key: "ratioOfYs",
@@ -90,7 +89,7 @@ var Contrast = exports.Contrast = /*#__PURE__*/function () {
90
89
  if (tone < 0.0 || tone > 100.0) {
91
90
  return -1.0;
92
91
  }
93
- var darkY = utils.yFromLstar(tone);
92
+ var darkY = (0, _yFromLstar.yFromLstar)(tone);
94
93
  var lightY = ratio * (darkY + 5.0) - 5.0;
95
94
  var realContrast = Contrast.ratioOfYs(lightY, darkY);
96
95
  var delta = Math.abs(realContrast - ratio);
@@ -100,7 +99,7 @@ var Contrast = exports.Contrast = /*#__PURE__*/function () {
100
99
 
101
100
  // Ensure gamut mapping, which requires a 'range' on tone, will still result
102
101
  // the correct ratio by darkening slightly.
103
- var returnValue = utils.lstarFromY(lightY) + 0.4;
102
+ var returnValue = (0, _lstarFromY.lstarFromY)(lightY) + 0.4;
104
103
  if (returnValue < 0 || returnValue > 100) {
105
104
  return -1;
106
105
  }
@@ -123,7 +122,7 @@ var Contrast = exports.Contrast = /*#__PURE__*/function () {
123
122
  if (tone < 0.0 || tone > 100.0) {
124
123
  return -1.0;
125
124
  }
126
- var lightY = utils.yFromLstar(tone);
125
+ var lightY = (0, _yFromLstar.yFromLstar)(tone);
127
126
  var darkY = (lightY + 5.0) / ratio - 5.0;
128
127
  var realContrast = Contrast.ratioOfYs(lightY, darkY);
129
128
  var delta = Math.abs(realContrast - ratio);
@@ -133,7 +132,7 @@ var Contrast = exports.Contrast = /*#__PURE__*/function () {
133
132
 
134
133
  // Ensure gamut mapping, which requires a 'range' on tone, will still result
135
134
  // the correct ratio by darkening slightly.
136
- var returnValue = utils.lstarFromY(darkY) - 0.4;
135
+ var returnValue = (0, _lstarFromY.lstarFromY)(darkY) - 0.4;
137
136
  if (returnValue < 0 || returnValue > 100) {
138
137
  return -1;
139
138
  }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.greenFromArgb = greenFromArgb;
7
+ /**
8
+ * Returns the green component of a color in ARGB format.
9
+ */
10
+ function greenFromArgb(argb) {
11
+ return argb >> 8 & 255;
12
+ }
@@ -15,9 +15,15 @@ Object.defineProperty(exports, "ViewingConditions", {
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
17
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
18
- var utils = _interopRequireWildcard(require("./color-utils"));
18
+ var _argbFromLinrgb = require("./argb-from-linrgb");
19
+ var _argbFromLstar = require("./argb-from-lstar");
20
+ var _argbFromXyz = require("./argb-from-xyz");
21
+ var _linearized = require("./linearized");
22
+ var _lstarFromArgb = require("./lstar-from-argb");
23
+ var _lstarFromY = require("./lstar-from-y");
19
24
  var math = _interopRequireWildcard(require("./math-utils"));
20
25
  var _viewingConditions = require("./viewing-conditions");
26
+ var _yFromLstar = require("./y-from-lstar");
21
27
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
28
  /**
23
29
  * Below lines are copied from @material/material-color-utilities.
@@ -66,7 +72,7 @@ var Hct = exports.Hct = /*#__PURE__*/function () {
66
72
  var cam = Cam16.fromInt(argb);
67
73
  this.internalHue = cam.hue;
68
74
  this.internalChroma = cam.chroma;
69
- this.internalTone = utils.lstarFromArgb(argb);
75
+ this.internalTone = (0, _lstarFromArgb.lstarFromArgb)(argb);
70
76
  }
71
77
  return (0, _createClass2.default)(Hct, [{
72
78
  key: "toInt",
@@ -130,7 +136,7 @@ var Hct = exports.Hct = /*#__PURE__*/function () {
130
136
  var cam = Cam16.fromInt(argb);
131
137
  this.internalHue = cam.hue;
132
138
  this.internalChroma = cam.chroma;
133
- this.internalTone = utils.lstarFromArgb(argb);
139
+ this.internalTone = (0, _lstarFromArgb.lstarFromArgb)(argb);
134
140
  this.argb = argb;
135
141
  }
136
142
 
@@ -161,7 +167,7 @@ var Hct = exports.Hct = /*#__PURE__*/function () {
161
167
  // 3. Create HCT from:
162
168
  // - CAM16 using default VC with XYZ coordinates in specified VC.
163
169
  // - L* converted from Y in XYZ coordinates in specified VC.
164
- var recastHct = Hct.from(recastInVc.hue, recastInVc.chroma, utils.lstarFromY(viewedInVc[1]));
170
+ var recastHct = Hct.from(recastInVc.hue, recastInVc.chroma, (0, _lstarFromY.lstarFromY)(viewedInVc[1]));
165
171
  return recastHct;
166
172
  }
167
173
  }], [{
@@ -311,7 +317,7 @@ var Cam16 = /*#__PURE__*/function () {
311
317
  var x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;
312
318
  var y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;
313
319
  var z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;
314
- var argb = utils.argbFromXyz(x, y, z);
320
+ var argb = (0, _argbFromXyz.argbFromXyz)(x, y, z);
315
321
  return argb;
316
322
  }
317
323
 
@@ -369,9 +375,9 @@ var Cam16 = /*#__PURE__*/function () {
369
375
  var red = (argb & 0x00ff0000) >> 16;
370
376
  var green = (argb & 0x0000ff00) >> 8;
371
377
  var blue = argb & 0x000000ff;
372
- var redL = utils.linearized(red);
373
- var greenL = utils.linearized(green);
374
- var blueL = utils.linearized(blue);
378
+ var redL = (0, _linearized.linearized)(red);
379
+ var greenL = (0, _linearized.linearized)(green);
380
+ var blueL = (0, _linearized.linearized)(blue);
375
381
  var x = 0.41233895 * redL + 0.35762064 * greenL + 0.18051042 * blueL;
376
382
  var y = 0.2126 * redL + 0.7152 * greenL + 0.0722 * blueL;
377
383
  var z = 0.01932141 * redL + 0.11916382 * greenL + 0.95034478 * blueL;
@@ -892,7 +898,7 @@ var HctSolver = /*#__PURE__*/function () {
892
898
  if (linrgb[0] > 100.01 || linrgb[1] > 100.01 || linrgb[2] > 100.01) {
893
899
  return 0;
894
900
  }
895
- return utils.argbFromLinrgb(linrgb);
901
+ return (0, _argbFromLinrgb.argbFromLinrgb)(linrgb);
896
902
  }
897
903
  // Iterates with Newton method,
898
904
  // Using 2 * fn(j) / j as the approximation of fn'(j)
@@ -917,17 +923,17 @@ var HctSolver = /*#__PURE__*/function () {
917
923
  key: "solveToInt",
918
924
  value: function solveToInt(hueDegrees, chroma, lstar) {
919
925
  if (chroma < 0.0001 || lstar < 0.0001 || lstar > 99.9999) {
920
- return utils.argbFromLstar(lstar);
926
+ return (0, _argbFromLstar.argbFromLstar)(lstar);
921
927
  }
922
928
  hueDegrees = math.sanitizeDegreesDouble(hueDegrees);
923
929
  var hueRadians = hueDegrees / 180 * Math.PI;
924
- var y = utils.yFromLstar(lstar);
930
+ var y = (0, _yFromLstar.yFromLstar)(lstar);
925
931
  var exactAnswer = HctSolver.findResultByJ(hueRadians, chroma, y);
926
932
  if (exactAnswer !== 0) {
927
933
  return exactAnswer;
928
934
  }
929
935
  var linrgb = HctSolver.bisectToLimit(y, hueRadians);
930
- return utils.argbFromLinrgb(linrgb);
936
+ return (0, _argbFromLinrgb.argbFromLinrgb)(linrgb);
931
937
  }
932
938
 
933
939
  /**
@@ -18,15 +18,16 @@ Object.defineProperty(exports, "Hct", {
18
18
  Object.defineProperty(exports, "argbFromRgba", {
19
19
  enumerable: true,
20
20
  get: function get() {
21
- return _colorUtils.argbFromRgba;
21
+ return _argbFromRgba.argbFromRgba;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "rgbaFromArgb", {
25
25
  enumerable: true,
26
26
  get: function get() {
27
- return _colorUtils.rgbaFromArgb;
27
+ return _rgbaFromArgb.rgbaFromArgb;
28
28
  }
29
29
  });
30
30
  var _hct = require("./hct");
31
31
  var _contrast = require("./contrast");
32
- var _colorUtils = require("./color-utils");
32
+ var _argbFromRgba = require("./argb-from-rgba");
33
+ var _rgbaFromArgb = require("./rgba-from-argb");