@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,257 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var v4_createTheme_exports = {};
22
+ __export(v4_createTheme_exports, {
23
+ PALETTE_BACKGROUND_OFFSET: () => import_getThemeSuitePalettes2.PALETTE_BACKGROUND_OFFSET,
24
+ createPalettes: () => createPalettes,
25
+ createSimpleThemeBuilder: () => createSimpleThemeBuilder,
26
+ createThemeSuite: () => createThemeSuite,
27
+ createThemes: () => createThemes,
28
+ defaultComponentThemes: () => defaultComponentThemes,
29
+ defaultTemplates: () => import_v4_defaultTemplates2.defaultTemplates,
30
+ getComponentThemes: () => getComponentThemes,
31
+ getThemeSuitePalettes: () => import_getThemeSuitePalettes2.getThemeSuitePalettes
32
+ });
33
+ module.exports = __toCommonJS(v4_createTheme_exports);
34
+ var import_theme_builder = require("@tamagui/theme-builder"),
35
+ import_color2k = require("color2k"),
36
+ import_getThemeSuitePalettes = require("./getThemeSuitePalettes.cjs"),
37
+ import_v4_defaultTemplates = require("./v4-defaultTemplates.cjs"),
38
+ import_getThemeSuitePalettes2 = require("./getThemeSuitePalettes.cjs"),
39
+ import_v4_defaultTemplates2 = require("./v4-defaultTemplates.cjs");
40
+ const defaultPalettes = createPalettes(getThemesPalettes({
41
+ base: {
42
+ palette: ["#fff", "#000"]
43
+ },
44
+ accent: {
45
+ palette: ["#ff0000", "#ff9999"]
46
+ }
47
+ }));
48
+ function createThemeSuite(props) {
49
+ const {
50
+ accent,
51
+ childrenThemes,
52
+ grandChildrenThemes,
53
+ templates = import_v4_defaultTemplates.defaultTemplates,
54
+ componentThemes = defaultComponentThemes
55
+ } = props;
56
+ return createSimpleThemeBuilder({
57
+ extra: props.base.extra,
58
+ componentThemes,
59
+ palettes: createPalettes(getThemesPalettes(props)),
60
+ templates,
61
+ accentTheme: !!accent,
62
+ childrenThemes: normalizeSubThemes(childrenThemes),
63
+ grandChildrenThemes: grandChildrenThemes ? normalizeSubThemes(grandChildrenThemes) : void 0
64
+ }).themes;
65
+ }
66
+ function normalizeSubThemes(defs) {
67
+ return Object.fromEntries(Object.entries(defs || {}).map(([name, value]) => [name, {
68
+ palette: name,
69
+ template: value.template || "base"
70
+ }]));
71
+ }
72
+ function createSimpleThemeBuilder(props) {
73
+ const {
74
+ extra,
75
+ childrenThemes = null,
76
+ grandChildrenThemes = null,
77
+ templates = import_v4_defaultTemplates.defaultTemplates,
78
+ palettes = defaultPalettes,
79
+ componentThemes = templates === import_v4_defaultTemplates.defaultTemplates ? defaultComponentThemes : void 0
80
+ } = props;
81
+ let themeBuilder = (0, import_theme_builder.createThemeBuilder)().addPalettes(palettes).addTemplates(templates).addThemes({
82
+ light: {
83
+ template: "base",
84
+ palette: "light",
85
+ nonInheritedValues: extra?.light
86
+ },
87
+ dark: {
88
+ template: "base",
89
+ palette: "dark",
90
+ nonInheritedValues: extra?.dark
91
+ }
92
+ }).addChildThemes(palettes.light_accent ? {
93
+ accent: [{
94
+ parent: "light",
95
+ template: "base",
96
+ palette: "light_accent"
97
+ }, {
98
+ parent: "dark",
99
+ template: "base",
100
+ palette: "dark_accent"
101
+ }]
102
+ } : {});
103
+ return childrenThemes && (themeBuilder = themeBuilder.addChildThemes(childrenThemes, {
104
+ avoidNestingWithin: ["accent"]
105
+ })), grandChildrenThemes && (themeBuilder = themeBuilder.addChildThemes(grandChildrenThemes, {
106
+ avoidNestingWithin: ["accent"]
107
+ })), componentThemes && (themeBuilder = themeBuilder.addComponentThemes(getComponentThemes(componentThemes), {
108
+ avoidNestingWithin: [
109
+ // ...Object.keys(childrenThemes || {}),
110
+ ...Object.keys(grandChildrenThemes || {})]
111
+ })), {
112
+ themeBuilder,
113
+ themes: themeBuilder.build()
114
+ };
115
+ }
116
+ function createThemes(props) {
117
+ const palettes = createPalettes(props.palettes);
118
+ return createSimpleThemeBuilder({
119
+ palettes,
120
+ templates: props.templates,
121
+ componentThemes: defaultComponentThemes
122
+ });
123
+ }
124
+ function getSchemePalette(colors) {
125
+ return {
126
+ light: colors,
127
+ dark: colors.toReversed()
128
+ };
129
+ }
130
+ function getAnchors(palette) {
131
+ const numItems = palette.light.length;
132
+ return palette.light.map((lcolor, index) => {
133
+ const dcolor = palette.dark[index],
134
+ [lhue, lsat, llum] = (0, import_color2k.parseToHsla)(lcolor),
135
+ [dhue, dsat, dlum] = (0, import_color2k.parseToHsla)(dcolor);
136
+ return {
137
+ index: spreadIndex(11, numItems, index),
138
+ hue: {
139
+ light: lhue,
140
+ dark: dhue
141
+ },
142
+ sat: {
143
+ light: lsat,
144
+ dark: dsat
145
+ },
146
+ lum: {
147
+ light: llum,
148
+ dark: dlum
149
+ }
150
+ };
151
+ });
152
+ }
153
+ function spreadIndex(maxIndex, numItems, index) {
154
+ return Math.round(index / (numItems - 1) * maxIndex);
155
+ }
156
+ function coerceSimplePaletteToSchemePalette(def) {
157
+ return Array.isArray(def) ? getSchemePalette(def) : def;
158
+ }
159
+ function getThemesPalettes(props) {
160
+ const base = coerceSimplePaletteToSchemePalette(props.base.palette),
161
+ accent = props.accent ? coerceSimplePaletteToSchemePalette(props.accent.palette) : null,
162
+ baseAnchors = getAnchors(base);
163
+ function getSubThemesPalettes(defs) {
164
+ return Object.fromEntries(Object.entries(defs).map(([key, value]) => [key, {
165
+ name: key,
166
+ anchors: value.palette ? getAnchors(coerceSimplePaletteToSchemePalette(value.palette)) : baseAnchors
167
+ }]));
168
+ }
169
+ return {
170
+ base: {
171
+ name: "base",
172
+ anchors: baseAnchors
173
+ },
174
+ ...(accent && {
175
+ accent: {
176
+ name: "accent",
177
+ anchors: getAnchors(accent)
178
+ }
179
+ }),
180
+ ...(props.childrenThemes && getSubThemesPalettes(props.childrenThemes)),
181
+ ...(props.grandChildrenThemes && getSubThemesPalettes(props.grandChildrenThemes))
182
+ };
183
+ }
184
+ const getComponentThemes = components => Object.fromEntries(Object.entries(components).map(([componentName, {
185
+ template
186
+ }]) => [componentName, {
187
+ parent: "",
188
+ template: template || "base"
189
+ }])),
190
+ defaultComponentThemes = {
191
+ ListItem: {
192
+ template: "surface1"
193
+ },
194
+ SelectTrigger: {
195
+ template: "surface1"
196
+ },
197
+ Card: {
198
+ template: "surface1"
199
+ },
200
+ Button: {
201
+ template: "surface3"
202
+ },
203
+ Checkbox: {
204
+ template: "surface2"
205
+ },
206
+ Switch: {
207
+ template: "surface2"
208
+ },
209
+ SwitchThumb: {
210
+ template: "inverse"
211
+ },
212
+ TooltipContent: {
213
+ template: "surface2"
214
+ },
215
+ Progress: {
216
+ template: "surface1"
217
+ },
218
+ RadioGroupItem: {
219
+ template: "surface2"
220
+ },
221
+ TooltipArrow: {
222
+ template: "surface1"
223
+ },
224
+ SliderTrackActive: {
225
+ template: "surface3"
226
+ },
227
+ SliderTrack: {
228
+ template: "surface1"
229
+ },
230
+ SliderThumb: {
231
+ template: "inverse"
232
+ },
233
+ Tooltip: {
234
+ template: "inverse"
235
+ },
236
+ ProgressIndicator: {
237
+ template: "inverse"
238
+ },
239
+ Input: {
240
+ template: "surface1"
241
+ },
242
+ TextArea: {
243
+ template: "surface1"
244
+ }
245
+ };
246
+ function createPalettes(palettes) {
247
+ const accentPalettes = palettes.accent ? (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palettes.accent) : null,
248
+ basePalettes = (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palettes.base);
249
+ return Object.fromEntries(Object.entries(palettes).flatMap(([name, palette]) => {
250
+ const palettes2 = (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palette),
251
+ oppositePalettes = name.startsWith("accent") ? basePalettes : accentPalettes,
252
+ oppositeLight = oppositePalettes.light,
253
+ oppositeDark = oppositePalettes.dark,
254
+ bgOffset = 7;
255
+ return [[name === "base" ? "light" : `light_${name}`, [oppositeLight[bgOffset], ...palettes2.light, oppositeLight[oppositeLight.length - bgOffset - 1]]], [name === "base" ? "dark" : `dark_${name}`, [oppositeDark[oppositeDark.length - bgOffset - 1], ...palettes2.dark, oppositeDark[bgOffset]]]];
256
+ }));
257
+ }
@@ -0,0 +1,232 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var v4_createTheme_exports = {};
16
+ __export(v4_createTheme_exports, {
17
+ PALETTE_BACKGROUND_OFFSET: () => import_getThemeSuitePalettes2.PALETTE_BACKGROUND_OFFSET,
18
+ createPalettes: () => createPalettes,
19
+ createSimpleThemeBuilder: () => createSimpleThemeBuilder,
20
+ createThemeSuite: () => createThemeSuite,
21
+ createThemes: () => createThemes,
22
+ defaultComponentThemes: () => defaultComponentThemes,
23
+ defaultTemplates: () => import_v4_defaultTemplates2.defaultTemplates,
24
+ getComponentThemes: () => getComponentThemes,
25
+ getThemeSuitePalettes: () => import_getThemeSuitePalettes2.getThemeSuitePalettes
26
+ });
27
+ module.exports = __toCommonJS(v4_createTheme_exports);
28
+ var import_theme_builder = require("@tamagui/theme-builder"), import_color2k = require("color2k"), import_getThemeSuitePalettes = require("./getThemeSuitePalettes"), import_v4_defaultTemplates = require("./v4-defaultTemplates"), import_getThemeSuitePalettes2 = require("./getThemeSuitePalettes"), import_v4_defaultTemplates2 = require("./v4-defaultTemplates");
29
+ const defaultPalettes = createPalettes(
30
+ getThemesPalettes({
31
+ base: {
32
+ palette: ["#fff", "#000"]
33
+ },
34
+ accent: {
35
+ palette: ["#ff0000", "#ff9999"]
36
+ }
37
+ })
38
+ );
39
+ function createThemeSuite(props) {
40
+ const {
41
+ accent,
42
+ childrenThemes,
43
+ grandChildrenThemes,
44
+ templates = import_v4_defaultTemplates.defaultTemplates,
45
+ componentThemes = defaultComponentThemes
46
+ } = props;
47
+ return createSimpleThemeBuilder({
48
+ extra: props.base.extra,
49
+ componentThemes,
50
+ palettes: createPalettes(getThemesPalettes(props)),
51
+ templates,
52
+ accentTheme: !!accent,
53
+ childrenThemes: normalizeSubThemes(childrenThemes),
54
+ grandChildrenThemes: grandChildrenThemes ? normalizeSubThemes(grandChildrenThemes) : void 0
55
+ }).themes;
56
+ }
57
+ function normalizeSubThemes(defs) {
58
+ return Object.fromEntries(
59
+ Object.entries(defs || {}).map(([name, value]) => [
60
+ name,
61
+ {
62
+ palette: name,
63
+ template: value.template || "base"
64
+ }
65
+ ])
66
+ );
67
+ }
68
+ function createSimpleThemeBuilder(props) {
69
+ const {
70
+ extra,
71
+ childrenThemes = null,
72
+ grandChildrenThemes = null,
73
+ templates = import_v4_defaultTemplates.defaultTemplates,
74
+ palettes = defaultPalettes,
75
+ componentThemes = templates === import_v4_defaultTemplates.defaultTemplates ? defaultComponentThemes : void 0
76
+ } = props;
77
+ let themeBuilder = (0, import_theme_builder.createThemeBuilder)().addPalettes(palettes).addTemplates(templates).addThemes({
78
+ light: {
79
+ template: "base",
80
+ palette: "light",
81
+ nonInheritedValues: extra?.light
82
+ },
83
+ dark: {
84
+ template: "base",
85
+ palette: "dark",
86
+ nonInheritedValues: extra?.dark
87
+ }
88
+ }).addChildThemes(
89
+ palettes.light_accent ? {
90
+ accent: [
91
+ {
92
+ parent: "light",
93
+ template: "base",
94
+ palette: "light_accent"
95
+ },
96
+ {
97
+ parent: "dark",
98
+ template: "base",
99
+ palette: "dark_accent"
100
+ }
101
+ ]
102
+ } : {}
103
+ );
104
+ return childrenThemes && (themeBuilder = themeBuilder.addChildThemes(childrenThemes, {
105
+ avoidNestingWithin: ["accent"]
106
+ })), grandChildrenThemes && (themeBuilder = themeBuilder.addChildThemes(grandChildrenThemes, {
107
+ avoidNestingWithin: ["accent"]
108
+ })), componentThemes && (themeBuilder = themeBuilder.addComponentThemes(getComponentThemes(componentThemes), {
109
+ avoidNestingWithin: [
110
+ // ...Object.keys(childrenThemes || {}),
111
+ ...Object.keys(grandChildrenThemes || {})
112
+ ]
113
+ })), {
114
+ themeBuilder,
115
+ themes: themeBuilder.build()
116
+ };
117
+ }
118
+ function createThemes(props) {
119
+ const palettes = createPalettes(props.palettes);
120
+ return createSimpleThemeBuilder({
121
+ palettes,
122
+ templates: props.templates,
123
+ componentThemes: defaultComponentThemes
124
+ });
125
+ }
126
+ function getSchemePalette(colors) {
127
+ return {
128
+ light: colors,
129
+ dark: colors.toReversed()
130
+ };
131
+ }
132
+ function getAnchors(palette) {
133
+ const numItems = palette.light.length;
134
+ return palette.light.map((lcolor, index) => {
135
+ const dcolor = palette.dark[index], [lhue, lsat, llum] = (0, import_color2k.parseToHsla)(lcolor), [dhue, dsat, dlum] = (0, import_color2k.parseToHsla)(dcolor);
136
+ return {
137
+ index: spreadIndex(11, numItems, index),
138
+ hue: { light: lhue, dark: dhue },
139
+ sat: { light: lsat, dark: dsat },
140
+ lum: { light: llum, dark: dlum }
141
+ };
142
+ });
143
+ }
144
+ function spreadIndex(maxIndex, numItems, index) {
145
+ return Math.round(index / (numItems - 1) * maxIndex);
146
+ }
147
+ function coerceSimplePaletteToSchemePalette(def) {
148
+ return Array.isArray(def) ? getSchemePalette(def) : def;
149
+ }
150
+ function getThemesPalettes(props) {
151
+ const base = coerceSimplePaletteToSchemePalette(props.base.palette), accent = props.accent ? coerceSimplePaletteToSchemePalette(props.accent.palette) : null, baseAnchors = getAnchors(base);
152
+ function getSubThemesPalettes(defs) {
153
+ return Object.fromEntries(
154
+ Object.entries(defs).map(([key, value]) => [
155
+ key,
156
+ {
157
+ name: key,
158
+ anchors: value.palette ? getAnchors(coerceSimplePaletteToSchemePalette(value.palette)) : baseAnchors
159
+ }
160
+ ])
161
+ );
162
+ }
163
+ return {
164
+ base: {
165
+ name: "base",
166
+ anchors: baseAnchors
167
+ },
168
+ ...accent && {
169
+ accent: {
170
+ name: "accent",
171
+ anchors: getAnchors(accent)
172
+ }
173
+ },
174
+ ...props.childrenThemes && getSubThemesPalettes(props.childrenThemes),
175
+ ...props.grandChildrenThemes && getSubThemesPalettes(props.grandChildrenThemes)
176
+ };
177
+ }
178
+ const getComponentThemes = (components) => Object.fromEntries(
179
+ Object.entries(components).map(([componentName, { template }]) => [
180
+ componentName,
181
+ {
182
+ parent: "",
183
+ template: template || "base"
184
+ }
185
+ ])
186
+ ), defaultComponentThemes = {
187
+ ListItem: { template: "surface1" },
188
+ SelectTrigger: { template: "surface1" },
189
+ Card: { template: "surface1" },
190
+ Button: { template: "surface3" },
191
+ Checkbox: { template: "surface2" },
192
+ Switch: { template: "surface2" },
193
+ SwitchThumb: { template: "inverse" },
194
+ TooltipContent: { template: "surface2" },
195
+ Progress: { template: "surface1" },
196
+ RadioGroupItem: { template: "surface2" },
197
+ TooltipArrow: { template: "surface1" },
198
+ SliderTrackActive: { template: "surface3" },
199
+ SliderTrack: { template: "surface1" },
200
+ SliderThumb: { template: "inverse" },
201
+ Tooltip: { template: "inverse" },
202
+ ProgressIndicator: { template: "inverse" },
203
+ Input: { template: "surface1" },
204
+ TextArea: { template: "surface1" }
205
+ };
206
+ function createPalettes(palettes) {
207
+ const accentPalettes = palettes.accent ? (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palettes.accent) : null, basePalettes = (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palettes.base);
208
+ return Object.fromEntries(
209
+ Object.entries(palettes).flatMap(([name, palette]) => {
210
+ const palettes2 = (0, import_getThemeSuitePalettes.getThemeSuitePalettes)(palette), oppositePalettes = name.startsWith("accent") ? basePalettes : accentPalettes, oppositeLight = oppositePalettes.light, oppositeDark = oppositePalettes.dark, bgOffset = 7;
211
+ return [
212
+ [
213
+ name === "base" ? "light" : `light_${name}`,
214
+ [
215
+ oppositeLight[bgOffset],
216
+ ...palettes2.light,
217
+ oppositeLight[oppositeLight.length - bgOffset - 1]
218
+ ]
219
+ ],
220
+ [
221
+ name === "base" ? "dark" : `dark_${name}`,
222
+ [
223
+ oppositeDark[oppositeDark.length - bgOffset - 1],
224
+ ...palettes2.dark,
225
+ oppositeDark[bgOffset]
226
+ ]
227
+ ]
228
+ ];
229
+ })
230
+ );
231
+ }
232
+ //# sourceMappingURL=v4-createTheme.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/v4-createTheme.ts"],
4
+ "mappings": "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",
5
+ "names": ["import_getThemeSuitePalettes", "import_v4_defaultTemplates", "palettes"]
6
+ }