@tamagui/generate-themes 3.0.0-beta.924.1 → 3.0.1

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.
@@ -63,6 +63,10 @@ async function generateThemes(inputFile) {
63
63
  process.env.TAMAGUI_KEEP_THEMES = og;
64
64
  }
65
65
  }
66
+ const themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
67
+ function themeIdentity(theme) {
68
+ return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
69
+ }
66
70
  function generatedThemesToTypescript(themes) {
67
71
  const dedupedTokens = /* @__PURE__ */ new Map();
68
72
  const dedupedThemes = /* @__PURE__ */ new Map();
@@ -79,7 +83,7 @@ function generatedThemesToTypescript(themes) {
79
83
  dedupedTokens.set(value, uniqueKey);
80
84
  }
81
85
  }
82
- const key = JSON.stringify(theme);
86
+ const key = themeIdentity(theme);
83
87
  if (dedupedThemes.has(key)) {
84
88
  dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
85
89
  } else {
@@ -100,11 +104,12 @@ ${baseKeys.map(([k]) => {
100
104
  let out = `${baseTypeString}
101
105
  `;
102
106
  out += `
103
- function t(a: [number, number][]) {
107
+ function t(a: [number, number][], scheme?: 'light' | 'dark') {
104
108
  let res: Record<string,string> = {}
105
109
  for (const [ki, vi] of a) {
106
110
  res[ks[ki] as string] = colors[vi] as string
107
111
  }
112
+ if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
108
113
  return res as Theme
109
114
  }
110
115
  `;
@@ -133,7 +138,7 @@ function t(a: [number, number][]) {
133
138
  export const themes: Themes = {`;
134
139
  dedupedThemes.forEach((theme) => {
135
140
  nameI++;
136
- const key = JSON.stringify(theme);
141
+ const key = themeIdentity(theme);
137
142
  const names = dedupedThemeToNames.get(key);
138
143
  const name = `n${nameI}`;
139
144
  const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
@@ -164,7 +169,8 @@ function objectToJsString(obj, keys, valueToIndex) {
164
169
  const vi = valueToIndex[obj[key]];
165
170
  arrItems.push(`[${ki}, ${vi}]`);
166
171
  }
167
- return `t([${arrItems.join(",")}])`;
172
+ const scheme = Reflect.get(obj, themeSchemeKey);
173
+ return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
168
174
  }
169
175
  function purgeCache(moduleName) {
170
176
  searchCache(moduleName, (mod) => {
@@ -68,6 +68,10 @@ async function generateThemes(inputFile) {
68
68
  process.env.TAMAGUI_KEEP_THEMES = og;
69
69
  }
70
70
  }
71
+ var themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
72
+ function themeIdentity(theme) {
73
+ return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
74
+ }
71
75
  function generatedThemesToTypescript(themes) {
72
76
  var dedupedTokens = /* @__PURE__ */ new Map();
73
77
  var dedupedThemes = /* @__PURE__ */ new Map();
@@ -101,7 +105,7 @@ function generatedThemesToTypescript(themes) {
101
105
  }
102
106
  }
103
107
  }
104
- var key1 = JSON.stringify(theme);
108
+ var key1 = themeIdentity(theme);
105
109
  if (dedupedThemes.has(key1)) {
106
110
  dedupedThemeToNames.set(key1, [...dedupedThemeToNames.get(key1), name]);
107
111
  } else {
@@ -123,11 +127,12 @@ ${baseKeys.map(function(param) {
123
127
  var out = `${baseTypeString}
124
128
  `;
125
129
  out += `
126
- function t(a: [number, number][]) {
130
+ function t(a: [number, number][], scheme?: 'light' | 'dark') {
127
131
  let res: Record<string,string> = {}
128
132
  for (const [ki, vi] of a) {
129
133
  res[ks[ki] as string] = colors[vi] as string
130
134
  }
135
+ if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
131
136
  return res as Theme
132
137
  }
133
138
  `;
@@ -161,7 +166,7 @@ function t(a: [number, number][]) {
161
166
  export const themes: Themes = {`;
162
167
  dedupedThemes.forEach(function(theme2) {
163
168
  nameI++;
164
- var key2 = JSON.stringify(theme2);
169
+ var key2 = themeIdentity(theme2);
165
170
  var names = dedupedThemeToNames.get(key2);
166
171
  var name2 = `n${nameI}`;
167
172
  var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
@@ -192,7 +197,8 @@ function objectToJsString(obj, keys, valueToIndex) {
192
197
  var vi = valueToIndex[obj[key]];
193
198
  arrItems.push(`[${ki}, ${vi}]`);
194
199
  }
195
- return `t([${arrItems.join(",")}])`;
200
+ var scheme = Reflect.get(obj, themeSchemeKey);
201
+ return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
196
202
  }
197
203
  function purgeCache(moduleName) {
198
204
  searchCache(moduleName, function(mod) {
@@ -68,6 +68,10 @@ async function generateThemes(inputFile) {
68
68
  process.env.TAMAGUI_KEEP_THEMES = og;
69
69
  }
70
70
  }
71
+ var themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
72
+ function themeIdentity(theme) {
73
+ return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
74
+ }
71
75
  function generatedThemesToTypescript(themes) {
72
76
  var dedupedTokens = /* @__PURE__ */ new Map();
73
77
  var dedupedThemes = /* @__PURE__ */ new Map();
@@ -101,7 +105,7 @@ function generatedThemesToTypescript(themes) {
101
105
  }
102
106
  }
103
107
  }
104
- var key1 = JSON.stringify(theme);
108
+ var key1 = themeIdentity(theme);
105
109
  if (dedupedThemes.has(key1)) {
106
110
  dedupedThemeToNames.set(key1, [...dedupedThemeToNames.get(key1), name]);
107
111
  } else {
@@ -123,11 +127,12 @@ ${baseKeys.map(function(param) {
123
127
  var out = `${baseTypeString}
124
128
  `;
125
129
  out += `
126
- function t(a: [number, number][]) {
130
+ function t(a: [number, number][], scheme?: 'light' | 'dark') {
127
131
  let res: Record<string,string> = {}
128
132
  for (const [ki, vi] of a) {
129
133
  res[ks[ki] as string] = colors[vi] as string
130
134
  }
135
+ if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
131
136
  return res as Theme
132
137
  }
133
138
  `;
@@ -161,7 +166,7 @@ function t(a: [number, number][]) {
161
166
  export const themes: Themes = {`;
162
167
  dedupedThemes.forEach(function(theme2) {
163
168
  nameI++;
164
- var key2 = JSON.stringify(theme2);
169
+ var key2 = themeIdentity(theme2);
165
170
  var names = dedupedThemeToNames.get(key2);
166
171
  var name2 = `n${nameI}`;
167
172
  var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
@@ -192,7 +197,8 @@ function objectToJsString(obj, keys, valueToIndex) {
192
197
  var vi = valueToIndex[obj[key]];
193
198
  arrItems.push(`[${ki}, ${vi}]`);
194
199
  }
195
- return `t([${arrItems.join(",")}])`;
200
+ var scheme = Reflect.get(obj, themeSchemeKey);
201
+ return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
196
202
  }
197
203
  function purgeCache(moduleName) {
198
204
  searchCache(moduleName, function(mod) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-themes.native.js","names":[],"sources":["cjs/generate-themes.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar generate_themes_exports = {};\n__export(generate_themes_exports, {\n generateThemes: () => generateThemes\n});\nmodule.exports = __toCommonJS(generate_themes_exports);\nvar import_module = __toESM(require(\"module\"), 1);\nvar import_path = require(\"path\");\nvar ModuleInternals = import_module.default;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = JSON.stringify(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][]) {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = JSON.stringify(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n return `t([${arrItems.join(\",\")}])`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"generate-themes.native.js","names":[],"sources":["cjs/generate-themes.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar generate_themes_exports = {};\n__export(generate_themes_exports, {\n generateThemes: () => generateThemes\n});\nmodule.exports = __toCommonJS(generate_themes_exports);\nvar import_module = __toESM(require(\"module\"), 1);\nvar import_path = require(\"path\");\nvar ModuleInternals = import_module.default;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nvar themeSchemeKey = /* @__PURE__ */ Symbol.for(\"tamagui.theme.scheme\");\nfunction themeIdentity(theme) {\n return JSON.stringify([\n theme,\n Reflect.get(theme, themeSchemeKey)\n ]);\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = themeIdentity(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][], scheme?: 'light' | 'dark') {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = themeIdentity(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n var scheme = Reflect.get(obj, themeSchemeKey);\n return `t([${arrItems.join(\",\")}]${scheme === \"light\" || scheme === \"dark\" ? `, ${JSON.stringify(scheme)}` : \"\"})`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
@@ -1,11 +1,6 @@
1
1
  import Module from "node:module";
2
2
  import { join } from "node:path";
3
3
 
4
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
5
- if (typeof require !== "undefined") return require.apply(this, arguments);
6
- throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
7
- });
8
-
9
4
  const ModuleInternals = Module;
10
5
  let didRegisterOnce = false;
11
6
  async function generateThemes(inputFile) {
@@ -13,7 +8,7 @@ async function generateThemes(inputFile) {
13
8
  if (!didRegisterOnce) {
14
9
  didRegisterOnce = true;
15
10
  const nodeResolve = ModuleInternals._resolveFilename;
16
- __require("esbuild-register/dist/node").register({ hookIgnoreNodeModules: false });
11
+ require("esbuild-register/dist/node").register({ hookIgnoreNodeModules: false });
17
12
  const chained = ModuleInternals._resolveFilename;
18
13
  ModuleInternals._resolveFilename = function(request, ...args) {
19
14
  if (request[0] !== "." && !request.startsWith("/")) {
@@ -29,7 +24,7 @@ async function generateThemes(inputFile) {
29
24
  let og = process.env.TAMAGUI_KEEP_THEMES;
30
25
  process.env.TAMAGUI_KEEP_THEMES = "1";
31
26
  try {
32
- const requiredThemes = __require(inputFilePath);
27
+ const requiredThemes = require(inputFilePath);
33
28
  const themes = requiredThemes["default"] || requiredThemes["themes"] || requiredThemes[Object.keys(requiredThemes)[0]];
34
29
  const generatedThemes = generatedThemesToTypescript(themes);
35
30
  return { generated: generatedThemes };
@@ -40,6 +35,10 @@ async function generateThemes(inputFile) {
40
35
  process.env.TAMAGUI_KEEP_THEMES = og;
41
36
  }
42
37
  }
38
+ const themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
39
+ function themeIdentity(theme) {
40
+ return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
41
+ }
43
42
  function generatedThemesToTypescript(themes) {
44
43
  const dedupedTokens = /* @__PURE__ */ new Map();
45
44
  const dedupedThemes = /* @__PURE__ */ new Map();
@@ -56,7 +55,7 @@ function generatedThemesToTypescript(themes) {
56
55
  dedupedTokens.set(value, uniqueKey);
57
56
  }
58
57
  }
59
- const key = JSON.stringify(theme);
58
+ const key = themeIdentity(theme);
60
59
  if (dedupedThemes.has(key)) {
61
60
  dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
62
61
  } else {
@@ -77,11 +76,12 @@ ${baseKeys.map(([k]) => {
77
76
  let out = `${baseTypeString}
78
77
  `;
79
78
  out += `
80
- function t(a: [number, number][]) {
79
+ function t(a: [number, number][], scheme?: 'light' | 'dark') {
81
80
  let res: Record<string,string> = {}
82
81
  for (const [ki, vi] of a) {
83
82
  res[ks[ki] as string] = colors[vi] as string
84
83
  }
84
+ if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
85
85
  return res as Theme
86
86
  }
87
87
  `;
@@ -110,7 +110,7 @@ function t(a: [number, number][]) {
110
110
  export const themes: Themes = {`;
111
111
  dedupedThemes.forEach((theme) => {
112
112
  nameI++;
113
- const key = JSON.stringify(theme);
113
+ const key = themeIdentity(theme);
114
114
  const names = dedupedThemeToNames.get(key);
115
115
  const name = `n${nameI}`;
116
116
  const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
@@ -141,11 +141,12 @@ function objectToJsString(obj, keys, valueToIndex) {
141
141
  const vi = valueToIndex[obj[key]];
142
142
  arrItems.push(`[${ki}, ${vi}]`);
143
143
  }
144
- return `t([${arrItems.join(",")}])`;
144
+ const scheme = Reflect.get(obj, themeSchemeKey);
145
+ return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
145
146
  }
146
147
  function purgeCache(moduleName) {
147
148
  searchCache(moduleName, (mod) => {
148
- delete __require.cache[mod.id];
149
+ delete require.cache[mod.id];
149
150
  });
150
151
  const pathCache = ModuleInternals._pathCache;
151
152
  if (!pathCache) {
@@ -158,8 +159,8 @@ function purgeCache(moduleName) {
158
159
  });
159
160
  }
160
161
  function searchCache(moduleName, callback) {
161
- let mod = __require.resolve(moduleName);
162
- if (mod && (mod = __require.cache[mod]) !== void 0) {
162
+ let mod = require.resolve(moduleName);
163
+ if (mod && (mod = require.cache[mod]) !== void 0) {
163
164
  ;
164
165
  (function traverse(mod2, depth = 0) {
165
166
  if (depth > 10) return;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-themes.js","names":[],"sources":["esm/generate-themes.js"],"sourcesContent":["import Module from \"node:module\";\nimport { join } from \"node:path\";\nconst ModuleInternals = Module;\nlet didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n const inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n const nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n const chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request, ...args) {\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n let og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n const requiredThemes = require(inputFilePath);\n const themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n const generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, err?.[\"stack\"] || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nfunction generatedThemesToTypescript(themes) {\n const dedupedTokens = /* @__PURE__ */ new Map();\n const dedupedThemes = /* @__PURE__ */ new Map();\n const dedupedThemeToNames = /* @__PURE__ */ new Map();\n let i = 0;\n for (const name in themes) {\n i++;\n const theme = themes[name];\n let j = 0;\n for (const [key2, value] of Object.entries(theme)) {\n i++;\n const uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n const key = JSON.stringify(theme);\n if (dedupedThemes.has(key)) {\n dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);\n } else {\n dedupedThemes.set(key, theme);\n dedupedThemeToNames.set(key, [name]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n const baseTypeString = `export type Theme = {\n${baseKeys.map(([k]) => {\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n let out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][]) {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n let index = 0;\n const valueToIndex = {};\n dedupedTokens.forEach((name, value) => {\n valueToIndex[value] = index;\n index++;\n out += ` '${value}',\n`;\n });\n out += \"]\\n\\n\";\n const keys = baseKeys.map(([k]) => k);\n out += `const ks = [\n`;\n out += keys.map((k) => JSON.stringify(k)).join(\",\\n\");\n out += `]\n\n`;\n let nameI = 0;\n let themeTypes = `export type ThemeNames =`;\n let exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach((theme) => {\n nameI++;\n const key = JSON.stringify(theme);\n const names = dedupedThemeToNames.get(key);\n const name = `n${nameI}`;\n const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach((n) => {\n exported += `\n ${n}: ${name},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n let arrItems = [];\n for (const key in obj) {\n const ki = keys.indexOf(key);\n const vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n return `t([${arrItems.join(\",\")}])`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, (mod) => {\n delete require.cache[mod.id];\n });\n const pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach((cacheKey) => {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n let mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2, depth = 0) {\n if (depth > 10) return;\n mod2.children.forEach((child) => {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"generate-themes.js","names":[],"sources":["esm/generate-themes.js"],"sourcesContent":["import Module from \"node:module\";\nimport { join } from \"node:path\";\nconst ModuleInternals = Module;\nlet didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n const inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n const nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n const chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request, ...args) {\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n let og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n const requiredThemes = require(inputFilePath);\n const themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n const generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, err?.[\"stack\"] || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nconst themeSchemeKey = /* @__PURE__ */ Symbol.for(\"tamagui.theme.scheme\");\nfunction themeIdentity(theme) {\n return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);\n}\nfunction generatedThemesToTypescript(themes) {\n const dedupedTokens = /* @__PURE__ */ new Map();\n const dedupedThemes = /* @__PURE__ */ new Map();\n const dedupedThemeToNames = /* @__PURE__ */ new Map();\n let i = 0;\n for (const name in themes) {\n i++;\n const theme = themes[name];\n let j = 0;\n for (const [key2, value] of Object.entries(theme)) {\n i++;\n const uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n const key = themeIdentity(theme);\n if (dedupedThemes.has(key)) {\n dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);\n } else {\n dedupedThemes.set(key, theme);\n dedupedThemeToNames.set(key, [name]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n const baseTypeString = `export type Theme = {\n${baseKeys.map(([k]) => {\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n let out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][], scheme?: 'light' | 'dark') {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n let index = 0;\n const valueToIndex = {};\n dedupedTokens.forEach((name, value) => {\n valueToIndex[value] = index;\n index++;\n out += ` '${value}',\n`;\n });\n out += \"]\\n\\n\";\n const keys = baseKeys.map(([k]) => k);\n out += `const ks = [\n`;\n out += keys.map((k) => JSON.stringify(k)).join(\",\\n\");\n out += `]\n\n`;\n let nameI = 0;\n let themeTypes = `export type ThemeNames =`;\n let exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach((theme) => {\n nameI++;\n const key = themeIdentity(theme);\n const names = dedupedThemeToNames.get(key);\n const name = `n${nameI}`;\n const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach((n) => {\n exported += `\n ${n}: ${name},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n let arrItems = [];\n for (const key in obj) {\n const ki = keys.indexOf(key);\n const vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n const scheme = Reflect.get(obj, themeSchemeKey);\n return `t([${arrItems.join(\",\")}]${scheme === \"light\" || scheme === \"dark\" ? `, ${JSON.stringify(scheme)}` : \"\"})`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, (mod) => {\n delete require.cache[mod.id];\n });\n const pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach((cacheKey) => {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n let mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2, depth = 0) {\n if (depth > 10) return;\n mod2.children.forEach((child) => {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
@@ -1,11 +1,6 @@
1
1
  import Module from "module";
2
2
  import { join } from "path";
3
3
 
4
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
5
- if (typeof require !== "undefined") return require.apply(this, arguments);
6
- throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
7
- });
8
-
9
4
  var ModuleInternals = Module;
10
5
  var didRegisterOnce = false;
11
6
  async function generateThemes(inputFile) {
@@ -43,6 +38,10 @@ async function generateThemes(inputFile) {
43
38
  process.env.TAMAGUI_KEEP_THEMES = og;
44
39
  }
45
40
  }
41
+ var themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
42
+ function themeIdentity(theme) {
43
+ return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
44
+ }
46
45
  function generatedThemesToTypescript(themes) {
47
46
  var dedupedTokens = /* @__PURE__ */ new Map();
48
47
  var dedupedThemes = /* @__PURE__ */ new Map();
@@ -76,7 +75,7 @@ function generatedThemesToTypescript(themes) {
76
75
  }
77
76
  }
78
77
  }
79
- var key1 = JSON.stringify(theme);
78
+ var key1 = themeIdentity(theme);
80
79
  if (dedupedThemes.has(key1)) {
81
80
  dedupedThemeToNames.set(key1, [...dedupedThemeToNames.get(key1), name]);
82
81
  } else {
@@ -98,11 +97,12 @@ ${baseKeys.map(function(param) {
98
97
  var out = `${baseTypeString}
99
98
  `;
100
99
  out += `
101
- function t(a: [number, number][]) {
100
+ function t(a: [number, number][], scheme?: 'light' | 'dark') {
102
101
  let res: Record<string,string> = {}
103
102
  for (const [ki, vi] of a) {
104
103
  res[ks[ki] as string] = colors[vi] as string
105
104
  }
105
+ if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
106
106
  return res as Theme
107
107
  }
108
108
  `;
@@ -136,7 +136,7 @@ function t(a: [number, number][]) {
136
136
  export const themes: Themes = {`;
137
137
  dedupedThemes.forEach(function(theme2) {
138
138
  nameI++;
139
- var key2 = JSON.stringify(theme2);
139
+ var key2 = themeIdentity(theme2);
140
140
  var names = dedupedThemeToNames.get(key2);
141
141
  var name2 = `n${nameI}`;
142
142
  var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
@@ -167,11 +167,12 @@ function objectToJsString(obj, keys, valueToIndex) {
167
167
  var vi = valueToIndex[obj[key]];
168
168
  arrItems.push(`[${ki}, ${vi}]`);
169
169
  }
170
- return `t([${arrItems.join(",")}])`;
170
+ var scheme = Reflect.get(obj, themeSchemeKey);
171
+ return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
171
172
  }
172
173
  function purgeCache(moduleName) {
173
174
  searchCache(moduleName, function(mod) {
174
- delete __require.cache[mod.id];
175
+ delete require.cache[mod.id];
175
176
  });
176
177
  var pathCache = ModuleInternals._pathCache;
177
178
  if (!pathCache) {
@@ -184,8 +185,8 @@ function purgeCache(moduleName) {
184
185
  });
185
186
  }
186
187
  function searchCache(moduleName, callback) {
187
- var mod = __require.resolve(moduleName);
188
- if (mod && (mod = __require.cache[mod]) !== void 0) {
188
+ var mod = require.resolve(moduleName);
189
+ if (mod && (mod = require.cache[mod]) !== void 0) {
189
190
  ;
190
191
  (function traverse(mod2) {
191
192
  var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-themes.native.js","names":[],"sources":["esm/generate-themes.native.js"],"sourcesContent":["import Module from \"module\";\nimport { join } from \"path\";\nvar ModuleInternals = Module;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = JSON.stringify(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][]) {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = JSON.stringify(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n return `t([${arrItems.join(\",\")}])`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"generate-themes.native.js","names":[],"sources":["esm/generate-themes.native.js"],"sourcesContent":["import Module from \"module\";\nimport { join } from \"path\";\nvar ModuleInternals = Module;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nvar themeSchemeKey = /* @__PURE__ */ Symbol.for(\"tamagui.theme.scheme\");\nfunction themeIdentity(theme) {\n return JSON.stringify([\n theme,\n Reflect.get(theme, themeSchemeKey)\n ]);\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = themeIdentity(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][], scheme?: 'light' | 'dark') {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = themeIdentity(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n var scheme = Reflect.get(obj, themeSchemeKey);\n return `t([${arrItems.join(\",\")}]${scheme === \"light\" || scheme === \"dark\" ? `, ${JSON.stringify(scheme)}` : \"\"})`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@tamagui/generate-themes",
3
- "version": "3.0.0-beta.924.1",
3
+ "version": "3.0.1",
4
+ "license": "MIT",
4
5
  "source": "src/index.ts",
5
6
  "files": [
6
7
  "src",
@@ -36,16 +37,17 @@
36
37
  "test:web": "bun run test"
37
38
  },
38
39
  "dependencies": {
39
- "@tamagui/types": "3.0.0-beta.924.1",
40
+ "@tamagui/types": "3.0.1",
40
41
  "esbuild-register": "^3.6.0",
41
42
  "fs-extra": "^11.2.0"
42
43
  },
43
44
  "devDependencies": {
44
- "@tamagui/build": "3.0.0-beta.924.1"
45
+ "@tamagui/build": "3.0.1"
45
46
  },
46
47
  "repository": {
47
48
  "type": "git",
48
49
  "url": "git+https://github.com/tamagui/tamagui.git",
49
50
  "directory": "code/core/generate-themes"
50
- }
51
+ },
52
+ "releaseSourceCommit": "c156b7cc55e5a6cc5883ebc8189720850ac32dbd"
51
53
  }
@@ -65,6 +65,12 @@ export async function generateThemes(inputFile: string) {
65
65
  }
66
66
  }
67
67
 
68
+ const themeSchemeKey = Symbol.for('tamagui.theme.scheme')
69
+
70
+ function themeIdentity(theme: Record<string, any>) {
71
+ return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)])
72
+ }
73
+
68
74
  function generatedThemesToTypescript(themes: Record<string, any>) {
69
75
  // value -> name of variable. per invocation: a process-wide map would emit
70
76
  // the previous run's colors into this run's `colors` array.
@@ -88,7 +94,7 @@ function generatedThemesToTypescript(themes: Record<string, any>) {
88
94
  }
89
95
  }
90
96
 
91
- const key = JSON.stringify(theme)
97
+ const key = themeIdentity(theme)
92
98
  if (dedupedThemes.has(key)) {
93
99
  dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key)!, name])
94
100
  } else {
@@ -118,11 +124,12 @@ ${baseKeys
118
124
 
119
125
  // add in the helper function to generate a theme:
120
126
  out += `
121
- function t(a: [number, number][]) {
127
+ function t(a: [number, number][], scheme?: 'light' | 'dark') {
122
128
  let res: Record<string,string> = {}
123
129
  for (const [ki, vi] of a) {
124
130
  res[ks[ki] as string] = colors[vi] as string
125
131
  }
132
+ if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
126
133
  return res as Theme
127
134
  }
128
135
  `
@@ -152,7 +159,7 @@ function t(a: [number, number][]) {
152
159
 
153
160
  dedupedThemes.forEach((theme) => {
154
161
  nameI++
155
- const key = JSON.stringify(theme)
162
+ const key = themeIdentity(theme)
156
163
  const names = dedupedThemeToNames.get(key)!
157
164
  const name = `n${nameI}`
158
165
  const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`
@@ -182,7 +189,8 @@ function objectToJsString(
182
189
  const vi = valueToIndex[obj[key]]
183
190
  arrItems.push(`[${ki}, ${vi}]`)
184
191
  }
185
- return `t([${arrItems.join(',')}])`
192
+ const scheme = Reflect.get(obj, themeSchemeKey)
193
+ return `t([${arrItems.join(',')}]${scheme === 'light' || scheme === 'dark' ? `, ${JSON.stringify(scheme)}` : ''})`
186
194
  }
187
195
 
188
196
  /**