@tamagui/create-theme 1.46.1 → 1.47.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/create-theme",
3
- "version": "1.46.1",
3
+ "version": "1.47.0",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -28,10 +28,10 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@tamagui/web": "1.46.1"
31
+ "@tamagui/web": "1.47.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@tamagui/build": "1.46.1"
34
+ "@tamagui/build": "1.47.0"
35
35
  },
36
36
  "publishConfig": {
37
37
  "access": "public"
@@ -1,178 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var ThemeBuilder_exports = {};
20
- __export(ThemeBuilder_exports, {
21
- ThemeBuilder: () => ThemeBuilder,
22
- createThemeBuilder: () => createThemeBuilder
23
- });
24
- module.exports = __toCommonJS(ThemeBuilder_exports);
25
- var import_applyMask = require("./applyMask");
26
- var import_createTheme = require("./createTheme");
27
- var import_helpers = require("./helpers");
28
- var import_masks = require("./masks");
29
- class ThemeBuilder {
30
- constructor(state) {
31
- this.state = state;
32
- }
33
- addPalettes(palettes) {
34
- this.state.palettes = {
35
- // as {} prevents generic string key merge messing up types
36
- ...this.state.palettes,
37
- ...palettes
38
- };
39
- return this;
40
- }
41
- addTemplates(templates) {
42
- this.state.templates = {
43
- // as {} prevents generic string key merge messing up types
44
- ...this.state.templates,
45
- ...templates
46
- };
47
- return this;
48
- }
49
- addMasks(masks) {
50
- this.state.masks = {
51
- // as {} prevents generic string key merge messing up types
52
- ...this.state.masks,
53
- ...(0, import_helpers.objectFromEntries)(
54
- (0, import_helpers.objectEntries)(masks).map(([key, val]) => [key, (0, import_masks.createMask)(val)])
55
- )
56
- };
57
- return this;
58
- }
59
- addThemes(themes) {
60
- this.state.themes = {
61
- // as {} prevents generic string key merge messing up types
62
- ...this.state.themes,
63
- ...themes
64
- };
65
- return this;
66
- }
67
- addChildThemes(childThemeDefinition, options) {
68
- const currentThemes = this.state.themes;
69
- if (!currentThemes) {
70
- throw new Error(
71
- `No themes defined yet, use addThemes first to set your base themes`
72
- );
73
- }
74
- const currentThemeNames = (0, import_helpers.objectKeys)(currentThemes);
75
- const incomingThemeNames = (0, import_helpers.objectKeys)(childThemeDefinition);
76
- const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
77
- if (options == null ? void 0 : options.avoidNestingWithin) {
78
- if (options.avoidNestingWithin.some(
79
- (avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
80
- )) {
81
- return [];
82
- }
83
- }
84
- return incomingThemeNames.map((subName) => {
85
- const fullName = `${prefix}_${subName}`;
86
- const definition = childThemeDefinition[subName];
87
- return [fullName, definition];
88
- });
89
- });
90
- const childThemes = (0, import_helpers.objectFromEntries)(namesWithDefinitions);
91
- const next = {
92
- // as {} prevents generic string key merge messing up types
93
- ...this.state.themes,
94
- ...childThemes
95
- };
96
- this.state.themes = next;
97
- return this;
98
- }
99
- build() {
100
- var _a, _b;
101
- if (!this.state.themes) {
102
- return {};
103
- }
104
- const out = {};
105
- const maskedThemes = [];
106
- for (const themeName in this.state.themes) {
107
- const nameParts = themeName.split("_");
108
- const parentName = nameParts.slice(0, nameParts.length - 1).join("_");
109
- const definitions = this.state.themes[themeName];
110
- const themeDefinition = Array.isArray(definitions) ? (() => {
111
- const found = definitions.find((d) => parentName.startsWith(d.parent));
112
- if (!found) {
113
- throw new Error(`No parent for ${themeName}: ${parentName}`);
114
- }
115
- return found;
116
- })() : definitions;
117
- if ("theme" in themeDefinition) {
118
- out[themeName] = themeDefinition.theme;
119
- } else if ("mask" in themeDefinition) {
120
- maskedThemes.push({ parentName, themeName, mask: themeDefinition });
121
- } else {
122
- const {
123
- palette: paletteName,
124
- template: templateName,
125
- ...options
126
- } = themeDefinition;
127
- if (!this.state.palettes) {
128
- throw new Error(
129
- `No palettes defined for theme with palette expected: ${themeName}`
130
- );
131
- }
132
- let palette = this.state.palettes[paletteName];
133
- if (!palette) {
134
- const fullPaletteName = `${parentName}_${paletteName}`;
135
- palette = this.state.palettes[fullPaletteName];
136
- }
137
- if (!palette) {
138
- throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
139
- }
140
- const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
141
- if (!template) {
142
- throw new Error(`No template for theme ${themeName}: ${templateName}`);
143
- }
144
- out[themeName] = (0, import_createTheme.createTheme)(palette, template, options, themeName);
145
- }
146
- }
147
- for (const { mask, themeName, parentName } of maskedThemes) {
148
- const parent = out[parentName];
149
- if (!parent) {
150
- throw new Error(
151
- `No parent theme found with name ${parentName} for theme ${themeName} to use as a mask target`
152
- );
153
- }
154
- const { mask: maskName, ...options } = mask;
155
- const maskFunction = (_b = this.state.masks) == null ? void 0 : _b[maskName];
156
- if (!maskFunction) {
157
- throw new Error(`No mask ${maskFunction}`);
158
- }
159
- out[themeName] = (0, import_applyMask.applyMask)(
160
- parent,
161
- maskFunction,
162
- options,
163
- parentName,
164
- themeName
165
- );
166
- }
167
- return out;
168
- }
169
- }
170
- function createThemeBuilder() {
171
- return new ThemeBuilder({});
172
- }
173
- // Annotate the CommonJS export names for ESM import in node:
174
- 0 && (module.exports = {
175
- ThemeBuilder,
176
- createThemeBuilder
177
- });
178
- //# sourceMappingURL=ThemeBuilder.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/ThemeBuilder.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,153 +0,0 @@
1
- import { applyMask } from "./applyMask";
2
- import { createTheme } from "./createTheme";
3
- import { objectEntries, objectFromEntries, objectKeys } from "./helpers";
4
- import { createMask } from "./masks";
5
- class ThemeBuilder {
6
- constructor(state) {
7
- this.state = state;
8
- }
9
- addPalettes(palettes) {
10
- this.state.palettes = {
11
- // as {} prevents generic string key merge messing up types
12
- ...this.state.palettes,
13
- ...palettes
14
- };
15
- return this;
16
- }
17
- addTemplates(templates) {
18
- this.state.templates = {
19
- // as {} prevents generic string key merge messing up types
20
- ...this.state.templates,
21
- ...templates
22
- };
23
- return this;
24
- }
25
- addMasks(masks) {
26
- this.state.masks = {
27
- // as {} prevents generic string key merge messing up types
28
- ...this.state.masks,
29
- ...objectFromEntries(
30
- objectEntries(masks).map(([key, val]) => [key, createMask(val)])
31
- )
32
- };
33
- return this;
34
- }
35
- addThemes(themes) {
36
- this.state.themes = {
37
- // as {} prevents generic string key merge messing up types
38
- ...this.state.themes,
39
- ...themes
40
- };
41
- return this;
42
- }
43
- addChildThemes(childThemeDefinition, options) {
44
- const currentThemes = this.state.themes;
45
- if (!currentThemes) {
46
- throw new Error(
47
- `No themes defined yet, use addThemes first to set your base themes`
48
- );
49
- }
50
- const currentThemeNames = objectKeys(currentThemes);
51
- const incomingThemeNames = objectKeys(childThemeDefinition);
52
- const namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
53
- if (options == null ? void 0 : options.avoidNestingWithin) {
54
- if (options.avoidNestingWithin.some(
55
- (avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)
56
- )) {
57
- return [];
58
- }
59
- }
60
- return incomingThemeNames.map((subName) => {
61
- const fullName = `${prefix}_${subName}`;
62
- const definition = childThemeDefinition[subName];
63
- return [fullName, definition];
64
- });
65
- });
66
- const childThemes = objectFromEntries(namesWithDefinitions);
67
- const next = {
68
- // as {} prevents generic string key merge messing up types
69
- ...this.state.themes,
70
- ...childThemes
71
- };
72
- this.state.themes = next;
73
- return this;
74
- }
75
- build() {
76
- var _a, _b;
77
- if (!this.state.themes) {
78
- return {};
79
- }
80
- const out = {};
81
- const maskedThemes = [];
82
- for (const themeName in this.state.themes) {
83
- const nameParts = themeName.split("_");
84
- const parentName = nameParts.slice(0, nameParts.length - 1).join("_");
85
- const definitions = this.state.themes[themeName];
86
- const themeDefinition = Array.isArray(definitions) ? (() => {
87
- const found = definitions.find((d) => parentName.startsWith(d.parent));
88
- if (!found) {
89
- throw new Error(`No parent for ${themeName}: ${parentName}`);
90
- }
91
- return found;
92
- })() : definitions;
93
- if ("theme" in themeDefinition) {
94
- out[themeName] = themeDefinition.theme;
95
- } else if ("mask" in themeDefinition) {
96
- maskedThemes.push({ parentName, themeName, mask: themeDefinition });
97
- } else {
98
- const {
99
- palette: paletteName,
100
- template: templateName,
101
- ...options
102
- } = themeDefinition;
103
- if (!this.state.palettes) {
104
- throw new Error(
105
- `No palettes defined for theme with palette expected: ${themeName}`
106
- );
107
- }
108
- let palette = this.state.palettes[paletteName];
109
- if (!palette) {
110
- const fullPaletteName = `${parentName}_${paletteName}`;
111
- palette = this.state.palettes[fullPaletteName];
112
- }
113
- if (!palette) {
114
- throw new Error(`No palette for theme ${themeName}: ${paletteName}`);
115
- }
116
- const template = (_a = this.state.templates) == null ? void 0 : _a[templateName];
117
- if (!template) {
118
- throw new Error(`No template for theme ${themeName}: ${templateName}`);
119
- }
120
- out[themeName] = createTheme(palette, template, options, themeName);
121
- }
122
- }
123
- for (const { mask, themeName, parentName } of maskedThemes) {
124
- const parent = out[parentName];
125
- if (!parent) {
126
- throw new Error(
127
- `No parent theme found with name ${parentName} for theme ${themeName} to use as a mask target`
128
- );
129
- }
130
- const { mask: maskName, ...options } = mask;
131
- const maskFunction = (_b = this.state.masks) == null ? void 0 : _b[maskName];
132
- if (!maskFunction) {
133
- throw new Error(`No mask ${maskFunction}`);
134
- }
135
- out[themeName] = applyMask(
136
- parent,
137
- maskFunction,
138
- options,
139
- parentName,
140
- themeName
141
- );
142
- }
143
- return out;
144
- }
145
- }
146
- function createThemeBuilder() {
147
- return new ThemeBuilder({});
148
- }
149
- export {
150
- ThemeBuilder,
151
- createThemeBuilder
152
- };
153
- //# sourceMappingURL=ThemeBuilder.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/ThemeBuilder.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,86 +0,0 @@
1
- import type { Narrow } from '@tamagui/web';
2
- import { CreateMask, CreateThemeOptions, MaskOptions } from './createThemeTypes';
3
- export type Palette = string[];
4
- type GenericTheme = {
5
- [key: string]: string;
6
- };
7
- export type Template = {
8
- [key: string]: number;
9
- };
10
- type ThemeUsingMask<Masks = string> = MaskOptions & {
11
- mask: Masks;
12
- };
13
- type ThemeUsingTemplate = CreateThemeOptions & {
14
- palette: string;
15
- template: string;
16
- };
17
- type ThemePreDefined = {
18
- theme: GenericTheme;
19
- };
20
- export type Theme<Masks = string> = ThemePreDefined | ThemeUsingTemplate | ThemeUsingMask<Masks>;
21
- export type ThemeWithParent<Masks = string> = Theme<Masks> & {
22
- parent: string;
23
- };
24
- export type PaletteDefinitions = {
25
- [key: string]: Palette;
26
- };
27
- export type ThemeDefinition<Masks extends string = string> = Theme<Masks> | ThemeWithParent<Masks>[];
28
- type UnionableString = string & {};
29
- export type ThemeDefinitions<Masks extends string = string> = {
30
- [key: string]: ThemeDefinition<Masks | UnionableString>;
31
- };
32
- export type TemplateDefinitions = {
33
- [key: string]: Template;
34
- };
35
- export type MaskDefinitions = {
36
- [key: string]: CreateMask | CreateMask['mask'];
37
- };
38
- type ThemeBuilderState = {
39
- palettes?: PaletteDefinitions;
40
- templates?: TemplateDefinitions;
41
- themes?: ThemeDefinitions;
42
- masks?: MaskDefinitions;
43
- };
44
- type ObjectStringKeys<A extends Object | undefined> = A extends Object ? Exclude<keyof A, symbol | number> : never;
45
- type GetGeneratedThemeFromTemplate<Template> = {
46
- [key in keyof Template]: string;
47
- };
48
- type GetParentTheme<P, Themes extends ThemeDefinitions | undefined> = P extends string ? P extends keyof Themes ? Themes[P] : GetParentName<P> extends keyof Themes ? Themes[GetParentName<P>] : GetParentName<GetParentName<P>> extends keyof Themes ? Themes[GetParentName<GetParentName<P>>] : GetParentName<GetParentName<GetParentName<P>>> extends keyof Themes ? Themes[GetParentName<GetParentName<GetParentName<P>>>] : never : never;
49
- type GetGeneratedTheme<TD extends any, S extends ThemeBuilderState> = TD extends {
50
- theme: infer T;
51
- } ? T : TD extends {
52
- parent: infer P;
53
- } ? GetGeneratedTheme<GetParentTheme<P, S['themes']>, S> : TD extends {
54
- template: infer T;
55
- } ? T extends keyof S['templates'] ? GetGeneratedThemeFromTemplate<S['templates'][T]> : TD : TD;
56
- type ThemeBuilderBuildResult<S extends ThemeBuilderState> = {
57
- [Key in keyof S['themes']]: GetGeneratedTheme<S['themes'][Key], S>;
58
- };
59
- type GetParentName<N extends string> = N extends `${infer A}_${infer B}_${infer C}_${infer D}_${string}` ? `${A}_${B}_${C}_${D}` : N extends `${infer A}_${infer B}_${infer C}_${string}` ? `${A}_${B}_${C}` : N extends `${infer A}_${infer B}_${string}` ? `${A}_${B}` : N extends `${infer A}_${string}` ? `${A}` : never;
60
- export declare class ThemeBuilder<State extends ThemeBuilderState> {
61
- state: State;
62
- constructor(state: State);
63
- addPalettes<const P extends PaletteDefinitions>(palettes: P): ThemeBuilder<State & {
64
- palettes: P;
65
- }>;
66
- addTemplates<const T extends TemplateDefinitions>(templates: T): ThemeBuilder<State & {
67
- templates: T;
68
- }>;
69
- addMasks<const M extends MaskDefinitions>(masks: M): ThemeBuilder<State & {
70
- masks: M;
71
- }>;
72
- addThemes<const T extends ThemeDefinitions<ObjectStringKeys<State['masks']>>>(themes: T): ThemeBuilder<State & {
73
- themes: T;
74
- }>;
75
- addChildThemes<CTD extends Narrow<ThemeDefinitions<ObjectStringKeys<State['masks']>>>, const AvoidNestingWithin extends string[] = []>(childThemeDefinition: CTD, options?: {
76
- avoidNestingWithin?: AvoidNestingWithin;
77
- }): ThemeBuilder<State & {
78
- themes: { [key in `${Exclude<keyof NonNullable<State["themes"]>, number | symbol>}_${Exclude<keyof CTD, number | symbol>}`]: CTD & {
79
- parent: GetParentName<key>;
80
- }; };
81
- }>;
82
- build(): ThemeBuilderBuildResult<State>;
83
- }
84
- export declare function createThemeBuilder(): ThemeBuilder<{}>;
85
- export {};
86
- //# sourceMappingURL=ThemeBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeBuilder.d.ts","sourceRoot":"","sources":["../src/ThemeBuilder.tsx"],"names":[],"mappings":"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"}