@oxyhq/bloom 0.35.8 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/lib/commonjs/frosted-icon-button/FrostedIconButton.js +148 -0
  2. package/lib/commonjs/frosted-icon-button/FrostedIconButton.js.map +1 -0
  3. package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js +166 -0
  4. package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js.map +1 -0
  5. package/lib/commonjs/frosted-icon-button/index.js +13 -0
  6. package/lib/commonjs/frosted-icon-button/index.js.map +1 -0
  7. package/lib/commonjs/frosted-icon-button/index.web.js +13 -0
  8. package/lib/commonjs/frosted-icon-button/index.web.js.map +1 -0
  9. package/lib/commonjs/frosted-icon-button/shared.js +112 -0
  10. package/lib/commonjs/frosted-icon-button/shared.js.map +1 -0
  11. package/lib/commonjs/frosted-icon-button/types.js +6 -0
  12. package/lib/commonjs/frosted-icon-button/types.js.map +1 -0
  13. package/lib/commonjs/index.js +10 -1
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/index.web.js +46 -37
  16. package/lib/commonjs/index.web.js.map +1 -1
  17. package/lib/commonjs/theme/build-theme.js +31 -43
  18. package/lib/commonjs/theme/build-theme.js.map +1 -1
  19. package/lib/commonjs/theme/color-engine/cam16.js +161 -0
  20. package/lib/commonjs/theme/color-engine/cam16.js.map +1 -0
  21. package/lib/commonjs/theme/color-engine/color-role.js +183 -0
  22. package/lib/commonjs/theme/color-engine/color-role.js.map +1 -0
  23. package/lib/commonjs/theme/color-engine/color-roles.js +416 -0
  24. package/lib/commonjs/theme/color-engine/color-roles.js.map +1 -0
  25. package/lib/commonjs/theme/color-engine/color-utils.js +157 -0
  26. package/lib/commonjs/theme/color-engine/color-utils.js.map +1 -0
  27. package/lib/commonjs/theme/color-engine/contrast-curve.js +32 -0
  28. package/lib/commonjs/theme/color-engine/contrast-curve.js.map +1 -0
  29. package/lib/commonjs/theme/color-engine/contrast.js +70 -0
  30. package/lib/commonjs/theme/color-engine/contrast.js.map +1 -0
  31. package/lib/commonjs/theme/color-engine/dislike-analyzer.js +26 -0
  32. package/lib/commonjs/theme/color-engine/dislike-analyzer.js.map +1 -0
  33. package/lib/commonjs/theme/color-engine/dynamic-scheme.js +70 -0
  34. package/lib/commonjs/theme/color-engine/dynamic-scheme.js.map +1 -0
  35. package/lib/commonjs/theme/color-engine/hct-solver.js +236 -0
  36. package/lib/commonjs/theme/color-engine/hct-solver.js.map +1 -0
  37. package/lib/commonjs/theme/color-engine/hct.js +67 -0
  38. package/lib/commonjs/theme/color-engine/hct.js.map +1 -0
  39. package/lib/commonjs/theme/color-engine/index.js +173 -0
  40. package/lib/commonjs/theme/color-engine/index.js.map +1 -0
  41. package/lib/commonjs/theme/color-engine/lab-point-provider.js +32 -0
  42. package/lib/commonjs/theme/color-engine/lab-point-provider.js.map +1 -0
  43. package/lib/commonjs/theme/color-engine/math-utils.js +77 -0
  44. package/lib/commonjs/theme/color-engine/math-utils.js.map +1 -0
  45. package/lib/commonjs/theme/color-engine/quantizer-map.js +24 -0
  46. package/lib/commonjs/theme/color-engine/quantizer-map.js.map +1 -0
  47. package/lib/commonjs/theme/color-engine/quantizer-wu.js +266 -0
  48. package/lib/commonjs/theme/color-engine/quantizer-wu.js.map +1 -0
  49. package/lib/commonjs/theme/color-engine/scheme-variants.js +102 -0
  50. package/lib/commonjs/theme/color-engine/scheme-variants.js.map +1 -0
  51. package/lib/commonjs/theme/color-engine/score.js +80 -0
  52. package/lib/commonjs/theme/color-engine/score.js.map +1 -0
  53. package/lib/commonjs/theme/color-engine/seed-from-image.js +73 -0
  54. package/lib/commonjs/theme/color-engine/seed-from-image.js.map +1 -0
  55. package/lib/commonjs/theme/color-engine/tonal-palette.js +95 -0
  56. package/lib/commonjs/theme/color-engine/tonal-palette.js.map +1 -0
  57. package/lib/commonjs/theme/color-engine/tone-delta-pair.js +26 -0
  58. package/lib/commonjs/theme/color-engine/tone-delta-pair.js.map +1 -0
  59. package/lib/commonjs/theme/color-engine/variant.js +26 -0
  60. package/lib/commonjs/theme/color-engine/variant.js.map +1 -0
  61. package/lib/commonjs/theme/color-engine/viewing-conditions.js +61 -0
  62. package/lib/commonjs/theme/color-engine/viewing-conditions.js.map +1 -0
  63. package/lib/commonjs/theme/color-presets.js +44 -572
  64. package/lib/commonjs/theme/color-presets.js.map +1 -1
  65. package/lib/commonjs/theme/preset-vars.js +64 -47
  66. package/lib/commonjs/theme/preset-vars.js.map +1 -1
  67. package/lib/module/frosted-icon-button/FrostedIconButton.js +143 -0
  68. package/lib/module/frosted-icon-button/FrostedIconButton.js.map +1 -0
  69. package/lib/module/frosted-icon-button/FrostedIconButton.web.js +161 -0
  70. package/lib/module/frosted-icon-button/FrostedIconButton.web.js.map +1 -0
  71. package/lib/module/frosted-icon-button/index.js +4 -0
  72. package/lib/module/frosted-icon-button/index.js.map +1 -0
  73. package/lib/module/frosted-icon-button/index.web.js +11 -0
  74. package/lib/module/frosted-icon-button/index.web.js.map +1 -0
  75. package/lib/module/frosted-icon-button/shared.js +107 -0
  76. package/lib/module/frosted-icon-button/shared.js.map +1 -0
  77. package/lib/module/frosted-icon-button/types.js +4 -0
  78. package/lib/module/frosted-icon-button/types.js.map +1 -0
  79. package/lib/module/index.js +1 -0
  80. package/lib/module/index.js.map +1 -1
  81. package/lib/module/index.web.js +1 -0
  82. package/lib/module/index.web.js.map +1 -1
  83. package/lib/module/theme/build-theme.js +32 -44
  84. package/lib/module/theme/build-theme.js.map +1 -1
  85. package/lib/module/theme/color-engine/cam16.js +155 -0
  86. package/lib/module/theme/color-engine/cam16.js.map +1 -0
  87. package/lib/module/theme/color-engine/color-role.js +177 -0
  88. package/lib/module/theme/color-engine/color-role.js.map +1 -0
  89. package/lib/module/theme/color-engine/color-roles.js +411 -0
  90. package/lib/module/theme/color-engine/color-roles.js.map +1 -0
  91. package/lib/module/theme/color-engine/color-utils.js +135 -0
  92. package/lib/module/theme/color-engine/color-utils.js.map +1 -0
  93. package/lib/module/theme/color-engine/contrast-curve.js +26 -0
  94. package/lib/module/theme/color-engine/contrast-curve.js.map +1 -0
  95. package/lib/module/theme/color-engine/contrast.js +61 -0
  96. package/lib/module/theme/color-engine/contrast.js.map +1 -0
  97. package/lib/module/theme/color-engine/dislike-analyzer.js +20 -0
  98. package/lib/module/theme/color-engine/dislike-analyzer.js.map +1 -0
  99. package/lib/module/theme/color-engine/dynamic-scheme.js +65 -0
  100. package/lib/module/theme/color-engine/dynamic-scheme.js.map +1 -0
  101. package/lib/module/theme/color-engine/hct-solver.js +231 -0
  102. package/lib/module/theme/color-engine/hct-solver.js.map +1 -0
  103. package/lib/module/theme/color-engine/hct.js +61 -0
  104. package/lib/module/theme/color-engine/hct.js.map +1 -0
  105. package/lib/module/theme/color-engine/index.js +57 -0
  106. package/lib/module/theme/color-engine/index.js.map +1 -0
  107. package/lib/module/theme/color-engine/lab-point-provider.js +25 -0
  108. package/lib/module/theme/color-engine/lab-point-provider.js.map +1 -0
  109. package/lib/module/theme/color-engine/math-utils.js +65 -0
  110. package/lib/module/theme/color-engine/math-utils.js.map +1 -0
  111. package/lib/module/theme/color-engine/quantizer-map.js +20 -0
  112. package/lib/module/theme/color-engine/quantizer-map.js.map +1 -0
  113. package/lib/module/theme/color-engine/quantizer-wu.js +261 -0
  114. package/lib/module/theme/color-engine/quantizer-wu.js.map +1 -0
  115. package/lib/module/theme/color-engine/scheme-variants.js +93 -0
  116. package/lib/module/theme/color-engine/scheme-variants.js.map +1 -0
  117. package/lib/module/theme/color-engine/score.js +75 -0
  118. package/lib/module/theme/color-engine/score.js.map +1 -0
  119. package/lib/module/theme/color-engine/seed-from-image.js +67 -0
  120. package/lib/module/theme/color-engine/seed-from-image.js.map +1 -0
  121. package/lib/module/theme/color-engine/tonal-palette.js +89 -0
  122. package/lib/module/theme/color-engine/tonal-palette.js.map +1 -0
  123. package/lib/module/theme/color-engine/tone-delta-pair.js +21 -0
  124. package/lib/module/theme/color-engine/tone-delta-pair.js.map +1 -0
  125. package/lib/module/theme/color-engine/variant.js +22 -0
  126. package/lib/module/theme/color-engine/variant.js.map +1 -0
  127. package/lib/module/theme/color-engine/viewing-conditions.js +55 -0
  128. package/lib/module/theme/color-engine/viewing-conditions.js.map +1 -0
  129. package/lib/module/theme/color-presets.js +44 -572
  130. package/lib/module/theme/color-presets.js.map +1 -1
  131. package/lib/module/theme/preset-vars.js +64 -46
  132. package/lib/module/theme/preset-vars.js.map +1 -1
  133. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.d.ts +5 -0
  134. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts +5 -0
  136. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/frosted-icon-button/index.d.ts +3 -0
  138. package/lib/typescript/commonjs/frosted-icon-button/index.d.ts.map +1 -0
  139. package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts +3 -0
  140. package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts +60 -0
  142. package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/frosted-icon-button/types.d.ts +69 -0
  144. package/lib/typescript/commonjs/frosted-icon-button/types.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/index.d.ts +2 -0
  146. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/index.web.d.ts +2 -0
  148. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/theme/build-theme.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/theme/color-engine/cam16.d.ts +26 -0
  151. package/lib/typescript/commonjs/theme/color-engine/cam16.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/theme/color-engine/color-role.d.ts +36 -0
  153. package/lib/typescript/commonjs/theme/color-engine/color-role.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/theme/color-engine/color-roles.d.ts +58 -0
  155. package/lib/typescript/commonjs/theme/color-engine/color-roles.d.ts.map +1 -0
  156. package/lib/typescript/commonjs/theme/color-engine/color-utils.d.ts +32 -0
  157. package/lib/typescript/commonjs/theme/color-engine/color-utils.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/theme/color-engine/contrast-curve.d.ts +9 -0
  159. package/lib/typescript/commonjs/theme/color-engine/contrast-curve.d.ts.map +1 -0
  160. package/lib/typescript/commonjs/theme/color-engine/contrast.d.ts +12 -0
  161. package/lib/typescript/commonjs/theme/color-engine/contrast.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/theme/color-engine/dislike-analyzer.d.ts +11 -0
  163. package/lib/typescript/commonjs/theme/color-engine/dislike-analyzer.d.ts.map +1 -0
  164. package/lib/typescript/commonjs/theme/color-engine/dynamic-scheme.d.ts +47 -0
  165. package/lib/typescript/commonjs/theme/color-engine/dynamic-scheme.d.ts.map +1 -0
  166. package/lib/typescript/commonjs/theme/color-engine/hct-solver.d.ts +6 -0
  167. package/lib/typescript/commonjs/theme/color-engine/hct-solver.d.ts.map +1 -0
  168. package/lib/typescript/commonjs/theme/color-engine/hct.d.ts +20 -0
  169. package/lib/typescript/commonjs/theme/color-engine/hct.d.ts.map +1 -0
  170. package/lib/typescript/commonjs/theme/color-engine/index.d.ts +44 -0
  171. package/lib/typescript/commonjs/theme/color-engine/index.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/theme/color-engine/lab-point-provider.d.ts +6 -0
  173. package/lib/typescript/commonjs/theme/color-engine/lab-point-provider.d.ts.map +1 -0
  174. package/lib/typescript/commonjs/theme/color-engine/math-utils.d.ts +46 -0
  175. package/lib/typescript/commonjs/theme/color-engine/math-utils.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/theme/color-engine/quantizer-map.d.ts +3 -0
  177. package/lib/typescript/commonjs/theme/color-engine/quantizer-map.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/theme/color-engine/quantizer-wu.d.ts +3 -0
  179. package/lib/typescript/commonjs/theme/color-engine/quantizer-wu.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts +23 -0
  181. package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/theme/color-engine/score.d.ts +8 -0
  183. package/lib/typescript/commonjs/theme/color-engine/score.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts +13 -0
  185. package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/theme/color-engine/tonal-palette.d.ts +24 -0
  187. package/lib/typescript/commonjs/theme/color-engine/tonal-palette.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/theme/color-engine/tone-delta-pair.d.ts +19 -0
  189. package/lib/typescript/commonjs/theme/color-engine/tone-delta-pair.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/theme/color-engine/variant.d.ts +19 -0
  191. package/lib/typescript/commonjs/theme/color-engine/variant.d.ts.map +1 -0
  192. package/lib/typescript/commonjs/theme/color-engine/viewing-conditions.d.ts +18 -0
  193. package/lib/typescript/commonjs/theme/color-engine/viewing-conditions.d.ts.map +1 -0
  194. package/lib/typescript/commonjs/theme/color-presets.d.ts +25 -20
  195. package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/theme/preset-vars.d.ts +16 -12
  197. package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
  198. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.d.ts +5 -0
  199. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.d.ts.map +1 -0
  200. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts +5 -0
  201. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -0
  202. package/lib/typescript/module/frosted-icon-button/index.d.ts +3 -0
  203. package/lib/typescript/module/frosted-icon-button/index.d.ts.map +1 -0
  204. package/lib/typescript/module/frosted-icon-button/index.web.d.ts +3 -0
  205. package/lib/typescript/module/frosted-icon-button/index.web.d.ts.map +1 -0
  206. package/lib/typescript/module/frosted-icon-button/shared.d.ts +60 -0
  207. package/lib/typescript/module/frosted-icon-button/shared.d.ts.map +1 -0
  208. package/lib/typescript/module/frosted-icon-button/types.d.ts +69 -0
  209. package/lib/typescript/module/frosted-icon-button/types.d.ts.map +1 -0
  210. package/lib/typescript/module/index.d.ts +2 -0
  211. package/lib/typescript/module/index.d.ts.map +1 -1
  212. package/lib/typescript/module/index.web.d.ts +2 -0
  213. package/lib/typescript/module/index.web.d.ts.map +1 -1
  214. package/lib/typescript/module/theme/build-theme.d.ts.map +1 -1
  215. package/lib/typescript/module/theme/color-engine/cam16.d.ts +26 -0
  216. package/lib/typescript/module/theme/color-engine/cam16.d.ts.map +1 -0
  217. package/lib/typescript/module/theme/color-engine/color-role.d.ts +36 -0
  218. package/lib/typescript/module/theme/color-engine/color-role.d.ts.map +1 -0
  219. package/lib/typescript/module/theme/color-engine/color-roles.d.ts +58 -0
  220. package/lib/typescript/module/theme/color-engine/color-roles.d.ts.map +1 -0
  221. package/lib/typescript/module/theme/color-engine/color-utils.d.ts +32 -0
  222. package/lib/typescript/module/theme/color-engine/color-utils.d.ts.map +1 -0
  223. package/lib/typescript/module/theme/color-engine/contrast-curve.d.ts +9 -0
  224. package/lib/typescript/module/theme/color-engine/contrast-curve.d.ts.map +1 -0
  225. package/lib/typescript/module/theme/color-engine/contrast.d.ts +12 -0
  226. package/lib/typescript/module/theme/color-engine/contrast.d.ts.map +1 -0
  227. package/lib/typescript/module/theme/color-engine/dislike-analyzer.d.ts +11 -0
  228. package/lib/typescript/module/theme/color-engine/dislike-analyzer.d.ts.map +1 -0
  229. package/lib/typescript/module/theme/color-engine/dynamic-scheme.d.ts +47 -0
  230. package/lib/typescript/module/theme/color-engine/dynamic-scheme.d.ts.map +1 -0
  231. package/lib/typescript/module/theme/color-engine/hct-solver.d.ts +6 -0
  232. package/lib/typescript/module/theme/color-engine/hct-solver.d.ts.map +1 -0
  233. package/lib/typescript/module/theme/color-engine/hct.d.ts +20 -0
  234. package/lib/typescript/module/theme/color-engine/hct.d.ts.map +1 -0
  235. package/lib/typescript/module/theme/color-engine/index.d.ts +44 -0
  236. package/lib/typescript/module/theme/color-engine/index.d.ts.map +1 -0
  237. package/lib/typescript/module/theme/color-engine/lab-point-provider.d.ts +6 -0
  238. package/lib/typescript/module/theme/color-engine/lab-point-provider.d.ts.map +1 -0
  239. package/lib/typescript/module/theme/color-engine/math-utils.d.ts +46 -0
  240. package/lib/typescript/module/theme/color-engine/math-utils.d.ts.map +1 -0
  241. package/lib/typescript/module/theme/color-engine/quantizer-map.d.ts +3 -0
  242. package/lib/typescript/module/theme/color-engine/quantizer-map.d.ts.map +1 -0
  243. package/lib/typescript/module/theme/color-engine/quantizer-wu.d.ts +3 -0
  244. package/lib/typescript/module/theme/color-engine/quantizer-wu.d.ts.map +1 -0
  245. package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts +23 -0
  246. package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts.map +1 -0
  247. package/lib/typescript/module/theme/color-engine/score.d.ts +8 -0
  248. package/lib/typescript/module/theme/color-engine/score.d.ts.map +1 -0
  249. package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts +13 -0
  250. package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts.map +1 -0
  251. package/lib/typescript/module/theme/color-engine/tonal-palette.d.ts +24 -0
  252. package/lib/typescript/module/theme/color-engine/tonal-palette.d.ts.map +1 -0
  253. package/lib/typescript/module/theme/color-engine/tone-delta-pair.d.ts +19 -0
  254. package/lib/typescript/module/theme/color-engine/tone-delta-pair.d.ts.map +1 -0
  255. package/lib/typescript/module/theme/color-engine/variant.d.ts +19 -0
  256. package/lib/typescript/module/theme/color-engine/variant.d.ts.map +1 -0
  257. package/lib/typescript/module/theme/color-engine/viewing-conditions.d.ts +18 -0
  258. package/lib/typescript/module/theme/color-engine/viewing-conditions.d.ts.map +1 -0
  259. package/lib/typescript/module/theme/color-presets.d.ts +25 -20
  260. package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
  261. package/lib/typescript/module/theme/preset-vars.d.ts +16 -12
  262. package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
  263. package/package.json +17 -1
  264. package/src/__tests__/BloomThemeProvider.test.tsx +9 -4
  265. package/src/__tests__/FrostedIconButton.test.tsx +137 -0
  266. package/src/__tests__/FrostedIconButton.web.test.tsx +246 -0
  267. package/src/__tests__/native-root-vars.test.ts +8 -4
  268. package/src/__tests__/preset-vars.test.ts +66 -37
  269. package/src/__tests__/theme.test.ts +20 -12
  270. package/src/frosted-icon-button/FrostedIconButton.stories.tsx +65 -0
  271. package/src/frosted-icon-button/FrostedIconButton.tsx +156 -0
  272. package/src/frosted-icon-button/FrostedIconButton.web.tsx +207 -0
  273. package/src/frosted-icon-button/index.ts +2 -0
  274. package/src/frosted-icon-button/index.web.ts +9 -0
  275. package/src/frosted-icon-button/shared.ts +118 -0
  276. package/src/frosted-icon-button/types.ts +81 -0
  277. package/src/index.ts +2 -0
  278. package/src/index.web.ts +2 -0
  279. package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +509 -509
  280. package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +613 -613
  281. package/src/theme/__tests__/color-engine-golden.test.ts +81 -0
  282. package/src/theme/__tests__/fixtures/color-engine-golden.json +1 -0
  283. package/src/theme/__tests__/golden-tokens.test.ts +6 -7
  284. package/src/theme/__tests__/runtime-contract.test.ts +8 -8
  285. package/src/theme/__tests__/theme-colors-parity.test.ts +44 -88
  286. package/src/theme/build-theme.ts +32 -44
  287. package/src/theme/color-engine/cam16.ts +179 -0
  288. package/src/theme/color-engine/color-role.ts +217 -0
  289. package/src/theme/color-engine/color-roles.ts +435 -0
  290. package/src/theme/color-engine/color-utils.ts +157 -0
  291. package/src/theme/color-engine/contrast-curve.ts +25 -0
  292. package/src/theme/color-engine/contrast.ts +59 -0
  293. package/src/theme/color-engine/dislike-analyzer.ts +19 -0
  294. package/src/theme/color-engine/dynamic-scheme.ts +90 -0
  295. package/src/theme/color-engine/hct-solver.ts +263 -0
  296. package/src/theme/color-engine/hct.ts +69 -0
  297. package/src/theme/color-engine/index.ts +73 -0
  298. package/src/theme/color-engine/lab-point-provider.ts +26 -0
  299. package/src/theme/color-engine/math-utils.ts +69 -0
  300. package/src/theme/color-engine/quantizer-map.ts +17 -0
  301. package/src/theme/color-engine/quantizer-wu.ts +320 -0
  302. package/src/theme/color-engine/scheme-variants.ts +113 -0
  303. package/src/theme/color-engine/score.ts +82 -0
  304. package/src/theme/color-engine/seed-from-image.ts +64 -0
  305. package/src/theme/color-engine/tonal-palette.ts +94 -0
  306. package/src/theme/color-engine/tone-delta-pair.ts +21 -0
  307. package/src/theme/color-engine/variant.ts +18 -0
  308. package/src/theme/color-engine/viewing-conditions.ts +77 -0
  309. package/src/theme/color-presets.ts +54 -631
  310. package/src/theme/preset-vars.ts +65 -49
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TonalPalette = void 0;
7
+ var _hct = require("./hct.js");
8
+ /**
9
+ * Bloom colour engine — tonal palettes.
10
+ *
11
+ * Faithful port of Material Color Utilities' `TonalPalette` (Apache-2.0). A
12
+ * palette holds a fixed hue + chroma and yields a colour for any tone (0–100).
13
+ * Schemes build primary/secondary/tertiary/neutral palettes and read specific
14
+ * tones per role.
15
+ */
16
+
17
+ class TonalPalette {
18
+ cache = new Map();
19
+ constructor(hue, chroma, keyColor) {
20
+ this.hue = hue;
21
+ this.chroma = chroma;
22
+ this.keyColor = keyColor;
23
+ }
24
+ static fromInt(argb) {
25
+ return TonalPalette.fromHct(_hct.Hct.fromInt(argb));
26
+ }
27
+ static fromHct(hct) {
28
+ return new TonalPalette(hct.hue, hct.chroma, hct);
29
+ }
30
+ static fromHueAndChroma(hue, chroma) {
31
+ const keyColor = new KeyColor(hue, chroma).create();
32
+ return new TonalPalette(hue, chroma, keyColor);
33
+ }
34
+
35
+ /** ARGB of this palette at the given tone. */
36
+ tone(tone) {
37
+ let argb = this.cache.get(tone);
38
+ if (argb === undefined) {
39
+ argb = _hct.Hct.from(this.hue, this.chroma, tone).toInt();
40
+ this.cache.set(tone, argb);
41
+ }
42
+ return argb;
43
+ }
44
+
45
+ /** HCT of this palette at the given tone. */
46
+ getHct(tone) {
47
+ return _hct.Hct.fromInt(this.tone(tone));
48
+ }
49
+ }
50
+
51
+ /** The colour that represents a palette's hue + chroma (first from T50). */
52
+ exports.TonalPalette = TonalPalette;
53
+ class KeyColor {
54
+ chromaCache = new Map();
55
+ maxChromaValue = 200.0;
56
+ constructor(hue, requestedChroma) {
57
+ this.hue = hue;
58
+ this.requestedChroma = requestedChroma;
59
+ }
60
+ create() {
61
+ const pivotTone = 50;
62
+ const toneStepSize = 1;
63
+ const epsilon = 0.01;
64
+ let lowerTone = 0;
65
+ let upperTone = 100;
66
+ while (lowerTone < upperTone) {
67
+ const midTone = Math.floor((lowerTone + upperTone) / 2);
68
+ const isAscending = this.maxChroma(midTone) < this.maxChroma(midTone + toneStepSize);
69
+ const sufficientChroma = this.maxChroma(midTone) >= this.requestedChroma - epsilon;
70
+ if (sufficientChroma) {
71
+ if (Math.abs(lowerTone - pivotTone) < Math.abs(upperTone - pivotTone)) {
72
+ upperTone = midTone;
73
+ } else {
74
+ if (lowerTone === midTone) {
75
+ return _hct.Hct.from(this.hue, this.requestedChroma, lowerTone);
76
+ }
77
+ lowerTone = midTone;
78
+ }
79
+ } else if (isAscending) {
80
+ lowerTone = midTone + toneStepSize;
81
+ } else {
82
+ upperTone = midTone;
83
+ }
84
+ }
85
+ return _hct.Hct.from(this.hue, this.requestedChroma, lowerTone);
86
+ }
87
+ maxChroma(tone) {
88
+ const cached = this.chromaCache.get(tone);
89
+ if (cached !== undefined) return cached;
90
+ const chroma = _hct.Hct.from(this.hue, this.maxChromaValue, tone).chroma;
91
+ this.chromaCache.set(tone, chroma);
92
+ return chroma;
93
+ }
94
+ }
95
+ //# sourceMappingURL=tonal-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_hct","require","TonalPalette","cache","Map","constructor","hue","chroma","keyColor","fromInt","argb","fromHct","Hct","hct","fromHueAndChroma","KeyColor","create","tone","get","undefined","from","toInt","set","getHct","exports","chromaCache","maxChromaValue","requestedChroma","pivotTone","toneStepSize","epsilon","lowerTone","upperTone","midTone","Math","floor","isAscending","maxChroma","sufficientChroma","abs","cached"],"sourceRoot":"../../../../src","sources":["theme/color-engine/tonal-palette.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ToneDeltaPair = void 0;
7
+ /**
8
+ * Bloom colour engine — tone-delta pair.
9
+ *
10
+ * Faithful port of Material Color Utilities' `ToneDeltaPair` (Apache-2.0).
11
+ * Constrains two related roles to keep a minimum tonal distance in a given
12
+ * direction (e.g. a fixed colour must stay lighter than its dim variant), so
13
+ * paired roles never collapse into each other.
14
+ */
15
+
16
+ class ToneDeltaPair {
17
+ constructor(roleA, roleB, delta, polarity, stayTogether) {
18
+ this.roleA = roleA;
19
+ this.roleB = roleB;
20
+ this.delta = delta;
21
+ this.polarity = polarity;
22
+ this.stayTogether = stayTogether;
23
+ }
24
+ }
25
+ exports.ToneDeltaPair = ToneDeltaPair;
26
+ //# sourceMappingURL=tone-delta-pair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ToneDeltaPair","constructor","roleA","roleB","delta","polarity","stayTogether","exports"],"sourceRoot":"../../../../src","sources":["theme/color-engine/tone-delta-pair.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKO,MAAMA,aAAa,CAAC;EACzBC,WAAWA,CACAC,KAAgB,EAChBC,KAAgB,EAChBC,KAAa,EACbC,QAAsB,EACtBC,YAAqB,EAC9B;IAAA,KALSJ,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,KAAa,GAAbA,KAAa;IAAA,KACbC,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,YAAqB,GAArBA,YAAqB;EAC7B;AACL;AAACC,OAAA,CAAAP,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Variant = void 0;
7
+ /**
8
+ * Bloom colour engine — scheme variants.
9
+ *
10
+ * The families of dynamic-colour scheme supported by the engine. Bloom exposes
11
+ * the useful subset (Vibrant, Expressive, TonalSpot, Neutral, Fidelity); the
12
+ * numeric values match Material Color Utilities so ported scheme logic lines up.
13
+ */
14
+ let Variant = exports.Variant = /*#__PURE__*/function (Variant) {
15
+ Variant[Variant["MONOCHROME"] = 0] = "MONOCHROME";
16
+ Variant[Variant["NEUTRAL"] = 1] = "NEUTRAL";
17
+ Variant[Variant["TONAL_SPOT"] = 2] = "TONAL_SPOT";
18
+ Variant[Variant["VIBRANT"] = 3] = "VIBRANT";
19
+ Variant[Variant["EXPRESSIVE"] = 4] = "EXPRESSIVE";
20
+ Variant[Variant["FIDELITY"] = 5] = "FIDELITY";
21
+ Variant[Variant["CONTENT"] = 6] = "CONTENT";
22
+ Variant[Variant["RAINBOW"] = 7] = "RAINBOW";
23
+ Variant[Variant["FRUIT_SALAD"] = 8] = "FRUIT_SALAD";
24
+ return Variant;
25
+ }({});
26
+ //# sourceMappingURL=variant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Variant","exports"],"sourceRoot":"../../../../src","sources":["theme/color-engine/variant.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAOYA,OAAO,GAAAC,OAAA,CAAAD,OAAA,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ViewingConditions = void 0;
7
+ var _colorUtils = require("./color-utils.js");
8
+ var _mathUtils = require("./math-utils.js");
9
+ /**
10
+ * Bloom colour engine — CAM16 viewing conditions.
11
+ *
12
+ * Faithful port of Material Color Utilities' `ViewingConditions` (Apache-2.0)
13
+ * into Bloom's own code. Caches the CAM16 intermediates that depend only on the
14
+ * environment (white point, adapting luminance, surround) so the appearance
15
+ * model can run fast. Bloom only ever uses the sRGB `DEFAULT`.
16
+ */
17
+
18
+ class ViewingConditions {
19
+ /** sRGB-like viewing conditions (the only ones Bloom uses). */
20
+ static get DEFAULT() {
21
+ return ViewingConditions._default ??= ViewingConditions.make();
22
+ }
23
+ constructor(n, aw, nbb, ncb, c, nc, rgbD, fl, fLRoot, z) {
24
+ this.n = n;
25
+ this.aw = aw;
26
+ this.nbb = nbb;
27
+ this.ncb = ncb;
28
+ this.c = c;
29
+ this.nc = nc;
30
+ this.rgbD = rgbD;
31
+ this.fl = fl;
32
+ this.fLRoot = fLRoot;
33
+ this.z = z;
34
+ }
35
+ static make(whitePoint = (0, _colorUtils.whitePointD65)(), adaptingLuminance = 200.0 / Math.PI * (0, _colorUtils.yFromLstar)(50.0) / 100.0, backgroundLstar = 50.0, surround = 2.0, discountingIlluminant = false) {
36
+ const xyz = whitePoint;
37
+ const rW = xyz[0] * 0.401288 + xyz[1] * 0.650173 + xyz[2] * -0.051461;
38
+ const gW = xyz[0] * -0.250268 + xyz[1] * 1.204414 + xyz[2] * 0.045854;
39
+ const bW = xyz[0] * -0.002079 + xyz[1] * 0.048952 + xyz[2] * 0.953127;
40
+ const f = 0.8 + surround / 10.0;
41
+ const c = f >= 0.9 ? (0, _mathUtils.lerp)(0.59, 0.69, (f - 0.9) * 10.0) : (0, _mathUtils.lerp)(0.525, 0.59, (f - 0.8) * 10.0);
42
+ let d = discountingIlluminant ? 1.0 : f * (1.0 - 1.0 / 3.6 * Math.exp((-adaptingLuminance - 42.0) / 92.0));
43
+ d = d > 1.0 ? 1.0 : d < 0.0 ? 0.0 : d;
44
+ const nc = f;
45
+ const rgbD = [d * (100.0 / rW) + 1.0 - d, d * (100.0 / gW) + 1.0 - d, d * (100.0 / bW) + 1.0 - d];
46
+ const k = 1.0 / (5.0 * adaptingLuminance + 1.0);
47
+ const k4 = k * k * k * k;
48
+ const k4F = 1.0 - k4;
49
+ const fl = k4 * adaptingLuminance + 0.1 * k4F * k4F * Math.cbrt(5.0 * adaptingLuminance);
50
+ const n = (0, _colorUtils.yFromLstar)(backgroundLstar) / whitePoint[1];
51
+ const z = 1.48 + Math.sqrt(n);
52
+ const nbb = 0.725 / Math.pow(n, 0.2);
53
+ const ncb = nbb;
54
+ const rgbAFactors = [Math.pow(fl * rgbD[0] * rW / 100.0, 0.42), Math.pow(fl * rgbD[1] * gW / 100.0, 0.42), Math.pow(fl * rgbD[2] * bW / 100.0, 0.42)];
55
+ const rgbA = [400.0 * rgbAFactors[0] / (rgbAFactors[0] + 27.13), 400.0 * rgbAFactors[1] / (rgbAFactors[1] + 27.13), 400.0 * rgbAFactors[2] / (rgbAFactors[2] + 27.13)];
56
+ const aw = (2.0 * rgbA[0] + rgbA[1] + 0.05 * rgbA[2]) * nbb;
57
+ return new ViewingConditions(n, aw, nbb, ncb, c, nc, rgbD, fl, Math.pow(fl, 0.25), z);
58
+ }
59
+ }
60
+ exports.ViewingConditions = ViewingConditions;
61
+ //# sourceMappingURL=viewing-conditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_colorUtils","require","_mathUtils","ViewingConditions","DEFAULT","_default","make","constructor","n","aw","nbb","ncb","c","nc","rgbD","fl","fLRoot","z","whitePoint","whitePointD65","adaptingLuminance","Math","PI","yFromLstar","backgroundLstar","surround","discountingIlluminant","xyz","rW","gW","bW","f","lerp","d","exp","k","k4","k4F","cbrt","sqrt","pow","rgbAFactors","rgbA","exports"],"sourceRoot":"../../../../src","sources":["theme/color-engine/viewing-conditions.ts"],"mappings":"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","ignoreList":[]}