@tamagui/themes 2.7.7 → 3.0.0-beta.1093.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 (426) hide show
  1. package/dist/cjs/builder.cjs +313 -0
  2. package/dist/cjs/builder.native.cjs +331 -0
  3. package/dist/cjs/builder.native.js +333 -0
  4. package/dist/cjs/builder.native.js.map +1 -0
  5. package/dist/cjs/generated-v5-subtle.cjs +7186 -538
  6. package/dist/cjs/generated-v5-subtle.native.cjs +7220 -0
  7. package/dist/cjs/generated-v5-subtle.native.js +7203 -556
  8. package/dist/cjs/generated-v5-subtle.native.js.map +1 -1
  9. package/dist/cjs/generated-v5.cjs +7204 -538
  10. package/dist/cjs/generated-v5.native.cjs +7238 -0
  11. package/dist/cjs/generated-v5.native.js +7221 -556
  12. package/dist/cjs/generated-v5.native.js.map +1 -1
  13. package/dist/cjs/generated.cjs +1333 -0
  14. package/dist/cjs/generated.native.cjs +1352 -0
  15. package/dist/cjs/generated.native.js +1354 -0
  16. package/dist/cjs/generated.native.js.map +1 -0
  17. package/dist/cjs/index.cjs +22 -19
  18. package/dist/cjs/index.native.cjs +32 -0
  19. package/dist/cjs/index.native.js +23 -19
  20. package/dist/cjs/index.native.js.map +1 -1
  21. package/dist/cjs/tailwind-colors.cjs +313 -0
  22. package/dist/cjs/tailwind-colors.native.cjs +315 -0
  23. package/dist/cjs/tailwind-colors.native.js +317 -0
  24. package/dist/cjs/tailwind-colors.native.js.map +1 -0
  25. package/dist/cjs/themes.generate.cjs +24 -0
  26. package/dist/cjs/themes.generate.native.cjs +26 -0
  27. package/dist/cjs/themes.generate.native.js +28 -0
  28. package/dist/cjs/themes.generate.native.js.map +1 -0
  29. package/dist/cjs/tokens.cjs +38 -152
  30. package/dist/cjs/tokens.native.cjs +52 -0
  31. package/dist/cjs/tokens.native.js +39 -159
  32. package/dist/cjs/tokens.native.js.map +1 -1
  33. package/dist/cjs/utils.cjs +19 -35
  34. package/dist/cjs/utils.native.cjs +33 -0
  35. package/dist/cjs/utils.native.js +20 -38
  36. package/dist/cjs/utils.native.js.map +1 -1
  37. package/dist/cjs/v5-color-scales.cjs +24 -0
  38. package/dist/cjs/v5-color-scales.generated.cjs +385 -0
  39. package/dist/cjs/v5-color-scales.generated.native.cjs +387 -0
  40. package/dist/cjs/v5-color-scales.generated.native.js +389 -0
  41. package/dist/cjs/v5-color-scales.generated.native.js.map +1 -0
  42. package/dist/cjs/v5-color-scales.native.cjs +26 -0
  43. package/dist/cjs/v5-color-scales.native.js +28 -0
  44. package/dist/cjs/v5-color-scales.native.js.map +1 -0
  45. package/dist/cjs/v5-subtle.cjs +15 -26
  46. package/dist/cjs/v5-subtle.native.cjs +30 -0
  47. package/dist/cjs/v5-subtle.native.js +15 -25
  48. package/dist/cjs/v5-subtle.native.js.map +1 -1
  49. package/dist/cjs/v5-tokens.cjs +75 -79
  50. package/dist/cjs/v5-tokens.native.cjs +105 -0
  51. package/dist/cjs/v5-tokens.native.js +79 -82
  52. package/dist/cjs/v5-tokens.native.js.map +1 -1
  53. package/dist/cjs/v5.cjs +15 -23
  54. package/dist/cjs/v5.native.cjs +30 -0
  55. package/dist/cjs/v5.native.js +15 -22
  56. package/dist/cjs/v5.native.js.map +1 -1
  57. package/dist/esm/builder.mjs +277 -0
  58. package/dist/esm/builder.mjs.map +1 -0
  59. package/dist/esm/builder.native.js +293 -0
  60. package/dist/esm/builder.native.js.map +1 -0
  61. package/dist/esm/generated-v5-subtle.mjs +7172 -521
  62. package/dist/esm/generated-v5-subtle.mjs.map +1 -1
  63. package/dist/esm/generated-v5-subtle.native.js +7189 -540
  64. package/dist/esm/generated-v5-subtle.native.js.map +1 -1
  65. package/dist/esm/generated-v5.mjs +7190 -521
  66. package/dist/esm/generated-v5.mjs.map +1 -1
  67. package/dist/esm/generated-v5.native.js +7207 -540
  68. package/dist/esm/generated-v5.native.js.map +1 -1
  69. package/dist/esm/generated.mjs +1310 -0
  70. package/dist/esm/generated.mjs.map +1 -0
  71. package/dist/esm/generated.native.js +1327 -0
  72. package/dist/esm/generated.native.js.map +1 -0
  73. package/dist/esm/index.mjs +4 -9
  74. package/dist/esm/index.native.js +4 -9
  75. package/dist/esm/tailwind-colors.mjs +293 -0
  76. package/dist/esm/tailwind-colors.mjs.map +1 -0
  77. package/dist/esm/tailwind-colors.native.js +293 -0
  78. package/dist/esm/tailwind-colors.native.js.map +1 -0
  79. package/dist/esm/themes.generate.mjs +3 -0
  80. package/dist/esm/themes.generate.native.js +3 -0
  81. package/dist/esm/tokens.mjs +25 -129
  82. package/dist/esm/tokens.mjs.map +1 -1
  83. package/dist/esm/tokens.native.js +25 -136
  84. package/dist/esm/tokens.native.js.map +1 -1
  85. package/dist/esm/utils.mjs +9 -17
  86. package/dist/esm/utils.mjs.map +1 -1
  87. package/dist/esm/utils.native.js +9 -20
  88. package/dist/esm/utils.native.js.map +1 -1
  89. package/dist/esm/v5-color-scales.generated.mjs +365 -0
  90. package/dist/esm/v5-color-scales.generated.mjs.map +1 -0
  91. package/dist/esm/v5-color-scales.generated.native.js +365 -0
  92. package/dist/esm/v5-color-scales.generated.native.js.map +1 -0
  93. package/dist/esm/v5-color-scales.mjs +3 -0
  94. package/dist/esm/v5-color-scales.native.js +3 -0
  95. package/dist/esm/v5-subtle.mjs +2 -6
  96. package/dist/esm/v5-subtle.native.js +2 -6
  97. package/dist/esm/v5-tokens.mjs +57 -57
  98. package/dist/esm/v5-tokens.mjs.map +1 -1
  99. package/dist/esm/v5-tokens.native.js +61 -61
  100. package/dist/esm/v5-tokens.native.js.map +1 -1
  101. package/dist/esm/v5.mjs +2 -5
  102. package/dist/esm/v5.native.js +2 -5
  103. package/package.json +54 -44
  104. package/src/builder.ts +344 -0
  105. package/src/generated-v5-subtle.ts +6062 -705
  106. package/src/generated-v5.ts +6062 -705
  107. package/src/generated.ts +1474 -0
  108. package/src/index.ts +3 -0
  109. package/src/tailwind-colors.ts +292 -0
  110. package/src/themes.generate.ts +1 -0
  111. package/src/tokens.ts +29 -0
  112. package/src/utils.ts +0 -42
  113. package/src/v5-color-scales.generated.ts +366 -0
  114. package/src/v5-color-scales.ts +1 -0
  115. package/src/v5-subtle.tsx +2 -4
  116. package/src/v5-tokens.ts +32 -38
  117. package/src/v5.tsx +2 -3
  118. package/types/builder.d.ts +398 -0
  119. package/types/builder.d.ts.map +1 -0
  120. package/types/generated-v5-subtle.d.ts.map +1 -1
  121. package/types/generated-v5.d.ts.map +1 -1
  122. package/types/generated.d.ts +35 -0
  123. package/types/generated.d.ts.map +1 -0
  124. package/types/index.d.ts +3 -8
  125. package/types/index.d.ts.map +1 -1
  126. package/types/tailwind-colors.d.ts +291 -0
  127. package/types/tailwind-colors.d.ts.map +1 -0
  128. package/types/themes.generate.d.ts +2 -0
  129. package/types/themes.generate.d.ts.map +1 -0
  130. package/types/tokens.d.ts +617 -1303
  131. package/types/tokens.d.ts.map +1 -1
  132. package/types/utils.d.ts +0 -19
  133. package/types/utils.d.ts.map +1 -1
  134. package/types/v5-color-scales.d.ts +2 -0
  135. package/types/v5-color-scales.d.ts.map +1 -0
  136. package/types/v5-color-scales.generated.d.ts +51 -0
  137. package/types/v5-color-scales.generated.d.ts.map +1 -0
  138. package/types/v5-subtle.d.ts +0 -4
  139. package/types/v5-subtle.d.ts.map +1 -1
  140. package/types/v5-tokens.d.ts +95 -101
  141. package/types/v5-tokens.d.ts.map +1 -1
  142. package/types/v5.d.ts +0 -3
  143. package/types/v5.d.ts.map +1 -1
  144. package/.turbo/turbo-build.log +0 -2
  145. package/dist/cjs/componentThemeDefinitions.cjs +0 -126
  146. package/dist/cjs/componentThemeDefinitions.native.js +0 -129
  147. package/dist/cjs/componentThemeDefinitions.native.js.map +0 -1
  148. package/dist/cjs/generated-new.cjs +0 -2025
  149. package/dist/cjs/generated-new.native.js +0 -2047
  150. package/dist/cjs/generated-new.native.js.map +0 -1
  151. package/dist/cjs/generated-v3.cjs +0 -1103
  152. package/dist/cjs/generated-v3.native.js +0 -1125
  153. package/dist/cjs/generated-v3.native.js.map +0 -1
  154. package/dist/cjs/generated-v4-tamagui.cjs +0 -937
  155. package/dist/cjs/generated-v4-tamagui.native.js +0 -959
  156. package/dist/cjs/generated-v4-tamagui.native.js.map +0 -1
  157. package/dist/cjs/generated-v4.cjs +0 -395
  158. package/dist/cjs/generated-v4.native.js +0 -417
  159. package/dist/cjs/generated-v4.native.js.map +0 -1
  160. package/dist/cjs/helpers.cjs +0 -36
  161. package/dist/cjs/helpers.native.js +0 -41
  162. package/dist/cjs/helpers.native.js.map +0 -1
  163. package/dist/cjs/opacify.cjs +0 -121
  164. package/dist/cjs/opacify.native.js +0 -129
  165. package/dist/cjs/opacify.native.js.map +0 -1
  166. package/dist/cjs/palettes.cjs +0 -54
  167. package/dist/cjs/palettes.native.js +0 -65
  168. package/dist/cjs/palettes.native.js.map +0 -1
  169. package/dist/cjs/shadows.cjs +0 -45
  170. package/dist/cjs/shadows.native.js +0 -48
  171. package/dist/cjs/shadows.native.js.map +0 -1
  172. package/dist/cjs/subtleChildrenThemes.cjs +0 -68
  173. package/dist/cjs/subtleChildrenThemes.native.js +0 -76
  174. package/dist/cjs/subtleChildrenThemes.native.js.map +0 -1
  175. package/dist/cjs/templates.cjs +0 -120
  176. package/dist/cjs/templates.native.js +0 -123
  177. package/dist/cjs/templates.native.js.map +0 -1
  178. package/dist/cjs/themes-new.cjs +0 -88
  179. package/dist/cjs/themes-new.native.js +0 -90
  180. package/dist/cjs/themes-new.native.js.map +0 -1
  181. package/dist/cjs/themes-old.cjs +0 -292
  182. package/dist/cjs/themes-old.native.js +0 -305
  183. package/dist/cjs/themes-old.native.js.map +0 -1
  184. package/dist/cjs/themes.cjs +0 -28
  185. package/dist/cjs/themes.native.js +0 -31
  186. package/dist/cjs/themes.native.js.map +0 -1
  187. package/dist/cjs/v3-themes.cjs +0 -475
  188. package/dist/cjs/v3-themes.native.js +0 -489
  189. package/dist/cjs/v3-themes.native.js.map +0 -1
  190. package/dist/cjs/v3-tokens.cjs +0 -103
  191. package/dist/cjs/v3-tokens.native.js +0 -110
  192. package/dist/cjs/v3-tokens.native.js.map +0 -1
  193. package/dist/cjs/v3.cjs +0 -54
  194. package/dist/cjs/v3.native.js +0 -57
  195. package/dist/cjs/v3.native.js.map +0 -1
  196. package/dist/cjs/v4-default.cjs +0 -169
  197. package/dist/cjs/v4-default.native.js +0 -172
  198. package/dist/cjs/v4-default.native.js.map +0 -1
  199. package/dist/cjs/v4-tamagui.cjs +0 -239
  200. package/dist/cjs/v4-tamagui.native.js +0 -245
  201. package/dist/cjs/v4-tamagui.native.js.map +0 -1
  202. package/dist/cjs/v4-tokens.cjs +0 -103
  203. package/dist/cjs/v4-tokens.native.js +0 -110
  204. package/dist/cjs/v4-tokens.native.js.map +0 -1
  205. package/dist/cjs/v4.cjs +0 -34
  206. package/dist/cjs/v4.native.js +0 -37
  207. package/dist/cjs/v4.native.js.map +0 -1
  208. package/dist/cjs/v5-templates.cjs +0 -119
  209. package/dist/cjs/v5-templates.native.js +0 -128
  210. package/dist/cjs/v5-templates.native.js.map +0 -1
  211. package/dist/cjs/v5-themes-subtle.cjs +0 -39
  212. package/dist/cjs/v5-themes-subtle.native.js +0 -42
  213. package/dist/cjs/v5-themes-subtle.native.js.map +0 -1
  214. package/dist/cjs/v5-themes.cjs +0 -415
  215. package/dist/cjs/v5-themes.native.js +0 -470
  216. package/dist/cjs/v5-themes.native.js.map +0 -1
  217. package/dist/esm/componentThemeDefinitions.mjs +0 -100
  218. package/dist/esm/componentThemeDefinitions.mjs.map +0 -1
  219. package/dist/esm/componentThemeDefinitions.native.js +0 -100
  220. package/dist/esm/componentThemeDefinitions.native.js.map +0 -1
  221. package/dist/esm/generated-new.mjs +0 -1999
  222. package/dist/esm/generated-new.mjs.map +0 -1
  223. package/dist/esm/generated-new.native.js +0 -2018
  224. package/dist/esm/generated-new.native.js.map +0 -1
  225. package/dist/esm/generated-v3.mjs +0 -1077
  226. package/dist/esm/generated-v3.mjs.map +0 -1
  227. package/dist/esm/generated-v3.native.js +0 -1096
  228. package/dist/esm/generated-v3.native.js.map +0 -1
  229. package/dist/esm/generated-v4-tamagui.mjs +0 -911
  230. package/dist/esm/generated-v4-tamagui.mjs.map +0 -1
  231. package/dist/esm/generated-v4-tamagui.native.js +0 -930
  232. package/dist/esm/generated-v4-tamagui.native.js.map +0 -1
  233. package/dist/esm/generated-v4.mjs +0 -369
  234. package/dist/esm/generated-v4.mjs.map +0 -1
  235. package/dist/esm/generated-v4.native.js +0 -388
  236. package/dist/esm/generated-v4.native.js.map +0 -1
  237. package/dist/esm/helpers.mjs +0 -9
  238. package/dist/esm/helpers.mjs.map +0 -1
  239. package/dist/esm/helpers.native.js +0 -11
  240. package/dist/esm/helpers.native.js.map +0 -1
  241. package/dist/esm/index.js +0 -9
  242. package/dist/esm/index.js.map +0 -1
  243. package/dist/esm/index.mjs.map +0 -1
  244. package/dist/esm/index.native.js.map +0 -1
  245. package/dist/esm/opacify.mjs +0 -95
  246. package/dist/esm/opacify.mjs.map +0 -1
  247. package/dist/esm/opacify.native.js +0 -100
  248. package/dist/esm/opacify.native.js.map +0 -1
  249. package/dist/esm/palettes.mjs +0 -29
  250. package/dist/esm/palettes.mjs.map +0 -1
  251. package/dist/esm/palettes.native.js +0 -37
  252. package/dist/esm/palettes.native.js.map +0 -1
  253. package/dist/esm/shadows.mjs +0 -20
  254. package/dist/esm/shadows.mjs.map +0 -1
  255. package/dist/esm/shadows.native.js +0 -20
  256. package/dist/esm/shadows.native.js.map +0 -1
  257. package/dist/esm/subtleChildrenThemes.mjs +0 -42
  258. package/dist/esm/subtleChildrenThemes.mjs.map +0 -1
  259. package/dist/esm/subtleChildrenThemes.native.js +0 -47
  260. package/dist/esm/subtleChildrenThemes.native.js.map +0 -1
  261. package/dist/esm/templates.mjs +0 -94
  262. package/dist/esm/templates.mjs.map +0 -1
  263. package/dist/esm/templates.native.js +0 -94
  264. package/dist/esm/templates.native.js.map +0 -1
  265. package/dist/esm/themes-new.mjs +0 -63
  266. package/dist/esm/themes-new.mjs.map +0 -1
  267. package/dist/esm/themes-new.native.js +0 -62
  268. package/dist/esm/themes-new.native.js.map +0 -1
  269. package/dist/esm/themes-old.mjs +0 -267
  270. package/dist/esm/themes-old.mjs.map +0 -1
  271. package/dist/esm/themes-old.native.js +0 -277
  272. package/dist/esm/themes-old.native.js.map +0 -1
  273. package/dist/esm/themes.mjs +0 -3
  274. package/dist/esm/themes.mjs.map +0 -1
  275. package/dist/esm/themes.native.js +0 -3
  276. package/dist/esm/themes.native.js.map +0 -1
  277. package/dist/esm/v3-themes.mjs +0 -445
  278. package/dist/esm/v3-themes.mjs.map +0 -1
  279. package/dist/esm/v3-themes.native.js +0 -456
  280. package/dist/esm/v3-themes.native.js.map +0 -1
  281. package/dist/esm/v3-tokens.mjs +0 -72
  282. package/dist/esm/v3-tokens.mjs.map +0 -1
  283. package/dist/esm/v3-tokens.native.js +0 -76
  284. package/dist/esm/v3-tokens.native.js.map +0 -1
  285. package/dist/esm/v3.mjs +0 -12
  286. package/dist/esm/v3.mjs.map +0 -1
  287. package/dist/esm/v3.native.js +0 -12
  288. package/dist/esm/v3.native.js.map +0 -1
  289. package/dist/esm/v4-default.mjs +0 -133
  290. package/dist/esm/v4-default.mjs.map +0 -1
  291. package/dist/esm/v4-default.native.js +0 -133
  292. package/dist/esm/v4-default.native.js.map +0 -1
  293. package/dist/esm/v4-tamagui.mjs +0 -203
  294. package/dist/esm/v4-tamagui.mjs.map +0 -1
  295. package/dist/esm/v4-tamagui.native.js +0 -206
  296. package/dist/esm/v4-tamagui.native.js.map +0 -1
  297. package/dist/esm/v4-tokens.mjs +0 -72
  298. package/dist/esm/v4-tokens.mjs.map +0 -1
  299. package/dist/esm/v4-tokens.native.js +0 -76
  300. package/dist/esm/v4-tokens.native.js.map +0 -1
  301. package/dist/esm/v4.mjs +0 -6
  302. package/dist/esm/v4.mjs.map +0 -1
  303. package/dist/esm/v4.native.js +0 -6
  304. package/dist/esm/v4.native.js.map +0 -1
  305. package/dist/esm/v5-subtle.mjs.map +0 -1
  306. package/dist/esm/v5-subtle.native.js.map +0 -1
  307. package/dist/esm/v5-templates.mjs +0 -94
  308. package/dist/esm/v5-templates.mjs.map +0 -1
  309. package/dist/esm/v5-templates.native.js +0 -100
  310. package/dist/esm/v5-templates.native.js.map +0 -1
  311. package/dist/esm/v5-themes-subtle.mjs +0 -13
  312. package/dist/esm/v5-themes-subtle.mjs.map +0 -1
  313. package/dist/esm/v5-themes-subtle.native.js +0 -13
  314. package/dist/esm/v5-themes-subtle.native.js.map +0 -1
  315. package/dist/esm/v5-themes.mjs +0 -374
  316. package/dist/esm/v5-themes.mjs.map +0 -1
  317. package/dist/esm/v5-themes.native.js +0 -426
  318. package/dist/esm/v5-themes.native.js.map +0 -1
  319. package/dist/esm/v5.mjs.map +0 -1
  320. package/dist/esm/v5.native.js.map +0 -1
  321. package/src/componentThemeDefinitions.tsx +0 -129
  322. package/src/generated-new.ts +0 -2571
  323. package/src/generated-v3.ts +0 -1826
  324. package/src/generated-v4-tamagui.ts +0 -2200
  325. package/src/generated-v4.ts +0 -1004
  326. package/src/helpers.ts +0 -44
  327. package/src/index.tsx +0 -8
  328. package/src/opacify.ts +0 -125
  329. package/src/palettes.tsx +0 -91
  330. package/src/shadows.tsx +0 -19
  331. package/src/subtleChildrenThemes.ts +0 -54
  332. package/src/templates.tsx +0 -104
  333. package/src/themes-new.ts +0 -74
  334. package/src/themes-old.tsx +0 -378
  335. package/src/themes.tsx +0 -1
  336. package/src/tokens.tsx +0 -199
  337. package/src/v3-themes.ts +0 -650
  338. package/src/v3-tokens.ts +0 -103
  339. package/src/v3.tsx +0 -12
  340. package/src/v4-default.ts +0 -191
  341. package/src/v4-tamagui.ts +0 -287
  342. package/src/v4-tokens.ts +0 -105
  343. package/src/v4.tsx +0 -4
  344. package/src/v5-templates.ts +0 -126
  345. package/src/v5-themes-subtle.ts +0 -18
  346. package/src/v5-themes.ts +0 -626
  347. package/tests/v5-themes.test.ts +0 -215
  348. package/tsconfig.json +0 -43
  349. package/types/componentThemeDefinitions.d.ts +0 -771
  350. package/types/componentThemeDefinitions.d.ts.map +0 -1
  351. package/types/generated-new.d.ts +0 -135
  352. package/types/generated-new.d.ts.map +0 -1
  353. package/types/generated-v3.d.ts +0 -144
  354. package/types/generated-v3.d.ts.map +0 -1
  355. package/types/generated-v4-tamagui.d.ts +0 -190
  356. package/types/generated-v4-tamagui.d.ts.map +0 -1
  357. package/types/generated-v4.d.ts +0 -137
  358. package/types/generated-v4.d.ts.map +0 -1
  359. package/types/helpers.d.ts +0 -24
  360. package/types/helpers.d.ts.map +0 -1
  361. package/types/opacify.d.ts +0 -9
  362. package/types/opacify.d.ts.map +0 -1
  363. package/types/palettes.d.ts +0 -21
  364. package/types/palettes.d.ts.map +0 -1
  365. package/types/shadows.d.ts +0 -15
  366. package/types/shadows.d.ts.map +0 -1
  367. package/types/subtleChildrenThemes.d.ts +0 -305
  368. package/types/subtleChildrenThemes.d.ts.map +0 -1
  369. package/types/templates.d.ts +0 -155
  370. package/types/templates.d.ts.map +0 -1
  371. package/types/themes-new.d.ts +0 -42243
  372. package/types/themes-new.d.ts.map +0 -1
  373. package/types/themes-old.d.ts +0 -51411
  374. package/types/themes-old.d.ts.map +0 -1
  375. package/types/themes.d.ts +0 -2
  376. package/types/themes.d.ts.map +0 -1
  377. package/types/v3-themes.d.ts +0 -16304
  378. package/types/v3-themes.d.ts.map +0 -1
  379. package/types/v3-tokens.d.ts +0 -184
  380. package/types/v3-tokens.d.ts.map +0 -1
  381. package/types/v3.d.ts +0 -11
  382. package/types/v3.d.ts.map +0 -1
  383. package/types/v4-default.d.ts +0 -274
  384. package/types/v4-default.d.ts.map +0 -1
  385. package/types/v4-tamagui.d.ts +0 -195
  386. package/types/v4-tamagui.d.ts.map +0 -1
  387. package/types/v4-tokens.d.ts +0 -184
  388. package/types/v4-tokens.d.ts.map +0 -1
  389. package/types/v4.d.ts +0 -5
  390. package/types/v4.d.ts.map +0 -1
  391. package/types/v5-templates.d.ts +0 -42
  392. package/types/v5-templates.d.ts.map +0 -1
  393. package/types/v5-themes-subtle.d.ts +0 -250
  394. package/types/v5-themes-subtle.d.ts.map +0 -1
  395. package/types/v5-themes.d.ts +0 -752
  396. package/types/v5-themes.d.ts.map +0 -1
  397. package/v3/index.cjs +0 -2
  398. package/v3/index.js +0 -2
  399. package/v3/index.native.cjs +0 -2
  400. package/v3/index.native.js +0 -2
  401. package/v3-themes/index.cjs +0 -2
  402. package/v3-themes/index.js +0 -2
  403. package/v3-themes/index.native.cjs +0 -2
  404. package/v3-themes/index.native.js +0 -2
  405. package/v3-themes.cjs +0 -1
  406. package/v3-themes.d.ts +0 -1
  407. package/v3.cjs +0 -1
  408. package/v3.d.ts +0 -1
  409. package/v4/index.cjs +0 -2
  410. package/v4/index.js +0 -2
  411. package/v4/index.native.cjs +0 -2
  412. package/v4/index.native.js +0 -2
  413. package/v4.cjs +0 -1
  414. package/v4.d.ts +0 -1
  415. package/v5/index.cjs +0 -2
  416. package/v5/index.js +0 -2
  417. package/v5/index.native.cjs +0 -2
  418. package/v5/index.native.js +0 -2
  419. package/v5-subtle/index.cjs +0 -2
  420. package/v5-subtle/index.js +0 -2
  421. package/v5-subtle/index.native.cjs +0 -2
  422. package/v5-subtle/index.native.js +0 -2
  423. package/v5-subtle.cjs +0 -1
  424. package/v5-subtle.d.ts +0 -1
  425. package/v5.cjs +0 -1
  426. package/v5.d.ts +0 -1
@@ -1,76 +1,76 @@
1
1
  import { sizeToSpace } from "./utils.native.js";
2
+
2
3
  var size = {
3
- $0: 0,
4
- "$0.25": 2,
5
- "$0.5": 4,
6
- "$0.75": 8,
7
- $1: 20,
8
- "$1.5": 24,
9
- $2: 28,
10
- "$2.5": 32,
11
- $3: 36,
12
- "$3.5": 40,
13
- $4: 44,
14
- $true: 44,
15
- "$4.5": 48,
16
- $5: 52,
17
- $6: 64,
18
- $7: 74,
19
- $8: 84,
20
- $9: 94,
21
- $10: 104,
22
- $11: 124,
23
- $12: 144,
24
- $13: 164,
25
- $14: 184,
26
- $15: 204,
27
- $16: 224,
28
- $17: 224,
29
- $18: 244,
30
- $19: 264,
31
- $20: 284
4
+ 0: 0,
5
+ "0-25": 2,
6
+ "0-5": 4,
7
+ "0-75": 8,
8
+ 1: 20,
9
+ "1-5": 24,
10
+ 2: 28,
11
+ "2-5": 32,
12
+ 3: 36,
13
+ "3-5": 40,
14
+ 4: 44,
15
+ "4-5": 48,
16
+ 5: 52,
17
+ 6: 64,
18
+ 7: 74,
19
+ 8: 84,
20
+ 9: 94,
21
+ 10: 104,
22
+ 11: 124,
23
+ 12: 144,
24
+ 13: 164,
25
+ 14: 184,
26
+ 15: 204,
27
+ 16: 224,
28
+ 17: 224,
29
+ 18: 244,
30
+ 19: 264,
31
+ 20: 284
32
32
  };
33
- var spaces = Object.entries(size).map(function (param) {
34
- var [k, v] = param;
35
- return [k, sizeToSpace(v)];
33
+ var spaces = Object.entries(size).map(function(param) {
34
+ var [k, v] = param;
35
+ return [k, sizeToSpace(v)];
36
36
  });
37
- var spacesNegative = spaces.slice(1).map(function (param) {
38
- var [k, v] = param;
39
- return [`-${k.slice(1)}`, -v];
37
+ var spacesNegative = spaces.slice(1).map(function(param) {
38
+ var [k, v] = param;
39
+ return [`-${k}`, -v];
40
40
  });
41
41
  var space = {
42
- ...Object.fromEntries(spaces),
43
- ...Object.fromEntries(spacesNegative)
42
+ ...Object.fromEntries(spaces),
43
+ ...Object.fromEntries(spacesNegative)
44
44
  };
45
45
  var zIndex = {
46
- 0: 0,
47
- 1: 100,
48
- 2: 200,
49
- 3: 300,
50
- 4: 400,
51
- 5: 500
46
+ 0: 0,
47
+ 1: 100,
48
+ 2: 200,
49
+ 3: 300,
50
+ 4: 400,
51
+ 5: 500
52
52
  };
53
53
  var radius = {
54
- 0: 0,
55
- 1: 3,
56
- 2: 5,
57
- 3: 7,
58
- 4: 9,
59
- true: 9,
60
- 5: 10,
61
- 6: 16,
62
- 7: 19,
63
- 8: 22,
64
- 9: 26,
65
- 10: 34,
66
- 11: 42,
67
- 12: 50
54
+ 0: 0,
55
+ 1: 3,
56
+ 2: 5,
57
+ 3: 7,
58
+ 4: 9,
59
+ 5: 10,
60
+ 6: 16,
61
+ 7: 19,
62
+ 8: 22,
63
+ 9: 26,
64
+ 10: 34,
65
+ 11: 42,
66
+ 12: 50
68
67
  };
69
68
  var tokens = {
70
- radius,
71
- zIndex,
72
- space,
73
- size
69
+ radius,
70
+ zIndex,
71
+ space,
72
+ size
74
73
  };
74
+
75
75
  export { radius, size, space, spaces, spacesNegative, tokens, zIndex };
76
76
  //# sourceMappingURL=v5-tokens.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["sizeToSpace","size","$0","$1","$2","$3","$4","$true","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14","$15","$16","$17","$18","$19","$20","spaces","Object","entries","map","param","k","v","spacesNegative","slice","space","fromEntries","zIndex","radius","true","tokens"],"sources":["v5-tokens.native.js"],"sourcesContent":["import { sizeToSpace } from \"./utils\";\nvar size = {\n $0: 0,\n \"$0.25\": 2,\n \"$0.5\": 4,\n \"$0.75\": 8,\n $1: 20,\n \"$1.5\": 24,\n $2: 28,\n \"$2.5\": 32,\n $3: 36,\n \"$3.5\": 40,\n $4: 44,\n $true: 44,\n \"$4.5\": 48,\n $5: 52,\n $6: 64,\n $7: 74,\n $8: 84,\n $9: 94,\n $10: 104,\n $11: 124,\n $12: 144,\n $13: 164,\n $14: 184,\n $15: 204,\n $16: 224,\n $17: 224,\n $18: 244,\n $19: 264,\n $20: 284\n};\nvar spaces = Object.entries(size).map(function(param) {\n var [k, v] = param;\n return [\n k,\n sizeToSpace(v)\n ];\n});\nvar spacesNegative = spaces.slice(1).map(function(param) {\n var [k, v] = param;\n return [\n `-${k.slice(1)}`,\n -v\n ];\n});\nvar space = {\n ...Object.fromEntries(spaces),\n ...Object.fromEntries(spacesNegative)\n};\nvar zIndex = {\n 0: 0,\n 1: 100,\n 2: 200,\n 3: 300,\n 4: 400,\n 5: 500\n};\nvar radius = {\n 0: 0,\n 1: 3,\n 2: 5,\n 3: 7,\n 4: 9,\n true: 9,\n 5: 10,\n 6: 16,\n 7: 19,\n 8: 22,\n 9: 26,\n 10: 34,\n 11: 42,\n 12: 50\n};\nvar tokens = {\n radius,\n zIndex,\n space,\n size\n};\nexport {\n radius,\n size,\n space,\n spaces,\n spacesNegative,\n tokens,\n zIndex\n};\n//# sourceMappingURL=v5-tokens.js.map\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mBAAS;AACrC,IAAIC,IAAI,GAAG;EACTC,EAAE,EAAE,CAAC;EACL,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACVC,EAAE,EAAE,EAAE;EACN,MAAM,EAAE,EAAE;EACVC,EAAE,EAAE,EAAE;EACN,MAAM,EAAE,EAAE;EACVC,EAAE,EAAE,EAAE;EACN,MAAM,EAAE,EAAE;EACVC,EAAE,EAAE,EAAE;EACNC,KAAK,EAAE,EAAE;EACT,MAAM,EAAE,EAAE;EACVC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE;AACP,CAAC;AACD,IAAIC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAACzB,IAAI,CAAC,CAAC0B,GAAG,CAAC,UAASC,KAAK,EAAE;EACpD,IAAI,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAGF,KAAK;EAClB,OAAO,CACLC,CAAC,EACD7B,WAAW,CAAC8B,CAAC,CAAC,CACf;AACH,CAAC,CAAC;AACF,IAAIC,cAAc,GAAGP,MAAM,CAACQ,KAAK,CAAC,CAAC,CAAC,CAACL,GAAG,CAAC,UAASC,KAAK,EAAE;EACvD,IAAI,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAGF,KAAK;EAClB,OAAO,CACL,IAAIC,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC,EAAE,EAChB,CAACF,CAAC,CACH;AACH,CAAC,CAAC;AACF,IAAIG,KAAK,GAAG;EACV,GAAGR,MAAM,CAACS,WAAW,CAACV,MAAM,CAAC;EAC7B,GAAGC,MAAM,CAACS,WAAW,CAACH,cAAc;AACtC,CAAC;AACD,IAAII,MAAM,GAAG;EACX,CAAC,EAAE,CAAC;EACJ,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,GAAG;EACN,CAAC,EAAE,GAAG;EACN,CAAC,EAAE;AACL,CAAC;AACD,IAAIC,MAAM,GAAG;EACX,CAAC,EAAE,CAAC;EACJ,CAAC,EAAE,CAAC;EACJ,CAAC,EAAE,CAAC;EACJ,CAAC,EAAE,CAAC;EACJ,CAAC,EAAE,CAAC;EACJC,IAAI,EAAE,CAAC;EACP,CAAC,EAAE,EAAE;EACL,CAAC,EAAE,EAAE;EACL,CAAC,EAAE,EAAE;EACL,CAAC,EAAE,EAAE;EACL,CAAC,EAAE,EAAE;EACL,EAAE,EAAE,EAAE;EACN,EAAE,EAAE,EAAE;EACN,EAAE,EAAE;AACN,CAAC;AACD,IAAIC,MAAM,GAAG;EACXF,MAAM;EACND,MAAM;EACNF,KAAK;EACLhC;AACF,CAAC;AACD,SACEmC,MAAM,EACNnC,IAAI,EACJgC,KAAK,EACLT,MAAM,EACNO,cAAc,EACdO,MAAM,EACNH,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"v5-tokens.native.js","names":[],"sources":["esm/v5-tokens.native.js"],"sourcesContent":["import { sizeToSpace } from \"./utils\";\nvar size = {\n 0: 0,\n \"0-25\": 2,\n \"0-5\": 4,\n \"0-75\": 8,\n 1: 20,\n \"1-5\": 24,\n 2: 28,\n \"2-5\": 32,\n 3: 36,\n \"3-5\": 40,\n 4: 44,\n \"4-5\": 48,\n 5: 52,\n 6: 64,\n 7: 74,\n 8: 84,\n 9: 94,\n 10: 104,\n 11: 124,\n 12: 144,\n 13: 164,\n 14: 184,\n 15: 204,\n 16: 224,\n 17: 224,\n 18: 244,\n 19: 264,\n 20: 284\n};\nvar spaces = Object.entries(size).map(function(param) {\n var [k, v] = param;\n return [\n k,\n sizeToSpace(v)\n ];\n});\nvar spacesNegative = spaces.slice(1).map(function(param) {\n var [k, v] = param;\n return [\n `-${k}`,\n -v\n ];\n});\nvar space = {\n ...Object.fromEntries(spaces),\n ...Object.fromEntries(spacesNegative)\n};\nvar zIndex = {\n 0: 0,\n 1: 100,\n 2: 200,\n 3: 300,\n 4: 400,\n 5: 500\n};\nvar radius = {\n 0: 0,\n 1: 3,\n 2: 5,\n 3: 7,\n 4: 9,\n 5: 10,\n 6: 16,\n 7: 19,\n 8: 22,\n 9: 26,\n 10: 34,\n 11: 42,\n 12: 50\n};\nvar tokens = {\n radius,\n zIndex,\n space,\n size\n};\nexport {\n radius,\n size,\n space,\n spaces,\n spacesNegative,\n tokens,\n zIndex\n};\n//# sourceMappingURL=v5-tokens.js.map\n"],"mappings":";;;AACA,IAAI,OAAO;CACT,GAAG;CACH,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,GAAG;CACH,OAAO;CACP,GAAG;CACH,OAAO;CACP,GAAG;CACH,OAAO;CACP,GAAG;CACH,OAAO;CACP,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AACA,IAAI,SAAS,OAAO,QAAQ,IAAI,CAAC,CAAC,IAAI,SAAS,OAAO;CACpD,IAAI,CAAC,GAAG,KAAK;CACb,OAAO,CACL,GACA,YAAY,CAAC,CACf;AACF,CAAC;AACD,IAAI,iBAAiB,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;CACvD,IAAI,CAAC,GAAG,KAAK;CACb,OAAO,CACL,IAAI,KACJ,CAAC,CACH;AACF,CAAC;AACD,IAAI,QAAQ;CACV,GAAG,OAAO,YAAY,MAAM;CAC5B,GAAG,OAAO,YAAY,cAAc;AACtC;AACA,IAAI,SAAS;CACX,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL;AACA,IAAI,SAAS;CACX,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AACA,IAAI,SAAS;CACX;CACA;CACA;CACA;AACF"}
package/dist/esm/v5.mjs CHANGED
@@ -1,7 +1,4 @@
1
- import { createThemes } from "@tamagui/theme-builder";
2
1
  import { themes } from "./generated-v5.mjs";
3
- import { v5Templates } from "./v5-templates.mjs";
4
- export * from "./v5-themes.mjs";
5
2
  import { tokens } from "./v5-tokens.mjs";
6
- export { createThemes, themes, tokens, v5Templates };
7
- //# sourceMappingURL=v5.mjs.map
3
+
4
+ export { themes, tokens };
@@ -1,7 +1,4 @@
1
- import { createThemes } from "@tamagui/theme-builder";
2
1
  import { themes } from "./generated-v5.native.js";
3
- import { v5Templates } from "./v5-templates.native.js";
4
- export * from "./v5-themes.native.js";
5
2
  import { tokens } from "./v5-tokens.native.js";
6
- export { createThemes, themes, tokens, v5Templates };
7
- //# sourceMappingURL=v5.native.js.map
3
+
4
+ export { themes, tokens };
package/package.json CHANGED
@@ -1,12 +1,29 @@
1
1
  {
2
2
  "name": "@tamagui/themes",
3
- "version": "2.7.7",
3
+ "version": "3.0.0-beta.1093.1",
4
+ "license": "MIT",
4
5
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
6
  "type": "module",
6
7
  "sideEffects": false,
7
- "main": "dist/cjs",
8
- "module": "dist/esm",
8
+ "main": "./dist/cjs/index.cjs",
9
+ "module": "./dist/esm/index.mjs",
10
+ "react-native": "./dist/esm/index.native.js",
9
11
  "types": "./types/index.d.ts",
12
+ "files": [
13
+ "src",
14
+ "types",
15
+ "dist",
16
+ "index.cjs",
17
+ "index.d.ts",
18
+ "builder"
19
+ ],
20
+ "tamagui-build": {
21
+ "outputs": [
22
+ "cjs",
23
+ "esm",
24
+ "types"
25
+ ]
26
+ },
10
27
  "exports": {
11
28
  "./package.json": "./package.json",
12
29
  ".": {
@@ -18,32 +35,14 @@
18
35
  "require": "./dist/cjs/index.cjs",
19
36
  "default": "./dist/esm/index.mjs"
20
37
  },
21
- "./v3": {
22
- "types": "./types/v3.d.ts",
23
- "react-native": "./dist/esm/v3.native.js",
24
- "browser": "./dist/esm/v3.mjs",
25
- "module": "./dist/esm/v3.mjs",
26
- "import": "./dist/esm/v3.mjs",
27
- "require": "./dist/cjs/v3.cjs",
28
- "default": "./dist/esm/v3.mjs"
29
- },
30
- "./v3-themes": {
31
- "types": "./types/v3-themes.d.ts",
32
- "react-native": "./dist/esm/v3-themes.native.js",
33
- "browser": "./dist/esm/v3-themes.mjs",
34
- "module": "./dist/esm/v3-themes.mjs",
35
- "import": "./dist/esm/v3-themes.mjs",
36
- "require": "./dist/cjs/v3-themes.cjs",
37
- "default": "./dist/esm/v3-themes.mjs"
38
- },
39
- "./v4": {
40
- "types": "./types/v4.d.ts",
41
- "react-native": "./dist/esm/v4.native.js",
42
- "browser": "./dist/esm/v4.mjs",
43
- "module": "./dist/esm/v4.mjs",
44
- "import": "./dist/esm/v4.mjs",
45
- "require": "./dist/cjs/v4.cjs",
46
- "default": "./dist/esm/v4.mjs"
38
+ "./builder": {
39
+ "types": "./types/builder.d.ts",
40
+ "react-native": "./dist/esm/builder.native.js",
41
+ "browser": "./dist/esm/builder.mjs",
42
+ "module": "./dist/esm/builder.mjs",
43
+ "import": "./dist/esm/builder.mjs",
44
+ "require": "./dist/cjs/builder.cjs",
45
+ "default": "./dist/esm/builder.mjs"
47
46
  },
48
47
  "./v5": {
49
48
  "types": "./types/v5.d.ts",
@@ -54,6 +53,15 @@
54
53
  "require": "./dist/cjs/v5.cjs",
55
54
  "default": "./dist/esm/v5.mjs"
56
55
  },
56
+ "./v5-color-scales": {
57
+ "types": "./types/v5-color-scales.d.ts",
58
+ "react-native": "./dist/esm/v5-color-scales.native.js",
59
+ "browser": "./dist/esm/v5-color-scales.mjs",
60
+ "module": "./dist/esm/v5-color-scales.mjs",
61
+ "import": "./dist/esm/v5-color-scales.mjs",
62
+ "require": "./dist/cjs/v5-color-scales.cjs",
63
+ "default": "./dist/esm/v5-color-scales.mjs"
64
+ },
57
65
  "./v5-subtle": {
58
66
  "types": "./types/v5-subtle.d.ts",
59
67
  "react-native": "./dist/esm/v5-subtle.native.js",
@@ -62,35 +70,37 @@
62
70
  "import": "./dist/esm/v5-subtle.mjs",
63
71
  "require": "./dist/cjs/v5-subtle.cjs",
64
72
  "default": "./dist/esm/v5-subtle.mjs"
73
+ },
74
+ "./v5-tokens": {
75
+ "types": "./types/v5-tokens.d.ts",
76
+ "react-native": "./dist/esm/v5-tokens.native.js",
77
+ "browser": "./dist/esm/v5-tokens.mjs",
78
+ "module": "./dist/esm/v5-tokens.mjs",
79
+ "import": "./dist/esm/v5-tokens.mjs",
80
+ "require": "./dist/cjs/v5-tokens.cjs",
81
+ "default": "./dist/esm/v5-tokens.mjs"
65
82
  }
66
83
  },
67
84
  "publishConfig": {
68
85
  "access": "public"
69
86
  },
70
87
  "scripts": {
71
- "generate": "bun run generate:v5 & bun run generate:v5-subtle",
72
- "generate:v5": "tamagui generate-themes ./src/v5-themes.ts ./src/generated-v5.ts",
73
- "generate:v5-subtle": "tamagui generate-themes ./src/v5-themes-subtle.ts ./src/generated-v5-subtle.ts",
74
- "generate:v3": "tamagui generate-themes ./src/v3-themes.ts ./src/generated-v3.ts",
75
- "generate:v4": "tamagui generate-themes ./src/v4-default.ts ./src/generated-v4.ts",
76
- "generate:v4-tamagui": "tamagui generate-themes ./src/v4-tamagui.ts ./src/generated-v4-tamagui.ts",
77
- "test": "bun run generate",
88
+ "generate": "tamagui generate-themes ./src/themes.generate.ts ./src/generated.ts",
89
+ "check:v5-color-scales": "bun ./scripts/generate-v5-color-scales.ts --check",
90
+ "test": "bun test tests/themes.test.ts",
91
+ "test:types": "vitest --typecheck --run tests/themes.test-d.ts",
78
92
  "build": "tamagui-build",
79
93
  "watch": "tamagui-build --watch",
80
94
  "clean": "tamagui-build clean",
81
95
  "clean:build": "tamagui-build clean:build"
82
96
  },
83
97
  "dependencies": {
84
- "@tamagui/colors": "2.7.7",
85
- "@tamagui/create-theme": "2.7.7",
86
- "@tamagui/theme-builder": "2.7.7",
87
- "@tamagui/web": "2.7.7",
88
- "color2k": "^2.0.2"
98
+ "@tamagui/create-theme": "3.0.0-beta.1093.1"
89
99
  },
90
100
  "devDependencies": {
91
- "@tamagui/build": "2.7.7",
92
- "@tamagui/cli": "2.7.7",
93
- "vitest": "4.0.4"
101
+ "@tamagui/build": "3.0.0-beta.1093.1",
102
+ "@tamagui/cli": "3.0.0-beta.1093.1",
103
+ "vitest": "4.1.0"
94
104
  },
95
105
  "repository": {
96
106
  "type": "git",
package/src/builder.ts ADDED
@@ -0,0 +1,344 @@
1
+ import {
2
+ createThemes,
3
+ type GetThemeContext,
4
+ type ThemeChildren,
5
+ type ThemeDefinitionContext,
6
+ type ThemeDefinitionObject,
7
+ } from '@tamagui/create-theme'
8
+
9
+ import { tokens, type ColorTokenName } from './tokens'
10
+
11
+ export { createThemes } from '@tamagui/create-theme'
12
+ export type { GetThemeContext, ThemeDefinitionContext } from '@tamagui/create-theme'
13
+ export { colorTokens, tailwindColors, tokens } from './tokens'
14
+
15
+ export const shades = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const
16
+
17
+ export type Shade = (typeof shades)[number]
18
+
19
+ type PaletteFromToken<Token> = Token extends `${infer Name}-${Shade}` ? Name : never
20
+ export type Palette = PaletteFromToken<ColorTokenName>
21
+
22
+ export type Scheme = 'light' | 'dark'
23
+ export type Level = 1 | 2 | 3 | 4
24
+
25
+ export const semanticThemeKeys = [
26
+ 'background',
27
+ 'background-hover',
28
+ 'background-press',
29
+ 'background-focus',
30
+ 'border-color',
31
+ 'border-color-hover',
32
+ 'border-color-press',
33
+ 'border-color-focus',
34
+ 'color',
35
+ 'color-hover',
36
+ 'color-press',
37
+ 'color-focus',
38
+ 'placeholder-color',
39
+ 'outline-color',
40
+ 'shadow-color',
41
+ 'accent-background',
42
+ 'accent-color',
43
+ ] as const
44
+
45
+ export type SemanticThemeKey = (typeof semanticThemeKeys)[number]
46
+ export type ThemeScale<TokenName extends string = ColorTokenName> = Record<
47
+ SemanticThemeKey,
48
+ Shade | TokenName
49
+ >
50
+
51
+ const light = {
52
+ background: 'white',
53
+ 'background-hover': 50,
54
+ 'background-press': 'white',
55
+ 'background-focus': 50,
56
+ 'border-color': 200,
57
+ 'border-color-hover': 300,
58
+ 'border-color-press': 200,
59
+ 'border-color-focus': 300,
60
+ color: 950,
61
+ 'color-hover': 950,
62
+ 'color-press': 950,
63
+ 'color-focus': 950,
64
+ 'placeholder-color': 500,
65
+ 'outline-color': 400,
66
+ 'shadow-color': 'shadow-3',
67
+ 'accent-background': 'brand-600',
68
+ 'accent-color': 'brand-50',
69
+ } as const satisfies ThemeScale
70
+
71
+ const dark = {
72
+ ...light,
73
+ background: 950,
74
+ 'background-hover': 900,
75
+ 'background-press': 950,
76
+ 'background-focus': 900,
77
+ 'border-color': 800,
78
+ 'border-color-hover': 700,
79
+ 'border-color-press': 800,
80
+ 'border-color-focus': 700,
81
+ color: 50,
82
+ 'color-hover': 50,
83
+ 'color-press': 50,
84
+ 'color-focus': 50,
85
+ 'shadow-color': 'shadow-6',
86
+ } as const satisfies ThemeScale
87
+
88
+ const boldLight = {
89
+ background: 600,
90
+ 'background-hover': 500,
91
+ 'background-press': 600,
92
+ 'background-focus': 500,
93
+ 'border-color': 700,
94
+ 'border-color-hover': 600,
95
+ 'border-color-press': 700,
96
+ 'border-color-focus': 600,
97
+ color: 50,
98
+ 'color-hover': 50,
99
+ 'color-press': 50,
100
+ 'color-focus': 50,
101
+ 'placeholder-color': 200,
102
+ 'outline-color': 400,
103
+ 'shadow-color': 'shadow-3',
104
+ 'accent-background': 'brand-50',
105
+ 'accent-color': 'brand-700',
106
+ } as const satisfies ThemeScale
107
+
108
+ const boldDark = {
109
+ ...boldLight,
110
+ background: 500,
111
+ 'background-hover': 400,
112
+ 'background-press': 500,
113
+ 'background-focus': 400,
114
+ 'border-color': 600,
115
+ 'border-color-hover': 500,
116
+ 'border-color-press': 600,
117
+ 'border-color-focus': 500,
118
+ 'shadow-color': 'shadow-6',
119
+ } as const satisfies ThemeScale
120
+
121
+ const tintLight = {
122
+ background: 100,
123
+ 'background-hover': 50,
124
+ 'background-press': 100,
125
+ 'background-focus': 50,
126
+ 'border-color': 300,
127
+ 'border-color-hover': 400,
128
+ 'border-color-press': 300,
129
+ 'border-color-focus': 400,
130
+ color: 700,
131
+ 'color-hover': 700,
132
+ 'color-press': 700,
133
+ 'color-focus': 700,
134
+ 'placeholder-color': 400,
135
+ 'outline-color': 400,
136
+ 'shadow-color': 'shadow-3',
137
+ 'accent-background': 'brand-600',
138
+ 'accent-color': 'brand-50',
139
+ } as const satisfies ThemeScale
140
+
141
+ const tintDark = {
142
+ ...tintLight,
143
+ background: 900,
144
+ 'background-hover': 800,
145
+ 'background-press': 900,
146
+ 'background-focus': 800,
147
+ 'border-color': 700,
148
+ 'border-color-hover': 600,
149
+ 'border-color-press': 700,
150
+ 'border-color-focus': 600,
151
+ color: 200,
152
+ 'color-hover': 200,
153
+ 'color-press': 200,
154
+ 'color-focus': 200,
155
+ 'placeholder-color': 500,
156
+ 'outline-color': 600,
157
+ 'shadow-color': 'shadow-6',
158
+ } as const satisfies ThemeScale
159
+
160
+ const ladder = ['white', ...shades, 'black'] as const
161
+
162
+ export function raise<TokenName extends string>(
163
+ scale: ThemeScale<TokenName>,
164
+ steps: number
165
+ ): ThemeScale<TokenName> {
166
+ return Object.fromEntries(
167
+ Object.entries(scale).map(([key, value]) => {
168
+ if (!key.startsWith('background') && !key.startsWith('border-color')) {
169
+ return [key, value]
170
+ }
171
+ const index = ladder.indexOf(value as (typeof ladder)[number])
172
+ if (index === -1) return [key, value]
173
+ return [key, ladder[Math.max(0, Math.min(ladder.length - 1, index + steps))]]
174
+ })
175
+ ) as ThemeScale<TokenName>
176
+ }
177
+
178
+ export const scales = {
179
+ normal: {
180
+ light: {
181
+ 1: light,
182
+ 2: raise(light, 1),
183
+ 3: raise(light, 2),
184
+ 4: raise(light, 3),
185
+ },
186
+ dark: {
187
+ 1: dark,
188
+ 2: raise(dark, -1),
189
+ 3: raise(dark, -2),
190
+ 4: raise(dark, -3),
191
+ },
192
+ },
193
+ bold: {
194
+ light: {
195
+ 1: boldLight,
196
+ 2: raise(boldLight, -1),
197
+ 3: raise(boldLight, -2),
198
+ 4: raise(boldLight, -3),
199
+ },
200
+ dark: {
201
+ 1: boldDark,
202
+ 2: raise(boldDark, 1),
203
+ 3: raise(boldDark, 2),
204
+ 4: raise(boldDark, 3),
205
+ },
206
+ },
207
+ tint: {
208
+ light: {
209
+ 1: tintLight,
210
+ 2: raise(tintLight, -1),
211
+ 3: raise(tintLight, 1),
212
+ 4: raise(tintLight, 2),
213
+ },
214
+ dark: {
215
+ 1: tintDark,
216
+ 2: raise(tintDark, 1),
217
+ 3: raise(tintDark, -1),
218
+ 4: raise(tintDark, -2),
219
+ },
220
+ },
221
+ } as const
222
+
223
+ export type Treatment = keyof typeof scales
224
+
225
+ export type DefaultRecipe = {
226
+ scheme: Scheme
227
+ palette: Palette
228
+ treatment?: Treatment
229
+ level?: Level
230
+ }
231
+
232
+ export type Ramp<PaletteName extends string = Palette> = Record<
233
+ `color${Level | 5 | 6 | 7 | 8 | 9 | 10 | 11}`,
234
+ `${PaletteName}-${Shade}`
235
+ >
236
+
237
+ export function ramp<const PaletteName extends string>(
238
+ palette: PaletteName,
239
+ scheme: Scheme
240
+ ): Ramp<PaletteName> {
241
+ const ordered = scheme === 'light' ? shades : [...shades].reverse()
242
+ return Object.fromEntries(
243
+ ordered.map((shade, index) => [`color${index + 1}`, `${palette}-${shade}`])
244
+ ) as Ramp<PaletteName>
245
+ }
246
+
247
+ export function fromShades<const PaletteName extends string, TokenName extends string>(
248
+ palette: PaletteName,
249
+ scale: ThemeScale<TokenName>
250
+ ): Record<SemanticThemeKey, `${PaletteName}-${Shade}` | TokenName> {
251
+ return Object.fromEntries(
252
+ Object.entries(scale).map(([key, value]) => [
253
+ key,
254
+ typeof value === 'number' ? `${palette}-${value}` : value,
255
+ ])
256
+ ) as Record<SemanticThemeKey, `${PaletteName}-${Shade}` | TokenName>
257
+ }
258
+
259
+ export function getTheme({ recipe }: GetThemeContext<typeof tokens, DefaultRecipe>) {
260
+ const scale = scales[recipe.treatment ?? 'normal'][recipe.scheme][recipe.level ?? 1]
261
+ return {
262
+ ...ramp(recipe.palette, recipe.scheme),
263
+ ...fromShades(recipe.palette, scale),
264
+ }
265
+ }
266
+
267
+ type LevelParent = Record<string, unknown> & { level?: Level }
268
+ type LevelDefinition<Depth extends number> = (
269
+ context: ThemeDefinitionContext<LevelParent>
270
+ ) => { level: Level; children: LevelChildren<Depth> } | null
271
+
272
+ export type LevelChildren<Depth extends number = 4> = Depth extends 4
273
+ ? {
274
+ level2: LevelDefinition<3>
275
+ level3: LevelDefinition<3>
276
+ level4: LevelDefinition<3>
277
+ }
278
+ : Depth extends 3
279
+ ? {
280
+ level2: LevelDefinition<2>
281
+ level3: LevelDefinition<2>
282
+ level4: LevelDefinition<2>
283
+ }
284
+ : Depth extends 2
285
+ ? {
286
+ level2: LevelDefinition<1>
287
+ level3: LevelDefinition<1>
288
+ level4: LevelDefinition<1>
289
+ }
290
+ : Depth extends 1
291
+ ? {
292
+ level2: LevelDefinition<0>
293
+ level3: LevelDefinition<0>
294
+ level4: LevelDefinition<0>
295
+ }
296
+ : {}
297
+
298
+ function createLevels(max: Level, depth: 4): LevelChildren<4>
299
+ function createLevels(max: Level, depth: 3): LevelChildren<3>
300
+ function createLevels(max: Level, depth: 2): LevelChildren<2>
301
+ function createLevels(max: Level, depth: 1): LevelChildren<1>
302
+ function createLevels(max: Level, depth: 0): LevelChildren<0>
303
+ function createLevels(max: Level, depth: number): ThemeChildren
304
+ function createLevels(max: Level, depth: number): ThemeChildren {
305
+ if (depth === 0) return {}
306
+
307
+ const raiseLevel =
308
+ (by: number) =>
309
+ ({ parent }: ThemeDefinitionContext<LevelParent>): ThemeDefinitionObject | null => {
310
+ const current = parent.level ?? 1
311
+ const level = Math.min(current + by, max) as Level
312
+ if (level === current) return null
313
+ return { level, children: createLevels(max, depth - 1) }
314
+ }
315
+
316
+ return {
317
+ level2: raiseLevel(1),
318
+ level3: raiseLevel(2),
319
+ level4: raiseLevel(3),
320
+ }
321
+ }
322
+
323
+ export function levels(max: Level = 4): LevelChildren {
324
+ return createLevels(max, 4)
325
+ }
326
+
327
+ export const tree = {
328
+ light: { scheme: 'light', palette: 'gray' },
329
+ dark: { scheme: 'dark', palette: 'gray' },
330
+ children: {
331
+ ...levels(),
332
+ accent: { palette: 'brand', treatment: 'tint', children: levels() },
333
+ brand: { palette: 'brand', treatment: 'bold', children: levels() },
334
+ inverse: ({ parent }: ThemeDefinitionContext) => ({
335
+ scheme: parent.scheme === 'light' ? 'dark' : 'light',
336
+ children: levels(),
337
+ }),
338
+ red: { palette: 'red', treatment: 'tint', children: levels(2) },
339
+ yellow: { palette: 'yellow', treatment: 'tint', children: levels(2) },
340
+ green: { palette: 'green', treatment: 'tint', children: levels(2) },
341
+ },
342
+ } as const
343
+
344
+ export const themes = createThemes(tokens, tree, { getTheme })