@tamagui/themes 1.121.10 → 1.121.12-1737177163952

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 (139) hide show
  1. package/dist/cjs/getThemeSuitePalettes.cjs +81 -0
  2. package/dist/cjs/getThemeSuitePalettes.js +63 -0
  3. package/dist/cjs/getThemeSuitePalettes.js.map +6 -0
  4. package/dist/cjs/getThemeSuitePalettes.native.js +94 -0
  5. package/dist/cjs/getThemeSuitePalettes.native.js.map +6 -0
  6. package/dist/cjs/index.cjs +10 -10
  7. package/dist/cjs/index.js +10 -10
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/index.native.js +10 -10
  10. package/dist/cjs/index.native.js.map +1 -1
  11. package/dist/cjs/types.cjs +16 -0
  12. package/dist/cjs/types.js +14 -0
  13. package/dist/cjs/types.js.map +6 -0
  14. package/dist/cjs/types.native.js +15 -0
  15. package/dist/cjs/types.native.js.map +6 -0
  16. package/dist/cjs/utils.cjs +40 -0
  17. package/dist/cjs/utils.js +37 -0
  18. package/dist/cjs/utils.js.map +6 -0
  19. package/dist/cjs/utils.native.js +49 -0
  20. package/dist/cjs/utils.native.js.map +6 -0
  21. package/dist/cjs/v3-themes.cjs +12 -27
  22. package/dist/cjs/v3-themes.js +10 -28
  23. package/dist/cjs/v3-themes.js.map +1 -1
  24. package/dist/cjs/v3-themes.native.js +8 -34
  25. package/dist/cjs/v3-themes.native.js.map +2 -2
  26. package/dist/cjs/v4-createTheme.cjs +257 -0
  27. package/dist/cjs/v4-createTheme.js +232 -0
  28. package/dist/cjs/v4-createTheme.js.map +6 -0
  29. package/dist/cjs/v4-createTheme.native.js +284 -0
  30. package/dist/cjs/v4-createTheme.native.js.map +6 -0
  31. package/dist/cjs/v4-default.cjs +102 -0
  32. package/dist/cjs/v4-default.js +89 -0
  33. package/dist/cjs/v4-default.js.map +6 -0
  34. package/dist/cjs/v4-default.native.js +99 -0
  35. package/dist/cjs/v4-default.native.js.map +6 -0
  36. package/dist/cjs/v4-defaultTemplates.cjs +158 -0
  37. package/dist/cjs/v4-defaultTemplates.js +144 -0
  38. package/dist/cjs/v4-defaultTemplates.js.map +6 -0
  39. package/dist/cjs/v4-defaultTemplates.native.js +154 -0
  40. package/dist/cjs/v4-defaultTemplates.native.js.map +6 -0
  41. package/dist/cjs/v4-tamagui-out.cjs +1217 -0
  42. package/dist/cjs/v4-tamagui-out.js +4075 -0
  43. package/dist/cjs/v4-tamagui-out.js.map +6 -0
  44. package/dist/cjs/v4-tamagui-out.native.js +12662 -0
  45. package/dist/cjs/v4-tamagui-out.native.js.map +6 -0
  46. package/dist/cjs/v4-tamagui.cjs +183 -0
  47. package/dist/cjs/v4-tamagui.js +224 -0
  48. package/dist/cjs/v4-tamagui.js.map +6 -0
  49. package/dist/cjs/v4-tamagui.native.js +228 -0
  50. package/dist/cjs/v4-tamagui.native.js.map +6 -0
  51. package/dist/cjs/v4.cjs +41 -0
  52. package/dist/cjs/v4.js +30 -0
  53. package/dist/cjs/v4.js.map +6 -0
  54. package/dist/cjs/v4.native.js +37 -0
  55. package/dist/cjs/v4.native.js.map +6 -0
  56. package/dist/esm/getThemeSuitePalettes.js +47 -0
  57. package/dist/esm/getThemeSuitePalettes.js.map +6 -0
  58. package/dist/esm/getThemeSuitePalettes.mjs +57 -0
  59. package/dist/esm/getThemeSuitePalettes.mjs.map +1 -0
  60. package/dist/esm/getThemeSuitePalettes.native.js +73 -0
  61. package/dist/esm/getThemeSuitePalettes.native.js.map +6 -0
  62. package/dist/esm/types.js +1 -0
  63. package/dist/esm/types.js.map +6 -0
  64. package/dist/esm/types.mjs +2 -0
  65. package/dist/esm/types.mjs.map +1 -0
  66. package/dist/esm/types.native.js +1 -0
  67. package/dist/esm/types.native.js.map +6 -0
  68. package/dist/esm/utils.js +21 -0
  69. package/dist/esm/utils.js.map +6 -0
  70. package/dist/esm/utils.mjs +14 -0
  71. package/dist/esm/utils.mjs.map +1 -0
  72. package/dist/esm/utils.native.js +25 -0
  73. package/dist/esm/utils.native.js.map +6 -0
  74. package/dist/esm/v3-themes.js +2 -19
  75. package/dist/esm/v3-themes.js.map +1 -1
  76. package/dist/esm/v3-themes.mjs +3 -14
  77. package/dist/esm/v3-themes.mjs.map +1 -1
  78. package/dist/esm/v3-themes.native.js +2 -23
  79. package/dist/esm/v3-themes.native.js.map +2 -2
  80. package/dist/esm/v4-createTheme.js +221 -0
  81. package/dist/esm/v4-createTheme.js.map +6 -0
  82. package/dist/esm/v4-createTheme.mjs +226 -0
  83. package/dist/esm/v4-createTheme.mjs.map +1 -0
  84. package/dist/esm/v4-createTheme.native.js +261 -0
  85. package/dist/esm/v4-createTheme.native.js.map +6 -0
  86. package/dist/esm/v4-default.js +74 -0
  87. package/dist/esm/v4-default.js.map +6 -0
  88. package/dist/esm/v4-default.mjs +79 -0
  89. package/dist/esm/v4-default.mjs.map +1 -0
  90. package/dist/esm/v4-default.native.js +80 -0
  91. package/dist/esm/v4-default.native.js.map +6 -0
  92. package/dist/esm/v4-defaultTemplates.js +128 -0
  93. package/dist/esm/v4-defaultTemplates.js.map +6 -0
  94. package/dist/esm/v4-defaultTemplates.mjs +135 -0
  95. package/dist/esm/v4-defaultTemplates.mjs.map +1 -0
  96. package/dist/esm/v4-defaultTemplates.native.js +134 -0
  97. package/dist/esm/v4-defaultTemplates.native.js.map +6 -0
  98. package/dist/esm/v4-tamagui-out.js +4059 -0
  99. package/dist/esm/v4-tamagui-out.js.map +6 -0
  100. package/dist/esm/v4-tamagui-out.mjs +677 -0
  101. package/dist/esm/v4-tamagui-out.mjs.map +1 -0
  102. package/dist/esm/v4-tamagui-out.native.js +12124 -0
  103. package/dist/esm/v4-tamagui-out.native.js.map +6 -0
  104. package/dist/esm/v4-tamagui.js +226 -0
  105. package/dist/esm/v4-tamagui.js.map +6 -0
  106. package/dist/esm/v4-tamagui.mjs +160 -0
  107. package/dist/esm/v4-tamagui.mjs.map +1 -0
  108. package/dist/esm/v4-tamagui.native.js +209 -0
  109. package/dist/esm/v4-tamagui.native.js.map +6 -0
  110. package/dist/esm/v4.js +8 -0
  111. package/dist/esm/v4.js.map +6 -0
  112. package/dist/esm/v4.mjs +5 -0
  113. package/dist/esm/v4.mjs.map +1 -0
  114. package/dist/esm/v4.native.js +8 -0
  115. package/dist/esm/v4.native.js.map +6 -0
  116. package/package.json +17 -7
  117. package/src/getThemeSuitePalettes.ts +94 -0
  118. package/src/types.ts +94 -0
  119. package/src/utils.ts +51 -0
  120. package/src/v3-themes.ts +2 -53
  121. package/src/v4-createTheme.ts +403 -0
  122. package/src/v4-default.ts +88 -0
  123. package/src/v4-defaultTemplates.ts +165 -0
  124. package/src/v4-tamagui-out.ts +4500 -0
  125. package/src/v4-tamagui.ts +241 -0
  126. package/src/v4.tsx +4 -0
  127. package/tsconfig.json +2 -1
  128. package/types/getThemeSuitePalettes.d.ts +7 -0
  129. package/types/types.d.ts +72 -0
  130. package/types/utils.d.ts +21 -0
  131. package/types/v3-themes.d.ts +0 -20
  132. package/types/v4-createTheme.d.ts +157 -0
  133. package/types/v4-default.d.ts +797 -0
  134. package/types/v4-defaultTemplates.d.ts +44 -0
  135. package/types/v4-tamagui-out.d.ts +659 -0
  136. package/types/v4-tamagui.d.ts +16247 -0
  137. package/types/v4.d.ts +4 -0
  138. package/v4.d.ts +1 -0
  139. package/v4.js +1 -0
@@ -0,0 +1,209 @@
1
+ import { blue, blueDark, gray, grayDark, green, greenDark, orange, orangeDark, pink, pinkDark, purple, purpleDark, red, redDark, yellow, yellowDark } from "@tamagui/colors";
2
+ import { createThemeSuite } from "./v4-createTheme";
3
+ var colorTokens = {
4
+ light: {
5
+ blue,
6
+ gray,
7
+ green,
8
+ orange,
9
+ pink,
10
+ purple,
11
+ red,
12
+ yellow
13
+ },
14
+ dark: {
15
+ blue: blueDark,
16
+ gray: grayDark,
17
+ green: greenDark,
18
+ orange: orangeDark,
19
+ pink: pinkDark,
20
+ purple: purpleDark,
21
+ red: redDark,
22
+ yellow: yellowDark
23
+ }
24
+ }, darkPalette = [
25
+ "#050505",
26
+ "#151515",
27
+ "#191919",
28
+ "#232323",
29
+ "#282828",
30
+ "#323232",
31
+ "#424242",
32
+ "#494949",
33
+ "#545454",
34
+ "#626262",
35
+ "#a5a5a5",
36
+ "#fff"
37
+ ], lightPalette = [
38
+ "#fff",
39
+ "#f8f8f8",
40
+ "hsl(0, 0%, 96.3%)",
41
+ "hsl(0, 0%, 94.1%)",
42
+ "hsl(0, 0%, 92.0%)",
43
+ "hsl(0, 0%, 90.0%)",
44
+ "hsl(0, 0%, 88.5%)",
45
+ "hsl(0, 0%, 81.0%)",
46
+ "hsl(0, 0%, 56.1%)",
47
+ "hsl(0, 0%, 50.3%)",
48
+ "hsl(0, 0%, 42.5%)",
49
+ "hsl(0, 0%, 9.0%)"
50
+ ], lightShadows = {
51
+ shadow1: "rgba(0,0,0,0.04)",
52
+ shadow2: "rgba(0,0,0,0.08)",
53
+ shadow3: "rgba(0,0,0,0.16)",
54
+ shadow4: "rgba(0,0,0,0.24)",
55
+ shadow5: "rgba(0,0,0,0.32)",
56
+ shadow6: "rgba(0,0,0,0.4)"
57
+ }, darkShadows = {
58
+ shadow1: "rgba(0,0,0,0.2)",
59
+ shadow2: "rgba(0,0,0,0.3)",
60
+ shadow3: "rgba(0,0,0,0.4)",
61
+ shadow4: "rgba(0,0,0,0.5)",
62
+ shadow5: "rgba(0,0,0,0.6)",
63
+ shadow6: "rgba(0,0,0,0.7)"
64
+ }, tamaguiThemes = createThemeSuite({
65
+ base: {
66
+ palette: {
67
+ dark: darkPalette,
68
+ light: lightPalette
69
+ },
70
+ // we set a bunch of colors like $red1 => $red1
71
+ // we only want to set it on the base light/dark theme
72
+ extra: {
73
+ light: {
74
+ ...colorTokens.light.blue,
75
+ ...colorTokens.light.gray,
76
+ ...colorTokens.light.green,
77
+ ...colorTokens.light.orange,
78
+ ...colorTokens.light.pink,
79
+ ...colorTokens.light.purple,
80
+ ...colorTokens.light.red,
81
+ ...colorTokens.light.yellow,
82
+ ...lightShadows,
83
+ shadowColor: lightShadows.shadow1
84
+ },
85
+ dark: {
86
+ ...colorTokens.dark.blue,
87
+ ...colorTokens.dark.gray,
88
+ ...colorTokens.dark.green,
89
+ ...colorTokens.dark.orange,
90
+ ...colorTokens.dark.pink,
91
+ ...colorTokens.dark.purple,
92
+ ...colorTokens.dark.red,
93
+ ...colorTokens.dark.yellow,
94
+ ...darkShadows,
95
+ shadowColor: darkShadows.shadow1
96
+ }
97
+ }
98
+ },
99
+ accent: {
100
+ palette: {
101
+ dark: lightPalette,
102
+ light: darkPalette
103
+ },
104
+ template: "inverse"
105
+ },
106
+ childrenThemes: {
107
+ gray: {
108
+ palette: {
109
+ dark: Object.values(colorTokens.dark.gray),
110
+ light: Object.values(colorTokens.light.gray)
111
+ }
112
+ },
113
+ blue: {
114
+ palette: {
115
+ dark: Object.values(colorTokens.dark.blue),
116
+ light: Object.values(colorTokens.light.blue)
117
+ }
118
+ },
119
+ orange: {
120
+ palette: {
121
+ dark: Object.values(colorTokens.dark.orange),
122
+ light: Object.values(colorTokens.light.orange)
123
+ }
124
+ },
125
+ red: {
126
+ palette: {
127
+ dark: Object.values(colorTokens.dark.red),
128
+ light: Object.values(colorTokens.light.red)
129
+ }
130
+ },
131
+ yellow: {
132
+ palette: {
133
+ dark: Object.values(colorTokens.dark.yellow),
134
+ light: Object.values(colorTokens.light.yellow)
135
+ }
136
+ },
137
+ green: {
138
+ palette: {
139
+ dark: Object.values(colorTokens.dark.green),
140
+ light: Object.values(colorTokens.light.green)
141
+ }
142
+ },
143
+ purple: {
144
+ palette: {
145
+ dark: Object.values(colorTokens.dark.purple),
146
+ light: Object.values(colorTokens.light.purple)
147
+ }
148
+ },
149
+ pink: {
150
+ palette: {
151
+ dark: Object.values(colorTokens.dark.pink),
152
+ light: Object.values(colorTokens.light.pink)
153
+ }
154
+ },
155
+ tan: {
156
+ palette: {
157
+ light: [
158
+ "hsla(40, 30%, 98%, 1)",
159
+ "hsla(40, 24%, 94%, 1)",
160
+ "hsla(38, 23%, 91%, 1)",
161
+ "hsla(36, 20%, 90%, 1)",
162
+ "hsla(36, 20%, 88%, 1)",
163
+ "hsla(35, 20%, 85%, 1)",
164
+ "hsla(35, 21%, 74%, 1)",
165
+ "hsla(34, 20%, 70%, 1)",
166
+ "hsla(35, 20%, 67%, 1)",
167
+ "hsla(34, 19%, 47%, 1)",
168
+ "hsla(35, 18%, 37%, 1)",
169
+ "hsla(35, 17%, 20%, 1)"
170
+ ],
171
+ dark: [
172
+ "hsla(30, 9%, 10%, 1)",
173
+ "hsla(30, 10%, 12%, 1)",
174
+ "hsla(31, 11%, 18%, 1)",
175
+ "hsla(30, 12%, 23%, 1)",
176
+ "hsla(30, 14%, 28%, 1)",
177
+ "hsla(30, 16%, 33%, 1)",
178
+ "hsla(30, 18%, 38%, 1)",
179
+ "hsla(30, 20%, 45%, 1)",
180
+ "hsla(30, 21%, 50%, 1)",
181
+ "hsla(29, 22%, 58%, 1)",
182
+ "hsla(34, 24%, 70%, 1)",
183
+ "hsla(11, 12%, 79%, 1)"
184
+ ]
185
+ }
186
+ }
187
+ },
188
+ grandChildrenThemes: {
189
+ alt1: {
190
+ template: "alt1"
191
+ },
192
+ alt2: {
193
+ template: "alt2"
194
+ },
195
+ surface1: {
196
+ template: "surface1"
197
+ },
198
+ surface2: {
199
+ template: "surface2"
200
+ },
201
+ surface3: {
202
+ template: "surface3"
203
+ }
204
+ }
205
+ });
206
+ export {
207
+ tamaguiThemes
208
+ };
209
+ //# sourceMappingURL=v4-tamagui.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Users/n8/tamagui/code/core/themes/src/v4-tamagui.ts"],
4
+ "mappings": "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",
5
+ "names": ["blue", "blueDark", "gray", "grayDark", "green", "greenDark", "orange", "orangeDark", "pink", "pinkDark", "purple", "purpleDark", "red", "redDark", "yellow", "yellowDark", "createThemeSuite", "colorTokens", "light", "dark", "darkPalette", "lightPalette", "lightShadows", "shadow1", "shadow2", "shadow3", "shadow4", "shadow5", "shadow6", "darkShadows", "tamaguiThemes", "base", "palette", "extra", "shadowColor", "accent", "template", "childrenThemes", "Object", "values", "tan", "grandChildrenThemes", "alt1", "alt2", "surface1", "surface2", "surface3"]
6
+ }
package/dist/esm/v4.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from "./v4-createTheme";
2
+ import { tokens } from "./v3-themes";
3
+ import * as tamaguiThemes from "./v4-tamagui-out";
4
+ export {
5
+ tamaguiThemes,
6
+ tokens
7
+ };
8
+ //# sourceMappingURL=v4.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/v4.tsx"],
4
+ "mappings": "AAAA,cAAc;AACd,SAAS,cAAc;AAEvB,YAAY,mBAAmB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./v4-createTheme.mjs";
2
+ import { tokens } from "./v3-themes.mjs";
3
+ import * as tamaguiThemes from "./v4-tamagui-out.mjs";
4
+ export { tamaguiThemes, tokens };
5
+ //# sourceMappingURL=v4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tokens","tamaguiThemes"],"sources":["../../src/v4.tsx"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,SAASA,MAAA,QAAc;AAEvB,YAAYC,aAAA,MAAmB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export * from "./v4-createTheme";
2
+ import { tokens } from "./v3-themes";
3
+ import * as _tamaguiThemes from "./v4-tamagui-out";
4
+ export {
5
+ _tamaguiThemes as tamaguiThemes,
6
+ tokens
7
+ };
8
+ //# sourceMappingURL=v4.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Users/n8/tamagui/code/core/themes/src/v4.tsx"],
4
+ "mappings": "AAAA,cAAc;AACd,SAASA,cAAc;AAEvB,YAAA,oBAA+B;",
5
+ "names": ["tokens"]
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/themes",
3
- "version": "1.121.10",
3
+ "version": "1.121.12-1737177163952",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -65,17 +65,27 @@
65
65
  "types": "./types/v3-themes.d.ts",
66
66
  "import": "./dist/esm/v3-themes.mjs",
67
67
  "require": "./dist/cjs/v3-themes.cjs"
68
+ },
69
+ "./v4": {
70
+ "react-native": {
71
+ "import": "./dist/esm/v4.native.js",
72
+ "require": "./dist/cjs/v4.native.js"
73
+ },
74
+ "types": "./types/v4.d.ts",
75
+ "import": "./dist/esm/v4.mjs",
76
+ "require": "./dist/cjs/v4.cjs"
68
77
  }
69
78
  },
70
79
  "dependencies": {
71
- "@tamagui/colors": "1.121.10",
72
- "@tamagui/create-theme": "1.121.10",
73
- "@tamagui/theme-builder": "1.121.10",
74
- "@tamagui/web": "1.121.10"
80
+ "@tamagui/colors": "1.121.12-1737177163952",
81
+ "@tamagui/create-theme": "1.121.12-1737177163952",
82
+ "@tamagui/theme-builder": "1.121.12-1737177163952",
83
+ "@tamagui/web": "1.121.12-1737177163952",
84
+ "color2k": "^2.0.2"
75
85
  },
76
86
  "devDependencies": {
77
- "@tamagui/build": "1.121.10",
78
- "@tamagui/cli": "1.121.10",
87
+ "@tamagui/build": "1.121.12-1737177163952",
88
+ "@tamagui/cli": "1.121.12-1737177163952",
79
89
  "vitest": "^2.1.8"
80
90
  },
81
91
  "publishConfig": {
@@ -0,0 +1,94 @@
1
+ import { hsla, parseToHsla } from 'color2k'
2
+ import type { BuildPalette } from './types'
3
+
4
+ /**
5
+ * palette generally is:
6
+ *
7
+ * [constrastBackground, backgroundTransparent, ...background, ...foreground, foregroundTransparent, accentForeground]
8
+ */
9
+
10
+ const paletteSize = 12
11
+
12
+ // how many things come before the actual bg color (transparencies etc)
13
+ export const PALETTE_BACKGROUND_OFFSET = 4
14
+
15
+ const generateColorPalette = ({
16
+ palette: buildPalette,
17
+ scheme,
18
+ }: {
19
+ palette: BuildPalette
20
+ scheme: 'light' | 'dark'
21
+ }) => {
22
+ if (!buildPalette) {
23
+ return [] as string[]
24
+ }
25
+
26
+ const { anchors } = buildPalette
27
+
28
+ let palette: string[] = []
29
+
30
+ const add = (h: number, s: number, l: number) => {
31
+ palette.push(hsla(h, s, l, 1))
32
+ }
33
+
34
+ const numAnchors = Object.keys(anchors).length
35
+
36
+ for (const [anchorIndex, anchor] of anchors.entries()) {
37
+ const [h, s, l] = [anchor.hue[scheme], anchor.sat[scheme], anchor.lum[scheme]]
38
+
39
+ if (anchorIndex !== 0) {
40
+ const lastAnchor = anchors[anchorIndex - 1]
41
+ const steps = anchor.index - lastAnchor.index
42
+
43
+ const lastHue = lastAnchor.hue[scheme]
44
+ const lastSat = lastAnchor.sat[scheme]
45
+ const lastLum = lastAnchor.lum[scheme]
46
+
47
+ const stepHue = (lastHue - h) / steps
48
+ const stepSat = (lastSat - s) / steps
49
+ const stepLum = (lastLum - l) / steps
50
+
51
+ // backfill:
52
+ for (let step = lastAnchor.index + 1; step < anchor.index; step++) {
53
+ const str = anchor.index - step
54
+ add(h + stepHue * str, s + stepSat * str, l + stepLum * str)
55
+ }
56
+ }
57
+
58
+ add(h, s, l)
59
+
60
+ const isLastAnchor = anchorIndex === numAnchors - 1
61
+ if (isLastAnchor && palette.length < paletteSize) {
62
+ // forwardfill:
63
+ for (let step = anchor.index + 1; step < paletteSize; step++) {
64
+ add(h, s, l)
65
+ }
66
+ }
67
+ }
68
+
69
+ // add transparent values
70
+ const [background] = palette
71
+ const foreground = palette[palette.length - 1]
72
+
73
+ const transparentValues = [background, foreground].map((color) => {
74
+ const [h, s, l] = parseToHsla(color)
75
+ // fully transparent to partially
76
+ return [
77
+ hsla(h, s, l, 0),
78
+ hsla(h, s, l, 0.25),
79
+ hsla(h, s, l, 0.5),
80
+ hsla(h, s, l, 0.75),
81
+ ] as const
82
+ })
83
+ const reverseForeground = [...transparentValues[1]].reverse()
84
+ palette = [...transparentValues[0], ...palette, ...reverseForeground]
85
+
86
+ return palette
87
+ }
88
+
89
+ export function getThemeSuitePalettes(palette: BuildPalette) {
90
+ return {
91
+ light: generateColorPalette({ palette, scheme: 'light' }),
92
+ dark: generateColorPalette({ palette, scheme: 'dark' }),
93
+ }
94
+ }
package/src/types.ts ADDED
@@ -0,0 +1,94 @@
1
+ import type { Template, ThemeDefinitions } from '@tamagui/create-theme'
2
+
3
+ type ThemeSuiteItem = {
4
+ id: string
5
+ name: string
6
+ createdAt: number
7
+ updatedAt: number
8
+
9
+ schemes: { light: boolean; dark: boolean }
10
+ palettes: Record<string, BuildPalette>
11
+ templates: BuildTemplates
12
+
13
+ baseTheme: BuildTheme
14
+ subThemes: BuildSubTheme[]
15
+ componentThemes: ThemeDefinitions
16
+ }
17
+
18
+ export type ThemeSuiteItemData = Omit<ThemeSuiteItem, 'id' | 'createdAt' | 'updatedAt'>
19
+
20
+ export type BuildTemplates = Record<string, Template>
21
+
22
+ export type BuildSubTheme = BuildTheme
23
+
24
+ export type BuildPalettes = Record<string, BuildPalette>
25
+
26
+ export type BuildPalette = {
27
+ name: string
28
+ scale?: ScaleTypeName
29
+ anchors: BuildThemeAnchor[]
30
+ }
31
+
32
+ export type BuildThemeSuiteProps = Omit<ThemeSuiteItemData, 'name'>
33
+
34
+ export type BuildThemeSuitePalettes = {
35
+ light: string[]
36
+ dark: string[]
37
+ lightAccent?: string[]
38
+ darkAccent?: string[]
39
+ }
40
+
41
+ export type ScaleTypeName =
42
+ | 'custom'
43
+ | 'radix'
44
+ | 'radix-b'
45
+ | 'radius-bold'
46
+ | 'radius-bright'
47
+ | 'linear'
48
+ | 'pastel'
49
+ | 'pastel-desaturating'
50
+ | 'neon'
51
+ | 'neon-bright'
52
+ | 'neon-c'
53
+
54
+ export type BuildThemeBase = {
55
+ id: string
56
+ name: string
57
+ errors?: string[]
58
+ }
59
+
60
+ export type BuildThemeAnchor = {
61
+ index: number
62
+ hue: {
63
+ light: number
64
+ dark: number
65
+ sync?: boolean
66
+ syncLeft?: boolean
67
+ }
68
+ sat: {
69
+ light: number
70
+ dark: number
71
+ sync?: boolean
72
+ syncLeft?: boolean
73
+ }
74
+ lum: {
75
+ light: number
76
+ dark: number
77
+ }
78
+ }
79
+
80
+ export type BuildPaletteAnchors = BuildThemeAnchor[]
81
+
82
+ export type BuildTheme = BuildThemeBase & {
83
+ type: 'theme'
84
+ template: string
85
+ palette: string
86
+ accent?: BuildTheme
87
+ }
88
+
89
+ export type ThemeStepProps = {
90
+ theme: BuildTheme
91
+ isAccent?: boolean
92
+ vertical?: boolean
93
+ onUpdate: (val: Partial<BuildTheme>) => void
94
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,51 @@
1
+ export function postfixObjKeys<A extends { [key: string]: string }, B extends string>(
2
+ obj: A,
3
+ postfix: B
4
+ ): {
5
+ [Key in `${keyof A extends string ? keyof A : never}${B}`]: string
6
+ } {
7
+ return Object.fromEntries(
8
+ Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v])
9
+ ) as any
10
+ }
11
+
12
+ // a bit odd but keeping backward compat for values >8 while fixing below
13
+ export function sizeToSpace(v: number) {
14
+ if (v === 0) return 0
15
+ if (v === 2) return 0.5
16
+ if (v === 4) return 1
17
+ if (v === 8) return 1.5
18
+ if (v <= 16) return Math.round(v * 0.333)
19
+ return Math.floor(v * 0.7 - 12)
20
+ }
21
+
22
+ export function objectFromEntries<ARR_T extends EntriesType>(
23
+ arr: ARR_T
24
+ ): EntriesToObject<ARR_T> {
25
+ return Object.fromEntries(arr) as EntriesToObject<ARR_T>
26
+ }
27
+
28
+ export type EntriesType =
29
+ | [PropertyKey, unknown][]
30
+ | ReadonlyArray<readonly [PropertyKey, unknown]>
31
+
32
+ export type DeepWritable<OBJ_T> = { -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]> }
33
+ export type UnionToIntersection<UNION_T> = // From https://stackoverflow.com/a/50375286
34
+ (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void
35
+ ? I
36
+ : never
37
+
38
+ export type UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> =
39
+ DeepWritable<ARR_T> extends (infer R)[]
40
+ ? R extends [infer key, infer val]
41
+ ? { [prop in key & PropertyKey]: val }
42
+ : never
43
+ : never
44
+ export type MergeIntersectingObjects<ObjT> = { [key in keyof ObjT]: ObjT[key] }
45
+ export type EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<
46
+ UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>
47
+ >
48
+
49
+ export function objectKeys<O extends Object>(obj: O) {
50
+ return Object.keys(obj) as Array<keyof O>
51
+ }
package/src/v3-themes.ts CHANGED
@@ -16,8 +16,9 @@ import {
16
16
  yellow,
17
17
  yellowDark,
18
18
  } from '@tamagui/colors'
19
- import { createThemeBuilder } from '@tamagui/theme-builder'
19
+ import { createThemeBuilder, objectFromEntries } from '@tamagui/theme-builder'
20
20
  import { createTokens } from '@tamagui/web'
21
+ import { objectKeys, postfixObjKeys, sizeToSpace } from './utils'
21
22
 
22
23
  const colorTokens = {
23
24
  light: {
@@ -744,55 +745,3 @@ export const tokens = createTokens({
744
745
  })
745
746
 
746
747
  // --- utils ---
747
-
748
- export function postfixObjKeys<A extends { [key: string]: string }, B extends string>(
749
- obj: A,
750
- postfix: B
751
- ): {
752
- [Key in `${keyof A extends string ? keyof A : never}${B}`]: string
753
- } {
754
- return Object.fromEntries(
755
- Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v])
756
- ) as any
757
- }
758
-
759
- // a bit odd but keeping backward compat for values >8 while fixing below
760
- export function sizeToSpace(v: number) {
761
- if (v === 0) return 0
762
- if (v === 2) return 0.5
763
- if (v === 4) return 1
764
- if (v === 8) return 1.5
765
- if (v <= 16) return Math.round(v * 0.333)
766
- return Math.floor(v * 0.7 - 12)
767
- }
768
-
769
- export function objectFromEntries<ARR_T extends EntriesType>(
770
- arr: ARR_T
771
- ): EntriesToObject<ARR_T> {
772
- return Object.fromEntries(arr) as EntriesToObject<ARR_T>
773
- }
774
-
775
- export type EntriesType =
776
- | [PropertyKey, unknown][]
777
- | ReadonlyArray<readonly [PropertyKey, unknown]>
778
-
779
- export type DeepWritable<OBJ_T> = { -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]> }
780
- export type UnionToIntersection<UNION_T> = // From https://stackoverflow.com/a/50375286
781
- (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void
782
- ? I
783
- : never
784
-
785
- export type UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> =
786
- DeepWritable<ARR_T> extends (infer R)[]
787
- ? R extends [infer key, infer val]
788
- ? { [prop in key & PropertyKey]: val }
789
- : never
790
- : never
791
- export type MergeIntersectingObjects<ObjT> = { [key in keyof ObjT]: ObjT[key] }
792
- export type EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<
793
- UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>
794
- >
795
-
796
- export function objectKeys<O extends Object>(obj: O) {
797
- return Object.keys(obj) as Array<keyof O>
798
- }