@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
@@ -6,24 +6,22 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.PREMIUM_COLOR_NAMES = exports.HEX_TO_APP_COLOR = exports.APP_COLOR_PRESETS = exports.APP_COLOR_NAMES = void 0;
7
7
  exports.hexToAppColorName = hexToAppColorName;
8
8
  /**
9
- * Palette tokens for a single mode (light or dark) of a color preset.
9
+ * A single colour preset: a brand SEED colour plus the tonal scheme variant to
10
+ * derive its full role set with.
10
11
  *
11
- * Keys carry a leading `--` for historical reasons (shadcn-style CSS variable
12
- * names) keep in mind the values are platform-agnostic **raw HSL triples**
13
- * (e.g. `'185 100% 20%'` or `'185 100% 20% / 0.5'`), not CSS-resolved colors.
14
- * The single canonical resolver `getResolvedTokens` (in `token-registry.ts`)
15
- * converts this raw map to sRGB `rgb(...)` for every runtime write — the same
16
- * values drive BOTH layers:
17
- * - the web layer: `getResolvedTokens`'s `rgb(...)` strings are written to
18
- * `document.documentElement` / a `BloomColorScope` element, so `var(--x)` —
19
- * the form Tailwind v4 `@theme inline` compiles its color utilities to —
20
- * resolves to a valid color directly, and
21
- * - the native layer (`buildTheme` resolves the raw triples into `hsl(...)`
22
- * strings consumable by React Native styles; `native-root-vars.native.ts`
23
- * writes the same canonical `rgb(...)` values into react-native-css's
24
- * `rootVariables` family).
25
- *
26
- * The `--` prefix is an implementation detail we will drop in a future major.
12
+ * Every preset's palette is now GENERATED by Bloom's dependency-free colour
13
+ * engine (`color-engine/`) from this seed no hand-authored HSL triples. The
14
+ * engine's `generateRoleColors({ seed, variant, isDark })` yields the full
15
+ * Material-3 role set for light and dark; `getPresetVars` (in `preset-vars.ts`)
16
+ * maps those roles onto Bloom's canonical token names. A user-picked colour
17
+ * flows through the identical path — a preset is just a fixed seed.
18
+ */
19
+
20
+ /**
21
+ * Historically each preset carried a full light/dark map of raw HSL triples.
22
+ * That map is gone the engine derives every role from {@link AppColorPreset.hex}.
23
+ * The type alias is retained for the public `PresetTokens` export shape (the
24
+ * resolved `--token -> value` record that `getPresetVars` produces).
27
25
  */
28
26
 
29
27
  const APP_COLOR_NAMES = exports.APP_COLOR_NAMES = ['teal', 'blue', 'green', 'amber', 'yellow', 'red', 'purple', 'pink', 'sky', 'orange', 'mint', 'oxy', 'faircoin'];
@@ -48,604 +46,78 @@ const HEX_TO_APP_COLOR = exports.HEX_TO_APP_COLOR = {
48
46
  function hexToAppColorName(hex) {
49
47
  return HEX_TO_APP_COLOR[hex.toLowerCase()] ?? 'teal';
50
48
  }
49
+
50
+ /**
51
+ * The 13 named presets, each a brand seed + scheme variant. The engine derives
52
+ * the full role set (light + dark) from the seed. Seeds are the brand hex of
53
+ * each preset; `oxy` reads most faithfully as `vibrant`, everything else keeps a
54
+ * bold `vibrant` derivation to match the prior saturated palette.
55
+ */
51
56
  const APP_COLOR_PRESETS = exports.APP_COLOR_PRESETS = {
52
57
  teal: {
53
58
  name: 'teal',
54
59
  hex: '#005c67',
55
- light: {
56
- '--background': '185 55% 96%',
57
- '--foreground': '0 0% 12%',
58
- '--surface': '185 58% 94%',
59
- '--surface-foreground': '0 0% 12%',
60
- '--popover': '185 55% 97%',
61
- '--popover-foreground': '0 0% 12%',
62
- '--primary': '185 100% 20%',
63
- '--primary-foreground': '0 0% 100%',
64
- '--secondary': '185 55% 92%',
65
- '--secondary-foreground': '0 0% 12%',
66
- '--muted': '185 55% 92%',
67
- '--muted-foreground': '185 5% 42%',
68
- '--accent': '185 55% 92%',
69
- '--accent-foreground': '0 0% 12%',
70
- '--destructive': '0 84% 60%',
71
- '--border': '185 40% 87%',
72
- '--input': '185 40% 87%',
73
- '--ring': '185 100% 20%',
74
- '--sidebar': '185 58% 94%'
75
- },
76
- dark: {
77
- '--background': '185 50% 5%',
78
- '--foreground': '0 0% 93%',
79
- '--surface': '185 20% 18%',
80
- '--surface-foreground': '0 0% 93%',
81
- '--popover': '185 20% 18%',
82
- '--popover-foreground': '0 0% 93%',
83
- '--primary': '185 100% 20%',
84
- '--primary-foreground': '0 0% 100%',
85
- '--secondary': '185 20% 18%',
86
- '--secondary-foreground': '0 0% 93%',
87
- '--muted': '185 18% 20%',
88
- '--muted-foreground': '0 0% 70%',
89
- '--accent': '185 18% 20%',
90
- '--accent-foreground': '0 0% 93%',
91
- '--destructive': '0 84% 60%',
92
- '--border': '185 12% 20%',
93
- '--input': '185 10% 23%',
94
- '--ring': '185 100% 20%',
95
- '--sidebar': '185 30% 8%'
96
- }
60
+ variant: 'vibrant'
97
61
  },
98
62
  blue: {
99
63
  name: 'blue',
100
- hex: '#1D9BF0',
101
- light: {
102
- '--background': '205 55% 96%',
103
- '--foreground': '0 0% 12%',
104
- '--surface': '205 58% 94%',
105
- '--surface-foreground': '0 0% 12%',
106
- '--popover': '205 55% 97%',
107
- '--popover-foreground': '0 0% 12%',
108
- '--primary': '205 87% 53%',
109
- '--primary-foreground': '0 0% 100%',
110
- '--secondary': '205 55% 92%',
111
- '--secondary-foreground': '0 0% 12%',
112
- '--muted': '205 55% 92%',
113
- '--muted-foreground': '205 5% 42%',
114
- '--accent': '205 55% 92%',
115
- '--accent-foreground': '0 0% 12%',
116
- '--destructive': '0 84% 60%',
117
- '--border': '205 40% 87%',
118
- '--input': '205 40% 87%',
119
- '--ring': '205 87% 53%',
120
- '--sidebar': '205 58% 94%'
121
- },
122
- dark: {
123
- '--background': '205 50% 5%',
124
- '--foreground': '0 0% 93%',
125
- '--surface': '205 20% 18%',
126
- '--surface-foreground': '0 0% 93%',
127
- '--popover': '205 20% 18%',
128
- '--popover-foreground': '0 0% 93%',
129
- '--primary': '205 87% 53%',
130
- '--primary-foreground': '0 0% 100%',
131
- '--secondary': '205 20% 18%',
132
- '--secondary-foreground': '0 0% 93%',
133
- '--muted': '205 18% 20%',
134
- '--muted-foreground': '0 0% 70%',
135
- '--accent': '205 18% 20%',
136
- '--accent-foreground': '0 0% 93%',
137
- '--destructive': '0 84% 60%',
138
- '--border': '205 12% 20%',
139
- '--input': '205 10% 23%',
140
- '--ring': '205 87% 53%',
141
- '--sidebar': '205 30% 8%'
142
- }
64
+ hex: '#1d9bf0',
65
+ variant: 'vibrant'
143
66
  },
144
67
  green: {
145
68
  name: 'green',
146
- hex: '#10B981',
147
- light: {
148
- '--background': '160 55% 96%',
149
- '--foreground': '0 0% 12%',
150
- '--surface': '160 58% 94%',
151
- '--surface-foreground': '0 0% 12%',
152
- '--popover': '160 55% 97%',
153
- '--popover-foreground': '0 0% 12%',
154
- '--primary': '160 84% 39%',
155
- '--primary-foreground': '0 0% 100%',
156
- '--secondary': '160 55% 92%',
157
- '--secondary-foreground': '0 0% 12%',
158
- '--muted': '160 55% 92%',
159
- '--muted-foreground': '160 5% 42%',
160
- '--accent': '160 55% 92%',
161
- '--accent-foreground': '0 0% 12%',
162
- '--destructive': '0 84% 60%',
163
- '--border': '160 40% 87%',
164
- '--input': '160 40% 87%',
165
- '--ring': '160 84% 39%',
166
- '--sidebar': '160 58% 94%'
167
- },
168
- dark: {
169
- '--background': '160 50% 5%',
170
- '--foreground': '0 0% 93%',
171
- '--surface': '160 20% 18%',
172
- '--surface-foreground': '0 0% 93%',
173
- '--popover': '160 20% 18%',
174
- '--popover-foreground': '0 0% 93%',
175
- '--primary': '160 84% 39%',
176
- '--primary-foreground': '0 0% 100%',
177
- '--secondary': '160 20% 18%',
178
- '--secondary-foreground': '0 0% 93%',
179
- '--muted': '160 18% 20%',
180
- '--muted-foreground': '0 0% 70%',
181
- '--accent': '160 18% 20%',
182
- '--accent-foreground': '0 0% 93%',
183
- '--destructive': '0 84% 60%',
184
- '--border': '160 12% 20%',
185
- '--input': '160 10% 23%',
186
- '--ring': '160 84% 39%',
187
- '--sidebar': '160 30% 8%'
188
- }
69
+ hex: '#10b981',
70
+ variant: 'vibrant'
189
71
  },
190
72
  amber: {
191
73
  name: 'amber',
192
- hex: '#F59E0B',
193
- light: {
194
- '--background': '38 55% 96%',
195
- '--foreground': '0 0% 12%',
196
- '--surface': '38 58% 94%',
197
- '--surface-foreground': '0 0% 12%',
198
- '--popover': '38 55% 97%',
199
- '--popover-foreground': '0 0% 12%',
200
- '--primary': '38 92% 50%',
201
- '--primary-foreground': '0 0% 0%',
202
- '--secondary': '38 55% 92%',
203
- '--secondary-foreground': '0 0% 12%',
204
- '--muted': '38 55% 92%',
205
- '--muted-foreground': '38 5% 42%',
206
- '--accent': '38 55% 92%',
207
- '--accent-foreground': '0 0% 12%',
208
- '--destructive': '0 84% 60%',
209
- '--border': '38 40% 87%',
210
- '--input': '38 40% 87%',
211
- '--ring': '38 92% 50%',
212
- '--sidebar': '38 58% 94%'
213
- },
214
- dark: {
215
- '--background': '38 50% 5%',
216
- '--foreground': '0 0% 93%',
217
- '--surface': '38 20% 18%',
218
- '--surface-foreground': '0 0% 93%',
219
- '--popover': '38 20% 18%',
220
- '--popover-foreground': '0 0% 93%',
221
- '--primary': '38 92% 50%',
222
- '--primary-foreground': '0 0% 0%',
223
- '--secondary': '38 20% 18%',
224
- '--secondary-foreground': '0 0% 93%',
225
- '--muted': '38 18% 20%',
226
- '--muted-foreground': '0 0% 70%',
227
- '--accent': '38 18% 20%',
228
- '--accent-foreground': '0 0% 93%',
229
- '--destructive': '0 84% 60%',
230
- '--border': '38 12% 20%',
231
- '--input': '38 10% 23%',
232
- '--ring': '38 92% 50%',
233
- '--sidebar': '38 30% 8%'
234
- }
74
+ hex: '#f59e0b',
75
+ variant: 'vibrant'
235
76
  },
236
77
  yellow: {
237
78
  name: 'yellow',
238
79
  hex: '#ffc300',
239
- light: {
240
- '--background': '46 55% 96%',
241
- '--foreground': '0 0% 12%',
242
- '--surface': '46 58% 94%',
243
- '--surface-foreground': '0 0% 12%',
244
- '--popover': '46 55% 97%',
245
- '--popover-foreground': '0 0% 12%',
246
- '--primary': '46 100% 50%',
247
- '--primary-foreground': '0 0% 0%',
248
- '--secondary': '46 55% 92%',
249
- '--secondary-foreground': '0 0% 12%',
250
- '--muted': '46 55% 92%',
251
- '--muted-foreground': '46 5% 42%',
252
- '--accent': '46 55% 92%',
253
- '--accent-foreground': '0 0% 12%',
254
- '--destructive': '0 84% 60%',
255
- '--border': '46 40% 87%',
256
- '--input': '46 40% 87%',
257
- '--ring': '46 100% 50%',
258
- '--sidebar': '46 58% 94%'
259
- },
260
- dark: {
261
- '--background': '46 50% 5%',
262
- '--foreground': '0 0% 93%',
263
- '--surface': '46 20% 18%',
264
- '--surface-foreground': '0 0% 93%',
265
- '--popover': '46 20% 18%',
266
- '--popover-foreground': '0 0% 93%',
267
- '--primary': '46 100% 50%',
268
- '--primary-foreground': '0 0% 0%',
269
- '--secondary': '46 20% 18%',
270
- '--secondary-foreground': '0 0% 93%',
271
- '--muted': '46 18% 20%',
272
- '--muted-foreground': '0 0% 70%',
273
- '--accent': '46 18% 20%',
274
- '--accent-foreground': '0 0% 93%',
275
- '--destructive': '0 84% 60%',
276
- '--border': '46 12% 20%',
277
- '--input': '46 10% 23%',
278
- '--ring': '46 100% 50%',
279
- '--sidebar': '46 30% 8%'
280
- }
80
+ variant: 'vibrant'
281
81
  },
282
82
  red: {
283
83
  name: 'red',
284
- hex: '#EF4444',
285
- light: {
286
- '--background': '0 55% 96%',
287
- '--foreground': '0 0% 12%',
288
- '--surface': '0 58% 94%',
289
- '--surface-foreground': '0 0% 12%',
290
- '--popover': '0 55% 97%',
291
- '--popover-foreground': '0 0% 12%',
292
- '--primary': '0 84% 60%',
293
- '--primary-foreground': '0 0% 100%',
294
- '--secondary': '0 55% 92%',
295
- '--secondary-foreground': '0 0% 12%',
296
- '--muted': '0 55% 92%',
297
- '--muted-foreground': '0 5% 42%',
298
- '--accent': '0 55% 92%',
299
- '--accent-foreground': '0 0% 12%',
300
- '--destructive': '0 84% 60%',
301
- '--border': '0 40% 87%',
302
- '--input': '0 40% 87%',
303
- '--ring': '0 84% 60%',
304
- '--sidebar': '0 58% 94%'
305
- },
306
- dark: {
307
- '--background': '0 50% 5%',
308
- '--foreground': '0 0% 93%',
309
- '--surface': '0 20% 18%',
310
- '--surface-foreground': '0 0% 93%',
311
- '--popover': '0 20% 18%',
312
- '--popover-foreground': '0 0% 93%',
313
- '--primary': '0 84% 60%',
314
- '--primary-foreground': '0 0% 100%',
315
- '--secondary': '0 20% 18%',
316
- '--secondary-foreground': '0 0% 93%',
317
- '--muted': '0 18% 20%',
318
- '--muted-foreground': '0 0% 70%',
319
- '--accent': '0 18% 20%',
320
- '--accent-foreground': '0 0% 93%',
321
- '--destructive': '0 84% 60%',
322
- '--border': '0 12% 20%',
323
- '--input': '0 10% 23%',
324
- '--ring': '0 84% 60%',
325
- '--sidebar': '0 30% 8%'
326
- }
84
+ hex: '#ef4444',
85
+ variant: 'vibrant'
327
86
  },
328
87
  purple: {
329
88
  name: 'purple',
330
- hex: '#8B5CF6',
331
- light: {
332
- '--background': '258 55% 96%',
333
- '--foreground': '0 0% 12%',
334
- '--surface': '258 58% 94%',
335
- '--surface-foreground': '0 0% 12%',
336
- '--popover': '258 55% 97%',
337
- '--popover-foreground': '0 0% 12%',
338
- '--primary': '258 90% 66%',
339
- '--primary-foreground': '0 0% 100%',
340
- '--secondary': '258 55% 92%',
341
- '--secondary-foreground': '0 0% 12%',
342
- '--muted': '258 55% 92%',
343
- '--muted-foreground': '258 5% 42%',
344
- '--accent': '258 55% 92%',
345
- '--accent-foreground': '0 0% 12%',
346
- '--destructive': '0 84% 60%',
347
- '--border': '258 40% 87%',
348
- '--input': '258 40% 87%',
349
- '--ring': '258 90% 66%',
350
- '--sidebar': '258 58% 94%'
351
- },
352
- dark: {
353
- '--background': '258 50% 5%',
354
- '--foreground': '0 0% 93%',
355
- '--surface': '258 20% 18%',
356
- '--surface-foreground': '0 0% 93%',
357
- '--popover': '258 20% 18%',
358
- '--popover-foreground': '0 0% 93%',
359
- '--primary': '258 90% 66%',
360
- '--primary-foreground': '0 0% 100%',
361
- '--secondary': '258 20% 18%',
362
- '--secondary-foreground': '0 0% 93%',
363
- '--muted': '258 18% 20%',
364
- '--muted-foreground': '0 0% 70%',
365
- '--accent': '258 18% 20%',
366
- '--accent-foreground': '0 0% 93%',
367
- '--destructive': '0 84% 60%',
368
- '--border': '258 12% 20%',
369
- '--input': '258 10% 23%',
370
- '--ring': '258 90% 66%',
371
- '--sidebar': '258 30% 8%'
372
- }
89
+ hex: '#8b5cf6',
90
+ variant: 'vibrant'
373
91
  },
374
92
  pink: {
375
93
  name: 'pink',
376
- hex: '#EC4899',
377
- light: {
378
- '--background': '330 55% 96%',
379
- '--foreground': '0 0% 12%',
380
- '--surface': '330 58% 94%',
381
- '--surface-foreground': '0 0% 12%',
382
- '--popover': '330 55% 97%',
383
- '--popover-foreground': '0 0% 12%',
384
- '--primary': '330 81% 60%',
385
- '--primary-foreground': '0 0% 100%',
386
- '--secondary': '330 55% 92%',
387
- '--secondary-foreground': '0 0% 12%',
388
- '--muted': '330 55% 92%',
389
- '--muted-foreground': '330 5% 42%',
390
- '--accent': '330 55% 92%',
391
- '--accent-foreground': '0 0% 12%',
392
- '--destructive': '0 84% 60%',
393
- '--border': '330 40% 87%',
394
- '--input': '330 40% 87%',
395
- '--ring': '330 81% 60%',
396
- '--sidebar': '330 58% 94%'
397
- },
398
- dark: {
399
- '--background': '330 50% 5%',
400
- '--foreground': '0 0% 93%',
401
- '--surface': '330 20% 18%',
402
- '--surface-foreground': '0 0% 93%',
403
- '--popover': '330 20% 18%',
404
- '--popover-foreground': '0 0% 93%',
405
- '--primary': '330 81% 60%',
406
- '--primary-foreground': '0 0% 100%',
407
- '--secondary': '330 20% 18%',
408
- '--secondary-foreground': '0 0% 93%',
409
- '--muted': '330 18% 20%',
410
- '--muted-foreground': '0 0% 70%',
411
- '--accent': '330 18% 20%',
412
- '--accent-foreground': '0 0% 93%',
413
- '--destructive': '0 84% 60%',
414
- '--border': '330 12% 20%',
415
- '--input': '330 10% 23%',
416
- '--ring': '330 81% 60%',
417
- '--sidebar': '330 30% 8%'
418
- }
94
+ hex: '#ec4899',
95
+ variant: 'vibrant'
419
96
  },
420
97
  sky: {
421
98
  name: 'sky',
422
- hex: '#0EA5E9',
423
- light: {
424
- '--background': '199 55% 96%',
425
- '--foreground': '0 0% 12%',
426
- '--surface': '199 58% 94%',
427
- '--surface-foreground': '0 0% 12%',
428
- '--popover': '199 55% 97%',
429
- '--popover-foreground': '0 0% 12%',
430
- '--primary': '199 89% 48%',
431
- '--primary-foreground': '0 0% 100%',
432
- '--secondary': '199 55% 92%',
433
- '--secondary-foreground': '0 0% 12%',
434
- '--muted': '199 55% 92%',
435
- '--muted-foreground': '199 5% 42%',
436
- '--accent': '199 55% 92%',
437
- '--accent-foreground': '0 0% 12%',
438
- '--destructive': '0 84% 60%',
439
- '--border': '199 40% 87%',
440
- '--input': '199 40% 87%',
441
- '--ring': '199 89% 48%',
442
- '--sidebar': '199 58% 94%'
443
- },
444
- dark: {
445
- '--background': '199 50% 5%',
446
- '--foreground': '0 0% 93%',
447
- '--surface': '199 20% 18%',
448
- '--surface-foreground': '0 0% 93%',
449
- '--popover': '199 20% 18%',
450
- '--popover-foreground': '0 0% 93%',
451
- '--primary': '199 89% 48%',
452
- '--primary-foreground': '0 0% 100%',
453
- '--secondary': '199 20% 18%',
454
- '--secondary-foreground': '0 0% 93%',
455
- '--muted': '199 18% 20%',
456
- '--muted-foreground': '0 0% 70%',
457
- '--accent': '199 18% 20%',
458
- '--accent-foreground': '0 0% 93%',
459
- '--destructive': '0 84% 60%',
460
- '--border': '199 12% 20%',
461
- '--input': '199 10% 23%',
462
- '--ring': '199 89% 48%',
463
- '--sidebar': '199 30% 8%'
464
- }
99
+ hex: '#0ea5e9',
100
+ variant: 'vibrant'
465
101
  },
466
102
  orange: {
467
103
  name: 'orange',
468
- hex: '#F97316',
469
- light: {
470
- '--background': '25 55% 96%',
471
- '--foreground': '0 0% 12%',
472
- '--surface': '25 58% 94%',
473
- '--surface-foreground': '0 0% 12%',
474
- '--popover': '25 55% 97%',
475
- '--popover-foreground': '0 0% 12%',
476
- '--primary': '25 95% 53%',
477
- '--primary-foreground': '0 0% 100%',
478
- '--secondary': '25 55% 92%',
479
- '--secondary-foreground': '0 0% 12%',
480
- '--muted': '25 55% 92%',
481
- '--muted-foreground': '25 5% 42%',
482
- '--accent': '25 55% 92%',
483
- '--accent-foreground': '0 0% 12%',
484
- '--destructive': '0 84% 60%',
485
- '--border': '25 40% 87%',
486
- '--input': '25 40% 87%',
487
- '--ring': '25 95% 53%',
488
- '--sidebar': '25 58% 94%'
489
- },
490
- dark: {
491
- '--background': '25 50% 5%',
492
- '--foreground': '0 0% 93%',
493
- '--surface': '25 20% 18%',
494
- '--surface-foreground': '0 0% 93%',
495
- '--popover': '25 20% 18%',
496
- '--popover-foreground': '0 0% 93%',
497
- '--primary': '25 95% 53%',
498
- '--primary-foreground': '0 0% 100%',
499
- '--secondary': '25 20% 18%',
500
- '--secondary-foreground': '0 0% 93%',
501
- '--muted': '25 18% 20%',
502
- '--muted-foreground': '0 0% 70%',
503
- '--accent': '25 18% 20%',
504
- '--accent-foreground': '0 0% 93%',
505
- '--destructive': '0 84% 60%',
506
- '--border': '25 12% 20%',
507
- '--input': '25 10% 23%',
508
- '--ring': '25 95% 53%',
509
- '--sidebar': '25 30% 8%'
510
- }
104
+ hex: '#f97316',
105
+ variant: 'vibrant'
511
106
  },
512
107
  mint: {
513
108
  name: 'mint',
514
- hex: '#14B8A6',
515
- light: {
516
- '--background': '173 55% 96%',
517
- '--foreground': '0 0% 12%',
518
- '--surface': '173 58% 94%',
519
- '--surface-foreground': '0 0% 12%',
520
- '--popover': '173 55% 97%',
521
- '--popover-foreground': '0 0% 12%',
522
- '--primary': '173 80% 40%',
523
- '--primary-foreground': '0 0% 100%',
524
- '--secondary': '173 55% 92%',
525
- '--secondary-foreground': '0 0% 12%',
526
- '--muted': '173 55% 92%',
527
- '--muted-foreground': '173 5% 42%',
528
- '--accent': '173 55% 92%',
529
- '--accent-foreground': '0 0% 12%',
530
- '--destructive': '0 84% 60%',
531
- '--border': '173 40% 87%',
532
- '--input': '173 40% 87%',
533
- '--ring': '173 80% 40%',
534
- '--sidebar': '173 58% 94%'
535
- },
536
- dark: {
537
- '--background': '173 50% 5%',
538
- '--foreground': '0 0% 93%',
539
- '--surface': '173 20% 18%',
540
- '--surface-foreground': '0 0% 93%',
541
- '--popover': '173 20% 18%',
542
- '--popover-foreground': '0 0% 93%',
543
- '--primary': '173 80% 40%',
544
- '--primary-foreground': '0 0% 100%',
545
- '--secondary': '173 20% 18%',
546
- '--secondary-foreground': '0 0% 93%',
547
- '--muted': '173 18% 20%',
548
- '--muted-foreground': '0 0% 70%',
549
- '--accent': '173 18% 20%',
550
- '--accent-foreground': '0 0% 93%',
551
- '--destructive': '0 84% 60%',
552
- '--border': '173 12% 20%',
553
- '--input': '173 10% 23%',
554
- '--ring': '173 80% 40%',
555
- '--sidebar': '173 30% 8%'
556
- }
109
+ hex: '#14b8a6',
110
+ variant: 'vibrant'
557
111
  },
558
112
  oxy: {
559
113
  name: 'oxy',
560
114
  hex: '#c46ede',
561
- light: {
562
- '--background': '277 55% 96%',
563
- '--foreground': '0 0% 12%',
564
- '--surface': '277 58% 94%',
565
- '--surface-foreground': '0 0% 12%',
566
- '--popover': '277 55% 97%',
567
- '--popover-foreground': '0 0% 12%',
568
- '--primary': '277 66% 56%',
569
- '--primary-foreground': '0 0% 100%',
570
- '--secondary': '277 55% 92%',
571
- '--secondary-foreground': '0 0% 12%',
572
- '--muted': '277 55% 92%',
573
- '--muted-foreground': '277 5% 42%',
574
- '--accent': '277 55% 92%',
575
- '--accent-foreground': '0 0% 12%',
576
- '--destructive': '0 84% 60%',
577
- '--border': '277 40% 87%',
578
- '--input': '277 40% 87%',
579
- '--ring': '277 66% 56%',
580
- '--sidebar': '277 58% 94%'
581
- },
582
- dark: {
583
- '--background': '277 50% 5%',
584
- '--foreground': '0 0% 93%',
585
- '--surface': '277 20% 18%',
586
- '--surface-foreground': '0 0% 93%',
587
- '--popover': '277 20% 18%',
588
- '--popover-foreground': '0 0% 93%',
589
- '--primary': '277 66% 56%',
590
- '--primary-foreground': '0 0% 100%',
591
- '--secondary': '277 20% 18%',
592
- '--secondary-foreground': '0 0% 93%',
593
- '--muted': '277 18% 20%',
594
- '--muted-foreground': '0 0% 70%',
595
- '--accent': '277 18% 20%',
596
- '--accent-foreground': '0 0% 93%',
597
- '--destructive': '0 84% 60%',
598
- '--border': '277 12% 20%',
599
- '--input': '277 10% 23%',
600
- '--ring': '277 66% 56%',
601
- '--sidebar': '277 30% 8%'
602
- }
115
+ variant: 'vibrant'
603
116
  },
604
117
  faircoin: {
605
118
  name: 'faircoin',
606
119
  hex: '#9ffb50',
607
- light: {
608
- '--background': '92 55% 96%',
609
- '--foreground': '0 0% 12%',
610
- '--surface': '92 58% 94%',
611
- '--surface-foreground': '0 0% 12%',
612
- '--popover': '92 55% 97%',
613
- '--popover-foreground': '0 0% 12%',
614
- '--primary': '92 90% 25%',
615
- '--primary-foreground': '0 0% 100%',
616
- '--secondary': '92 55% 92%',
617
- '--secondary-foreground': '0 0% 12%',
618
- '--muted': '92 55% 92%',
619
- '--muted-foreground': '92 5% 40%',
620
- '--accent': '92 55% 92%',
621
- '--accent-foreground': '0 0% 12%',
622
- '--destructive': '0 84% 60%',
623
- '--border': '92 40% 87%',
624
- '--input': '92 40% 87%',
625
- '--ring': '92 90% 25%',
626
- '--sidebar': '92 58% 94%'
627
- },
628
- dark: {
629
- '--background': '69 54% 8%',
630
- '--foreground': '0 0% 93%',
631
- '--surface': '69 30% 13%',
632
- '--surface-foreground': '0 0% 93%',
633
- '--popover': '69 30% 13%',
634
- '--popover-foreground': '0 0% 93%',
635
- '--primary': '92 96% 65%',
636
- '--primary-foreground': '0 0% 0%',
637
- '--secondary': '69 20% 15%',
638
- '--secondary-foreground': '0 0% 93%',
639
- '--muted': '69 18% 16%',
640
- '--muted-foreground': '0 0% 46%',
641
- '--accent': '69 18% 16%',
642
- '--accent-foreground': '0 0% 93%',
643
- '--destructive': '0 84% 60%',
644
- '--border': '69 20% 18%',
645
- '--input': '69 15% 20%',
646
- '--ring': '92 96% 65%',
647
- '--sidebar': '69 40% 6%'
648
- }
120
+ variant: 'vibrant'
649
121
  }
650
122
  };
651
123
  //# sourceMappingURL=color-presets.js.map