@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,241 @@
1
+ import {
2
+ blue,
3
+ blueDark,
4
+ gray,
5
+ grayDark,
6
+ green,
7
+ greenDark,
8
+ orange,
9
+ orangeDark,
10
+ pink,
11
+ pinkDark,
12
+ purple,
13
+ purpleDark,
14
+ red,
15
+ redDark,
16
+ yellow,
17
+ yellowDark,
18
+ } from '@tamagui/colors'
19
+ import { createThemeSuite } from './v4-createTheme'
20
+
21
+ const colorTokens = {
22
+ light: {
23
+ blue,
24
+ gray,
25
+ green,
26
+ orange,
27
+ pink,
28
+ purple,
29
+ red,
30
+ yellow,
31
+ },
32
+ dark: {
33
+ blue: blueDark,
34
+ gray: grayDark,
35
+ green: greenDark,
36
+ orange: orangeDark,
37
+ pink: pinkDark,
38
+ purple: purpleDark,
39
+ red: redDark,
40
+ yellow: yellowDark,
41
+ },
42
+ }
43
+
44
+ const darkPalette = [
45
+ '#050505',
46
+ '#151515',
47
+ '#191919',
48
+ '#232323',
49
+ '#282828',
50
+ '#323232',
51
+ '#424242',
52
+ '#494949',
53
+ '#545454',
54
+ '#626262',
55
+ '#a5a5a5',
56
+ '#fff',
57
+ ]
58
+
59
+ const lightPalette = [
60
+ '#fff',
61
+ '#f8f8f8',
62
+ 'hsl(0, 0%, 96.3%)',
63
+ 'hsl(0, 0%, 94.1%)',
64
+ 'hsl(0, 0%, 92.0%)',
65
+ 'hsl(0, 0%, 90.0%)',
66
+ 'hsl(0, 0%, 88.5%)',
67
+ 'hsl(0, 0%, 81.0%)',
68
+ 'hsl(0, 0%, 56.1%)',
69
+ 'hsl(0, 0%, 50.3%)',
70
+ 'hsl(0, 0%, 42.5%)',
71
+ 'hsl(0, 0%, 9.0%)',
72
+ ]
73
+
74
+ const lightShadows = {
75
+ shadow1: 'rgba(0,0,0,0.04)',
76
+ shadow2: 'rgba(0,0,0,0.08)',
77
+ shadow3: 'rgba(0,0,0,0.16)',
78
+ shadow4: 'rgba(0,0,0,0.24)',
79
+ shadow5: 'rgba(0,0,0,0.32)',
80
+ shadow6: 'rgba(0,0,0,0.4)',
81
+ }
82
+
83
+ const darkShadows = {
84
+ shadow1: 'rgba(0,0,0,0.2)',
85
+ shadow2: 'rgba(0,0,0,0.3)',
86
+ shadow3: 'rgba(0,0,0,0.4)',
87
+ shadow4: 'rgba(0,0,0,0.5)',
88
+ shadow5: 'rgba(0,0,0,0.6)',
89
+ shadow6: 'rgba(0,0,0,0.7)',
90
+ }
91
+
92
+ /**
93
+ * Default themes for the tamagui.dev site
94
+ * If you'd like to create your own themes, use `createThemeSuite`
95
+ */
96
+ export const tamaguiThemes = createThemeSuite({
97
+ base: {
98
+ palette: {
99
+ dark: darkPalette,
100
+ light: lightPalette,
101
+ },
102
+
103
+ // we set a bunch of colors like $red1 => $red1
104
+ // we only want to set it on the base light/dark theme
105
+ extra: {
106
+ light: {
107
+ ...colorTokens.light.blue,
108
+ ...colorTokens.light.gray,
109
+ ...colorTokens.light.green,
110
+ ...colorTokens.light.orange,
111
+ ...colorTokens.light.pink,
112
+ ...colorTokens.light.purple,
113
+ ...colorTokens.light.red,
114
+ ...colorTokens.light.yellow,
115
+ ...lightShadows,
116
+ shadowColor: lightShadows.shadow1,
117
+ },
118
+ dark: {
119
+ ...colorTokens.dark.blue,
120
+ ...colorTokens.dark.gray,
121
+ ...colorTokens.dark.green,
122
+ ...colorTokens.dark.orange,
123
+ ...colorTokens.dark.pink,
124
+ ...colorTokens.dark.purple,
125
+ ...colorTokens.dark.red,
126
+ ...colorTokens.dark.yellow,
127
+ ...darkShadows,
128
+ shadowColor: darkShadows.shadow1,
129
+ },
130
+ },
131
+ },
132
+
133
+ accent: {
134
+ palette: {
135
+ dark: lightPalette,
136
+ light: darkPalette,
137
+ },
138
+ template: 'inverse',
139
+ },
140
+
141
+ childrenThemes: {
142
+ gray: {
143
+ palette: {
144
+ dark: Object.values(colorTokens.dark.gray),
145
+ light: Object.values(colorTokens.light.gray),
146
+ },
147
+ },
148
+ blue: {
149
+ palette: {
150
+ dark: Object.values(colorTokens.dark.blue),
151
+ light: Object.values(colorTokens.light.blue),
152
+ },
153
+ },
154
+ orange: {
155
+ palette: {
156
+ dark: Object.values(colorTokens.dark.orange),
157
+ light: Object.values(colorTokens.light.orange),
158
+ },
159
+ },
160
+ red: {
161
+ palette: {
162
+ dark: Object.values(colorTokens.dark.red),
163
+ light: Object.values(colorTokens.light.red),
164
+ },
165
+ },
166
+ yellow: {
167
+ palette: {
168
+ dark: Object.values(colorTokens.dark.yellow),
169
+ light: Object.values(colorTokens.light.yellow),
170
+ },
171
+ },
172
+ green: {
173
+ palette: {
174
+ dark: Object.values(colorTokens.dark.green),
175
+ light: Object.values(colorTokens.light.green),
176
+ },
177
+ },
178
+ purple: {
179
+ palette: {
180
+ dark: Object.values(colorTokens.dark.purple),
181
+ light: Object.values(colorTokens.light.purple),
182
+ },
183
+ },
184
+ pink: {
185
+ palette: {
186
+ dark: Object.values(colorTokens.dark.pink),
187
+ light: Object.values(colorTokens.light.pink),
188
+ },
189
+ },
190
+ tan: {
191
+ palette: {
192
+ light: [
193
+ 'hsla(40, 30%, 98%, 1)',
194
+ 'hsla(40, 24%, 94%, 1)',
195
+ 'hsla(38, 23%, 91%, 1)',
196
+ 'hsla(36, 20%, 90%, 1)',
197
+ 'hsla(36, 20%, 88%, 1)',
198
+ 'hsla(35, 20%, 85%, 1)',
199
+ 'hsla(35, 21%, 74%, 1)',
200
+ 'hsla(34, 20%, 70%, 1)',
201
+ 'hsla(35, 20%, 67%, 1)',
202
+ 'hsla(34, 19%, 47%, 1)',
203
+ 'hsla(35, 18%, 37%, 1)',
204
+ 'hsla(35, 17%, 20%, 1)',
205
+ ],
206
+ dark: [
207
+ 'hsla(30, 9%, 10%, 1)',
208
+ 'hsla(30, 10%, 12%, 1)',
209
+ 'hsla(31, 11%, 18%, 1)',
210
+ 'hsla(30, 12%, 23%, 1)',
211
+ 'hsla(30, 14%, 28%, 1)',
212
+ 'hsla(30, 16%, 33%, 1)',
213
+ 'hsla(30, 18%, 38%, 1)',
214
+ 'hsla(30, 20%, 45%, 1)',
215
+ 'hsla(30, 21%, 50%, 1)',
216
+ 'hsla(29, 22%, 58%, 1)',
217
+ 'hsla(34, 24%, 70%, 1)',
218
+ 'hsla(11, 12%, 79%, 1)',
219
+ ],
220
+ },
221
+ },
222
+ },
223
+
224
+ grandChildrenThemes: {
225
+ alt1: {
226
+ template: 'alt1',
227
+ },
228
+ alt2: {
229
+ template: 'alt2',
230
+ },
231
+ surface1: {
232
+ template: 'surface1',
233
+ },
234
+ surface2: {
235
+ template: 'surface2',
236
+ },
237
+ surface3: {
238
+ template: 'surface3',
239
+ },
240
+ },
241
+ })
package/src/v4.tsx ADDED
@@ -0,0 +1,4 @@
1
+ export * from './v4-createTheme'
2
+ export { tokens } from './v3-themes'
3
+
4
+ export * as tamaguiThemes from './v4-tamagui-out'
package/tsconfig.json CHANGED
@@ -4,7 +4,6 @@
4
4
  "composite": true
5
5
  },
6
6
  "exclude": [
7
- "generate.ts",
8
7
  "types",
9
8
  "v2.d.ts",
10
9
  "v2.js",
@@ -14,6 +13,8 @@
14
13
  "v3.js",
15
14
  "v3-themes.js",
16
15
  "v3-themes.d.ts",
16
+ "v4.d.ts",
17
+ "v4.js",
17
18
  "dist",
18
19
  "**/__tests__"
19
20
  ],
@@ -0,0 +1,7 @@
1
+ import type { BuildPalette } from './types';
2
+ export declare const PALETTE_BACKGROUND_OFFSET = 4;
3
+ export declare function getThemeSuitePalettes(palette: BuildPalette): {
4
+ light: string[];
5
+ dark: string[];
6
+ };
7
+ //# sourceMappingURL=getThemeSuitePalettes.d.ts.map
@@ -0,0 +1,72 @@
1
+ import type { Template, ThemeDefinitions } from '@tamagui/create-theme';
2
+ type ThemeSuiteItem = {
3
+ id: string;
4
+ name: string;
5
+ createdAt: number;
6
+ updatedAt: number;
7
+ schemes: {
8
+ light: boolean;
9
+ dark: boolean;
10
+ };
11
+ palettes: Record<string, BuildPalette>;
12
+ templates: BuildTemplates;
13
+ baseTheme: BuildTheme;
14
+ subThemes: BuildSubTheme[];
15
+ componentThemes: ThemeDefinitions;
16
+ };
17
+ export type ThemeSuiteItemData = Omit<ThemeSuiteItem, 'id' | 'createdAt' | 'updatedAt'>;
18
+ export type BuildTemplates = Record<string, Template>;
19
+ export type BuildSubTheme = BuildTheme;
20
+ export type BuildPalettes = Record<string, BuildPalette>;
21
+ export type BuildPalette = {
22
+ name: string;
23
+ scale?: ScaleTypeName;
24
+ anchors: BuildThemeAnchor[];
25
+ };
26
+ export type BuildThemeSuiteProps = Omit<ThemeSuiteItemData, 'name'>;
27
+ export type BuildThemeSuitePalettes = {
28
+ light: string[];
29
+ dark: string[];
30
+ lightAccent?: string[];
31
+ darkAccent?: string[];
32
+ };
33
+ export type ScaleTypeName = 'custom' | 'radix' | 'radix-b' | 'radius-bold' | 'radius-bright' | 'linear' | 'pastel' | 'pastel-desaturating' | 'neon' | 'neon-bright' | 'neon-c';
34
+ export type BuildThemeBase = {
35
+ id: string;
36
+ name: string;
37
+ errors?: string[];
38
+ };
39
+ export type BuildThemeAnchor = {
40
+ index: number;
41
+ hue: {
42
+ light: number;
43
+ dark: number;
44
+ sync?: boolean;
45
+ syncLeft?: boolean;
46
+ };
47
+ sat: {
48
+ light: number;
49
+ dark: number;
50
+ sync?: boolean;
51
+ syncLeft?: boolean;
52
+ };
53
+ lum: {
54
+ light: number;
55
+ dark: number;
56
+ };
57
+ };
58
+ export type BuildPaletteAnchors = BuildThemeAnchor[];
59
+ export type BuildTheme = BuildThemeBase & {
60
+ type: 'theme';
61
+ template: string;
62
+ palette: string;
63
+ accent?: BuildTheme;
64
+ };
65
+ export type ThemeStepProps = {
66
+ theme: BuildTheme;
67
+ isAccent?: boolean;
68
+ vertical?: boolean;
69
+ onUpdate: (val: Partial<BuildTheme>) => void;
70
+ };
71
+ export {};
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,21 @@
1
+ export declare function postfixObjKeys<A extends {
2
+ [key: string]: string;
3
+ }, B extends string>(obj: A, postfix: B): {
4
+ [Key in `${keyof A extends string ? keyof A : never}${B}`]: string;
5
+ };
6
+ export declare function sizeToSpace(v: number): number;
7
+ export declare function objectFromEntries<ARR_T extends EntriesType>(arr: ARR_T): EntriesToObject<ARR_T>;
8
+ export type EntriesType = [PropertyKey, unknown][] | ReadonlyArray<readonly [PropertyKey, unknown]>;
9
+ export type DeepWritable<OBJ_T> = {
10
+ -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]>;
11
+ };
12
+ export type UnionToIntersection<UNION_T> = (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void ? I : never;
13
+ export type UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> = DeepWritable<ARR_T> extends (infer R)[] ? R extends [infer key, infer val] ? {
14
+ [prop in key & PropertyKey]: val;
15
+ } : never : never;
16
+ export type MergeIntersectingObjects<ObjT> = {
17
+ [key in keyof ObjT]: ObjT[key];
18
+ };
19
+ export type EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>>;
20
+ export declare function objectKeys<O extends Object>(obj: O): Array<keyof O>;
21
+ //# sourceMappingURL=utils.d.ts.map
@@ -16366,25 +16366,5 @@ export declare const tokens: {
16366
16366
  $20: import("@tamagui/web").Variable<number>;
16367
16367
  };
16368
16368
  }, "color" | "space" | "size" | "radius" | "zIndex">;
16369
- export declare function postfixObjKeys<A extends {
16370
- [key: string]: string;
16371
- }, B extends string>(obj: A, postfix: B): {
16372
- [Key in `${keyof A extends string ? keyof A : never}${B}`]: string;
16373
- };
16374
- export declare function sizeToSpace(v: number): number;
16375
- export declare function objectFromEntries<ARR_T extends EntriesType>(arr: ARR_T): EntriesToObject<ARR_T>;
16376
- export type EntriesType = [PropertyKey, unknown][] | ReadonlyArray<readonly [PropertyKey, unknown]>;
16377
- export type DeepWritable<OBJ_T> = {
16378
- -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]>;
16379
- };
16380
- export type UnionToIntersection<UNION_T> = (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void ? I : never;
16381
- export type UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> = DeepWritable<ARR_T> extends (infer R)[] ? R extends [infer key, infer val] ? {
16382
- [prop in key & PropertyKey]: val;
16383
- } : never : never;
16384
- export type MergeIntersectingObjects<ObjT> = {
16385
- [key in keyof ObjT]: ObjT[key];
16386
- };
16387
- export type EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>>;
16388
- export declare function objectKeys<O extends Object>(obj: O): Array<keyof O>;
16389
16369
  export {};
16390
16370
  //# sourceMappingURL=v3-themes.d.ts.map
@@ -0,0 +1,157 @@
1
+ import { type ThemeBuilder } from '@tamagui/theme-builder';
2
+ import type { BuildPalettes, BuildTemplates, BuildThemeSuiteProps } from './types';
3
+ import { defaultTemplates } from './v4-defaultTemplates';
4
+ export { getThemeSuitePalettes, PALETTE_BACKGROUND_OFFSET } from './getThemeSuitePalettes';
5
+ export type * from './types';
6
+ export { defaultTemplates } from './v4-defaultTemplates';
7
+ /**
8
+ * TODO
9
+ *
10
+ * - we avoidNestingWithin accent, but sometimes want it eg v4-tamagui grandChildren
11
+ * a good default would be to IF palette is set, dont nest, IF only template, nest
12
+ * needs to update both runtime logic and types
13
+ */
14
+ type ExtraThemeValues = Record<string, string>;
15
+ type ExtraThemeValuesByScheme<Values extends ExtraThemeValues = ExtraThemeValues> = {
16
+ dark: Values;
17
+ light: Values;
18
+ };
19
+ type SimpleThemeDefinition = {
20
+ palette?: Palette;
21
+ template?: string;
22
+ };
23
+ type BaseThemeDefinition<Extra extends ExtraThemeValuesByScheme> = {
24
+ palette: Palette;
25
+ template?: string;
26
+ extra?: Extra;
27
+ };
28
+ type SimpleThemesDefinition = Record<string, SimpleThemeDefinition>;
29
+ type SimplePaletteDefinitions = Record<string, string[]>;
30
+ type SinglePalette = string[];
31
+ type SchemePalette = {
32
+ light: SinglePalette;
33
+ dark: SinglePalette;
34
+ };
35
+ type Palette = SinglePalette | SchemePalette;
36
+ export type CreateThemesProps<Accent extends BaseThemeDefinition<Extra> | undefined = undefined, GrandChildrenThemes extends SimpleThemesDefinition | undefined = undefined, Extra extends ExtraThemeValuesByScheme = ExtraThemeValuesByScheme, ChildrenThemes extends SimpleThemesDefinition = SimpleThemesDefinition, ComponentThemes extends SimpleThemesDefinition = SimpleThemesDefinition, Templates extends BuildTemplates = typeof defaultTemplates> = {
37
+ base: BaseThemeDefinition<Extra>;
38
+ accent?: Accent;
39
+ childrenThemes?: ChildrenThemes;
40
+ grandChildrenThemes?: GrandChildrenThemes;
41
+ templates?: Templates;
42
+ componentThemes?: ComponentThemes;
43
+ colorsToTheme?: (props: {
44
+ colors: string[];
45
+ name: string;
46
+ scheme?: 'light' | 'dark';
47
+ }) => Record<string, string>;
48
+ };
49
+ export declare function createThemeSuite<Extra extends ExtraThemeValuesByScheme, SubThemes extends SimpleThemesDefinition, ComponentThemes extends SimpleThemesDefinition, GrandChildrenThemes extends SimpleThemesDefinition | undefined = undefined, Accent extends BaseThemeDefinition<Extra> | undefined = undefined>(props: CreateThemesProps<Accent, GrandChildrenThemes, Extra, SubThemes, ComponentThemes>): { [Key in "light" | "dark" | ((Accent extends undefined ? false : true) extends infer T ? T extends (Accent extends undefined ? false : true) ? T extends true ? "light_accent" | "dark_accent" : never : never : never) | (keyof SubThemes extends string ? `light_${(GrandChildrenThemes extends undefined ? undefined : Record<keyof GrandChildrenThemes, any>) extends infer T_1 ? T_1 extends (GrandChildrenThemes extends undefined ? undefined : Record<keyof GrandChildrenThemes, any>) ? T_1 extends undefined ? string & keyof SubThemes : NamesWithChildrenNames<string & keyof SubThemes, keyof T_1> : never : never}` | `dark_${(GrandChildrenThemes extends undefined ? undefined : Record<keyof GrandChildrenThemes, any>) extends infer T_2 ? T_2 extends (GrandChildrenThemes extends undefined ? undefined : Record<keyof GrandChildrenThemes, any>) ? T_2 extends undefined ? string & keyof SubThemes : NamesWithChildrenNames<string & keyof SubThemes, keyof T_2> : never : never}` : never)]: { [ThemeKey in "borderColor" | "borderColorHover" | "borderColorPress" | "borderColorFocus" | "color" | "shadowColor" | "shadowColorHover" | "shadowColorPress" | "shadowColorFocus" | "colorHover" | "colorFocus" | "colorPress" | "color1" | "color2" | "color3" | "color4" | "color5" | "color6" | "color7" | "color8" | "color9" | "color10" | "color11" | "color12" | "background" | "backgroundHover" | "backgroundPress" | "backgroundFocus" | "colorTransparent" | "placeholderColor" | "outlineColor" | "accentBackground" | "accentColor" | "background0" | "background025" | "background05" | "background075" | "color0" | "color025" | "color05" | "color075" | keyof Extra["dark"]]: string; }; };
50
+ type NamesWithChildrenNames<ParentNames extends string, ChildNames> = ParentNames | (ChildNames extends string ? `${ParentNames}_${ChildNames}` : never);
51
+ export declare function createSimpleThemeBuilder<Extra extends ExtraThemeValuesByScheme, Templates extends BuildTemplates, Palettes extends SimplePaletteDefinitions, ChildrenThemes extends Record<string, {
52
+ template: keyof Templates extends string ? keyof Templates : never;
53
+ palette?: string;
54
+ }>, GrandChildrenThemes extends undefined | Record<string, {
55
+ template: keyof Templates extends string ? keyof Templates : never;
56
+ palette?: string;
57
+ }>, HasAccent extends boolean, ComponentThemes extends SimpleThemesDefinition, FullTheme = {
58
+ [ThemeKey in keyof Templates['light_base'] | keyof Extra['dark']]: string;
59
+ }>(props: {
60
+ palettes?: Palettes;
61
+ accentTheme?: HasAccent;
62
+ templates?: Templates;
63
+ childrenThemes?: ChildrenThemes;
64
+ grandChildrenThemes?: GrandChildrenThemes;
65
+ componentThemes?: ComponentThemes;
66
+ extra?: Extra;
67
+ }): {
68
+ themeBuilder: ThemeBuilder<any>;
69
+ themes: {
70
+ [Key in 'light' | 'dark' | (HasAccent extends true ? 'light_accent' | 'dark_accent' : never) | (keyof ChildrenThemes extends string ? `${'light' | 'dark'}_${GrandChildrenThemes extends undefined ? keyof ChildrenThemes : NamesWithChildrenNames<keyof ChildrenThemes, keyof GrandChildrenThemes>}` : never)]: FullTheme;
71
+ };
72
+ };
73
+ export declare function createThemes(props: BuildThemeSuiteProps): {
74
+ themeBuilder: ThemeBuilder<any>;
75
+ themes: {
76
+ [x: `light_${string}`]: {
77
+ [x: string]: string;
78
+ [x: number]: string;
79
+ };
80
+ [x: `dark_${string}`]: {
81
+ [x: string]: string;
82
+ [x: number]: string;
83
+ };
84
+ light: {
85
+ [x: string]: string;
86
+ [x: number]: string;
87
+ };
88
+ dark: {
89
+ [x: string]: string;
90
+ [x: number]: string;
91
+ };
92
+ };
93
+ };
94
+ export declare const getComponentThemes: (components: SimpleThemesDefinition) => {
95
+ [k: string]: {
96
+ parent: string;
97
+ template: string;
98
+ };
99
+ };
100
+ export declare const defaultComponentThemes: {
101
+ ListItem: {
102
+ template: string;
103
+ };
104
+ SelectTrigger: {
105
+ template: string;
106
+ };
107
+ Card: {
108
+ template: string;
109
+ };
110
+ Button: {
111
+ template: string;
112
+ };
113
+ Checkbox: {
114
+ template: string;
115
+ };
116
+ Switch: {
117
+ template: string;
118
+ };
119
+ SwitchThumb: {
120
+ template: string;
121
+ };
122
+ TooltipContent: {
123
+ template: string;
124
+ };
125
+ Progress: {
126
+ template: string;
127
+ };
128
+ RadioGroupItem: {
129
+ template: string;
130
+ };
131
+ TooltipArrow: {
132
+ template: string;
133
+ };
134
+ SliderTrackActive: {
135
+ template: string;
136
+ };
137
+ SliderTrack: {
138
+ template: string;
139
+ };
140
+ SliderThumb: {
141
+ template: string;
142
+ };
143
+ Tooltip: {
144
+ template: string;
145
+ };
146
+ ProgressIndicator: {
147
+ template: string;
148
+ };
149
+ Input: {
150
+ template: string;
151
+ };
152
+ TextArea: {
153
+ template: string;
154
+ };
155
+ };
156
+ export declare function createPalettes(palettes: BuildPalettes): SimplePaletteDefinitions;
157
+ //# sourceMappingURL=v4-createTheme.d.ts.map