@tamagui/theme-builder 1.79.4 → 1.79.5

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 (48) hide show
  1. package/dist/cjs/buildThemeSuite.js +309 -0
  2. package/dist/cjs/buildThemeSuite.js.map +6 -0
  3. package/dist/cjs/buildThemeSuite.native.js +310 -0
  4. package/dist/cjs/buildThemeSuite.native.js.map +6 -0
  5. package/dist/cjs/buildThemeSuitePalettes.js +56 -0
  6. package/dist/cjs/buildThemeSuitePalettes.js.map +6 -0
  7. package/dist/cjs/buildThemeSuitePalettes.native.js +57 -0
  8. package/dist/cjs/buildThemeSuitePalettes.native.js.map +6 -0
  9. package/dist/cjs/buildThemeSuiteScales.js +251 -0
  10. package/dist/cjs/buildThemeSuiteScales.js.map +6 -0
  11. package/dist/cjs/buildThemeSuiteScales.native.js +252 -0
  12. package/dist/cjs/buildThemeSuiteScales.native.js.map +6 -0
  13. package/dist/cjs/index.js +7 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/index.native.js +7 -1
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/esm/buildThemeSuite.js +296 -0
  18. package/dist/esm/buildThemeSuite.js.map +6 -0
  19. package/dist/esm/buildThemeSuite.native.js +296 -0
  20. package/dist/esm/buildThemeSuite.native.js.map +6 -0
  21. package/dist/esm/buildThemeSuitePalettes.js +37 -0
  22. package/dist/esm/buildThemeSuitePalettes.js.map +6 -0
  23. package/dist/esm/buildThemeSuitePalettes.native.js +37 -0
  24. package/dist/esm/buildThemeSuitePalettes.native.js.map +6 -0
  25. package/dist/esm/buildThemeSuiteScales.js +230 -0
  26. package/dist/esm/buildThemeSuiteScales.js.map +6 -0
  27. package/dist/esm/buildThemeSuiteScales.native.js +230 -0
  28. package/dist/esm/buildThemeSuiteScales.native.js.map +6 -0
  29. package/dist/esm/index.js +3 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/index.native.js +3 -0
  32. package/dist/esm/index.native.js.map +1 -1
  33. package/package.json +4 -3
  34. package/src/buildThemeSuite.ts +376 -0
  35. package/src/buildThemeSuitePalettes.ts +91 -0
  36. package/src/buildThemeSuiteScales.ts +209 -0
  37. package/src/index.ts +5 -0
  38. package/src/types.ts +16 -2
  39. package/types/buildThemeSuite.d.ts +310 -0
  40. package/types/buildThemeSuite.d.ts.map +1 -0
  41. package/types/buildThemeSuitePalettes.d.ts +3 -0
  42. package/types/buildThemeSuitePalettes.d.ts.map +1 -0
  43. package/types/buildThemeSuiteScales.d.ts +16 -0
  44. package/types/buildThemeSuiteScales.d.ts.map +1 -0
  45. package/types/index.d.ts +3 -0
  46. package/types/index.d.ts.map +1 -1
  47. package/types/types.d.ts +15 -2
  48. package/types/types.d.ts.map +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,oBAHd;",
4
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,oBAHd;AAMA,wBAAc,8BANd;AAOA,wBAAc,sCAPd;AAQA,wBAAc,oCARd;",
5
5
  "names": []
6
6
  }
@@ -16,11 +16,17 @@ __reExport(src_exports, require("./ThemeBuilder"), module.exports);
16
16
  __reExport(src_exports, require("@tamagui/create-theme"), module.exports);
17
17
  __reExport(src_exports, require("./buildMask"), module.exports);
18
18
  __reExport(src_exports, require("./types"), module.exports);
19
+ __reExport(src_exports, require("./buildThemeSuite"), module.exports);
20
+ __reExport(src_exports, require("./buildThemeSuitePalettes"), module.exports);
21
+ __reExport(src_exports, require("./buildThemeSuiteScales"), module.exports);
19
22
  // Annotate the CommonJS export names for ESM import in node:
20
23
  0 && (module.exports = {
21
24
  ...require("./ThemeBuilder"),
22
25
  ...require("@tamagui/create-theme"),
23
26
  ...require("./buildMask"),
24
- ...require("./types")
27
+ ...require("./types"),
28
+ ...require("./buildThemeSuite"),
29
+ ...require("./buildThemeSuitePalettes"),
30
+ ...require("./buildThemeSuiteScales")
25
31
  });
26
32
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,oBAHd;",
4
+ "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2BAAd;AACA,wBAAc,kCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,oBAHd;AAMA,wBAAc,8BANd;AAOA,wBAAc,sCAPd;AAQA,wBAAc,oCARd;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,296 @@
1
+ import {
2
+ createMask,
3
+ createSoftenMask
4
+ } from "@tamagui/create-theme";
5
+ import { masks as defaultMasks, maskOptions } from "@tamagui/themes";
6
+ import { buildMask } from "./buildMask";
7
+ import { getThemeSuitePalettes } from "./buildThemeSuitePalettes";
8
+ import { createThemeBuilder } from "./ThemeBuilder";
9
+ function buildThemeSuite({ baseTheme, subThemes }) {
10
+ const theme = baseTheme, maskThemes = (subThemes || []).filter(
11
+ (x) => x.type === "mask"
12
+ ), customMasks = Object.fromEntries(
13
+ maskThemes.map((maskTheme) => [maskTheme.name, buildMask(maskTheme.masks)])
14
+ ), palettes = getThemeSuitePalettes(theme), max = palettes.dark.length - 1, min = 1, componentMask = {
15
+ ...maskOptions.component,
16
+ max,
17
+ min,
18
+ overrideSwap: {
19
+ accentBackground: 0,
20
+ accentColor: -0
21
+ },
22
+ overrideShift: {
23
+ ...maskOptions.component.override
24
+ },
25
+ skip: {
26
+ ...maskOptions.component.skip
27
+ }
28
+ }, customMaskOptions = {
29
+ alt: {
30
+ ...maskOptions.alt,
31
+ max,
32
+ min,
33
+ overrideSwap: {
34
+ accentBackground: 0,
35
+ accentColor: -0
36
+ },
37
+ overrideShift: {
38
+ ...maskOptions.alt.override
39
+ },
40
+ skip: {
41
+ ...maskOptions.alt.skip
42
+ }
43
+ },
44
+ component: componentMask,
45
+ componentInverse: {
46
+ ...componentMask
47
+ }
48
+ }, baseTemplate = {
49
+ accentBackground: 0,
50
+ accentColor: -0,
51
+ background0: 1,
52
+ background025: 2,
53
+ background05: 3,
54
+ background075: 4,
55
+ color0: -4,
56
+ color025: -3,
57
+ color05: -2,
58
+ color075: -1,
59
+ background: 5,
60
+ backgroundHover: 6,
61
+ backgroundPress: 7,
62
+ backgroundFocus: 8,
63
+ color: -5,
64
+ colorHover: -6,
65
+ colorPress: -5,
66
+ colorFocus: -6,
67
+ placeholderColor: -6,
68
+ borderColor: 7,
69
+ borderColorHover: 8,
70
+ borderColorFocus: 9,
71
+ borderColorPress: 8
72
+ };
73
+ function createTemplates() {
74
+ const template = {
75
+ color1: 5,
76
+ color2: 6,
77
+ color3: 7,
78
+ color4: 8,
79
+ color5: 9,
80
+ color6: 10,
81
+ color7: 11,
82
+ color8: 12,
83
+ color9: 13,
84
+ color10: 14,
85
+ color11: 15,
86
+ color12: 16,
87
+ ...baseTemplate
88
+ }, accentTemplateLight = {
89
+ background: 0,
90
+ backgroundHover: baseTemplate.backgroundHover + 4,
91
+ backgroundPress: baseTemplate.backgroundPress + 4,
92
+ backgroundFocus: baseTemplate.backgroundFocus + 4,
93
+ borderColor: baseTemplate.borderColor + 2,
94
+ borderColorHover: baseTemplate.borderColorHover + 2,
95
+ borderColorFocus: baseTemplate.borderColorFocus + 2,
96
+ borderColorPress: baseTemplate.borderColorPress + 2,
97
+ color: -5,
98
+ colorHover: -6,
99
+ colorPress: -7,
100
+ colorFocus: -5
101
+ }, accentTemplateDark = {
102
+ background: baseTemplate.backgroundHover + 4,
103
+ backgroundHover: baseTemplate.backgroundHover + 5,
104
+ backgroundPress: baseTemplate.backgroundPress + 3,
105
+ backgroundFocus: baseTemplate.backgroundFocus + 5,
106
+ borderColor: baseTemplate.borderColor + 2,
107
+ borderColorHover: baseTemplate.borderColorHover + 2,
108
+ borderColorFocus: baseTemplate.borderColorFocus + 2,
109
+ borderColorPress: baseTemplate.borderColorPress + 2,
110
+ color: -5,
111
+ colorHover: -6,
112
+ colorPress: -7,
113
+ colorFocus: -5
114
+ };
115
+ return {
116
+ base: template,
117
+ accentLight: accentTemplateLight,
118
+ accentDark: accentTemplateDark
119
+ };
120
+ }
121
+ const templates = createTemplates();
122
+ function getComponentThemeDefinitions() {
123
+ const overlayThemes = {
124
+ light: {
125
+ background: "rgba(0,0,0,0.5)"
126
+ },
127
+ dark: {
128
+ background: "rgba(0,0,0,0.9)"
129
+ }
130
+ }, overlayThemeDefinitions = [
131
+ {
132
+ parent: "light",
133
+ theme: overlayThemes.light
134
+ },
135
+ {
136
+ parent: "dark",
137
+ theme: overlayThemes.dark
138
+ }
139
+ ], componentTheme = [
140
+ {
141
+ parent: "light_accent",
142
+ template: "accentLight",
143
+ palette: "lightAccent"
144
+ },
145
+ {
146
+ parent: "dark_accent",
147
+ template: "accentDark",
148
+ palette: "darkAccent"
149
+ },
150
+ {
151
+ parent: "light",
152
+ mask: "soften2",
153
+ ...customMaskOptions.component
154
+ },
155
+ {
156
+ parent: "dark",
157
+ mask: "soften2",
158
+ ...customMaskOptions.component
159
+ }
160
+ ];
161
+ return {
162
+ Card: {
163
+ mask: "soften",
164
+ ...customMaskOptions.component
165
+ },
166
+ Button: componentTheme,
167
+ Checkbox: {
168
+ mask: "softenBorder2",
169
+ ...customMaskOptions.component
170
+ },
171
+ Switch: {
172
+ mask: "soften2",
173
+ ...customMaskOptions.component
174
+ },
175
+ SwitchThumb: {
176
+ mask: "inverse",
177
+ ...customMaskOptions.componentInverse
178
+ },
179
+ TooltipContent: {
180
+ mask: "soften2",
181
+ ...customMaskOptions.component
182
+ },
183
+ DrawerFrame: {
184
+ mask: "soften",
185
+ ...customMaskOptions.component
186
+ },
187
+ Progress: {
188
+ mask: "soften",
189
+ ...customMaskOptions.component
190
+ },
191
+ RadioGroupItem: {
192
+ mask: "softenBorder2",
193
+ ...customMaskOptions.component
194
+ },
195
+ TooltipArrow: {
196
+ mask: "soften",
197
+ ...customMaskOptions.component
198
+ },
199
+ SliderTrackActive: {
200
+ mask: "inverseSoften",
201
+ ...customMaskOptions.component
202
+ },
203
+ SliderTrack: {
204
+ mask: "soften2",
205
+ ...customMaskOptions.component
206
+ },
207
+ SliderThumb: {
208
+ mask: "inverse",
209
+ ...customMaskOptions.componentInverse
210
+ },
211
+ Tooltip: {
212
+ mask: "inverse",
213
+ ...customMaskOptions.component
214
+ },
215
+ ProgressIndicator: {
216
+ mask: "inverse",
217
+ ...customMaskOptions.componentInverse
218
+ },
219
+ SheetOverlay: overlayThemeDefinitions,
220
+ DialogOverlay: overlayThemeDefinitions,
221
+ ModalOverlay: overlayThemeDefinitions,
222
+ Input: {
223
+ mask: "softenBorder2",
224
+ ...customMaskOptions.component
225
+ },
226
+ TextArea: {
227
+ mask: "softenBorder2",
228
+ ...customMaskOptions.component
229
+ }
230
+ };
231
+ }
232
+ return {
233
+ built: createThemeBuilder().addPalettes(palettes).addMasks({
234
+ ...defaultMasks,
235
+ soften3Border2: createMask((template, options) => {
236
+ const softer2 = createSoftenMask({ strength: 3 }).mask(template, options), softer1 = createSoftenMask({ strength: 2 }).mask(template, options);
237
+ return {
238
+ ...softer2,
239
+ borderColor: softer1.borderColor,
240
+ borderColorHover: softer1.borderColorHover,
241
+ borderColorPress: softer1.borderColorPress,
242
+ borderColorFocus: softer1.borderColorFocus
243
+ };
244
+ }),
245
+ ...customMasks
246
+ }).addTemplates(templates).addThemes({
247
+ light: {
248
+ template: "base",
249
+ palette: "light"
250
+ },
251
+ dark: {
252
+ template: "base",
253
+ palette: "dark"
254
+ }
255
+ }).addChildThemes(
256
+ Object.fromEntries(
257
+ maskThemes.map((theme2) => [
258
+ theme2.name,
259
+ {
260
+ mask: theme2.name
261
+ }
262
+ ])
263
+ )
264
+ ).addChildThemes({
265
+ // disabling as we don't need to preview these
266
+ alt1: {
267
+ mask: "soften2Border1",
268
+ ...maskOptions.alt
269
+ },
270
+ alt2: {
271
+ mask: "soften3Border2",
272
+ ...maskOptions.alt
273
+ }
274
+ }).addChildThemes(
275
+ palettes.lightAccent ? {
276
+ accent: [
277
+ {
278
+ parent: "light",
279
+ template: "base",
280
+ palette: "lightAccent"
281
+ },
282
+ {
283
+ parent: "dark",
284
+ template: "base",
285
+ palette: "darkAccent"
286
+ }
287
+ ]
288
+ } : {}
289
+ ).addChildThemes(getComponentThemeDefinitions()).build(),
290
+ palettes
291
+ };
292
+ }
293
+ export {
294
+ buildThemeSuite
295
+ };
296
+ //# sourceMappingURL=buildThemeSuite.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/buildThemeSuite.ts"],
4
+ "mappings": "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",
5
+ "names": ["theme"]
6
+ }
@@ -0,0 +1,296 @@
1
+ import {
2
+ createMask,
3
+ createSoftenMask
4
+ } from "@tamagui/create-theme";
5
+ import { masks as defaultMasks, maskOptions } from "@tamagui/themes";
6
+ import { buildMask } from "./buildMask";
7
+ import { getThemeSuitePalettes } from "./buildThemeSuitePalettes";
8
+ import { createThemeBuilder } from "./ThemeBuilder";
9
+ function buildThemeSuite({ baseTheme, subThemes }) {
10
+ const theme = baseTheme, maskThemes = (subThemes || []).filter(
11
+ (x) => x.type === "mask"
12
+ ), customMasks = Object.fromEntries(
13
+ maskThemes.map((maskTheme) => [maskTheme.name, buildMask(maskTheme.masks)])
14
+ ), palettes = getThemeSuitePalettes(theme), max = palettes.dark.length - 1, min = 1, componentMask = {
15
+ ...maskOptions.component,
16
+ max,
17
+ min,
18
+ overrideSwap: {
19
+ accentBackground: 0,
20
+ accentColor: -0
21
+ },
22
+ overrideShift: {
23
+ ...maskOptions.component.override
24
+ },
25
+ skip: {
26
+ ...maskOptions.component.skip
27
+ }
28
+ }, customMaskOptions = {
29
+ alt: {
30
+ ...maskOptions.alt,
31
+ max,
32
+ min,
33
+ overrideSwap: {
34
+ accentBackground: 0,
35
+ accentColor: -0
36
+ },
37
+ overrideShift: {
38
+ ...maskOptions.alt.override
39
+ },
40
+ skip: {
41
+ ...maskOptions.alt.skip
42
+ }
43
+ },
44
+ component: componentMask,
45
+ componentInverse: {
46
+ ...componentMask
47
+ }
48
+ }, baseTemplate = {
49
+ accentBackground: 0,
50
+ accentColor: -0,
51
+ background0: 1,
52
+ background025: 2,
53
+ background05: 3,
54
+ background075: 4,
55
+ color0: -4,
56
+ color025: -3,
57
+ color05: -2,
58
+ color075: -1,
59
+ background: 5,
60
+ backgroundHover: 6,
61
+ backgroundPress: 7,
62
+ backgroundFocus: 8,
63
+ color: -5,
64
+ colorHover: -6,
65
+ colorPress: -5,
66
+ colorFocus: -6,
67
+ placeholderColor: -6,
68
+ borderColor: 7,
69
+ borderColorHover: 8,
70
+ borderColorFocus: 9,
71
+ borderColorPress: 8
72
+ };
73
+ function createTemplates() {
74
+ const template = {
75
+ color1: 5,
76
+ color2: 6,
77
+ color3: 7,
78
+ color4: 8,
79
+ color5: 9,
80
+ color6: 10,
81
+ color7: 11,
82
+ color8: 12,
83
+ color9: 13,
84
+ color10: 14,
85
+ color11: 15,
86
+ color12: 16,
87
+ ...baseTemplate
88
+ }, accentTemplateLight = {
89
+ background: 0,
90
+ backgroundHover: baseTemplate.backgroundHover + 4,
91
+ backgroundPress: baseTemplate.backgroundPress + 4,
92
+ backgroundFocus: baseTemplate.backgroundFocus + 4,
93
+ borderColor: baseTemplate.borderColor + 2,
94
+ borderColorHover: baseTemplate.borderColorHover + 2,
95
+ borderColorFocus: baseTemplate.borderColorFocus + 2,
96
+ borderColorPress: baseTemplate.borderColorPress + 2,
97
+ color: -5,
98
+ colorHover: -6,
99
+ colorPress: -7,
100
+ colorFocus: -5
101
+ }, accentTemplateDark = {
102
+ background: baseTemplate.backgroundHover + 4,
103
+ backgroundHover: baseTemplate.backgroundHover + 5,
104
+ backgroundPress: baseTemplate.backgroundPress + 3,
105
+ backgroundFocus: baseTemplate.backgroundFocus + 5,
106
+ borderColor: baseTemplate.borderColor + 2,
107
+ borderColorHover: baseTemplate.borderColorHover + 2,
108
+ borderColorFocus: baseTemplate.borderColorFocus + 2,
109
+ borderColorPress: baseTemplate.borderColorPress + 2,
110
+ color: -5,
111
+ colorHover: -6,
112
+ colorPress: -7,
113
+ colorFocus: -5
114
+ };
115
+ return {
116
+ base: template,
117
+ accentLight: accentTemplateLight,
118
+ accentDark: accentTemplateDark
119
+ };
120
+ }
121
+ const templates = createTemplates();
122
+ function getComponentThemeDefinitions() {
123
+ const overlayThemes = {
124
+ light: {
125
+ background: "rgba(0,0,0,0.5)"
126
+ },
127
+ dark: {
128
+ background: "rgba(0,0,0,0.9)"
129
+ }
130
+ }, overlayThemeDefinitions = [
131
+ {
132
+ parent: "light",
133
+ theme: overlayThemes.light
134
+ },
135
+ {
136
+ parent: "dark",
137
+ theme: overlayThemes.dark
138
+ }
139
+ ], componentTheme = [
140
+ {
141
+ parent: "light_accent",
142
+ template: "accentLight",
143
+ palette: "lightAccent"
144
+ },
145
+ {
146
+ parent: "dark_accent",
147
+ template: "accentDark",
148
+ palette: "darkAccent"
149
+ },
150
+ {
151
+ parent: "light",
152
+ mask: "soften2",
153
+ ...customMaskOptions.component
154
+ },
155
+ {
156
+ parent: "dark",
157
+ mask: "soften2",
158
+ ...customMaskOptions.component
159
+ }
160
+ ];
161
+ return {
162
+ Card: {
163
+ mask: "soften",
164
+ ...customMaskOptions.component
165
+ },
166
+ Button: componentTheme,
167
+ Checkbox: {
168
+ mask: "softenBorder2",
169
+ ...customMaskOptions.component
170
+ },
171
+ Switch: {
172
+ mask: "soften2",
173
+ ...customMaskOptions.component
174
+ },
175
+ SwitchThumb: {
176
+ mask: "inverse",
177
+ ...customMaskOptions.componentInverse
178
+ },
179
+ TooltipContent: {
180
+ mask: "soften2",
181
+ ...customMaskOptions.component
182
+ },
183
+ DrawerFrame: {
184
+ mask: "soften",
185
+ ...customMaskOptions.component
186
+ },
187
+ Progress: {
188
+ mask: "soften",
189
+ ...customMaskOptions.component
190
+ },
191
+ RadioGroupItem: {
192
+ mask: "softenBorder2",
193
+ ...customMaskOptions.component
194
+ },
195
+ TooltipArrow: {
196
+ mask: "soften",
197
+ ...customMaskOptions.component
198
+ },
199
+ SliderTrackActive: {
200
+ mask: "inverseSoften",
201
+ ...customMaskOptions.component
202
+ },
203
+ SliderTrack: {
204
+ mask: "soften2",
205
+ ...customMaskOptions.component
206
+ },
207
+ SliderThumb: {
208
+ mask: "inverse",
209
+ ...customMaskOptions.componentInverse
210
+ },
211
+ Tooltip: {
212
+ mask: "inverse",
213
+ ...customMaskOptions.component
214
+ },
215
+ ProgressIndicator: {
216
+ mask: "inverse",
217
+ ...customMaskOptions.componentInverse
218
+ },
219
+ SheetOverlay: overlayThemeDefinitions,
220
+ DialogOverlay: overlayThemeDefinitions,
221
+ ModalOverlay: overlayThemeDefinitions,
222
+ Input: {
223
+ mask: "softenBorder2",
224
+ ...customMaskOptions.component
225
+ },
226
+ TextArea: {
227
+ mask: "softenBorder2",
228
+ ...customMaskOptions.component
229
+ }
230
+ };
231
+ }
232
+ return {
233
+ built: createThemeBuilder().addPalettes(palettes).addMasks({
234
+ ...defaultMasks,
235
+ soften3Border2: createMask((template, options) => {
236
+ const softer2 = createSoftenMask({ strength: 3 }).mask(template, options), softer1 = createSoftenMask({ strength: 2 }).mask(template, options);
237
+ return {
238
+ ...softer2,
239
+ borderColor: softer1.borderColor,
240
+ borderColorHover: softer1.borderColorHover,
241
+ borderColorPress: softer1.borderColorPress,
242
+ borderColorFocus: softer1.borderColorFocus
243
+ };
244
+ }),
245
+ ...customMasks
246
+ }).addTemplates(templates).addThemes({
247
+ light: {
248
+ template: "base",
249
+ palette: "light"
250
+ },
251
+ dark: {
252
+ template: "base",
253
+ palette: "dark"
254
+ }
255
+ }).addChildThemes(
256
+ Object.fromEntries(
257
+ maskThemes.map((theme2) => [
258
+ theme2.name,
259
+ {
260
+ mask: theme2.name
261
+ }
262
+ ])
263
+ )
264
+ ).addChildThemes({
265
+ // disabling as we don't need to preview these
266
+ alt1: {
267
+ mask: "soften2Border1",
268
+ ...maskOptions.alt
269
+ },
270
+ alt2: {
271
+ mask: "soften3Border2",
272
+ ...maskOptions.alt
273
+ }
274
+ }).addChildThemes(
275
+ palettes.lightAccent ? {
276
+ accent: [
277
+ {
278
+ parent: "light",
279
+ template: "base",
280
+ palette: "lightAccent"
281
+ },
282
+ {
283
+ parent: "dark",
284
+ template: "base",
285
+ palette: "darkAccent"
286
+ }
287
+ ]
288
+ } : {}
289
+ ).addChildThemes(getComponentThemeDefinitions()).build(),
290
+ palettes
291
+ };
292
+ }
293
+ export {
294
+ buildThemeSuite
295
+ };
296
+ //# sourceMappingURL=buildThemeSuite.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/buildThemeSuite.ts"],
4
+ "mappings": "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",
5
+ "names": ["theme"]
6
+ }
@@ -0,0 +1,37 @@
1
+ import { hsla, parseToHsla, toHex } from "color2k";
2
+ import { getThemeSuiteScale } from "./buildThemeSuiteScales";
3
+ const generateColorPalette = ({
4
+ theme,
5
+ scheme,
6
+ forAccent
7
+ }) => {
8
+ const color = forAccent && theme.accent || theme.color, scale = forAccent && theme.accentScale || theme.scale, { lumScale, satScale } = getThemeSuiteScale(theme, forAccent), [hue, sat, lum] = parseToHsla(color), isDark = scheme === "dark";
9
+ let palette = (isDark ? lumScale.dark : lumScale.light).map((lum2, idx) => sat > 0 ? satScale ? hsla(hue, satScale[scheme][idx], lum2, 1) : hsla(hue, sat, lum2, 1) : hsla(0, 0, lum2, 1));
10
+ const [background] = palette, foreground = palette[palette.length - 1], transparentValues = [background, foreground].map((color2) => {
11
+ const [h, s, l] = parseToHsla(color2);
12
+ return [
13
+ hsla(h, s, l, 0),
14
+ hsla(h, s, l, 0.25),
15
+ hsla(h, s, l, 0.5),
16
+ hsla(h, s, l, 0.75)
17
+ ];
18
+ }), reverseForeground = [...transparentValues[1]].reverse();
19
+ if (palette = [...transparentValues[0], ...palette, ...reverseForeground], theme.accent) {
20
+ const baseAccent = forAccent ? theme.color : theme.accent, accentHsla = parseToHsla(baseAccent), accentLum = accentHsla[2], isAccentLight = accentLum > 0.5, oppositeLightnessAccent = isAccentLight ? toHex(hsla(accentHsla[0], accentHsla[1], 1 - accentLum, 1)) : theme.accent, fg = isAccentLight && !isDark ? oppositeLightnessAccent : baseAccent, bg = fg === baseAccent ? oppositeLightnessAccent : baseAccent;
21
+ palette.unshift(bg), palette.push(fg);
22
+ } else
23
+ palette.unshift("rgba(0,0,0,0)"), palette.push("rgba(0,0,0,0)");
24
+ return palette;
25
+ };
26
+ function getThemeSuitePalettes(theme) {
27
+ return {
28
+ light: generateColorPalette({ theme, scheme: "light" }),
29
+ lightAccent: generateColorPalette({ theme, scheme: "light", forAccent: !0 }),
30
+ dark: generateColorPalette({ theme, scheme: "dark" }),
31
+ darkAccent: generateColorPalette({ theme, scheme: "dark", forAccent: !0 })
32
+ };
33
+ }
34
+ export {
35
+ getThemeSuitePalettes
36
+ };
37
+ //# sourceMappingURL=buildThemeSuitePalettes.js.map