@tamagui/web 3.0.0-beta.755.1 → 3.0.0-beta.765.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.
- package/dist/cjs/createTamagui.cjs +1 -1
- package/dist/cjs/createTamagui.native.cjs +1 -1
- package/dist/cjs/createTamagui.native.js +1 -1
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/dom/htmlRuntime.native.cjs +1 -0
- package/dist/cjs/dom/htmlRuntime.native.js +1 -0
- package/dist/cjs/dom/htmlRuntime.native.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.cjs +1 -1
- package/dist/cjs/helpers/insertStyleRule.native.cjs +2 -2
- package/dist/cjs/helpers/insertStyleRule.native.js +2 -2
- package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/esm/createTamagui.mjs +1 -1
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +1 -1
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/dom/htmlRuntime.native.js +1 -0
- package/dist/esm/dom/htmlRuntime.native.js.map +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
- package/dist/esm/helpers/insertStyleRule.native.js +2 -2
- package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
- package/package.json +15 -15
- package/src/createTamagui.ts +3 -1
- package/src/dom/html.native.tsx +99 -92
- package/src/dom/html.tsx +105 -98
- package/src/dom/htmlRuntime.native.tsx +1 -0
- package/src/helpers/insertStyleRule.tsx +4 -1
- package/src/types.tsx +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/dom/html.d.ts +54 -50
- package/types/dom/html.d.ts.map +1 -1
- package/types/dom/html.native.d.ts +51 -47
- package/types/dom/html.native.d.ts.map +1 -1
- package/types/dom/htmlRuntime.native.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/types.d.ts +1 -1
- package/types/types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insertStyleRule.js","names":[],"sources":["esm/helpers/insertStyleRule.js"],"sourcesContent":["import { StyleObjectIdentifier, StyleObjectRules } from \"@tamagui/helpers\";\nimport { createVariable } from \"../createVariable\";\nimport { formatDiagnostic } from \"./formatDiagnostic\";\n\nconst scannedCache = /* @__PURE__ */ new WeakMap();\nconst totalSelectorsInserted = /* @__PURE__ */ new Map();\nconst allSelectors = {};\nconst allRules = {};\nconst getAllSelectors = () => allSelectors;\nlet sortedRules = [];\nlet sortedRulesStale = true;\nconst getAllRules = () => {\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS) {\n\t\tif (sortedRulesStale) {\n\t\t\tsortedRules = Object.keys(allRules).sort().map((key) => allRules[key]);\n\t\t\tsortedRulesStale = false;\n\t\t}\n\t\treturn sortedRules;\n\t}\n\treturn [];\n};\nfunction wrapStyleRules(css) {\n\tconst layer = process.env.TAMAGUI_CSS_LAYER;\n\treturn layer && css ? `@layer ${layer} {\n${css}\n}` : css;\n}\nlet lastScannedSheets = null;\nfunction scanAllSheets(collectThemes = false, tokens) {\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS) {\n\t\tif (process.env.NODE_ENV === \"test\") return;\n\t\tif (typeof document === \"undefined\") return;\n\t\tlet themes;\n\t\tconst sheets = document.styleSheets || [];\n\t\tconst prev = lastScannedSheets;\n\t\tconst current = new Set(sheets);\n\t\tfor (const sheet2 of current) if (sheet2) {\n\t\t\tconst out = updateSheetStyles(sheet2, false, collectThemes, tokens);\n\t\t\tif (out) themes = out;\n\t\t}\n\t\tlastScannedSheets = current;\n\t\tif (prev) {\n\t\t\tfor (const sheet2 of prev) if (sheet2 && !current.has(sheet2)) updateSheetStyles(sheet2, true);\n\t\t}\n\t\treturn themes;\n\t}\n}\nfunction trackInsertedStyle(id) {\n\tconst next = (totalSelectorsInserted.get(id) || 0) + 1;\n\ttotalSelectorsInserted.set(id, next);\n\treturn next;\n}\nconst bailAfterEnv = process.env.TAMAGUI_BAIL_AFTER_SCANNING_X_CSS_RULES;\nconst bailAfter = bailAfterEnv ? +bailAfterEnv : 8e3;\nfunction updateSheetStyles(sheet2, remove = false, collectThemes = false, tokens) {\n\tlet rules;\n\ttry {\n\t\tif (!sheet2.cssRules) return;\n\t\trules = flattenCSSRules(sheet2.cssRules);\n\t} catch {\n\t\treturn;\n\t}\n\tconst firstSelector = getTamaguiSelector(rules[0], collectThemes)?.[0];\n\tconst lastSelector = getTamaguiSelector(rules[rules.length - 1], collectThemes)?.[0];\n\tconst cacheKey = `${rules.length}${firstSelector}${lastSelector}`;\n\tconst lastScanned = scannedCache.get(sheet2);\n\tif (!remove) {\n\t\tif (lastScanned === cacheKey) return;\n\t}\n\tconst len = rules.length;\n\tlet fails = 0;\n\tlet dedupedThemes;\n\tconst nameToTheme = {};\n\tfor (let i = 0; i < len; i++) {\n\t\tconst rule = rules[i];\n\t\tif (!(rule instanceof CSSStyleRule)) continue;\n\t\tconst response = getTamaguiSelector(rule, collectThemes);\n\t\tif (response) fails = 0;\n\t\telse {\n\t\t\tfails++;\n\t\t\tif (fails > bailAfter) return;\n\t\t\tcontinue;\n\t\t}\n\t\tconst [identifier, cssRule, isTheme] = response;\n\t\tif (isTheme) {\n\t\t\tconst deduped = addThemesFromCSS(cssRule, tokens);\n\t\t\tif (deduped) {\n\t\t\t\tfor (const name of deduped.names) if (nameToTheme[name]) {\n\t\t\t\t\tObject.apply(nameToTheme[name], deduped.theme);\n\t\t\t\t\tdeduped.names = deduped.names.filter((x) => x !== name);\n\t\t\t\t} else nameToTheme[name] = deduped.theme;\n\t\t\t\tdedupedThemes ||= [];\n\t\t\t\tdedupedThemes.push(deduped);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t}\n\tscannedCache.set(sheet2, cacheKey);\n\treturn dedupedThemes;\n}\nfunction flattenCSSRules(rules, output = []) {\n\tfor (let index = 0; index < rules.length; index++) {\n\t\tconst rule = rules[index];\n\t\tif (rule instanceof CSSStyleRule) {\n\t\t\toutput.push(rule);\n\t\t\tcontinue;\n\t\t}\n\t\tif (\"cssRules\" in rule) {\n\t\t\tconst nested = rule.cssRules;\n\t\t\tif (nested) flattenCSSRules(nested, output);\n\t\t}\n\t}\n\treturn output;\n}\nlet colorVarToVal;\nlet rootComputedStyle = null;\nfunction addThemesFromCSS(cssStyleRule, tokens) {\n\tconst selectors = cssStyleRule.selectorText.split(\",\");\n\tif (!selectors.length) return;\n\tif (tokens?.color && !colorVarToVal) {\n\t\tcolorVarToVal = {};\n\t\tfor (const key in tokens.color) {\n\t\t\tconst token = tokens.color[key];\n\t\t\tif (token) colorVarToVal[token.name] = token.val;\n\t\t}\n\t}\n\tconst rules = (cssStyleRule.cssText || \"\").slice(cssStyleRule.selectorText.length + 2, -1).split(\";\");\n\tconst values = {};\n\tfor (const rule of rules) {\n\t\tconst sepI = rule.indexOf(\":\");\n\t\tif (sepI === -1) continue;\n\t\tconst varIndex = rule.indexOf(\"--\");\n\t\tlet key = rule.slice(varIndex === -1 ? 0 : varIndex + 2, sepI);\n\t\tif (process.env.TAMAGUI_CSS_VARIABLE_PREFIX) key = key.replace(process.env.TAMAGUI_CSS_VARIABLE_PREFIX, \"\");\n\t\tconst val = rule.slice(sepI + 2);\n\t\tlet value;\n\t\tif (val[0] === \"v\" && val.startsWith(\"var(\")) {\n\t\t\tconst varName = val.slice(6, -1);\n\t\t\tconst tokenVal = colorVarToVal?.[varName];\n\t\t\tif (tokenVal) value = tokenVal;\n\t\t\telse {\n\t\t\t\trootComputedStyle ||= getComputedStyle(document.body);\n\t\t\t\tvalue = rootComputedStyle.getPropertyValue(\"--\" + varName);\n\t\t\t}\n\t\t} else value = val;\n\t\tvalues[key] = createVariable({\n\t\t\tkey,\n\t\t\tname: key,\n\t\t\tval: value\n\t\t}, true);\n\t}\n\tconst names = /* @__PURE__ */ new Set();\n\tfor (const selector of selectors) {\n\t\tconst themeName = getThemeNameFromSelector(selector);\n\t\tif (themeName) names.add(themeName);\n\t}\n\treturn {\n\t\tnames: [...names],\n\t\ttheme: values\n\t};\n}\nfunction getThemeNameFromSelector(selector) {\n\tif (selector === \" .tm_xxt\") return;\n\tconst lastThemeSelectorIndex = selector.lastIndexOf(\".t_\");\n\tif (lastThemeSelectorIndex === -1) return;\n\tconst name = selector.slice(lastThemeSelectorIndex + 3).match(/^[\\w-]+/)?.[0];\n\tif (!name) return;\n\tconst schemeChar = selector[lastThemeSelectorIndex - 5];\n\tconst scheme = schemeChar === \"d\" ? \"dark\" : schemeChar === \"i\" ? \"light\" : \"\";\n\tconst themeName = scheme && scheme !== name ? `${scheme}_${name}` : name;\n\tif (themeName === \"light_dark\" || themeName === \"dark_light\") return;\n\treturn themeName;\n}\nconst tamaguiSelectorRegex = /\\.tm_xxt/;\nfunction getTamaguiSelector(rule, collectThemes = false) {\n\tif (rule instanceof CSSStyleRule) {\n\t\tconst text = rule.selectorText;\n\t\tif (text[0] === \":\" && text[1] === \"r\" && tamaguiSelectorRegex.test(text)) {\n\t\t\tconst id = getIdentifierFromTamaguiSelector(text.replace(tamaguiSelectorRegex, \"\"));\n\t\t\treturn collectThemes ? [\n\t\t\t\tid,\n\t\t\t\trule,\n\t\t\t\ttrue\n\t\t\t] : [id, rule];\n\t\t}\n\t} else if (rule instanceof CSSMediaRule) {\n\t\tif (rule.cssRules.length > 1) return;\n\t\treturn getTamaguiSelector(rule.cssRules[0]);\n\t}\n}\nconst getIdentifierFromTamaguiSelector = (selector) => {\n\tconst dotIndex = selector.indexOf(\":\");\n\tif (dotIndex > -1) return selector.slice(7, dotIndex);\n\treturn selector.slice(7);\n};\nlet sheet = null;\nlet mountedProviders = 0;\nlet trackAllRules = true;\nfunction stopAccumulatingRules() {\n\tmountedProviders++;\n\ttrackAllRules = false;\n\treturn () => {\n\t\tmountedProviders--;\n\t\ttrackAllRules = mountedProviders === 0;\n\t};\n}\nfunction updateRules(identifier, rules) {\n\tif (trackAllRules) {\n\t\tallRules[identifier] = rules.join(\" \");\n\t\tsortedRulesStale = true;\n\t}\n\treturn true;\n}\nlet nonce = \"\";\nfunction setNonce(_) {\n\tnonce = _;\n}\nfunction insertStyleRules(rulesToInsert) {\n\tif (!sheet && document.head) {\n\t\tconst styleTag = document.createElement(\"style\");\n\t\tstyleTag.id = \"_tamagui-styles\";\n\t\tif (nonce) styleTag.nonce = nonce;\n\t\tconst rootSheet = document.head.appendChild(styleTag).sheet;\n\t\tconst layer = process.env.TAMAGUI_CSS_LAYER;\n\t\tif (rootSheet && layer) {\n\t\t\trootSheet.insertRule(`@layer ${layer} {}`, rootSheet.cssRules.length);\n\t\t\tconst layerRule = rootSheet.cssRules[rootSheet.cssRules.length - 1];\n\t\t\tsheet = \"cssRules\" in layerRule && \"insertRule\" in layerRule ? layerRule : rootSheet;\n\t\t} else sheet = rootSheet;\n\t}\n\tif (!sheet) return;\n\tfor (const key in rulesToInsert) {\n\t\tconst styleObject = rulesToInsert[key];\n\t\tconst identifier = styleObject[StyleObjectIdentifier];\n\t\tif (!shouldInsertStyleRules(identifier)) continue;\n\t\tconst rules = styleObject[StyleObjectRules];\n\t\tallSelectors[identifier] = rules.join(\"\\n\");\n\t\ttrackInsertedStyle(identifier);\n\t\tupdateRules(identifier, rules);\n\t\ttry {\n\t\t\tfor (const rule of rules) sheet.insertRule(rule, sheet.cssRules.length);\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV === \"production\") {\n\t\t\t\tconst rule = rules[0] || \"\";\n\t\t\t\tconst selectorEnd = rule.indexOf(\"{\");\n\t\t\t\tconst owner = \"ownerNode\" in sheet ? sheet.ownerNode : null;\n\t\t\t\tconsole.error(formatDiagnostic(\"TAMAGUI_STYLE_INSERT\", \"insertStyleRules\", \"the stylesheet rejected a generated rule\", \"Fix or remove the invalid style declaration\", \"identifier,selector,target\", {\n\t\t\t\t\tidentifier,\n\t\t\t\t\tselector: (selectorEnd === -1 ? rule : rule.slice(0, selectorEnd)).trim(),\n\t\t\t\t\ttarget: owner ? `${owner.nodeName.toLowerCase()}${owner.id ? `#${owner.id}` : \"\"}` : sheet.constructor?.name || \"CSSStyleSheet\"\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n}\nconst maxToInsert = process.env.TAMAGUI_INSERT_SELECTOR_TRIES ? +process.env.TAMAGUI_INSERT_SELECTOR_TRIES : 1;\nfunction shouldInsertStyleRules(identifier) {\n\tif (process.env.IS_STATIC === \"is_static\") return true;\n\tconst total = totalSelectorsInserted.get(identifier) || 0;\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (total > +(process.env.TAMAGUI_STYLE_INSERTION_WARNING_LIMIT || 10)) console.warn(`Warning: inserting many CSS rules, you may be animating something and generating many CSS insertions, which can degrade performance. Instead, try using the \"disableClassName\" property on elements that change styles often. To disable this warning set TAMAGUI_STYLE_INSERTION_WARNING_LIMIT from 50000 to something higher`);\n\t}\n\treturn total < maxToInsert;\n}\n\nexport { getAllRules, getAllSelectors, getThemeNameFromSelector, insertStyleRules, scanAllSheets, setNonce, shouldInsertStyleRules, stopAccumulatingRules, updateRules, wrapStyleRules };"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"insertStyleRule.js","names":[],"sources":["esm/helpers/insertStyleRule.js"],"sourcesContent":["import { StyleObjectIdentifier, StyleObjectRules } from \"@tamagui/helpers\";\nimport { createVariable } from \"../createVariable\";\nimport { formatDiagnostic } from \"./formatDiagnostic\";\n\nconst scannedCache = /* @__PURE__ */ new WeakMap();\nconst totalSelectorsInserted = /* @__PURE__ */ new Map();\nconst allSelectors = {};\nconst allRules = {};\nconst getAllSelectors = () => allSelectors;\nlet sortedRules = [];\nlet sortedRulesStale = true;\nconst getAllRules = () => {\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS) {\n\t\tif (sortedRulesStale) {\n\t\t\tsortedRules = Object.keys(allRules).sort().map((key) => allRules[key]);\n\t\t\tsortedRulesStale = false;\n\t\t}\n\t\treturn sortedRules;\n\t}\n\treturn [];\n};\nfunction wrapStyleRules(css) {\n\tconst layer = process.env.TAMAGUI_CSS_LAYER;\n\treturn layer && css ? `@layer ${layer} {\n${css}\n}` : css;\n}\nlet lastScannedSheets = null;\nfunction scanAllSheets(collectThemes = false, tokens) {\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS || collectThemes) {\n\t\tif (process.env.NODE_ENV === \"test\") return;\n\t\tif (typeof document === \"undefined\") return;\n\t\tlet themes;\n\t\tconst sheets = document.styleSheets || [];\n\t\tconst prev = lastScannedSheets;\n\t\tconst current = new Set(sheets);\n\t\tfor (const sheet2 of current) if (sheet2) {\n\t\t\tconst out = updateSheetStyles(sheet2, false, collectThemes, tokens);\n\t\t\tif (out) themes = out;\n\t\t}\n\t\tlastScannedSheets = current;\n\t\tif (prev) {\n\t\t\tfor (const sheet2 of prev) if (sheet2 && !current.has(sheet2)) updateSheetStyles(sheet2, true);\n\t\t}\n\t\treturn themes;\n\t}\n}\nfunction trackInsertedStyle(id) {\n\tconst next = (totalSelectorsInserted.get(id) || 0) + 1;\n\ttotalSelectorsInserted.set(id, next);\n\treturn next;\n}\nconst bailAfterEnv = process.env.TAMAGUI_BAIL_AFTER_SCANNING_X_CSS_RULES;\nconst bailAfter = bailAfterEnv ? +bailAfterEnv : 8e3;\nfunction updateSheetStyles(sheet2, remove = false, collectThemes = false, tokens) {\n\tlet rules;\n\ttry {\n\t\tif (!sheet2.cssRules) return;\n\t\trules = flattenCSSRules(sheet2.cssRules);\n\t} catch {\n\t\treturn;\n\t}\n\tconst firstSelector = getTamaguiSelector(rules[0], collectThemes)?.[0];\n\tconst lastSelector = getTamaguiSelector(rules[rules.length - 1], collectThemes)?.[0];\n\tconst cacheKey = `${rules.length}${firstSelector}${lastSelector}`;\n\tconst lastScanned = scannedCache.get(sheet2);\n\tif (!remove) {\n\t\tif (lastScanned === cacheKey) return;\n\t}\n\tconst len = rules.length;\n\tlet fails = 0;\n\tlet dedupedThemes;\n\tconst nameToTheme = {};\n\tfor (let i = 0; i < len; i++) {\n\t\tconst rule = rules[i];\n\t\tif (!(rule instanceof CSSStyleRule)) continue;\n\t\tconst response = getTamaguiSelector(rule, collectThemes);\n\t\tif (response) fails = 0;\n\t\telse {\n\t\t\tfails++;\n\t\t\tif (fails > bailAfter) return;\n\t\t\tcontinue;\n\t\t}\n\t\tconst [identifier, cssRule, isTheme] = response;\n\t\tif (isTheme) {\n\t\t\tconst deduped = addThemesFromCSS(cssRule, tokens);\n\t\t\tif (deduped) {\n\t\t\t\tfor (const name of deduped.names) if (nameToTheme[name]) {\n\t\t\t\t\tObject.apply(nameToTheme[name], deduped.theme);\n\t\t\t\t\tdeduped.names = deduped.names.filter((x) => x !== name);\n\t\t\t\t} else nameToTheme[name] = deduped.theme;\n\t\t\t\tdedupedThemes ||= [];\n\t\t\t\tdedupedThemes.push(deduped);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t}\n\tscannedCache.set(sheet2, cacheKey);\n\treturn dedupedThemes;\n}\nfunction flattenCSSRules(rules, output = []) {\n\tfor (let index = 0; index < rules.length; index++) {\n\t\tconst rule = rules[index];\n\t\tif (rule instanceof CSSStyleRule) {\n\t\t\toutput.push(rule);\n\t\t\tcontinue;\n\t\t}\n\t\tif (\"cssRules\" in rule) {\n\t\t\tconst nested = rule.cssRules;\n\t\t\tif (nested) flattenCSSRules(nested, output);\n\t\t}\n\t}\n\treturn output;\n}\nlet colorVarToVal;\nlet rootComputedStyle = null;\nfunction addThemesFromCSS(cssStyleRule, tokens) {\n\tconst selectors = cssStyleRule.selectorText.split(\",\");\n\tif (!selectors.length) return;\n\tif (tokens?.color && !colorVarToVal) {\n\t\tcolorVarToVal = {};\n\t\tfor (const key in tokens.color) {\n\t\t\tconst token = tokens.color[key];\n\t\t\tif (token) colorVarToVal[token.name] = token.val;\n\t\t}\n\t}\n\tconst rules = (cssStyleRule.cssText || \"\").slice(cssStyleRule.selectorText.length + 2, -1).split(\";\");\n\tconst values = {};\n\tfor (const rule of rules) {\n\t\tconst sepI = rule.indexOf(\":\");\n\t\tif (sepI === -1) continue;\n\t\tconst varIndex = rule.indexOf(\"--\");\n\t\tlet key = rule.slice(varIndex === -1 ? 0 : varIndex + 2, sepI);\n\t\tif (process.env.TAMAGUI_CSS_VARIABLE_PREFIX) key = key.replace(process.env.TAMAGUI_CSS_VARIABLE_PREFIX, \"\");\n\t\tconst val = rule.slice(sepI + 2);\n\t\tlet value;\n\t\tif (val[0] === \"v\" && val.startsWith(\"var(\")) {\n\t\t\tconst varName = val.slice(6, -1);\n\t\t\tconst tokenVal = colorVarToVal?.[varName];\n\t\t\tif (tokenVal) value = tokenVal;\n\t\t\telse {\n\t\t\t\trootComputedStyle ||= getComputedStyle(document.body);\n\t\t\t\tvalue = rootComputedStyle.getPropertyValue(\"--\" + varName);\n\t\t\t}\n\t\t} else value = val;\n\t\tvalues[key] = createVariable({\n\t\t\tkey,\n\t\t\tname: key,\n\t\t\tval: value\n\t\t}, true);\n\t}\n\tconst names = /* @__PURE__ */ new Set();\n\tfor (const selector of selectors) {\n\t\tconst themeName = getThemeNameFromSelector(selector);\n\t\tif (themeName) names.add(themeName);\n\t}\n\treturn {\n\t\tnames: [...names],\n\t\ttheme: values\n\t};\n}\nfunction getThemeNameFromSelector(selector) {\n\tif (selector === \" .tm_xxt\") return;\n\tconst lastThemeSelectorIndex = selector.lastIndexOf(\".t_\");\n\tif (lastThemeSelectorIndex === -1) return;\n\tconst name = selector.slice(lastThemeSelectorIndex + 3).match(/^[\\w-]+/)?.[0];\n\tif (!name) return;\n\tconst schemeChar = selector[lastThemeSelectorIndex - 5];\n\tconst scheme = schemeChar === \"d\" ? \"dark\" : schemeChar === \"i\" ? \"light\" : \"\";\n\tconst themeName = scheme && scheme !== name ? `${scheme}_${name}` : name;\n\tif (themeName === \"light_dark\" || themeName === \"dark_light\") return;\n\treturn themeName;\n}\nconst tamaguiSelectorRegex = /\\.tm_xxt/;\nfunction getTamaguiSelector(rule, collectThemes = false) {\n\tif (rule instanceof CSSStyleRule) {\n\t\tconst text = rule.selectorText;\n\t\tif (text[0] === \":\" && text[1] === \"r\" && tamaguiSelectorRegex.test(text)) {\n\t\t\tconst id = getIdentifierFromTamaguiSelector(text.replace(tamaguiSelectorRegex, \"\"));\n\t\t\treturn collectThemes ? [\n\t\t\t\tid,\n\t\t\t\trule,\n\t\t\t\ttrue\n\t\t\t] : [id, rule];\n\t\t}\n\t} else if (rule instanceof CSSMediaRule) {\n\t\tif (rule.cssRules.length > 1) return;\n\t\treturn getTamaguiSelector(rule.cssRules[0]);\n\t}\n}\nconst getIdentifierFromTamaguiSelector = (selector) => {\n\tconst dotIndex = selector.indexOf(\":\");\n\tif (dotIndex > -1) return selector.slice(7, dotIndex);\n\treturn selector.slice(7);\n};\nlet sheet = null;\nlet mountedProviders = 0;\nlet trackAllRules = true;\nfunction stopAccumulatingRules() {\n\tmountedProviders++;\n\ttrackAllRules = false;\n\treturn () => {\n\t\tmountedProviders--;\n\t\ttrackAllRules = mountedProviders === 0;\n\t};\n}\nfunction updateRules(identifier, rules) {\n\tif (trackAllRules) {\n\t\tallRules[identifier] = rules.join(\" \");\n\t\tsortedRulesStale = true;\n\t}\n\treturn true;\n}\nlet nonce = \"\";\nfunction setNonce(_) {\n\tnonce = _;\n}\nfunction insertStyleRules(rulesToInsert) {\n\tif (!sheet && document.head) {\n\t\tconst styleTag = document.createElement(\"style\");\n\t\tstyleTag.id = \"_tamagui-styles\";\n\t\tif (nonce) styleTag.nonce = nonce;\n\t\tconst rootSheet = document.head.appendChild(styleTag).sheet;\n\t\tconst layer = process.env.TAMAGUI_CSS_LAYER;\n\t\tif (rootSheet && layer) {\n\t\t\trootSheet.insertRule(`@layer ${layer} {}`, rootSheet.cssRules.length);\n\t\t\tconst layerRule = rootSheet.cssRules[rootSheet.cssRules.length - 1];\n\t\t\tsheet = \"cssRules\" in layerRule && \"insertRule\" in layerRule ? layerRule : rootSheet;\n\t\t} else sheet = rootSheet;\n\t}\n\tif (!sheet) return;\n\tfor (const key in rulesToInsert) {\n\t\tconst styleObject = rulesToInsert[key];\n\t\tconst identifier = styleObject[StyleObjectIdentifier];\n\t\tif (!shouldInsertStyleRules(identifier)) continue;\n\t\tconst rules = styleObject[StyleObjectRules];\n\t\tallSelectors[identifier] = rules.join(\"\\n\");\n\t\ttrackInsertedStyle(identifier);\n\t\tupdateRules(identifier, rules);\n\t\ttry {\n\t\t\tfor (const rule of rules) sheet.insertRule(rule, sheet.cssRules.length);\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV === \"production\") {\n\t\t\t\tconst rule = rules[0] || \"\";\n\t\t\t\tconst selectorEnd = rule.indexOf(\"{\");\n\t\t\t\tconst owner = \"ownerNode\" in sheet ? sheet.ownerNode : null;\n\t\t\t\tconsole.error(formatDiagnostic(\"TAMAGUI_STYLE_INSERT\", \"insertStyleRules\", \"the stylesheet rejected a generated rule\", \"Fix or remove the invalid style declaration\", \"identifier,selector,target\", {\n\t\t\t\t\tidentifier,\n\t\t\t\t\tselector: (selectorEnd === -1 ? rule : rule.slice(0, selectorEnd)).trim(),\n\t\t\t\t\ttarget: owner ? `${owner.nodeName.toLowerCase()}${owner.id ? `#${owner.id}` : \"\"}` : sheet.constructor?.name || \"CSSStyleSheet\"\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n}\nconst maxToInsert = process.env.TAMAGUI_INSERT_SELECTOR_TRIES ? +process.env.TAMAGUI_INSERT_SELECTOR_TRIES : 1;\nfunction shouldInsertStyleRules(identifier) {\n\tif (process.env.IS_STATIC === \"is_static\") return true;\n\tconst total = totalSelectorsInserted.get(identifier) || 0;\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (total > +(process.env.TAMAGUI_STYLE_INSERTION_WARNING_LIMIT || 10)) console.warn(`Warning: inserting many CSS rules, you may be animating something and generating many CSS insertions, which can degrade performance. Instead, try using the \"disableClassName\" property on elements that change styles often. To disable this warning set TAMAGUI_STYLE_INSERTION_WARNING_LIMIT from 50000 to something higher`);\n\t}\n\treturn total < maxToInsert;\n}\n\nexport { getAllRules, getAllSelectors, getThemeNameFromSelector, insertStyleRules, scanAllSheets, setNonce, shouldInsertStyleRules, stopAccumulatingRules, updateRules, wrapStyleRules };"],"mappings":"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"}
|
|
@@ -25,9 +25,9 @@ ${css}
|
|
|
25
25
|
}` : css;
|
|
26
26
|
}
|
|
27
27
|
function scanAllSheets() {
|
|
28
|
-
arguments.length > 0 && arguments[0] !== void 0
|
|
28
|
+
var collectThemes = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
|
|
29
29
|
arguments.length > 1 && arguments[1];
|
|
30
|
-
if (!process.env.TAMAGUI_DID_OUTPUT_CSS) {
|
|
30
|
+
if (!process.env.TAMAGUI_DID_OUTPUT_CSS || collectThemes) {
|
|
31
31
|
if (process.env.NODE_ENV === "test") return;
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insertStyleRule.native.js","names":[],"sources":["esm/helpers/insertStyleRule.native.js"],"sourcesContent":["var totalSelectorsInserted = /* @__PURE__ */ new Map();\nvar allSelectors = {};\nvar allRules = {};\nvar getAllSelectors = function() {\n\treturn allSelectors;\n};\nvar sortedRules = [];\nvar sortedRulesStale = true;\nvar getAllRules = function() {\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS) {\n\t\tif (sortedRulesStale) {\n\t\t\tsortedRules = Object.keys(allRules).sort().map(function(key) {\n\t\t\t\treturn allRules[key];\n\t\t\t});\n\t\t\tsortedRulesStale = false;\n\t\t}\n\t\treturn sortedRules;\n\t}\n\treturn [];\n};\nfunction wrapStyleRules(css) {\n\tvar layer = process.env.TAMAGUI_CSS_LAYER;\n\treturn layer && css ? `@layer ${layer} {\n${css}\n}` : css;\n}\nfunction scanAllSheets() {\n\
|
|
1
|
+
{"version":3,"file":"insertStyleRule.native.js","names":[],"sources":["esm/helpers/insertStyleRule.native.js"],"sourcesContent":["var totalSelectorsInserted = /* @__PURE__ */ new Map();\nvar allSelectors = {};\nvar allRules = {};\nvar getAllSelectors = function() {\n\treturn allSelectors;\n};\nvar sortedRules = [];\nvar sortedRulesStale = true;\nvar getAllRules = function() {\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS) {\n\t\tif (sortedRulesStale) {\n\t\t\tsortedRules = Object.keys(allRules).sort().map(function(key) {\n\t\t\t\treturn allRules[key];\n\t\t\t});\n\t\t\tsortedRulesStale = false;\n\t\t}\n\t\treturn sortedRules;\n\t}\n\treturn [];\n};\nfunction wrapStyleRules(css) {\n\tvar layer = process.env.TAMAGUI_CSS_LAYER;\n\treturn layer && css ? `@layer ${layer} {\n${css}\n}` : css;\n}\nfunction scanAllSheets() {\n\tvar collectThemes = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n\targuments.length > 1 && arguments[1];\n\tif (!process.env.TAMAGUI_DID_OUTPUT_CSS || collectThemes) {\n\t\tif (process.env.NODE_ENV === \"test\") return;\n\t\treturn;\n\t}\n}\nvar bailAfterEnv = process.env.TAMAGUI_BAIL_AFTER_SCANNING_X_CSS_RULES;\nbailAfterEnv && +bailAfterEnv;\nfunction getThemeNameFromSelector(selector) {\n\tvar _selector_slice_match;\n\tif (selector === \" .tm_xxt\") return;\n\tvar lastThemeSelectorIndex = selector.lastIndexOf(\".t_\");\n\tif (lastThemeSelectorIndex === -1) return;\n\tvar name = (_selector_slice_match = selector.slice(lastThemeSelectorIndex + 3).match(/^[\\w-]+/)) === null || _selector_slice_match === void 0 ? void 0 : _selector_slice_match[0];\n\tif (!name) return;\n\tvar schemeChar = selector[lastThemeSelectorIndex - 5];\n\tvar scheme = schemeChar === \"d\" ? \"dark\" : schemeChar === \"i\" ? \"light\" : \"\";\n\tvar themeName = scheme && scheme !== name ? `${scheme}_${name}` : name;\n\tif (themeName === \"light_dark\" || themeName === \"dark_light\") return;\n\treturn themeName;\n}\nvar mountedProviders = 0;\nvar trackAllRules = true;\nfunction stopAccumulatingRules() {\n\tmountedProviders++;\n\ttrackAllRules = false;\n\treturn function() {\n\t\tmountedProviders--;\n\t\ttrackAllRules = mountedProviders === 0;\n\t};\n}\nfunction updateRules(identifier, rules) {\n\tif (trackAllRules) {\n\t\tallRules[identifier] = rules.join(\" \");\n\t\tsortedRulesStale = true;\n\t}\n\treturn true;\n}\nfunction setNonce(_) {}\nfunction insertStyleRules(rulesToInsert) {}\nvar maxToInsert = process.env.TAMAGUI_INSERT_SELECTOR_TRIES ? +process.env.TAMAGUI_INSERT_SELECTOR_TRIES : 1;\nfunction shouldInsertStyleRules(identifier) {\n\tif (process.env.IS_STATIC === \"is_static\") return true;\n\tvar total = totalSelectorsInserted.get(identifier) || 0;\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (total > +(process.env.TAMAGUI_STYLE_INSERTION_WARNING_LIMIT || 10)) console.warn(`Warning: inserting many CSS rules, you may be animating something and generating many CSS insertions, which can degrade performance. Instead, try using the \"disableClassName\" property on elements that change styles often. To disable this warning set TAMAGUI_STYLE_INSERTION_WARNING_LIMIT from 50000 to something higher`);\n\t}\n\treturn total < maxToInsert;\n}\n\nexport { getAllRules, getAllSelectors, getThemeNameFromSelector, insertStyleRules, scanAllSheets, setNonce, shouldInsertStyleRules, stopAccumulatingRules, updateRules, wrapStyleRules };"],"mappings":";AAAA,IAAI,yCAAyC,IAAI,IAAI;AACrD,IAAI,eAAe,CAAC;AACpB,IAAI,WAAW,CAAC;AAChB,IAAI,kBAAkB,WAAW;CAChC,OAAO;AACR;AACA,IAAI,cAAc,CAAC;AACnB,IAAI,mBAAmB;AACvB,IAAI,cAAc,WAAW;CAC5B,IAAI,CAAC,QAAQ,IAAI,wBAAwB;EACxC,IAAI,kBAAkB;GACrB,cAAc,OAAO,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK;IAC5D,OAAO,SAAS;GACjB,CAAC;GACD,mBAAmB;EACpB;EACA,OAAO;CACR;CACA,OAAO,CAAC;AACT;AACA,SAAS,eAAe,KAAK;CAC5B,IAAI,QAAQ,QAAQ,IAAI;CACxB,OAAO,SAAS,MAAM,UAAU,MAAM;EACrC,IAAI;KACD;AACL;AACA,SAAS,gBAAgB;CACxB,IAAI,gBAAgB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;CACrF,UAAU,SAAS,KAAK,UAAU;CAClC,IAAI,CAAC,QAAQ,IAAI,0BAA0B,eAAe;EACzD,IAAI,QAAQ,IAAI,aAAa,QAAQ;EACrC;CACD;AACD;AACA,IAAI,eAAe,QAAQ,IAAI;AAC/B,gBAAgB,CAAC;AACjB,SAAS,yBAAyB,UAAU;CAC3C,IAAI;CACJ,IAAI,aAAa,YAAY;CAC7B,IAAI,yBAAyB,SAAS,YAAY,KAAK;CACvD,IAAI,2BAA2B,CAAC,GAAG;CACnC,IAAI,QAAQ,wBAAwB,SAAS,MAAM,yBAAyB,CAAC,CAAC,CAAC,MAAM,SAAS,OAAO,QAAQ,0BAA0B,KAAK,IAAI,KAAK,IAAI,sBAAsB;CAC/K,IAAI,CAAC,MAAM;CACX,IAAI,aAAa,SAAS,yBAAyB;CACnD,IAAI,SAAS,eAAe,MAAM,SAAS,eAAe,MAAM,UAAU;CAC1E,IAAI,YAAY,UAAU,WAAW,OAAO,GAAG,OAAO,GAAG,SAAS;CAClE,IAAI,cAAc,gBAAgB,cAAc,cAAc;CAC9D,OAAO;AACR;AACA,IAAI,mBAAmB;AACvB,IAAI,gBAAgB;AACpB,SAAS,wBAAwB;CAChC;CACA,gBAAgB;CAChB,OAAO,WAAW;EACjB;EACA,gBAAgB,qBAAqB;CACtC;AACD;AACA,SAAS,YAAY,YAAY,OAAO;CACvC,IAAI,eAAe;EAClB,SAAS,cAAc,MAAM,KAAK,GAAG;EACrC,mBAAmB;CACpB;CACA,OAAO;AACR;AACA,SAAS,SAAS,GAAG,CAAC;AACtB,SAAS,iBAAiB,eAAe,CAAC;AAC1C,IAAI,cAAc,QAAQ,IAAI,gCAAgC,CAAC,QAAQ,IAAI,gCAAgC;AAC3G,SAAS,uBAAuB,YAAY;CAC3C,IAAI,QAAQ,IAAI,cAAc,aAAa,OAAO;CAClD,IAAI,QAAQ,uBAAuB,IAAI,UAAU,KAAK;CACtD,IAAI,QAAQ,IAAI,aAAa,eAAe;EAC3C,IAAI,QAAQ,EAAE,QAAQ,IAAI,yCAAyC,KAAK,QAAQ,KAAK,gUAAgU;CACtZ;CACA,OAAO,QAAQ;AAChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.765.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nate Wienert"
|
|
@@ -90,22 +90,22 @@
|
|
|
90
90
|
"test:web": "vitest --typecheck --run"
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"@tamagui/compose-refs": "3.0.0-beta.
|
|
94
|
-
"@tamagui/constants": "3.0.0-beta.
|
|
95
|
-
"@tamagui/dom": "3.0.0-beta.
|
|
96
|
-
"@tamagui/helpers": "3.0.0-beta.
|
|
97
|
-
"@tamagui/is-equal-shallow": "3.0.0-beta.
|
|
98
|
-
"@tamagui/native": "3.0.0-beta.
|
|
99
|
-
"@tamagui/normalize-css-color": "3.0.0-beta.
|
|
100
|
-
"@tamagui/style-grammar": "3.0.0-beta.
|
|
101
|
-
"@tamagui/timer": "3.0.0-beta.
|
|
102
|
-
"@tamagui/types": "3.0.0-beta.
|
|
103
|
-
"@tamagui/use-did-finish-ssr": "3.0.0-beta.
|
|
104
|
-
"@tamagui/use-event": "3.0.0-beta.
|
|
105
|
-
"@tamagui/use-force-update": "3.0.0-beta.
|
|
93
|
+
"@tamagui/compose-refs": "3.0.0-beta.765.1",
|
|
94
|
+
"@tamagui/constants": "3.0.0-beta.765.1",
|
|
95
|
+
"@tamagui/dom": "3.0.0-beta.765.1",
|
|
96
|
+
"@tamagui/helpers": "3.0.0-beta.765.1",
|
|
97
|
+
"@tamagui/is-equal-shallow": "3.0.0-beta.765.1",
|
|
98
|
+
"@tamagui/native": "3.0.0-beta.765.1",
|
|
99
|
+
"@tamagui/normalize-css-color": "3.0.0-beta.765.1",
|
|
100
|
+
"@tamagui/style-grammar": "3.0.0-beta.765.1",
|
|
101
|
+
"@tamagui/timer": "3.0.0-beta.765.1",
|
|
102
|
+
"@tamagui/types": "3.0.0-beta.765.1",
|
|
103
|
+
"@tamagui/use-did-finish-ssr": "3.0.0-beta.765.1",
|
|
104
|
+
"@tamagui/use-event": "3.0.0-beta.765.1",
|
|
105
|
+
"@tamagui/use-force-update": "3.0.0-beta.765.1"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
|
-
"@tamagui/build": "3.0.0-beta.
|
|
108
|
+
"@tamagui/build": "3.0.0-beta.765.1",
|
|
109
109
|
"@testing-library/react": "^16.1.0",
|
|
110
110
|
"csstype": "^3.0.10",
|
|
111
111
|
"react": "19.2.3",
|
package/src/createTamagui.ts
CHANGED
|
@@ -143,9 +143,11 @@ export function createTamagui<Conf extends CreateTamaguiProps>(
|
|
|
143
143
|
if (configIn.themes) {
|
|
144
144
|
const noThemes = Object.keys(configIn.themes).length === 0
|
|
145
145
|
const namesOnlyThemes = isNamesOnlyThemeProjection(configIn.themes)
|
|
146
|
-
if (
|
|
146
|
+
if (noThemes || namesOnlyThemes) {
|
|
147
147
|
// A names-only client projection keeps the grammar/config revision
|
|
148
148
|
// deterministic while the CSS remains authoritative for actual values.
|
|
149
|
+
// This holds with an output CSS artifact too: that artifact is exactly
|
|
150
|
+
// the CSS an empty-themes client hydrates from.
|
|
149
151
|
foundThemes = scanAllSheets(true, tokensParsed)
|
|
150
152
|
}
|
|
151
153
|
}
|