@tamagui/to-tailwind 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.
@@ -1 +1 @@
1
- {"version":3,"file":"transform.native.js","names":["canonicalShorthands"],"sources":["esm/transform.native.js"],"sourcesContent":["import { parse } from \"@babel/parser\";\nimport _traverse from \"@babel/traverse\";\nimport _generate from \"@babel/generator\";\nimport * as t from \"@babel/types\";\nimport { defaultMediaKeys, createModifierRegistry, fontWeightNames, formatCandidate, getTokenCategory, propToTailwindPrefix, parseValue, standaloneValueProps, v6RemovedThemeNames, v6ThemeNameReplacements } from \"@tamagui/style-grammar/tooling\";\nimport { componentToTag } from \"./maps/componentToTag\";\nimport { shorthands as canonicalShorthands } from \"@tamagui/shorthands/v4\";\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar _traverse_default;\nvar traverse = (_traverse_default = _traverse.default) !== null && _traverse_default !== void 0 ? _traverse_default : _traverse;\nvar _generate_default;\nvar generate = (_generate_default = _generate.default) !== null && _generate_default !== void 0 ? _generate_default : _generate;\nvar defaultShorthands = canonicalShorthands;\nvar removedV6ThemeNames = new Set(v6RemovedThemeNames);\nfunction getV6ThemeName(name) {\n var opacityIndex = name.indexOf(\"/\");\n var baseName = opacityIndex === -1 ? name : name.slice(0, opacityIndex);\n if (removedV6ThemeNames.has(baseName)) return null;\n var _v6ThemeNameReplacements_baseName;\n var mapped = (_v6ThemeNameReplacements_baseName = v6ThemeNameReplacements[baseName]) !== null && _v6ThemeNameReplacements_baseName !== void 0 ? _v6ThemeNameReplacements_baseName : baseName;\n return opacityIndex === -1 ? mapped : `${mapped}${name.slice(opacityIndex)}`;\n}\nfunction namesToSet(names) {\n if (!names) return /* @__PURE__ */ new Set();\n if (Array.isArray(names)) return new Set(names);\n if (_instanceof(names, Set)) return new Set(names);\n return new Set(Object.keys(names));\n}\nfunction addConfigNames(target, source) {\n if (!source) return;\n for (var key in source) target.add(key);\n}\nfunction createTransformGrammarConfig(options, mediaKeys, shorthands) {\n if (options.grammarConfig) {\n return {\n ...options.grammarConfig,\n shorthands,\n mediaNames: mediaKeys\n };\n }\n var tokenNames = {};\n var tokenCategories = [\n \"space\",\n \"size\",\n \"radius\",\n \"zIndex\",\n \"color\"\n ];\n var fontCategories = [\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"lineHeight\",\n \"letterSpacing\"\n ];\n var authoritative = [\n \"tokens\",\n \"fonts\",\n \"themes\",\n \"media\",\n \"shorthands\"\n ].some(function(key) {\n return key in options;\n });\n if (authoritative) {\n for (var _i = 0, _iter = [\n ...tokenCategories,\n ...fontCategories\n ]; _i < _iter.length; _i++) {\n var category = _iter[_i];\n tokenNames[category] = /* @__PURE__ */ new Set();\n }\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = tokenCategories[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var category1 = _step.value;\n var _options_tokens;\n if ((_options_tokens = options.tokens) === null || _options_tokens === void 0 ? void 0 : _options_tokens[category1]) {\n var names = tokenNames[category1] || /* @__PURE__ */ new Set();\n addConfigNames(names, options.tokens[category1]);\n tokenNames[category1] = names;\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 if (options.fonts) {\n var _tokenNames, _tokenNames1, _tokenNames2, _tokenNames3, _tokenNames4;\n (_tokenNames = tokenNames).fontFamily || (_tokenNames.fontFamily = /* @__PURE__ */ new Set());\n (_tokenNames1 = tokenNames).fontSize || (_tokenNames1.fontSize = /* @__PURE__ */ new Set());\n (_tokenNames2 = tokenNames).fontWeight || (_tokenNames2.fontWeight = /* @__PURE__ */ new Set());\n (_tokenNames3 = tokenNames).lineHeight || (_tokenNames3.lineHeight = /* @__PURE__ */ new Set());\n (_tokenNames4 = tokenNames).letterSpacing || (_tokenNames4.letterSpacing = /* @__PURE__ */ new Set());\n for (var familyName in options.fonts) {\n tokenNames.fontFamily.add(familyName);\n var font = options.fonts[familyName];\n addConfigNames(tokenNames.fontSize, font === null || font === void 0 ? void 0 : font.size);\n addConfigNames(tokenNames.fontWeight, font === null || font === void 0 ? void 0 : font.weight);\n addConfigNames(tokenNames.lineHeight, font === null || font === void 0 ? void 0 : font.lineHeight);\n addConfigNames(tokenNames.letterSpacing, font === null || font === void 0 ? void 0 : font.letterSpacing);\n }\n }\n var themeNames = /* @__PURE__ */ new Set();\n if (options.themes) {\n var _tokenNames5;\n (_tokenNames5 = tokenNames).color || (_tokenNames5.color = /* @__PURE__ */ new Set());\n for (var themeName in options.themes) {\n themeNames.add(themeName);\n for (var name in options.themes[themeName]) {\n var mapped = getV6ThemeName(name);\n if (mapped) tokenNames.color.add(mapped);\n }\n }\n }\n return {\n shorthands,\n mediaNames: mediaKeys,\n themeNames,\n tokenNames\n };\n}\nfunction findParseError(source) {\n try {\n var ast = parse(source, {\n sourceType: \"module\",\n plugins: [\n \"jsx\",\n \"typescript\"\n ],\n errorRecovery: true\n });\n var errs = ast.errors;\n if (errs && errs.length > 0) {\n var _$e = errs[0];\n var loc = (_$e === null || _$e === void 0 ? void 0 : _$e.loc) ? `${_$e.loc.line}:${_$e.loc.column}` : \"?\";\n return `${(_$e === null || _$e === void 0 ? void 0 : _$e.reasonCode) || (_$e === null || _$e === void 0 ? void 0 : _$e.message) || \"parse error\"} at ${loc}`;\n }\n return null;\n } catch (e) {\n return e.message || \"parse error\";\n }\n}\nfunction tamaguiToTailwind(source) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var _options_grammarConfig, _options_grammarConfig1;\n var { renameComponents = true } = options;\n var mediaKeys = ((_options_grammarConfig = options.grammarConfig) === null || _options_grammarConfig === void 0 ? void 0 : _options_grammarConfig.mediaNames) ? namesToSet(options.grammarConfig.mediaNames) : options.media ? new Set(Array.isArray(options.media) ? options.media : Object.keys(options.media)) : new Set(defaultMediaKeys);\n var _options_grammarConfig_shorthands, _ref;\n var shorthands = (_ref = (_options_grammarConfig_shorthands = (_options_grammarConfig1 = options.grammarConfig) === null || _options_grammarConfig1 === void 0 ? void 0 : _options_grammarConfig1.shorthands) !== null && _options_grammarConfig_shorthands !== void 0 ? _options_grammarConfig_shorthands : options.shorthands) !== null && _ref !== void 0 ? _ref : defaultShorthands;\n var grammarConfig = createTransformGrammarConfig(options, mediaKeys, shorthands);\n var _options_components;\n var ctx = {\n mediaKeys,\n componentAllow: new Set((_options_components = options.components) !== null && _options_components !== void 0 ? _options_components : []),\n shorthands,\n grammarConfig,\n modifierRegistry: createModifierRegistry(grammarConfig).registry\n };\n var ast;\n try {\n ast = parse(source, {\n sourceType: \"module\",\n plugins: [\n \"jsx\",\n \"typescript\"\n ],\n errorRecovery: true\n });\n } catch (e) {\n return source;\n }\n if (ast.errors && ast.errors.length > 0) {\n return source;\n }\n var didTransform = false;\n traverse(ast, {\n JSXOpeningElement(path) {\n var node = path.node;\n var resolved = resolveTamaguiComponent(path, ctx);\n if (resolved === null) return;\n var { name: componentName, isSimpleKnown, isPlainIdentifier } = resolved;\n if (node.attributes.some(function(a2) {\n return t.isJSXSpreadAttribute(a2);\n })) return;\n var hasDynamicClassName = node.attributes.some(function(attr2) {\n return t.isJSXAttribute(attr2) && attr2.name.name === \"className\" && getStringValue(attr2.value) === null;\n });\n if (hasDynamicClassName) return;\n var hasClassName = node.attributes.some(function(attr2) {\n return t.isJSXAttribute(attr2) && attr2.name.name === \"className\";\n });\n var hasNeighboringStyleProp = node.attributes.some(function(attr2) {\n if (!t.isJSXAttribute(attr2) || attr2.name.name === \"className\") return false;\n var name2 = attr2.name.name;\n return isConvertibleStyleProp(resolveShorthand(ctx, name2));\n });\n if (hasClassName && hasNeighboringStyleProp) return;\n var classes = [];\n var keptAttrs = [];\n var existingClassName = null;\n var blockedLeafKeys = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = node.attributes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var a = _step.value;\n if (t.isJSXAttribute(a) && a.name.name === \"className\") {\n var v = getStringValue(a.value);\n if (v) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = v.split(/\\s+/)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var tok = _step1.value;\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n if (tok) try {\n for (var _iterator2 = leafKeysOfClassToken(tok)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var k = _step2.value;\n blockedLeafKeys.add(k);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\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 implicitClasses = [];\n if (componentName === \"XStack\") implicitClasses.push(\"flex\", \"flex-row\");\n else if (componentName === \"YStack\") implicitClasses.push(\"flex\", \"flex-col\");\n else if (componentName === \"ZStack\") implicitClasses.push(\"relative\");\n var styleEntries = [];\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = node.attributes[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var attr = _step3.value;\n if (!t.isJSXAttribute(attr)) {\n keptAttrs.push(attr);\n continue;\n }\n var name = attr.name.name;\n if (name === \"className\") {\n existingClassName = attr;\n continue;\n }\n styleEntries.push({\n attr,\n fullProp: resolveShorthand(ctx, name),\n cls: propValueToClass(ctx, name, attr.value)\n });\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n var retainedLeafKeys = new Set(blockedLeafKeys);\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = styleEntries[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var e = _step4.value;\n if (e.cls === null && isConvertibleStyleProp(e.fullProp)) {\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = leafKeysOfProp(e.fullProp)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var k1 = _step5.value;\n retainedLeafKeys.add(k1);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;\n try {\n for (var _iterator6 = implicitClasses[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var c = _step6.value;\n if (!overlapsSet(leafKeysOfClassToken(c), retainedLeafKeys)) classes.push(c);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n var _iteratorNormalCompletion7 = true, _didIteratorError7 = false, _iteratorError7 = void 0;\n try {\n for (var _iterator7 = styleEntries[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var e1 = _step7.value;\n if (e1.cls !== null && !overlapsSet(leafKeysOfProp(e1.fullProp), retainedLeafKeys)) {\n classes.push(e1.cls);\n } else {\n keptAttrs.push(e1.attr);\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return != null) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n if (classes.length > 0) {\n var classStr = classes.join(\" \");\n if (existingClassName) {\n var existingVal = getStringValue(existingClassName.value);\n if (existingVal !== null) {\n existingClassName.value = t.stringLiteral(existingVal ? `${classStr} ${existingVal}` : classStr);\n keptAttrs.unshift(existingClassName);\n } else if (t.isJSXExpressionContainer(existingClassName.value) && !t.isJSXEmptyExpression(existingClassName.value.expression)) {\n var expr = existingClassName.value.expression;\n existingClassName.value = t.jsxExpressionContainer(t.templateLiteral([\n t.templateElement({\n raw: `${classStr} `,\n cooked: `${classStr} `\n }, false),\n t.templateElement({\n raw: \"\",\n cooked: \"\"\n }, true)\n ], [\n expr\n ]));\n keptAttrs.unshift(existingClassName);\n } else {\n keptAttrs.unshift(t.jsxAttribute(t.jsxIdentifier(\"className\"), t.stringLiteral(classStr)));\n }\n } else {\n keptAttrs.unshift(t.jsxAttribute(t.jsxIdentifier(\"className\"), t.stringLiteral(classStr)));\n }\n } else if (existingClassName) {\n keptAttrs.unshift(existingClassName);\n }\n node.attributes = keptAttrs;\n if (classes.length > 0) didTransform = true;\n if (renameComponents && isSimpleKnown && isPlainIdentifier) {\n var tag = componentToTag[componentName];\n node.name = t.jsxIdentifier(tag);\n var parent = path.parent;\n if (t.isJSXElement(parent) && parent.closingElement) {\n parent.closingElement.name = t.jsxIdentifier(tag);\n }\n didTransform = true;\n }\n }\n });\n if (!didTransform) return source;\n var output = generate(ast, {\n retainLines: true,\n concise: false\n });\n return output.code;\n}\nvar knownCompoundComponents = /* @__PURE__ */ new Set([\n \"Sheet.Frame\",\n \"Sheet.Overlay\",\n \"Sheet.Handle\",\n \"Sheet.ScrollView\",\n \"Sheet.Container\",\n \"Dialog.Content\",\n \"Dialog.Overlay\",\n \"Popover.Content\",\n \"Tabs.Tab\"\n]);\nfunction isTamaguiSource(source) {\n return source === \"tamagui\" || source.startsWith(\"@tamagui/\");\n}\nfunction resolveTamaguiComponent(path, ctx) {\n var _path_scope_getBinding, _path_scope;\n var nameNode = path.node.name;\n var baseName;\n var memberChain = [];\n var isPlainIdentifier = t.isJSXIdentifier(nameNode);\n if (t.isJSXIdentifier(nameNode)) {\n baseName = nameNode.name;\n } else if (t.isJSXMemberExpression(nameNode)) {\n var parts = [];\n var cur = nameNode;\n while (t.isJSXMemberExpression(cur)) {\n parts.unshift(cur.property.name);\n cur = cur.object;\n }\n if (!t.isJSXIdentifier(cur)) return null;\n baseName = cur.name;\n memberChain = parts;\n } else {\n return null;\n }\n var binding = (_path_scope = path.scope) === null || _path_scope === void 0 ? void 0 : (_path_scope_getBinding = _path_scope.getBinding) === null || _path_scope_getBinding === void 0 ? void 0 : _path_scope_getBinding.call(_path_scope, baseName);\n var tamaguiBase;\n if (binding) {\n var bnode = binding.path.node;\n if (t.isImportSpecifier(bnode) || t.isImportDefaultSpecifier(bnode) || t.isImportNamespaceSpecifier(bnode)) {\n var decl = binding.path.parent;\n var source = t.isImportDeclaration(decl) ? String(decl.source.value) : \"\";\n if (!isTamaguiSource(source)) return null;\n if (t.isImportNamespaceSpecifier(bnode)) {\n if (memberChain.length === 0) return null;\n tamaguiBase = memberChain[0];\n memberChain = memberChain.slice(1);\n } else if (t.isImportSpecifier(bnode)) {\n var imported = bnode.imported;\n tamaguiBase = t.isIdentifier(imported) ? imported.name : String(imported.value);\n } else {\n return null;\n }\n } else {\n return null;\n }\n } else {\n tamaguiBase = baseName;\n }\n var name = memberChain.length ? [\n tamaguiBase,\n ...memberChain\n ].join(\".\") : tamaguiBase;\n var isSimpleKnown = memberChain.length === 0 && name in componentToTag;\n if (!isSimpleKnown && !knownCompoundComponents.has(name) && !ctx.componentAllow.has(name)) {\n return null;\n }\n return {\n name,\n isSimpleKnown,\n isPlainIdentifier\n };\n}\nfunction classPrefixOf(token) {\n var noMod = token.slice(token.lastIndexOf(\":\") + 1);\n var core = noMod[0] === \"-\" ? noMod.slice(1) : noMod;\n var dash = core.indexOf(\"-\");\n return dash === -1 ? core : core.slice(0, dash);\n}\nvar leafExpansion = {\n padding: [\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\"\n ],\n paddingHorizontal: [\n \"paddingLeft\",\n \"paddingRight\"\n ],\n paddingVertical: [\n \"paddingTop\",\n \"paddingBottom\"\n ],\n margin: [\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\"\n ],\n marginHorizontal: [\n \"marginLeft\",\n \"marginRight\"\n ],\n marginVertical: [\n \"marginTop\",\n \"marginBottom\"\n ],\n inset: [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n gap: [\n \"gap\",\n \"rowGap\",\n \"columnGap\"\n ],\n borderWidth: [\n \"borderTopWidth\",\n \"borderRightWidth\",\n \"borderBottomWidth\",\n \"borderLeftWidth\"\n ],\n borderColor: [\n \"borderTopColor\",\n \"borderRightColor\",\n \"borderBottomColor\",\n \"borderLeftColor\"\n ],\n borderRadius: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\"\n ]\n};\nfunction leafKeysOfProp(fullProp) {\n var _leafExpansion_fullProp;\n return (_leafExpansion_fullProp = leafExpansion[fullProp]) !== null && _leafExpansion_fullProp !== void 0 ? _leafExpansion_fullProp : [\n fullProp\n ];\n}\nvar prefixToProp = (function() {\n var m = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(propToTailwindPrefix)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [prop, prefix] = _step.value;\n if (prefix && !(prefix in m)) m[prefix] = prop;\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 return m;\n})();\nfunction leafKeysOfClassToken(token) {\n var prefix = classPrefixOf(token);\n var _prefixToProp_prefix;\n return leafKeysOfProp((_prefixToProp_prefix = prefixToProp[prefix]) !== null && _prefixToProp_prefix !== void 0 ? _prefixToProp_prefix : prefix);\n}\nfunction overlapsSet(keys, set) {\n return keys.some(function(k) {\n return set.has(k);\n });\n}\nfunction isConvertibleStyleProp(fullProp) {\n return propToTailwindPrefix[fullProp] !== void 0 || fullProp in standaloneValueProps;\n}\nfunction propValueToClass(ctx, propName, value) {\n var fullProp = resolveShorthand(ctx, propName);\n if (propToTailwindPrefix[fullProp] === void 0) return null;\n var strVal = getStringValue(value);\n var numVal = getNumericValue(value);\n if (strVal !== null) {\n var parsed = parseValue(strVal, ctx.modifierRegistry);\n if (!parsed.ok) return null;\n var classes = [];\n if (parsed.value.base !== null) {\n var base = payloadToClass(ctx, fullProp, parsed.value.base, []);\n if (base === null) return null;\n classes.push(base);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = parsed.value.clauses[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var clause = _step.value;\n var conditional = payloadToClass(ctx, fullProp, clause.payload, clause.modifiers);\n if (conditional === null) return null;\n classes.push(conditional);\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 return classes.length ? classes.join(\" \") : null;\n }\n if (numVal === null) return null;\n var formatted = formatNumericValue(fullProp, numVal);\n if (formatted === null) return null;\n return formatCandidate({\n prop: fullProp,\n value: formatted.value,\n valueKind: formatted.valueKind,\n modifiers: void 0\n }, ctx.grammarConfig);\n}\nfunction payloadToClass(ctx, fullProp, payload, modifiers) {\n var _standaloneValueProps_fullProp;\n var formatted;\n if ((_standaloneValueProps_fullProp = standaloneValueProps[fullProp]) === null || _standaloneValueProps_fullProp === void 0 ? void 0 : _standaloneValueProps_fullProp[payload]) {\n formatted = {\n value: payload,\n valueKind: \"enum\"\n };\n } else {\n formatted = formatStringValue(ctx, fullProp, payload);\n if (formatted === null && /^-?\\d+(?:\\.\\d+)?$/.test(payload)) {\n var _ctx_grammarConfig_tokenNames;\n var category = getTokenCategory(fullProp);\n if (!category || ((_ctx_grammarConfig_tokenNames = ctx.grammarConfig.tokenNames) === null || _ctx_grammarConfig_tokenNames === void 0 ? void 0 : _ctx_grammarConfig_tokenNames[category]) !== void 0) {\n formatted = formatNumericValue(fullProp, Number(payload));\n }\n }\n }\n if (formatted === null) return null;\n return formatCandidate({\n prop: fullProp,\n value: formatted.value,\n valueKind: formatted.valueKind,\n modifiers: modifiers.length ? modifiers : void 0\n }, ctx.grammarConfig);\n}\nfunction getStringValue(value) {\n if (!value) return null;\n if (t.isStringLiteral(value)) return value.value;\n if (t.isJSXExpressionContainer(value) && t.isStringLiteral(value.expression)) {\n return value.expression.value;\n }\n if (t.isJSXExpressionContainer(value) && t.isTemplateLiteral(value.expression)) {\n if (value.expression.expressions.length === 0 && value.expression.quasis.length === 1) {\n return value.expression.quasis[0].value.raw;\n }\n }\n return null;\n}\nfunction getNumericValue(value) {\n if (!value) return null;\n if (t.isJSXExpressionContainer(value)) {\n if (t.isNumericLiteral(value.expression)) return value.expression.value;\n if (t.isUnaryExpression(value.expression) && value.expression.operator === \"-\" && t.isNumericLiteral(value.expression.argument)) {\n return -value.expression.argument.value;\n }\n }\n return null;\n}\nfunction resolveShorthand(ctx, name) {\n return ctx.shorthands[name] || name;\n}\nfunction hasConfiguredName(names, value) {\n if (!names) return false;\n if (Array.isArray(names)) return names.includes(value);\n if (_instanceof(names, Set)) return names.has(value);\n return value in names;\n}\nfunction formatStringValue(ctx, prop, value) {\n var _ctx_grammarConfig_tokenNames;\n var category = getTokenCategory(prop);\n if (prop !== \"fontWeight\" && category && hasConfiguredName((_ctx_grammarConfig_tokenNames = ctx.grammarConfig.tokenNames) === null || _ctx_grammarConfig_tokenNames === void 0 ? void 0 : _ctx_grammarConfig_tokenNames[category], value)) {\n if (category === \"color\") {\n var mapped = getV6ThemeName(value);\n return mapped ? {\n value: mapped,\n valueKind: \"token\"\n } : null;\n }\n return {\n value,\n valueKind: \"token\"\n };\n }\n if (prop === \"fontWeight\") {\n return fontWeightNames[value] ? {\n value,\n valueKind: \"enum\"\n } : null;\n }\n if (prop === \"zIndex\" && /^\\d+$/.test(value)) {\n return {\n value,\n valueKind: \"convenience\"\n };\n }\n if (/^-?\\d+(\\.\\d+)?$/.test(value)) return null;\n if (value.endsWith(\"%\")) {\n var exact = {\n \"100%\": \"full\",\n \"50%\": \"1/2\",\n \"25%\": \"1/4\",\n \"75%\": \"3/4\"\n };\n if (getTokenCategory(prop) === \"size\" && exact[value]) {\n return {\n value: exact[value],\n valueKind: \"convenience\"\n };\n }\n return {\n value,\n valueKind: \"arbitrary\"\n };\n }\n if (value === \"auto\" && getTokenCategory(prop) === \"size\") {\n return {\n value,\n valueKind: \"convenience\"\n };\n }\n if (prop === \"fontFamily\") return {\n value,\n valueKind: \"arbitrary\"\n };\n if (value.includes(\"(\") || value.includes(\" \") || value.includes(\"_\") || value.startsWith(\"#\") || value.startsWith(\"-\") || /^[\\d.]+[a-z%]/i.test(value)) {\n return {\n value,\n valueKind: \"arbitrary\"\n };\n }\n return {\n value,\n valueKind: \"arbitrary\"\n };\n}\nvar pxLengthProps = /* @__PURE__ */ new Set([\n \"width\",\n \"height\",\n \"minWidth\",\n \"maxWidth\",\n \"minHeight\",\n \"maxHeight\",\n \"flexBasis\",\n \"padding\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"paddingHorizontal\",\n \"paddingVertical\",\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginHorizontal\",\n \"marginVertical\",\n \"gap\",\n \"rowGap\",\n \"columnGap\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"borderRadius\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"fontSize\",\n \"letterSpacing\",\n \"lineHeight\"\n]);\nfunction formatNumericValue(prop, value) {\n if (prop === \"opacity\") {\n var pct = value * 100;\n return Number.isInteger(pct) ? {\n value: String(pct),\n valueKind: \"convenience\"\n } : {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"aspectRatio\") return {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n if (prop === \"scale\" || prop === \"scaleX\" || prop === \"scaleY\") {\n if (value === 0) return {\n value: \"0\",\n valueKind: \"convenience\"\n };\n if (value === 1) return {\n value: \"100\",\n valueKind: \"convenience\"\n };\n return {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"flex\") {\n return value === 1 ? {\n value: \"1\",\n valueKind: \"convenience\"\n } : {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"flexGrow\" || prop === \"flexShrink\") {\n return {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"zIndex\") {\n return Number.isInteger(value) && value >= 0 ? {\n value: String(value),\n valueKind: \"convenience\"\n } : {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"fontWeight\") {\n return fontWeightNames[String(value)] ? {\n value: String(value),\n valueKind: \"enum\"\n } : null;\n }\n if (prop === \"rotate\") return null;\n if (prop === \"x\" || prop === \"y\") {\n return {\n value: `${value}px`,\n valueKind: \"arbitrary\"\n };\n }\n if (prop.includes(\"Width\") && prop.startsWith(\"border\")) {\n return {\n value: `${value}px`,\n valueKind: \"arbitrary\"\n };\n }\n if (pxLengthProps.has(prop)) {\n return {\n value: `${value}px`,\n valueKind: \"arbitrary\"\n };\n }\n return null;\n}\nexport {\n findParseError,\n tamaguiToTailwind\n};\n//# sourceMappingURL=transform.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"transform.native.js","names":["canonicalShorthands"],"sources":["esm/transform.native.js"],"sourcesContent":["import { parse } from \"@babel/parser\";\nimport _traverse from \"@babel/traverse\";\nimport _generate from \"@babel/generator\";\nimport * as t from \"@babel/types\";\nimport { defaultMediaKeys, createModifierRegistry, fontWeightNames, formatCandidate, getTokenCategory, propToTailwindPrefix, parseValue, standaloneValueProps, v6RemovedThemeNames, v6ThemeNameReplacements, propTokenGroupFallbacks } from \"@tamagui/style-grammar/tooling\";\nimport { componentToTag } from \"./maps/componentToTag\";\nimport { shorthands as canonicalShorthands } from \"@tamagui/shorthands/v4\";\nvar _traverse_default;\nvar traverse = (_traverse_default = _traverse.default) !== null && _traverse_default !== void 0 ? _traverse_default : _traverse;\nvar _generate_default;\nvar generate = (_generate_default = _generate.default) !== null && _generate_default !== void 0 ? _generate_default : _generate;\nvar defaultShorthands = canonicalShorthands;\nvar removedV6ThemeNames = new Set(v6RemovedThemeNames);\nfunction getV6ThemeName(name) {\n var opacityIndex = name.indexOf(\"/\");\n var baseName = opacityIndex === -1 ? name : name.slice(0, opacityIndex);\n if (removedV6ThemeNames.has(baseName)) return null;\n var _v6ThemeNameReplacements_baseName;\n var mapped = (_v6ThemeNameReplacements_baseName = v6ThemeNameReplacements[baseName]) !== null && _v6ThemeNameReplacements_baseName !== void 0 ? _v6ThemeNameReplacements_baseName : baseName;\n return opacityIndex === -1 ? mapped : `${mapped}${name.slice(opacityIndex)}`;\n}\nfunction namesToSet(names) {\n if (!names) return /* @__PURE__ */ new Set();\n if (Array.isArray(names)) return new Set(names);\n if (names instanceof Set) return new Set(names);\n return new Set(Object.keys(names));\n}\nfunction addConfigNames(target, source) {\n if (!source) return;\n for (var key in source) target.add(key);\n}\nfunction createTransformGrammarConfig(options, mediaKeys, shorthands) {\n if (options.grammarConfig) {\n return {\n ...options.grammarConfig,\n shorthands,\n mediaNames: mediaKeys\n };\n }\n var tokenNames = {};\n var tokenCategories = [\n \"space\",\n \"size\",\n \"radius\",\n \"zIndex\",\n \"color\"\n ];\n var fontCategories = [\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"lineHeight\",\n \"letterSpacing\"\n ];\n var authoritative = [\n \"tokens\",\n \"fonts\",\n \"themes\",\n \"media\",\n \"shorthands\"\n ].some(function(key) {\n return key in options;\n });\n if (authoritative) {\n for (var _i = 0, _iter = [\n ...tokenCategories,\n ...fontCategories\n ]; _i < _iter.length; _i++) {\n var category = _iter[_i];\n tokenNames[category] = /* @__PURE__ */ new Set();\n }\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = tokenCategories[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var category1 = _step.value;\n var _options_tokens;\n if ((_options_tokens = options.tokens) === null || _options_tokens === void 0 ? void 0 : _options_tokens[category1]) {\n var names = tokenNames[category1] || /* @__PURE__ */ new Set();\n addConfigNames(names, options.tokens[category1]);\n tokenNames[category1] = names;\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 for (var group in propTokenGroupFallbacks) {\n var _options_tokens1;\n var own = (_options_tokens1 = options.tokens) === null || _options_tokens1 === void 0 ? void 0 : _options_tokens1[group];\n var names1 = own ? /* @__PURE__ */ new Set() : tokenNames[propTokenGroupFallbacks[group]];\n if (own) addConfigNames(names1, own);\n if (names1) tokenNames[group] = names1;\n }\n if (options.fonts) {\n var _tokenNames, _tokenNames1, _tokenNames2, _tokenNames3, _tokenNames4;\n (_tokenNames = tokenNames).fontFamily || (_tokenNames.fontFamily = /* @__PURE__ */ new Set());\n (_tokenNames1 = tokenNames).fontSize || (_tokenNames1.fontSize = /* @__PURE__ */ new Set());\n (_tokenNames2 = tokenNames).fontWeight || (_tokenNames2.fontWeight = /* @__PURE__ */ new Set());\n (_tokenNames3 = tokenNames).lineHeight || (_tokenNames3.lineHeight = /* @__PURE__ */ new Set());\n (_tokenNames4 = tokenNames).letterSpacing || (_tokenNames4.letterSpacing = /* @__PURE__ */ new Set());\n for (var familyName in options.fonts) {\n tokenNames.fontFamily.add(familyName);\n var font = options.fonts[familyName];\n addConfigNames(tokenNames.fontSize, font === null || font === void 0 ? void 0 : font.size);\n addConfigNames(tokenNames.fontWeight, font === null || font === void 0 ? void 0 : font.weight);\n addConfigNames(tokenNames.lineHeight, font === null || font === void 0 ? void 0 : font.lineHeight);\n addConfigNames(tokenNames.letterSpacing, font === null || font === void 0 ? void 0 : font.letterSpacing);\n }\n }\n var themeNames = /* @__PURE__ */ new Set();\n if (options.themes) {\n var _tokenNames5;\n (_tokenNames5 = tokenNames).color || (_tokenNames5.color = /* @__PURE__ */ new Set());\n for (var themeName in options.themes) {\n themeNames.add(themeName);\n for (var name in options.themes[themeName]) {\n var mapped = getV6ThemeName(name);\n if (mapped) tokenNames.color.add(mapped);\n }\n }\n }\n return {\n shorthands,\n mediaNames: mediaKeys,\n themeNames,\n tokenNames\n };\n}\nfunction findParseError(source) {\n try {\n var ast = parse(source, {\n sourceType: \"module\",\n plugins: [\n \"jsx\",\n \"typescript\"\n ],\n errorRecovery: true\n });\n var errs = ast.errors;\n if (errs && errs.length > 0) {\n var _$e = errs[0];\n var loc = (_$e === null || _$e === void 0 ? void 0 : _$e.loc) ? `${_$e.loc.line}:${_$e.loc.column}` : \"?\";\n return `${(_$e === null || _$e === void 0 ? void 0 : _$e.reasonCode) || (_$e === null || _$e === void 0 ? void 0 : _$e.message) || \"parse error\"} at ${loc}`;\n }\n return null;\n } catch (e) {\n return e.message || \"parse error\";\n }\n}\nfunction tamaguiToTailwind(source) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var _options_grammarConfig, _options_grammarConfig1;\n var { renameComponents = true } = options;\n var mediaKeys = ((_options_grammarConfig = options.grammarConfig) === null || _options_grammarConfig === void 0 ? void 0 : _options_grammarConfig.mediaNames) ? namesToSet(options.grammarConfig.mediaNames) : options.media ? new Set(Array.isArray(options.media) ? options.media : Object.keys(options.media)) : new Set(defaultMediaKeys);\n var _options_grammarConfig_shorthands, _ref;\n var shorthands = (_ref = (_options_grammarConfig_shorthands = (_options_grammarConfig1 = options.grammarConfig) === null || _options_grammarConfig1 === void 0 ? void 0 : _options_grammarConfig1.shorthands) !== null && _options_grammarConfig_shorthands !== void 0 ? _options_grammarConfig_shorthands : options.shorthands) !== null && _ref !== void 0 ? _ref : defaultShorthands;\n var grammarConfig = createTransformGrammarConfig(options, mediaKeys, shorthands);\n var _options_components;\n var ctx = {\n mediaKeys,\n componentAllow: new Set((_options_components = options.components) !== null && _options_components !== void 0 ? _options_components : []),\n shorthands,\n grammarConfig,\n modifierRegistry: createModifierRegistry(grammarConfig).registry,\n rewriteImports: options.rewriteImports === true\n };\n var ast;\n try {\n ast = parse(source, {\n sourceType: \"module\",\n plugins: [\n \"jsx\",\n \"typescript\"\n ],\n errorRecovery: true\n });\n } catch (e) {\n return source;\n }\n if (ast.errors && ast.errors.length > 0) {\n return source;\n }\n var didTransform = false;\n traverse(ast, {\n JSXOpeningElement(path) {\n var node = path.node;\n var resolved = resolveTamaguiComponent(path, ctx);\n if (resolved === null) return;\n var { name: componentName, isSimpleKnown, isPlainIdentifier } = resolved;\n if (node.attributes.some(function(a2) {\n return t.isJSXSpreadAttribute(a2);\n })) return;\n var hasDynamicClassName = node.attributes.some(function(attr2) {\n return t.isJSXAttribute(attr2) && attr2.name.name === \"className\" && getStringValue(attr2.value) === null;\n });\n if (hasDynamicClassName) return;\n var hasClassName = node.attributes.some(function(attr2) {\n return t.isJSXAttribute(attr2) && attr2.name.name === \"className\";\n });\n var hasNeighboringStyleProp = node.attributes.some(function(attr2) {\n if (!t.isJSXAttribute(attr2) || attr2.name.name === \"className\") return false;\n var name2 = attr2.name.name;\n return isConvertibleStyleProp(resolveShorthand(ctx, name2));\n });\n if (hasClassName && hasNeighboringStyleProp) return;\n var classes = [];\n var keptAttrs = [];\n var existingClassName = null;\n var blockedLeafKeys = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = node.attributes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var a = _step.value;\n if (t.isJSXAttribute(a) && a.name.name === \"className\") {\n var v = getStringValue(a.value);\n if (v) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = v.split(/\\s+/)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var tok = _step1.value;\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n if (tok) try {\n for (var _iterator2 = leafKeysOfClassToken(tok)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var k = _step2.value;\n blockedLeafKeys.add(k);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\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 implicitClasses = [];\n if (componentName === \"XStack\") implicitClasses.push(\"flex\", \"flex-row\");\n else if (componentName === \"YStack\") implicitClasses.push(\"flex\", \"flex-col\");\n else if (componentName === \"ZStack\") implicitClasses.push(\"relative\");\n var styleEntries = [];\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = node.attributes[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var attr = _step3.value;\n if (!t.isJSXAttribute(attr)) {\n keptAttrs.push(attr);\n continue;\n }\n var name = attr.name.name;\n if (name === \"className\") {\n existingClassName = attr;\n continue;\n }\n styleEntries.push({\n attr,\n fullProp: resolveShorthand(ctx, name),\n cls: propValueToClass(ctx, name, attr.value)\n });\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n var retainedLeafKeys = new Set(blockedLeafKeys);\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = styleEntries[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var e = _step4.value;\n if (e.cls === null && isConvertibleStyleProp(e.fullProp)) {\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = leafKeysOfProp(e.fullProp)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var k1 = _step5.value;\n retainedLeafKeys.add(k1);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;\n try {\n for (var _iterator6 = implicitClasses[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var c = _step6.value;\n if (!overlapsSet(leafKeysOfClassToken(c), retainedLeafKeys)) classes.push(c);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n var _iteratorNormalCompletion7 = true, _didIteratorError7 = false, _iteratorError7 = void 0;\n try {\n for (var _iterator7 = styleEntries[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var e1 = _step7.value;\n if (e1.cls !== null && !overlapsSet(leafKeysOfProp(e1.fullProp), retainedLeafKeys)) {\n classes.push(e1.cls);\n } else {\n keptAttrs.push(e1.attr);\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return != null) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n if (classes.length > 0) {\n var classStr = classes.join(\" \");\n if (existingClassName) {\n var existingVal = getStringValue(existingClassName.value);\n if (existingVal !== null) {\n existingClassName.value = t.stringLiteral(existingVal ? `${classStr} ${existingVal}` : classStr);\n keptAttrs.unshift(existingClassName);\n } else if (t.isJSXExpressionContainer(existingClassName.value) && !t.isJSXEmptyExpression(existingClassName.value.expression)) {\n var expr = existingClassName.value.expression;\n existingClassName.value = t.jsxExpressionContainer(t.templateLiteral([\n t.templateElement({\n raw: `${classStr} `,\n cooked: `${classStr} `\n }, false),\n t.templateElement({\n raw: \"\",\n cooked: \"\"\n }, true)\n ], [\n expr\n ]));\n keptAttrs.unshift(existingClassName);\n } else {\n keptAttrs.unshift(t.jsxAttribute(t.jsxIdentifier(\"className\"), t.stringLiteral(classStr)));\n }\n } else {\n keptAttrs.unshift(t.jsxAttribute(t.jsxIdentifier(\"className\"), t.stringLiteral(classStr)));\n }\n } else if (existingClassName) {\n keptAttrs.unshift(existingClassName);\n }\n node.attributes = keptAttrs;\n if (classes.length > 0) didTransform = true;\n if (renameComponents && isSimpleKnown && isPlainIdentifier) {\n var tag = componentToTag[componentName];\n node.name = t.jsxIdentifier(tag);\n var parent = path.parent;\n if (t.isJSXElement(parent) && parent.closingElement) {\n parent.closingElement.name = t.jsxIdentifier(tag);\n }\n didTransform = true;\n }\n }\n });\n if (options.rewriteImports && rewriteTailwindFrontendImports(ast)) {\n didTransform = true;\n }\n if (!didTransform) return source;\n var output = generate(ast, {\n retainLines: options.retainLines !== false,\n concise: false\n });\n return output.code;\n}\nvar knownCompoundComponents = /* @__PURE__ */ new Set([\n \"Sheet.Frame\",\n \"Sheet.Overlay\",\n \"Sheet.Handle\",\n \"Sheet.ScrollView\",\n \"Sheet.Container\",\n \"Dialog.Content\",\n \"Dialog.Overlay\",\n \"Popover.Content\",\n \"Tabs.Tab\"\n]);\nvar tailwindFrontendImports = /* @__PURE__ */ new Set([\n \"html\",\n \"View\",\n \"Text\"\n]);\nfunction isTamaguiSource(source) {\n return source === \"tamagui\" || source.startsWith(\"@tamagui/\");\n}\nfunction resolveTamaguiComponent(path, ctx) {\n var _path_scope_getBinding, _path_scope;\n var nameNode = path.node.name;\n var baseName;\n var memberChain = [];\n var isPlainIdentifier = t.isJSXIdentifier(nameNode);\n if (t.isJSXIdentifier(nameNode)) {\n baseName = nameNode.name;\n } else if (t.isJSXMemberExpression(nameNode)) {\n var parts = [];\n var cur = nameNode;\n while (t.isJSXMemberExpression(cur)) {\n parts.unshift(cur.property.name);\n cur = cur.object;\n }\n if (!t.isJSXIdentifier(cur)) return null;\n baseName = cur.name;\n memberChain = parts;\n } else {\n return null;\n }\n var binding = (_path_scope = path.scope) === null || _path_scope === void 0 ? void 0 : (_path_scope_getBinding = _path_scope.getBinding) === null || _path_scope_getBinding === void 0 ? void 0 : _path_scope_getBinding.call(_path_scope, baseName);\n var tamaguiBase;\n if (binding) {\n var bnode = binding.path.node;\n if (t.isImportSpecifier(bnode) || t.isImportDefaultSpecifier(bnode) || t.isImportNamespaceSpecifier(bnode)) {\n var decl = binding.path.parent;\n var source = t.isImportDeclaration(decl) ? String(decl.source.value) : \"\";\n if (!isTamaguiSource(source)) return null;\n if (t.isImportNamespaceSpecifier(bnode)) {\n if (memberChain.length === 0) return null;\n tamaguiBase = memberChain[0];\n memberChain = memberChain.slice(1);\n } else if (t.isImportSpecifier(bnode)) {\n var imported = bnode.imported;\n tamaguiBase = t.isIdentifier(imported) ? imported.name : String(imported.value);\n } else {\n return null;\n }\n if (ctx.rewriteImports && source !== \"@tamagui/tailwind\" && (source !== \"tamagui\" && source !== \"@tamagui/core\" || !tailwindFrontendImports.has(tamaguiBase) || !isTailwindFrontendOnlyBinding(binding, tamaguiBase))) {\n return null;\n }\n } else {\n return null;\n }\n } else {\n tamaguiBase = baseName;\n if (ctx.rewriteImports && !tailwindFrontendImports.has(tamaguiBase)) return null;\n }\n var name = memberChain.length ? [\n tamaguiBase,\n ...memberChain\n ].join(\".\") : tamaguiBase;\n var isSimpleKnown = memberChain.length === 0 && name in componentToTag;\n var isHTMLPrimitive = tamaguiBase === \"html\" && memberChain.length === 1;\n if (!isSimpleKnown && !isHTMLPrimitive && !knownCompoundComponents.has(name) && !ctx.componentAllow.has(name)) {\n return null;\n }\n return {\n name,\n isSimpleKnown,\n isPlainIdentifier\n };\n}\nfunction isTailwindFrontendOnlyBinding(binding, importedName) {\n return binding.referencePaths.every(function(referencePath) {\n var parent = referencePath.parent;\n if (importedName === \"html\") {\n var _referencePath_parentPath, _referencePath_parentPath1;\n return t.isJSXMemberExpression(parent) && parent.object === referencePath.node && (t.isJSXOpeningElement((_referencePath_parentPath = referencePath.parentPath) === null || _referencePath_parentPath === void 0 ? void 0 : _referencePath_parentPath.parent) || t.isJSXClosingElement((_referencePath_parentPath1 = referencePath.parentPath) === null || _referencePath_parentPath1 === void 0 ? void 0 : _referencePath_parentPath1.parent));\n }\n return t.isJSXIdentifier(referencePath.node) && (t.isJSXOpeningElement(parent) || t.isJSXClosingElement(parent)) && parent.name === referencePath.node;\n });\n}\nfunction rewriteTailwindFrontendImports(ast) {\n var changed = false;\n traverse(ast, {\n ImportDeclaration(path) {\n var source = String(path.node.source.value);\n if (source !== \"tamagui\" && source !== \"@tamagui/core\") return;\n if (path.node.importKind === \"type\") return;\n var moved = [];\n var retained = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = path.node.specifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var specifier = _step.value;\n if (!t.isImportSpecifier(specifier) || specifier.importKind === \"type\") {\n retained.push(specifier);\n continue;\n }\n var importedName = t.isIdentifier(specifier.imported) ? specifier.imported.name : String(specifier.imported.value);\n var binding = path.scope.getBinding(specifier.local.name);\n if (!tailwindFrontendImports.has(importedName) || !binding || !isTailwindFrontendOnlyBinding(binding, importedName)) {\n retained.push(specifier);\n continue;\n }\n moved.push(specifier);\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 if (!moved.length) return;\n changed = true;\n if (!retained.length) {\n path.node.source = t.stringLiteral(\"@tamagui/tailwind\");\n return;\n }\n path.node.specifiers = retained;\n path.insertAfter(t.importDeclaration(moved, t.stringLiteral(\"@tamagui/tailwind\")));\n }\n });\n return changed;\n}\nfunction classPrefixOf(token) {\n var noMod = token.slice(token.lastIndexOf(\":\") + 1);\n var core = noMod[0] === \"-\" ? noMod.slice(1) : noMod;\n var dash = core.indexOf(\"-\");\n return dash === -1 ? core : core.slice(0, dash);\n}\nvar leafExpansion = {\n padding: [\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\"\n ],\n paddingHorizontal: [\n \"paddingLeft\",\n \"paddingRight\"\n ],\n paddingVertical: [\n \"paddingTop\",\n \"paddingBottom\"\n ],\n margin: [\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\"\n ],\n marginHorizontal: [\n \"marginLeft\",\n \"marginRight\"\n ],\n marginVertical: [\n \"marginTop\",\n \"marginBottom\"\n ],\n inset: [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n gap: [\n \"gap\",\n \"rowGap\",\n \"columnGap\"\n ],\n borderWidth: [\n \"borderTopWidth\",\n \"borderRightWidth\",\n \"borderBottomWidth\",\n \"borderLeftWidth\"\n ],\n borderColor: [\n \"borderTopColor\",\n \"borderRightColor\",\n \"borderBottomColor\",\n \"borderLeftColor\"\n ],\n borderRadius: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\"\n ]\n};\nfunction leafKeysOfProp(fullProp) {\n var _leafExpansion_fullProp;\n return (_leafExpansion_fullProp = leafExpansion[fullProp]) !== null && _leafExpansion_fullProp !== void 0 ? _leafExpansion_fullProp : [\n fullProp\n ];\n}\nvar prefixToProp = (function() {\n var m = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(propToTailwindPrefix)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [prop, prefix] = _step.value;\n if (prefix && !(prefix in m)) m[prefix] = prop;\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 return m;\n})();\nfunction leafKeysOfClassToken(token) {\n var prefix = classPrefixOf(token);\n var _prefixToProp_prefix;\n return leafKeysOfProp((_prefixToProp_prefix = prefixToProp[prefix]) !== null && _prefixToProp_prefix !== void 0 ? _prefixToProp_prefix : prefix);\n}\nfunction overlapsSet(keys, set) {\n return keys.some(function(k) {\n return set.has(k);\n });\n}\nfunction isConvertibleStyleProp(fullProp) {\n return propToTailwindPrefix[fullProp] !== void 0 || fullProp in standaloneValueProps;\n}\nfunction propValueToClass(ctx, propName, value) {\n var fullProp = resolveShorthand(ctx, propName);\n if (propToTailwindPrefix[fullProp] === void 0) return null;\n var strVal = getStringValue(value);\n var numVal = getNumericValue(value);\n if (strVal !== null) {\n var parsed = parseValue(strVal, ctx.modifierRegistry);\n if (!parsed.ok) return null;\n var classes = [];\n if (parsed.value.base !== null) {\n var base = payloadToClass(ctx, fullProp, parsed.value.base, []);\n if (base === null) return null;\n classes.push(base);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = parsed.value.clauses[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var clause = _step.value;\n var conditional = payloadToClass(ctx, fullProp, clause.payload, clause.modifiers);\n if (conditional === null) return null;\n classes.push(conditional);\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 return classes.length ? classes.join(\" \") : null;\n }\n if (numVal === null) return null;\n var formatted = formatNumericValue(fullProp, numVal);\n if (formatted === null) return null;\n return formatCandidate({\n prop: fullProp,\n value: formatted.value,\n valueKind: formatted.valueKind,\n modifiers: void 0\n }, ctx.grammarConfig);\n}\nfunction payloadToClass(ctx, fullProp, payload, modifiers) {\n var _standaloneValueProps_fullProp;\n var formatted;\n if ((_standaloneValueProps_fullProp = standaloneValueProps[fullProp]) === null || _standaloneValueProps_fullProp === void 0 ? void 0 : _standaloneValueProps_fullProp[payload]) {\n formatted = {\n value: payload,\n valueKind: \"enum\"\n };\n } else {\n formatted = formatStringValue(ctx, fullProp, payload);\n if (formatted === null && /^-?\\d+(?:\\.\\d+)?$/.test(payload)) {\n var _ctx_grammarConfig_tokenNames;\n var category = getTokenCategory(fullProp);\n if (!category || ((_ctx_grammarConfig_tokenNames = ctx.grammarConfig.tokenNames) === null || _ctx_grammarConfig_tokenNames === void 0 ? void 0 : _ctx_grammarConfig_tokenNames[category]) !== void 0) {\n formatted = formatNumericValue(fullProp, Number(payload));\n }\n }\n }\n if (formatted === null) return null;\n return formatCandidate({\n prop: fullProp,\n value: formatted.value,\n valueKind: formatted.valueKind,\n modifiers: modifiers.length ? modifiers : void 0\n }, ctx.grammarConfig);\n}\nfunction getStringValue(value) {\n if (!value) return null;\n if (t.isStringLiteral(value)) return value.value;\n if (t.isJSXExpressionContainer(value) && t.isStringLiteral(value.expression)) {\n return value.expression.value;\n }\n if (t.isJSXExpressionContainer(value) && t.isTemplateLiteral(value.expression)) {\n if (value.expression.expressions.length === 0 && value.expression.quasis.length === 1) {\n return value.expression.quasis[0].value.raw;\n }\n }\n return null;\n}\nfunction getNumericValue(value) {\n if (!value) return null;\n if (t.isJSXExpressionContainer(value)) {\n if (t.isNumericLiteral(value.expression)) return value.expression.value;\n if (t.isUnaryExpression(value.expression) && value.expression.operator === \"-\" && t.isNumericLiteral(value.expression.argument)) {\n return -value.expression.argument.value;\n }\n }\n return null;\n}\nfunction resolveShorthand(ctx, name) {\n return ctx.shorthands[name] || name;\n}\nfunction hasConfiguredName(names, value) {\n if (!names) return false;\n if (Array.isArray(names)) return names.includes(value);\n if (names instanceof Set) return names.has(value);\n return value in names;\n}\nfunction formatStringValue(ctx, prop, value) {\n var _ctx_grammarConfig_tokenNames;\n var category = getTokenCategory(prop);\n if (prop !== \"fontWeight\" && category && hasConfiguredName((_ctx_grammarConfig_tokenNames = ctx.grammarConfig.tokenNames) === null || _ctx_grammarConfig_tokenNames === void 0 ? void 0 : _ctx_grammarConfig_tokenNames[category], value)) {\n if (category === \"color\") {\n var mapped = getV6ThemeName(value);\n return mapped ? {\n value: mapped,\n valueKind: \"token\"\n } : null;\n }\n return {\n value,\n valueKind: \"token\"\n };\n }\n if (prop === \"fontWeight\") {\n return fontWeightNames[value] ? {\n value,\n valueKind: \"enum\"\n } : null;\n }\n if (prop === \"zIndex\" && /^\\d+$/.test(value)) {\n return {\n value,\n valueKind: \"convenience\"\n };\n }\n if (/^-?\\d+(\\.\\d+)?$/.test(value)) {\n return prop === \"lineHeight\" ? {\n value,\n valueKind: \"arbitrary\"\n } : null;\n }\n if (value.endsWith(\"%\")) {\n var exact = {\n \"100%\": \"full\",\n \"50%\": \"1/2\",\n \"25%\": \"1/4\",\n \"75%\": \"3/4\"\n };\n if (getTokenCategory(prop) === \"size\" && exact[value]) {\n return {\n value: exact[value],\n valueKind: \"convenience\"\n };\n }\n return {\n value,\n valueKind: \"arbitrary\"\n };\n }\n if (value === \"auto\" && getTokenCategory(prop) === \"size\") {\n return {\n value,\n valueKind: \"convenience\"\n };\n }\n if (prop === \"fontFamily\") return {\n value,\n valueKind: \"arbitrary\"\n };\n if (value.includes(\"(\") || value.includes(\" \") || value.includes(\"_\") || value.startsWith(\"#\") || value.startsWith(\"-\") || /^[\\d.]+[a-z%]/i.test(value)) {\n return {\n value,\n valueKind: \"arbitrary\"\n };\n }\n return {\n value,\n valueKind: \"arbitrary\"\n };\n}\nvar pxLengthProps = /* @__PURE__ */ new Set([\n \"width\",\n \"height\",\n \"minWidth\",\n \"maxWidth\",\n \"minHeight\",\n \"maxHeight\",\n \"flexBasis\",\n \"padding\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"paddingStart\",\n \"paddingEnd\",\n \"paddingInlineStart\",\n \"paddingInlineEnd\",\n \"paddingBlockStart\",\n \"paddingBlockEnd\",\n \"paddingHorizontal\",\n \"paddingVertical\",\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginStart\",\n \"marginEnd\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\",\n \"gap\",\n \"rowGap\",\n \"columnGap\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"borderRadius\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"borderTopStartRadius\",\n \"borderTopEndRadius\",\n \"borderBottomStartRadius\",\n \"borderBottomEndRadius\",\n \"borderStartStartRadius\",\n \"borderStartEndRadius\",\n \"borderEndStartRadius\",\n \"borderEndEndRadius\",\n \"fontSize\",\n \"letterSpacing\"\n]);\nfunction formatNumericValue(prop, value) {\n if (prop === \"opacity\") {\n var pct = value * 100;\n return Number.isInteger(pct) ? {\n value: String(pct),\n valueKind: \"convenience\"\n } : {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"aspectRatio\" || prop === \"lineHeight\") {\n return {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"scale\" || prop === \"scaleX\" || prop === \"scaleY\") {\n if (value === 0) return {\n value: \"0\",\n valueKind: \"convenience\"\n };\n if (value === 1) return {\n value: \"100\",\n valueKind: \"convenience\"\n };\n return {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"flex\") {\n return value === 1 ? {\n value: \"1\",\n valueKind: \"convenience\"\n } : {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"flexGrow\" || prop === \"flexShrink\") {\n return {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"zIndex\") {\n return Number.isInteger(value) && value >= 0 ? {\n value: String(value),\n valueKind: \"convenience\"\n } : {\n value: String(value),\n valueKind: \"arbitrary\"\n };\n }\n if (prop === \"fontWeight\") {\n return fontWeightNames[String(value)] ? {\n value: String(value),\n valueKind: \"enum\"\n } : null;\n }\n if (prop === \"rotate\") return null;\n if (prop === \"x\" || prop === \"y\") {\n return {\n value: `${value}px`,\n valueKind: \"arbitrary\"\n };\n }\n if (prop.includes(\"Width\") && prop.startsWith(\"border\")) {\n return {\n value: `${value}px`,\n valueKind: \"arbitrary\"\n };\n }\n if (pxLengthProps.has(prop)) {\n return {\n value: `${value}px`,\n valueKind: \"arbitrary\"\n };\n }\n return null;\n}\nexport {\n findParseError,\n tamaguiToTailwind\n};\n//# sourceMappingURL=transform.js.map\n"],"mappings":"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S;GAC9B;GACA,WAAW;EACb,IAAI;CACN;CACA,IAAI,SAAS,YAAY,QAAQ,KAAK,KAAK,GAAG;EAC5C,OAAO;GACL;GACA,WAAW;EACb;CACF;CACA,IAAI,kBAAkB,KAAK,KAAK,GAAG;EACjC,OAAO,SAAS,eAAe;GAC7B;GACA,WAAW;EACb,IAAI;CACN;CACA,IAAI,MAAM,SAAS,GAAG,GAAG;EACvB,IAAI,QAAQ;GACV,QAAQ;GACR,OAAO;GACP,OAAO;GACP,OAAO;EACT;EACA,IAAI,iBAAiB,IAAI,MAAM,UAAU,MAAM,QAAQ;GACrD,OAAO;IACL,OAAO,MAAM;IACb,WAAW;GACb;EACF;EACA,OAAO;GACL;GACA,WAAW;EACb;CACF;CACA,IAAI,UAAU,UAAU,iBAAiB,IAAI,MAAM,QAAQ;EACzD,OAAO;GACL;GACA,WAAW;EACb;CACF;CACA,IAAI,SAAS,cAAc,OAAO;EAChC;EACA,WAAW;CACb;CACA,IAAI,MAAM,SAAS,GAAG,KAAK,MAAM,SAAS,GAAG,KAAK,MAAM,SAAS,GAAG,KAAK,MAAM,WAAW,GAAG,KAAK,MAAM,WAAW,GAAG,KAAK,iBAAiB,KAAK,KAAK,GAAG;EACvJ,OAAO;GACL;GACA,WAAW;EACb;CACF;CACA,OAAO;EACL;EACA,WAAW;CACb;AACF;AACA,IAAI,gCAAgC,IAAI,IAAI;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,mBAAmB,MAAM,OAAO;CACvC,IAAI,SAAS,WAAW;EACtB,IAAI,MAAM,QAAQ;EAClB,OAAO,OAAO,UAAU,GAAG,IAAI;GAC7B,OAAO,OAAO,GAAG;GACjB,WAAW;EACb,IAAI;GACF,OAAO,OAAO,KAAK;GACnB,WAAW;EACb;CACF;CACA,IAAI,SAAS,iBAAiB,SAAS,cAAc;EACnD,OAAO;GACL,OAAO,OAAO,KAAK;GACnB,WAAW;EACb;CACF;CACA,IAAI,SAAS,WAAW,SAAS,YAAY,SAAS,UAAU;EAC9D,IAAI,UAAU,GAAG,OAAO;GACtB,OAAO;GACP,WAAW;EACb;EACA,IAAI,UAAU,GAAG,OAAO;GACtB,OAAO;GACP,WAAW;EACb;EACA,OAAO;GACL,OAAO,OAAO,KAAK;GACnB,WAAW;EACb;CACF;CACA,IAAI,SAAS,QAAQ;EACnB,OAAO,UAAU,IAAI;GACnB,OAAO;GACP,WAAW;EACb,IAAI;GACF,OAAO,OAAO,KAAK;GACnB,WAAW;EACb;CACF;CACA,IAAI,SAAS,cAAc,SAAS,cAAc;EAChD,OAAO;GACL,OAAO,OAAO,KAAK;GACnB,WAAW;EACb;CACF;CACA,IAAI,SAAS,UAAU;EACrB,OAAO,OAAO,UAAU,KAAK,KAAK,SAAS,IAAI;GAC7C,OAAO,OAAO,KAAK;GACnB,WAAW;EACb,IAAI;GACF,OAAO,OAAO,KAAK;GACnB,WAAW;EACb;CACF;CACA,IAAI,SAAS,cAAc;EACzB,OAAO,gBAAgB,OAAO,KAAK,KAAK;GACtC,OAAO,OAAO,KAAK;GACnB,WAAW;EACb,IAAI;CACN;CACA,IAAI,SAAS,UAAU,OAAO;CAC9B,IAAI,SAAS,OAAO,SAAS,KAAK;EAChC,OAAO;GACL,OAAO,GAAG,MAAM;GAChB,WAAW;EACb;CACF;CACA,IAAI,KAAK,SAAS,OAAO,KAAK,KAAK,WAAW,QAAQ,GAAG;EACvD,OAAO;GACL,OAAO,GAAG,MAAM;GAChB,WAAW;EACb;CACF;CACA,IAAI,cAAc,IAAI,IAAI,GAAG;EAC3B,OAAO;GACL,OAAO,GAAG,MAAM;GAChB,WAAW;EACb;CACF;CACA,OAAO;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/to-tailwind",
3
- "version": "3.0.0-beta.924.1",
3
+ "version": "3.0.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -36,8 +36,8 @@
36
36
  "@babel/traverse": "^7.25.4",
37
37
  "@babel/generator": "^7.25.5",
38
38
  "@babel/types": "^7.25.4",
39
- "@tamagui/shorthands": "3.0.0-beta.924.1",
40
- "@tamagui/style-grammar": "3.0.0-beta.924.1"
39
+ "@tamagui/shorthands": "3.0.1",
40
+ "@tamagui/style-grammar": "3.0.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "vitest": "4.1.0"
@@ -46,5 +46,6 @@
46
46
  "type": "git",
47
47
  "url": "git+https://github.com/tamagui/tamagui.git",
48
48
  "directory": "code/core/to-tailwind"
49
- }
49
+ },
50
+ "releaseSourceCommit": "c156b7cc55e5a6cc5883ebc8189720850ac32dbd"
50
51
  }
package/src/transform.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  type TokenCategory,
17
17
  v6RemovedThemeNames,
18
18
  v6ThemeNameReplacements,
19
+ propTokenGroupFallbacks,
19
20
  } from '@tamagui/style-grammar/tooling'
20
21
  import { componentToTag } from './maps/componentToTag'
21
22
  // CANONICAL default shorthands — a STATIC import (declared dep), ESM+CJS-safe, single owner.
@@ -88,6 +89,13 @@ function createTransformGrammarConfig(
88
89
  tokenNames[category] = names
89
90
  }
90
91
  }
92
+ // a prop-named group binds its property; without one it reads the fallback category
93
+ for (const group in propTokenGroupFallbacks) {
94
+ const own = options.tokens?.[group]
95
+ const names = own ? new Set<string>() : tokenNames[propTokenGroupFallbacks[group]]
96
+ if (own) addConfigNames(names!, own)
97
+ if (names) tokenNames[group] = names
98
+ }
91
99
  if (options.fonts) {
92
100
  tokenNames.fontFamily ||= new Set<string>()
93
101
  tokenNames.fontSize ||= new Set<string>()
@@ -126,6 +134,15 @@ export interface TransformOptions {
126
134
  // rename View→div, Text→span, etc. DEFAULT true for the library (tamagui.dev doc snippets);
127
135
  // the CLI path passes false so cross-platform Tamagui components are preserved.
128
136
  renameComponents?: boolean
137
+ // Rewrite the primitive imports to the package-selected Tailwind frontend. This is intentionally
138
+ // conservative: only html, View, and Text bindings used exclusively as JSX elements move from
139
+ // `tamagui` / `@tamagui/core` to `@tamagui/tailwind`. Component-library and styled() bindings
140
+ // retain their original frontend, so the transform never emits className for a component that
141
+ // cannot consume Tailwind utilities on native.
142
+ rewriteImports?: boolean
143
+ // Preserve original line numbers for source-file migrations. Rendered docs opt out so removing
144
+ // multi-line style props does not leave large runs of blank lines in displayed examples.
145
+ retainLines?: boolean
129
146
  // the app config's `media` (object or key list). ANY configured media key round-trips as an
130
147
  // identity modifier (`tablet:` stays `tablet:`). when omitted, a default key set is the fallback.
131
148
  media?: Record<string, any> | string[]
@@ -152,6 +169,7 @@ interface Ctx {
152
169
  shorthands: Record<string, string>
153
170
  grammarConfig: GrammarConfigView
154
171
  modifierRegistry: ModifierRegistryView
172
+ rewriteImports: boolean
155
173
  }
156
174
 
157
175
  /**
@@ -204,6 +222,7 @@ export function tamaguiToTailwind(
204
222
  shorthands,
205
223
  grammarConfig,
206
224
  modifierRegistry: createModifierRegistry(grammarConfig).registry,
225
+ rewriteImports: options.rewriteImports === true,
207
226
  }
208
227
 
209
228
  let ast: t.File
@@ -409,9 +428,16 @@ export function tamaguiToTailwind(
409
428
  },
410
429
  })
411
430
 
431
+ if (options.rewriteImports && rewriteTailwindFrontendImports(ast)) {
432
+ didTransform = true
433
+ }
434
+
412
435
  if (!didTransform) return source // true no-op → original bytes (no generator reformat)
413
436
 
414
- const output = generate(ast, { retainLines: true, concise: false })
437
+ const output = generate(ast, {
438
+ retainLines: options.retainLines !== false,
439
+ concise: false,
440
+ })
415
441
  return output.code
416
442
  }
417
443
 
@@ -431,6 +457,8 @@ const knownCompoundComponents = new Set<string>([
431
457
  'Tabs.Tab',
432
458
  ])
433
459
 
460
+ const tailwindFrontendImports = new Set(['html', 'View', 'Text'])
461
+
434
462
  // a module specifier counts as "tamagui" if it's the umbrella package or any @tamagui/* scope.
435
463
  function isTamaguiSource(source: string): boolean {
436
464
  return source === 'tamagui' || source.startsWith('@tamagui/')
@@ -498,19 +526,32 @@ function resolveTamaguiComponent(
498
526
  } else {
499
527
  return null // default import from tamagui isn't a named component
500
528
  }
529
+
530
+ if (
531
+ ctx.rewriteImports &&
532
+ source !== '@tamagui/tailwind' &&
533
+ ((source !== 'tamagui' && source !== '@tamagui/core') ||
534
+ !tailwindFrontendImports.has(tamaguiBase) ||
535
+ !isTailwindFrontendOnlyBinding(binding, tamaguiBase))
536
+ ) {
537
+ return null
538
+ }
501
539
  } else {
502
540
  return null // LOCAL binding (const/let/function/param) → not tamagui
503
541
  }
504
542
  } else {
505
543
  tamaguiBase = baseName // UNBOUND → legacy built-in assumption
544
+ if (ctx.rewriteImports && !tailwindFrontendImports.has(tamaguiBase)) return null
506
545
  }
507
546
 
508
547
  const name = memberChain.length ? [tamaguiBase, ...memberChain].join('.') : tamaguiBase
509
548
  const isSimpleKnown = memberChain.length === 0 && name in componentToTag
549
+ const isHTMLPrimitive = tamaguiBase === 'html' && memberChain.length === 1
510
550
 
511
551
  // gate: known simple, known compound, or caller allowlist — else skip
512
552
  if (
513
553
  !isSimpleKnown &&
554
+ !isHTMLPrimitive &&
514
555
  !knownCompoundComponents.has(name) &&
515
556
  !ctx.componentAllow.has(name)
516
557
  ) {
@@ -519,6 +560,73 @@ function resolveTamaguiComponent(
519
560
  return { name, isSimpleKnown, isPlainIdentifier }
520
561
  }
521
562
 
563
+ function isTailwindFrontendOnlyBinding(binding: any, importedName: string): boolean {
564
+ return binding.referencePaths.every((referencePath: any) => {
565
+ const parent = referencePath.parent
566
+ if (importedName === 'html') {
567
+ return (
568
+ t.isJSXMemberExpression(parent) &&
569
+ parent.object === referencePath.node &&
570
+ (t.isJSXOpeningElement(referencePath.parentPath?.parent) ||
571
+ t.isJSXClosingElement(referencePath.parentPath?.parent))
572
+ )
573
+ }
574
+ return (
575
+ t.isJSXIdentifier(referencePath.node) &&
576
+ (t.isJSXOpeningElement(parent) || t.isJSXClosingElement(parent)) &&
577
+ parent.name === referencePath.node
578
+ )
579
+ })
580
+ }
581
+
582
+ function rewriteTailwindFrontendImports(ast: t.File): boolean {
583
+ let changed = false
584
+
585
+ traverse(ast, {
586
+ ImportDeclaration(path) {
587
+ const source = String(path.node.source.value)
588
+ if (source !== 'tamagui' && source !== '@tamagui/core') return
589
+ if (path.node.importKind === 'type') return
590
+
591
+ const moved: t.ImportSpecifier[] = []
592
+ const retained: t.ImportDeclaration['specifiers'] = []
593
+
594
+ for (const specifier of path.node.specifiers) {
595
+ if (!t.isImportSpecifier(specifier) || specifier.importKind === 'type') {
596
+ retained.push(specifier)
597
+ continue
598
+ }
599
+ const importedName = t.isIdentifier(specifier.imported)
600
+ ? specifier.imported.name
601
+ : String(specifier.imported.value)
602
+ const binding = path.scope.getBinding(specifier.local.name)
603
+ if (
604
+ !tailwindFrontendImports.has(importedName) ||
605
+ !binding ||
606
+ !isTailwindFrontendOnlyBinding(binding, importedName)
607
+ ) {
608
+ retained.push(specifier)
609
+ continue
610
+ }
611
+ moved.push(specifier)
612
+ }
613
+
614
+ if (!moved.length) return
615
+ changed = true
616
+
617
+ if (!retained.length) {
618
+ path.node.source = t.stringLiteral('@tamagui/tailwind')
619
+ return
620
+ }
621
+
622
+ path.node.specifiers = retained
623
+ path.insertAfter(t.importDeclaration(moved, t.stringLiteral('@tamagui/tailwind')))
624
+ },
625
+ })
626
+
627
+ return changed
628
+ }
629
+
522
630
  // the prop-prefix a class token targets (modifiers + negation stripped): "hover:p-2" → "p",
523
631
  // "-mt-1" → "mt", "hidden" → "hidden".
524
632
  function classPrefixOf(token: string): string {
@@ -735,11 +843,12 @@ function formatStringValue(ctx: Ctx, prop: string, value: string): FormattedValu
735
843
  return { value, valueKind: 'convenience' }
736
844
  }
737
845
 
738
- // a NUMERIC-LOOKING STRING literal ("10", "0.5") is NOT a number — reinterpreting it as the
739
- // Tailwind scale or a token would diverge from the source string (which tamagui keeps verbatim,
740
- // quirks and all). it's also not a valid unit-bearing CSS value → RETAIN. (fontWeight handled
741
- // above; percentages/units carry a suffix and are handled below.)
742
- if (/^-?\d+(\.\d+)?$/.test(value)) return null
846
+ // a numeric-looking lineHeight string is a V3 ratio after configured token names have had
847
+ // first refusal. Other numeric-looking strings stay authored because reinterpreting them as a
848
+ // Tailwind scale or token would diverge from the source string.
849
+ if (/^-?\d+(\.\d+)?$/.test(value)) {
850
+ return prop === 'lineHeight' ? { value, valueKind: 'arbitrary' } : null
851
+ }
743
852
 
744
853
  // percentages: NAMED fraction ONLY when string-exact (50/25/75/100); an inexact value like
745
854
  // 33.333% must stay the EXACT arbitrary (1/3 resolves to 33.3333…% ≠ source).
@@ -797,6 +906,12 @@ const pxLengthProps = new Set([
797
906
  'paddingRight',
798
907
  'paddingBottom',
799
908
  'paddingLeft',
909
+ 'paddingStart',
910
+ 'paddingEnd',
911
+ 'paddingInlineStart',
912
+ 'paddingInlineEnd',
913
+ 'paddingBlockStart',
914
+ 'paddingBlockEnd',
800
915
  'paddingHorizontal',
801
916
  'paddingVertical',
802
917
  'margin',
@@ -804,6 +919,12 @@ const pxLengthProps = new Set([
804
919
  'marginRight',
805
920
  'marginBottom',
806
921
  'marginLeft',
922
+ 'marginStart',
923
+ 'marginEnd',
924
+ 'marginInlineStart',
925
+ 'marginInlineEnd',
926
+ 'marginBlockStart',
927
+ 'marginBlockEnd',
807
928
  'marginHorizontal',
808
929
  'marginVertical',
809
930
  'gap',
@@ -814,14 +935,23 @@ const pxLengthProps = new Set([
814
935
  'bottom',
815
936
  'left',
816
937
  'inset',
938
+ 'insetInlineStart',
939
+ 'insetInlineEnd',
817
940
  'borderRadius',
818
941
  'borderTopLeftRadius',
819
942
  'borderTopRightRadius',
820
943
  'borderBottomLeftRadius',
821
944
  'borderBottomRightRadius',
945
+ 'borderTopStartRadius',
946
+ 'borderTopEndRadius',
947
+ 'borderBottomStartRadius',
948
+ 'borderBottomEndRadius',
949
+ 'borderStartStartRadius',
950
+ 'borderStartEndRadius',
951
+ 'borderEndStartRadius',
952
+ 'borderEndEndRadius',
822
953
  'fontSize',
823
954
  'letterSpacing',
824
- 'lineHeight',
825
955
  ])
826
956
 
827
957
  function formatNumericValue(prop: string, value: number): FormattedValue | null {
@@ -836,7 +966,9 @@ function formatNumericValue(prop: string, value: number): FormattedValue | null
836
966
  }
837
967
 
838
968
  // UNITLESS number → [N] (no px): number on both platforms
839
- if (prop === 'aspectRatio') return { value: String(value), valueKind: 'arbitrary' }
969
+ if (prop === 'aspectRatio' || prop === 'lineHeight') {
970
+ return { value: String(value), valueKind: 'arbitrary' }
971
+ }
840
972
  if (prop === 'scale' || prop === 'scaleX' || prop === 'scaleY') {
841
973
  if (value === 0) return { value: '0', valueKind: 'convenience' }
842
974
  if (value === 1) return { value: '100', valueKind: 'convenience' }