@tamagui/style-grammar 3.1.9 → 3.1.10
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/tooling/candidate.cjs +8 -1
- package/dist/cjs/tooling/candidate.native.cjs +8 -1
- package/dist/cjs/tooling/candidate.native.js +8 -1
- package/dist/cjs/tooling/candidate.native.js.map +1 -1
- package/dist/esm/tooling/candidate.mjs +8 -1
- package/dist/esm/tooling/candidate.mjs.map +1 -1
- package/dist/esm/tooling/candidate.native.js +8 -1
- package/dist/esm/tooling/candidate.native.js.map +1 -1
- package/package.json +3 -3
- package/src/tooling/candidate.ts +10 -0
- package/src/tooling/registry.ts +1 -0
- package/types/tooling/candidate.d.ts.map +2 -2
- package/types/tooling/registry.d.ts +1 -1
- package/types/tooling/registry.d.ts.map +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidate.js","names":[],"sources":["esm/tooling/candidate.js"],"sourcesContent":["import { namedCssColors } from \"../runtime/namedCssColors\";\nimport { propTokenGroupFallbacks } from \"./config\";\nimport {\n grammarEntries,\n fontWeightNames,\n insetAxisProps,\n prefixToEntries,\n propToGrammarEntry,\n radiusCornerProps,\n sizeUtilityProps,\n standaloneValueProps,\n textAlignKeywords,\n wholeClassConveniences,\n wholeClassUtilities\n} from \"./registry\";\nimport {\n canonicalClauseModifier,\n containerModifierSizeEnd,\n parseGroupModifier\n} from \"../runtime/clauseIdentity\";\nimport {\n compileModifierVocabulary,\n modifierKindMedia\n} from \"../runtime/modifierVocabulary\";\nimport { splitColorOpacitySuffix } from \"../runtime/colorOpacity\";\nimport { getSafeAreaEdge } from \"../runtime/safeAreaVariables\";\nconst sizingConveniences = /* @__PURE__ */ new Set([\n \"full\",\n \"auto\",\n \"screen\",\n \"dvh\",\n \"lvh\",\n \"svh\",\n \"dvw\",\n \"lvw\",\n \"svw\",\n \"min\",\n \"max\",\n \"fit\"\n]);\nconst fontGenerics = /* @__PURE__ */ new Set([\"sans\", \"serif\", \"mono\"]);\nconst numericPattern = /^\\d+(?:\\.\\d+)?$/;\nconst tailwindLeadingRatios = {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2\n};\nconst tailwindTrackingEms = {\n tighter: -0.05,\n tight: -0.025,\n normal: 0,\n wide: 0.025,\n wider: 0.05,\n widest: 0.1\n};\nconst extraPrefixes = [\n \"border-x\",\n \"border-y\",\n \"rounded-t\",\n \"rounded-r\",\n \"rounded-b\",\n \"rounded-l\",\n \"rounded-s\",\n \"rounded-e\",\n \"inset-x\",\n \"inset-y\",\n \"size\",\n \"translate\"\n];\nconst negativeTokenProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\",\n \"zIndex\",\n \"x\",\n \"y\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skewX\",\n \"skewY\",\n \"order\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"letterSpacing\",\n \"outlineOffset\"\n]);\nconst positionSpaceProps = /* @__PURE__ */ new Set([\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\"\n]);\nconst marginSpaceProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\"\n]);\nconst borderWidthKeywords = /* @__PURE__ */ new Set([\"thin\", \"medium\", \"thick\"]);\nconst ambiguousCssKeywords = /* @__PURE__ */ new Set([\n \"auto\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"groove\",\n \"hidden\",\n \"inherit\",\n \"initial\",\n \"inset\",\n \"none\",\n \"outset\",\n \"revert\",\n \"revert-layer\",\n \"ridge\",\n \"solid\",\n \"unset\"\n]);\nconst cssLengthUnits = \"(?:px|em|rem|ex|ch|cap|ic|lh|rlh|vw|vh|vmin|vmax|svw|svh|svmin|svmax|lvw|lvh|lvmin|lvmax|dvw|dvh|dvmin|dvmax|cm|mm|q|in|pt|pc)\";\nconst cssLengthPattern = new RegExp(`^-?(?:\\\\d+|\\\\d*\\\\.\\\\d+)${cssLengthUnits}$`, \"i\");\nfunction hasName(names, name) {\n if (!names) return false;\n if (Array.isArray(names)) return names.includes(name);\n if (names instanceof Set) return names.has(name);\n return name in names;\n}\nfunction splitCandidate(candidate) {\n const parts = [];\n let current = \"\";\n let bracketDepth = 0;\n let escaped = false;\n for (const char of candidate) {\n if (escaped) {\n current += char;\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n current += char;\n escaped = true;\n continue;\n }\n if (char === \"[\") bracketDepth++;\n if (char === \"]\") bracketDepth--;\n if (char === \":\" && bracketDepth === 0) {\n parts.push(current);\n current = \"\";\n } else {\n current += char;\n }\n }\n if (!current || bracketDepth !== 0) return null;\n return { modifiers: parts, base: current };\n}\nconst modifierVocabularyCache = /* @__PURE__ */ new WeakMap();\nconst modifierKindGroup = 5;\nconst modifierKindContainer = 6;\nfunction getModifierVocabulary(config) {\n let vocabulary = modifierVocabularyCache.get(config);\n if (!vocabulary) {\n vocabulary = compileModifierVocabulary(config);\n modifierVocabularyCache.set(config, vocabulary);\n }\n return vocabulary;\n}\nfunction modifierKindCode(modifier, config) {\n const vocabulary = getModifierVocabulary(config);\n const exact = vocabulary[modifier];\n if (exact !== void 0) return exact & 7;\n if (parseGroupModifier(modifier)) return modifierKindGroup;\n const sizeEnd = containerModifierSizeEnd(modifier);\n if (sizeEnd === -1) return 0;\n const size = modifier.slice(1, sizeEnd);\n return (vocabulary[size] & 7) === modifierKindMedia && (config.containerSizeNames === void 0 || hasName(config.containerSizeNames, size)) ? modifierKindContainer : 0;\n}\nfunction normalizeModifiers(modifiers, config) {\n const normalized = [];\n const seen = /* @__PURE__ */ new Set();\n for (const modifier of modifiers) {\n const canonical = canonicalClauseModifier(modifier);\n const kind = modifierKindCode(canonical, config);\n if (!kind || seen.has(kind)) return null;\n seen.add(kind);\n normalized.push(canonical);\n }\n return normalized;\n}\nfunction tokenDomain(config, category) {\n const fallback = propTokenGroupFallbacks[category];\n return config.tokenNames?.[category] || (fallback ? config.tokenNames?.[fallback] : void 0);\n}\nfunction hasTokenDomain(config, category) {\n return tokenDomain(config, category) !== void 0;\n}\nfunction hasTokenName(config, category, name) {\n return resolveTokenName(config, category, name) !== null;\n}\nfunction decimalHalfTokenAlias(name) {\n const match = /^(-?\\d+)\\.5$/.exec(name);\n return match ? `${match[1]}-5` : null;\n}\nfunction resolveTokenName(config, category, name) {\n const names = tokenDomain(config, category);\n if (hasName(names, name)) return name;\n const alias = decimalHalfTokenAlias(name);\n return alias !== null && hasName(names, alias) ? alias : null;\n}\nfunction entriesForProps(props) {\n const byProp = new Map(grammarEntries.map((entry) => [entry.prop, entry]));\n const out = [];\n for (const prop of props) {\n const entry = byProp.get(prop);\n if (entry) out.push(entry);\n }\n return out;\n}\nfunction resolveEntries(prefix, config) {\n const registered = prefixToEntries[prefix];\n if (prefix === \"text\") {\n return entriesForProps([\"fontSize\", \"textAlign\", \"color\"]);\n }\n if (registered) return registered;\n if (prefix === \"border-x\" || prefix === \"border-y\") {\n const sides = prefix === \"border-x\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"];\n return entriesForProps(\n sides.flatMap((side) => [`border${side}Width`, `border${side}Color`])\n );\n }\n if (prefix === \"size\") {\n return entriesForProps(sizeUtilityProps).map((entry) => ({\n ...entry,\n tokenCategory: \"size\"\n }));\n }\n if (prefix === \"inset-x\" || prefix === \"inset-y\") {\n return entriesForProps(insetAxisProps[prefix.slice(\"inset-\".length)]);\n }\n if (prefix === \"translate\") {\n return entriesForProps([\"x\", \"y\"]);\n }\n if (prefix.startsWith(\"rounded-\")) {\n const props = radiusCornerProps[prefix.slice(\"rounded-\".length)];\n return props ? entriesForProps(props) : [];\n }\n const expanded = config.shorthands?.[prefix];\n if (!expanded) return [];\n return grammarEntries.filter((entry) => entry.prop === expanded);\n}\nfunction findPrefix(base, config) {\n const prefixes = new Set(Object.keys(prefixToEntries));\n for (const prefix of extraPrefixes) prefixes.add(prefix);\n for (const shorthand in config.shorthands) prefixes.add(shorthand);\n let found = null;\n for (const prefix of prefixes) {\n if (base.startsWith(`${prefix}-`) && (!found || prefix.length > found.length)) {\n found = prefix;\n }\n }\n return found;\n}\nfunction arbitraryInner(rawValue) {\n if (rawValue.length <= 2 || rawValue[0] !== \"[\" || rawValue.at(-1) !== \"]\") {\n return null;\n }\n const inner = rawValue.slice(1, -1);\n return arbitraryValueIsBalanced(decodeArbitrary(inner)) ? inner : null;\n}\nfunction arbitraryValueIsBalanced(value) {\n const opening = /* @__PURE__ */ new Set([\"(\", \"[\", \"{\"]);\n const matching = { \")\": \"(\", \"]\": \"[\", \"}\": \"{\" };\n const stack = [];\n let quote = \"\";\n let escaped = false;\n for (const char of value) {\n if (escaped) {\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n escaped = true;\n continue;\n }\n if (quote) {\n if (char === quote) quote = \"\";\n continue;\n }\n if (char === '\"' || char === \"'\") {\n quote = char;\n continue;\n }\n if (opening.has(char)) {\n stack.push(char);\n continue;\n }\n const expected = matching[char];\n if (expected && stack.pop() !== expected) return false;\n }\n return !escaped && !quote && stack.length === 0;\n}\nfunction fractionIsValid(value) {\n const fraction = /^(\\d+)\\/(\\d+)$/.exec(value);\n return !!fraction && Number(fraction[2]) !== 0;\n}\nfunction arbitraryTextKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"fontSize\";\n if (cssLengthPattern.test(value) || /^(?:calc|min|max|clamp)\\(/.test(value)) {\n return \"fontSize\";\n }\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || namedCssColors.has(value.toLowerCase())) {\n return \"color\";\n }\n if (/^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) return \"fontSize\";\n return null;\n}\nfunction isWidthColorPrefix(prefix) {\n return prefix.startsWith(\"border\") || prefix === \"outline\";\n}\nfunction arbitraryBorderKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"width\";\n if (cssLengthPattern.test(value) || borderWidthKeywords.has(value)) return \"width\";\n if (/^(?:calc|min|max|clamp)\\(/.test(value)) return \"width\";\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || /^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) {\n return \"color\";\n }\n return null;\n}\nfunction tokenLookupName(category, value) {\n if (category !== \"color\") return value;\n const suffix = splitColorOpacitySuffix(value);\n return suffix.kind === \"none\" ? value : suffix.name;\n}\nfunction chooseEntry(entries, prefix, rawValue, negative, config) {\n if (getSafeAreaEdge(rawValue)) {\n const entry = entries.find(\n ({ tokenCategory }) => tokenCategory === \"space\" || tokenCategory === \"size\" || tokenCategory === \"radius\" || tokenCategory === \"fontSize\" || tokenCategory === \"lineHeight\" || tokenCategory === \"letterSpacing\"\n );\n if (entry) {\n return { entry, valueKind: \"convenience\", convenience: \"safe-area\" };\n }\n }\n const arbitrary = arbitraryInner(rawValue);\n if (arbitrary !== null) {\n if (!arbitrary) return null;\n if (isWidthColorPrefix(prefix)) {\n const width = entries.find((entry) => entry.prop.endsWith(\"Width\"));\n const color = entries.find((entry) => entry.prop.endsWith(\"Color\"));\n const kind = arbitraryBorderKind(decodeArbitrary(arbitrary));\n if (!kind || !width || !color) return null;\n return {\n entry: kind === \"width\" ? width : color,\n valueKind: \"arbitrary\"\n };\n }\n if (prefix === \"text\") {\n const kind = arbitraryTextKind(decodeArbitrary(arbitrary));\n const fontSize = entries.find((entry) => entry.prop === \"fontSize\");\n const color = entries.find((entry) => entry.prop === \"color\");\n if (kind === \"fontSize\" && fontSize) {\n return { entry: fontSize, valueKind: \"arbitrary\" };\n }\n if (kind === \"color\" && color) {\n return { entry: color, valueKind: \"arbitrary\" };\n }\n return null;\n }\n if (prefix === \"font\") {\n return {\n entry: entries.find((entry) => entry.prop === \"fontFamily\"),\n valueKind: \"arbitrary\"\n };\n }\n return { entry: entries[0], valueKind: \"arbitrary\" };\n }\n if (prefix === \"text\") {\n const fontSize = entries.find((entry) => entry.prop === \"fontSize\");\n if (fontSize && hasTokenName(config, \"fontSize\", rawValue)) {\n return { entry: fontSize, valueKind: \"token\" };\n }\n if (textAlignKeywords.has(rawValue)) {\n return {\n entry: entries.find((entry) => entry.prop === \"textAlign\"),\n valueKind: \"enum\"\n };\n }\n const color = entries.find((entry) => entry.prop === \"color\");\n if (color && rawValue === \"transparent\") {\n return { entry: color, valueKind: \"enum\" };\n }\n const colorName = tokenLookupName(\"color\", rawValue);\n if (color && hasTokenName(config, \"color\", colorName)) {\n return { entry: color, valueKind: \"token\" };\n }\n return null;\n }\n if (prefix === \"font\") {\n const fontFamily = entries.find((entry) => entry.prop === \"fontFamily\");\n const fontWeight = entries.find((entry) => entry.prop === \"fontWeight\");\n if (!fontFamily) return null;\n const matchesFamily = hasTokenName(config, \"fontFamily\", rawValue);\n const matchesWeight = fontWeight && hasTokenName(config, \"fontWeight\", rawValue);\n if (matchesFamily && matchesWeight) return null;\n if (matchesFamily) {\n return { entry: fontFamily, valueKind: \"token\" };\n }\n if (matchesWeight) {\n return { entry: fontWeight, valueKind: \"token\" };\n }\n return fontGenerics.has(rawValue) ? { entry: fontFamily, valueKind: \"convenience\", convenience: \"font-generic\" } : null;\n }\n if (isWidthColorPrefix(prefix)) {\n const width = entries.find((entry) => entry.prop.endsWith(\"Width\"));\n const color = entries.find((entry) => entry.prop.endsWith(\"Color\"));\n const token = negative ? `-${rawValue}` : rawValue;\n const widthCategory = width?.tokenCategory || \"space\";\n const matchesWidth = width && hasTokenName(config, widthCategory, token);\n const colorName = tokenLookupName(\"color\", rawValue);\n const matchesColor = color && hasTokenName(config, \"color\", colorName);\n if (matchesWidth && matchesColor) return null;\n if (matchesWidth) {\n return { entry: width, valueKind: \"token\" };\n }\n if (matchesColor) {\n return { entry: color, valueKind: \"token\" };\n }\n if (color && rawValue === \"transparent\") {\n return { entry: color, valueKind: \"enum\" };\n }\n return null;\n }\n if (prefix === \"flex\" && fractionIsValid(rawValue)) {\n const flex = entries.find((entry) => entry.prop === \"flex\");\n if (flex) {\n return { entry: flex, valueKind: \"convenience\", convenience: \"flex-bundle\" };\n }\n }\n if (prefix === \"tracking\" && Object.hasOwn(tailwindTrackingEms, rawValue)) {\n const letterSpacing = entries.find((entry) => entry.prop === \"letterSpacing\");\n if (letterSpacing) {\n return {\n entry: letterSpacing,\n valueKind: \"convenience\",\n convenience: \"tracking-keyword\"\n };\n }\n }\n if (prefix === \"leading\" && Object.hasOwn(tailwindLeadingRatios, rawValue)) {\n const lineHeight = entries.find((entry) => entry.prop === \"lineHeight\");\n if (lineHeight) {\n return {\n entry: lineHeight,\n valueKind: \"convenience\",\n convenience: \"leading-keyword\"\n };\n }\n }\n if (numericPattern.test(rawValue)) {\n const angle = entries.find((entry) => entry.conveniences?.includes(\"angle\"));\n if (angle) {\n return { entry: angle, valueKind: \"convenience\", convenience: \"angle\" };\n }\n if (prefix === \"flex\") {\n const flex = entries.find((entry) => entry.prop === \"flex\");\n if (flex)\n return { entry: flex, valueKind: \"convenience\", convenience: \"flex-bundle\" };\n }\n if (prefix === \"grow\") {\n const grow = entries.find((entry) => entry.prop === \"flexGrow\");\n if (grow) return { entry: grow, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (prefix === \"shrink\") {\n const shrink = entries.find((entry) => entry.prop === \"flexShrink\");\n if (shrink)\n return { entry: shrink, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (prefix === \"line-clamp\") {\n const clamp = entries.find((entry) => entry.prop === \"numberOfLines\");\n if (clamp) return { entry: clamp, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (prefix === \"leading\") {\n const lineHeight = entries.find((entry) => entry.prop === \"lineHeight\");\n if (lineHeight && (!lineHeight.tokenCategory || !hasTokenName(config, lineHeight.tokenCategory, rawValue))) {\n return {\n entry: lineHeight,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n }\n if (prefix === \"grid-cols\" || prefix === \"col-span\" || prefix === \"col-start\" || prefix === \"col-end\" || prefix === \"row-span\" || prefix === \"row-start\" || prefix === \"row-end\") {\n const entry = entries[0];\n if (entry) return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n }\n for (const entry of entries) {\n if (entry.tokenCategory) {\n if (entry.tokenCategory === \"color\" && rawValue === \"transparent\") {\n return { entry, valueKind: \"enum\" };\n }\n if (entry.tokenCategory === \"radius\" && rawValue === \"none\") {\n return { entry, valueKind: \"convenience\", convenience: \"zero\" };\n }\n const name = negative && rawValue !== \"0\" ? `-${rawValue}` : rawValue;\n const tokenName = tokenLookupName(entry.tokenCategory, name);\n if (hasTokenName(config, entry.tokenCategory, tokenName)) {\n return { entry, valueKind: \"token\" };\n }\n if (entry.conveniences?.includes(\"sizing-keyword\") && (sizingConveniences.has(rawValue) || fractionIsValid(rawValue))) {\n return { entry, valueKind: \"convenience\", convenience: \"sizing-keyword\" };\n }\n if (positionSpaceProps.has(entry.prop) && (rawValue === \"full\" || rawValue === \"auto\" || fractionIsValid(rawValue))) {\n return { entry, valueKind: \"convenience\", convenience: \"sizing-keyword\" };\n }\n if (marginSpaceProps.has(entry.prop) && rawValue === \"auto\") {\n return { entry, valueKind: \"convenience\", convenience: \"sizing-keyword\" };\n }\n if (entry.tokenCategory === \"zIndex\" && numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n continue;\n }\n if (prefix === \"opacity\" || prefix === \"scale\" || prefix === \"scale-x\" || prefix === \"scale-y\") {\n if (numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"percentage\" };\n }\n continue;\n }\n if (entry.prop === \"zIndex\" && numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (entry.conveniences?.includes(\"integer\") && numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n }\n return null;\n}\nfunction parseCandidate(candidate, config) {\n const split = splitCandidate(candidate);\n if (!split) return null;\n const modifiers = normalizeModifiers(split.modifiers, config);\n if (!modifiers) return null;\n const negative = split.base[0] === \"-\";\n const core = negative ? split.base.slice(1) : split.base;\n const prefix = findPrefix(core, config);\n let dynamic;\n if (prefix) {\n const rawValue = core.slice(prefix.length + 1);\n if (rawValue) {\n const entries = resolveEntries(prefix, config);\n const selected = chooseEntry(entries, prefix, rawValue, negative, config);\n if (selected && (!negative || selected.convenience === \"tracking-keyword\" || negativeTokenProps.has(selected.entry.prop) && (selected.valueKind === \"token\" || selected.valueKind === \"arbitrary\" && selected.entry.prop === \"order\" || selected.convenience === \"angle\" || selected.convenience === \"percentage\" || selected.convenience === \"sizing-keyword\" || selected.convenience === \"integer\"))) {\n dynamic = { prefix, rawValue, selected };\n if (selected.valueKind === \"token\") {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix,\n rawValue,\n arbitrary: arbitraryInner(rawValue) !== null,\n entry: selected.entry,\n valueKind: selected.valueKind,\n convenience: selected.convenience\n };\n }\n }\n }\n }\n const direct = wholeClassUtilities[split.base];\n if (!negative && direct && (split.base !== \"shadow\" || hasTokenName(config, \"boxShadow\", \"sm\"))) {\n const convenience = wholeClassConveniences[split.base];\n return {\n candidate,\n base: split.base,\n modifiers,\n kind: \"utility\",\n valueKind: convenience ? \"convenience\" : \"enum\",\n properties: direct,\n convenience,\n negative: false\n };\n }\n if (dynamic) {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix: dynamic.prefix,\n rawValue: dynamic.rawValue,\n arbitrary: arbitraryInner(dynamic.rawValue) !== null,\n entry: dynamic.selected.entry,\n valueKind: dynamic.selected.valueKind,\n convenience: dynamic.selected.convenience\n };\n }\n return null;\n}\nfunction classifyCandidate(candidate, config) {\n const parsed = parseCandidate(candidate, config);\n return parsed ? { kind: \"tamagui\", parsed } : { kind: \"passthrough\", reason: \"not in the configured Tamagui grammar\" };\n}\nfunction tokenValidationConfig(entry, value, config) {\n const tokenNames = {\n ...config?.tokenNames\n };\n const category = entry.tokenCategory;\n if (tokenNames[category] === void 0) {\n tokenNames[category] = [tokenLookupName(category, value)];\n }\n for (const other of prefixToEntries[entry.prefix] || []) {\n if (other.tokenCategory && tokenNames[other.tokenCategory] === void 0) {\n tokenNames[other.tokenCategory] = [];\n }\n }\n return { ...config, tokenNames };\n}\nfunction formatCandidate({ prop, value, valueKind, modifiers = [] }, config) {\n const entry = propToGrammarEntry[prop];\n if (!entry) return null;\n if (valueKind === \"arbitrary\" && value === \"\") return null;\n const normalizedModifiers = normalizeModifiers(modifiers, config || {});\n if (!normalizedModifiers) return null;\n if (valueKind === \"enum\") {\n const whole2 = standaloneValueProps[prop]?.[value];\n if (whole2) {\n const candidate2 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${whole2}` : whole2;\n if (config) {\n const parsed2 = parseCandidate(candidate2, config);\n if (!parsed2?.properties || parsed2.properties[prop] !== value) return null;\n }\n return candidate2;\n }\n if (prop === \"fontWeight\") {\n const name = fontWeightNames[value];\n if (!name) return null;\n const core2 = `font-${name}`;\n if (String(wholeClassUtilities[core2]?.fontWeight) !== value) return null;\n const candidate2 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core2}` : core2;\n if (config) {\n const parsed2 = parseCandidate(candidate2, config);\n if (!parsed2?.properties || String(parsed2.properties.fontWeight) !== value) {\n return null;\n }\n }\n return candidate2;\n }\n }\n if (!entry.prefix) return null;\n if (valueKind === \"token\") {\n if (!entry.tokenCategory) return null;\n const sourceDomainKnown = !!config && hasTokenDomain(config, entry.tokenCategory);\n const lookupName = tokenLookupName(entry.tokenCategory, value);\n if (sourceDomainKnown && !hasTokenName(config, entry.tokenCategory, lookupName))\n return null;\n const colliding = prefixToEntries[entry.prefix].filter(\n (other) => other.prop !== prop && other.tokenCategory\n );\n if (colliding.length) {\n if (!config || !sourceDomainKnown) return null;\n for (const other of colliding) {\n if (!hasTokenDomain(config, other.tokenCategory)) return null;\n if (hasTokenName(config, other.tokenCategory, value)) return null;\n }\n }\n }\n const formattedValue = valueKind === \"arbitrary\" ? `[${encodeArbitrary(value)}]` : value;\n const core = formattedValue[0] === \"-\" && formattedValue[1] !== \"[\" ? `-${entry.prefix}-${formattedValue.slice(1)}` : formattedValue ? `${entry.prefix}-${formattedValue}` : entry.prefix;\n const candidate = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core}` : core;\n const whole = wholeClassUtilities[core];\n if (whole) {\n if (valueKind === \"token\") {\n if (!config || !hasTokenDomain(config, entry.tokenCategory)) return null;\n } else if (config) {\n const parsed2 = parseCandidate(candidate, config);\n if (parsed2?.kind === \"utility\") {\n return parsed2.properties && prop in parsed2.properties && String(parsed2.properties[prop]) === value ? candidate : null;\n }\n return parsed2?.entry?.prop === prop && parsed2.valueKind === valueKind ? candidate : null;\n } else if (prop in whole && String(whole[prop]) === value) {\n return candidate;\n } else {\n return null;\n }\n }\n if (valueKind === \"token\") {\n if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate, config || {})) {\n return null;\n }\n const parsed2 = parseCandidate(candidate, tokenValidationConfig(entry, value, config));\n const parsedValue = parsed2?.rawValue ? `${parsed2.negative ? \"-\" : \"\"}${parsed2.rawValue}` : null;\n if (parsed2?.kind !== \"dynamic\" || parsed2.entry?.prop !== prop || parsed2.valueKind !== \"token\" || parsedValue !== value) {\n return null;\n }\n return candidate;\n }\n const parsed = parseCandidate(candidate, config || {});\n if (!parsed || parsed.entry?.prop !== prop || parsed.valueKind !== valueKind)\n return null;\n return candidate;\n}\nfunction encodeArbitrary(value) {\n let encoded = \"\";\n for (const char of value) {\n if (char === \"\\\\\" || char === \"_\" || char === \"[\" || char === \"]\") {\n encoded += `\\\\${char}`;\n } else if (/\\s/.test(char)) {\n encoded += \"_\";\n } else {\n encoded += char;\n }\n }\n return encoded;\n}\nfunction decodeArbitrary(value) {\n let decoded = \"\";\n for (let index = 0; index < value.length; index++) {\n const char = value[index];\n if (char === \"\\\\\" && index + 1 < value.length) {\n decoded += value[++index];\n } else {\n decoded += char === \"_\" ? \" \" : char;\n }\n }\n return decoded;\n}\nexport {\n classifyCandidate,\n decimalHalfTokenAlias,\n decodeArbitrary,\n encodeArbitrary,\n formatCandidate,\n hasTokenName,\n parseCandidate,\n resolveTokenName,\n splitCandidate,\n tailwindLeadingRatios,\n tailwindTrackingEms\n};\n//# sourceMappingURL=candidate.js.map\n"],"mappings":";;;;;;;;;AA0BA,MAAM,qCAAqC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,+BAA+B,IAAI,IAAI;CAAC;CAAQ;CAAS;AAAM,CAAC;AACtE,MAAM,iBAAiB;AACvB,MAAM,wBAAwB;CAC5B,MAAM;CACN,OAAO;CACP,MAAM;CACN,QAAQ;CACR,SAAS;CACT,OAAO;AACT;AACA,MAAM,sBAAsB;CAC1B,SAAS,CAAC;CACV,OAAO,CAAC;CACR,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AACA,MAAM,gBAAgB;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,qCAAqC,IAAI,IAAI;CACjD;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,MAAM,qCAAqC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,mCAAmC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,sCAAsC,IAAI,IAAI;CAAC;CAAQ;CAAU;AAAO,CAAC;AAC/E,MAAM,uCAAuC,IAAI,IAAI;CACnD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,iBAAiB;AACvB,MAAM,mBAAmB,IAAI,OAAO,0BAA0B,eAAe,IAAI,GAAG;AACpF,SAAS,QAAQ,OAAO,MAAM;CAC5B,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,SAAS,IAAI;CACpD,IAAI,i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"}
|
|
1
|
+
{"version":3,"file":"candidate.js","names":[],"sources":["esm/tooling/candidate.js"],"sourcesContent":["import { namedCssColors } from \"../runtime/namedCssColors\";\nimport { propTokenGroupFallbacks } from \"./config\";\nimport {\n grammarEntries,\n fontWeightNames,\n insetAxisProps,\n prefixToEntries,\n propToGrammarEntry,\n radiusCornerProps,\n sizeUtilityProps,\n standaloneValueProps,\n textAlignKeywords,\n wholeClassConveniences,\n wholeClassUtilities\n} from \"./registry\";\nimport {\n canonicalClauseModifier,\n containerModifierSizeEnd,\n parseGroupModifier\n} from \"../runtime/clauseIdentity\";\nimport {\n compileModifierVocabulary,\n modifierKindMedia\n} from \"../runtime/modifierVocabulary\";\nimport { splitColorOpacitySuffix } from \"../runtime/colorOpacity\";\nimport { getSafeAreaEdge } from \"../runtime/safeAreaVariables\";\nconst sizingConveniences = /* @__PURE__ */ new Set([\n \"full\",\n \"auto\",\n \"screen\",\n \"dvh\",\n \"lvh\",\n \"svh\",\n \"dvw\",\n \"lvw\",\n \"svw\",\n \"min\",\n \"max\",\n \"fit\"\n]);\nconst fontGenerics = /* @__PURE__ */ new Set([\"sans\", \"serif\", \"mono\"]);\nconst numericPattern = /^\\d+(?:\\.\\d+)?$/;\nconst tailwindLeadingRatios = {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2\n};\nconst tailwindTrackingEms = {\n tighter: -0.05,\n tight: -0.025,\n normal: 0,\n wide: 0.025,\n wider: 0.05,\n widest: 0.1\n};\nconst extraPrefixes = [\n \"border-x\",\n \"border-y\",\n \"rounded-t\",\n \"rounded-r\",\n \"rounded-b\",\n \"rounded-l\",\n \"rounded-s\",\n \"rounded-e\",\n \"inset-x\",\n \"inset-y\",\n \"size\",\n \"translate\"\n];\nconst negativeTokenProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\",\n \"zIndex\",\n \"x\",\n \"y\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skewX\",\n \"skewY\",\n \"order\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"letterSpacing\",\n \"outlineOffset\"\n]);\nconst positionSpaceProps = /* @__PURE__ */ new Set([\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\"\n]);\nconst marginSpaceProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\"\n]);\nconst borderWidthKeywords = /* @__PURE__ */ new Set([\"thin\", \"medium\", \"thick\"]);\nconst ambiguousCssKeywords = /* @__PURE__ */ new Set([\n \"auto\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"groove\",\n \"hidden\",\n \"inherit\",\n \"initial\",\n \"inset\",\n \"none\",\n \"outset\",\n \"revert\",\n \"revert-layer\",\n \"ridge\",\n \"solid\",\n \"unset\"\n]);\nconst cssLengthUnits = \"(?:px|em|rem|ex|ch|cap|ic|lh|rlh|vw|vh|vmin|vmax|svw|svh|svmin|svmax|lvw|lvh|lvmin|lvmax|dvw|dvh|dvmin|dvmax|cm|mm|q|in|pt|pc)\";\nconst cssLengthPattern = new RegExp(`^-?(?:\\\\d+|\\\\d*\\\\.\\\\d+)${cssLengthUnits}$`, \"i\");\nfunction hasName(names, name) {\n if (!names) return false;\n if (Array.isArray(names)) return names.includes(name);\n if (names instanceof Set) return names.has(name);\n return name in names;\n}\nfunction splitCandidate(candidate) {\n const parts = [];\n let current = \"\";\n let bracketDepth = 0;\n let escaped = false;\n for (const char of candidate) {\n if (escaped) {\n current += char;\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n current += char;\n escaped = true;\n continue;\n }\n if (char === \"[\") bracketDepth++;\n if (char === \"]\") bracketDepth--;\n if (char === \":\" && bracketDepth === 0) {\n parts.push(current);\n current = \"\";\n } else {\n current += char;\n }\n }\n if (!current || bracketDepth !== 0) return null;\n return { modifiers: parts, base: current };\n}\nconst modifierVocabularyCache = /* @__PURE__ */ new WeakMap();\nconst modifierKindGroup = 5;\nconst modifierKindContainer = 6;\nfunction getModifierVocabulary(config) {\n let vocabulary = modifierVocabularyCache.get(config);\n if (!vocabulary) {\n vocabulary = compileModifierVocabulary(config);\n modifierVocabularyCache.set(config, vocabulary);\n }\n return vocabulary;\n}\nfunction modifierKindCode(modifier, config) {\n const vocabulary = getModifierVocabulary(config);\n const exact = vocabulary[modifier];\n if (exact !== void 0) return exact & 7;\n if (parseGroupModifier(modifier)) return modifierKindGroup;\n const sizeEnd = containerModifierSizeEnd(modifier);\n if (sizeEnd === -1) return 0;\n const size = modifier.slice(1, sizeEnd);\n return (vocabulary[size] & 7) === modifierKindMedia && (config.containerSizeNames === void 0 || hasName(config.containerSizeNames, size)) ? modifierKindContainer : 0;\n}\nfunction normalizeModifiers(modifiers, config) {\n const normalized = [];\n const seen = /* @__PURE__ */ new Set();\n for (const modifier of modifiers) {\n const canonical = canonicalClauseModifier(modifier);\n const kind = modifierKindCode(canonical, config);\n if (!kind || seen.has(kind)) return null;\n seen.add(kind);\n normalized.push(canonical);\n }\n return normalized;\n}\nfunction tokenDomain(config, category) {\n const fallback = propTokenGroupFallbacks[category];\n return config.tokenNames?.[category] || (fallback ? config.tokenNames?.[fallback] : void 0);\n}\nfunction hasTokenDomain(config, category) {\n return tokenDomain(config, category) !== void 0;\n}\nfunction hasTokenName(config, category, name) {\n return resolveTokenName(config, category, name) !== null;\n}\nfunction decimalHalfTokenAlias(name) {\n const match = /^(-?\\d+)\\.5$/.exec(name);\n return match ? `${match[1]}-5` : null;\n}\nfunction resolveTokenName(config, category, name) {\n const names = tokenDomain(config, category);\n if (hasName(names, name)) return name;\n const alias = decimalHalfTokenAlias(name);\n return alias !== null && hasName(names, alias) ? alias : null;\n}\nfunction entriesForProps(props) {\n const byProp = new Map(grammarEntries.map((entry) => [entry.prop, entry]));\n const out = [];\n for (const prop of props) {\n const entry = byProp.get(prop);\n if (entry) out.push(entry);\n }\n return out;\n}\nfunction resolveEntries(prefix, config) {\n const registered = prefixToEntries[prefix];\n if (prefix === \"text\") {\n return entriesForProps([\"fontSize\", \"textAlign\", \"color\"]);\n }\n if (registered) return registered;\n if (prefix === \"border-x\" || prefix === \"border-y\") {\n const sides = prefix === \"border-x\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"];\n return entriesForProps(\n sides.flatMap((side) => [`border${side}Width`, `border${side}Color`])\n );\n }\n if (prefix === \"size\") {\n return entriesForProps(sizeUtilityProps).map((entry) => ({\n ...entry,\n tokenCategory: \"size\"\n }));\n }\n if (prefix === \"inset-x\" || prefix === \"inset-y\") {\n return entriesForProps(insetAxisProps[prefix.slice(\"inset-\".length)]);\n }\n if (prefix === \"translate\") {\n return entriesForProps([\"x\", \"y\"]);\n }\n if (prefix.startsWith(\"rounded-\")) {\n const props = radiusCornerProps[prefix.slice(\"rounded-\".length)];\n return props ? entriesForProps(props) : [];\n }\n const expanded = config.shorthands?.[prefix];\n if (!expanded) return [];\n return grammarEntries.filter((entry) => entry.prop === expanded);\n}\nfunction findPrefix(base, config) {\n const prefixes = new Set(Object.keys(prefixToEntries));\n for (const prefix of extraPrefixes) prefixes.add(prefix);\n for (const shorthand in config.shorthands) prefixes.add(shorthand);\n let found = null;\n for (const prefix of prefixes) {\n if (base.startsWith(`${prefix}-`) && (!found || prefix.length > found.length)) {\n found = prefix;\n }\n }\n return found;\n}\nfunction arbitraryInner(rawValue) {\n if (rawValue.length <= 2 || rawValue[0] !== \"[\" || rawValue.at(-1) !== \"]\") {\n return null;\n }\n const inner = rawValue.slice(1, -1);\n return arbitraryValueIsBalanced(decodeArbitrary(inner)) ? inner : null;\n}\nfunction arbitraryValueIsBalanced(value) {\n const opening = /* @__PURE__ */ new Set([\"(\", \"[\", \"{\"]);\n const matching = { \")\": \"(\", \"]\": \"[\", \"}\": \"{\" };\n const stack = [];\n let quote = \"\";\n let escaped = false;\n for (const char of value) {\n if (escaped) {\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n escaped = true;\n continue;\n }\n if (quote) {\n if (char === quote) quote = \"\";\n continue;\n }\n if (char === '\"' || char === \"'\") {\n quote = char;\n continue;\n }\n if (opening.has(char)) {\n stack.push(char);\n continue;\n }\n const expected = matching[char];\n if (expected && stack.pop() !== expected) return false;\n }\n return !escaped && !quote && stack.length === 0;\n}\nfunction fractionIsValid(value) {\n const fraction = /^(\\d+)\\/(\\d+)$/.exec(value);\n return !!fraction && Number(fraction[2]) !== 0;\n}\nfunction arbitraryTextKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"fontSize\";\n if (cssLengthPattern.test(value) || /^(?:calc|min|max|clamp)\\(/.test(value)) {\n return \"fontSize\";\n }\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || namedCssColors.has(value.toLowerCase())) {\n return \"color\";\n }\n if (/^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) return \"fontSize\";\n return null;\n}\nfunction isWidthColorPrefix(prefix) {\n return prefix.startsWith(\"border\") || prefix === \"outline\";\n}\nfunction arbitraryBorderKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"width\";\n if (cssLengthPattern.test(value) || borderWidthKeywords.has(value)) return \"width\";\n if (/^(?:calc|min|max|clamp)\\(/.test(value)) return \"width\";\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || /^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) {\n return \"color\";\n }\n return null;\n}\nfunction tokenLookupName(category, value) {\n if (category !== \"color\") return value;\n const suffix = splitColorOpacitySuffix(value);\n return suffix.kind === \"none\" ? value : suffix.name;\n}\nfunction chooseEntry(entries, prefix, rawValue, negative, config) {\n if (getSafeAreaEdge(rawValue)) {\n const entry = entries.find(\n ({ tokenCategory }) => tokenCategory === \"space\" || tokenCategory === \"size\" || tokenCategory === \"radius\" || tokenCategory === \"fontSize\" || tokenCategory === \"lineHeight\" || tokenCategory === \"letterSpacing\"\n );\n if (entry) {\n return { entry, valueKind: \"convenience\", convenience: \"safe-area\" };\n }\n }\n const arbitrary = arbitraryInner(rawValue);\n if (arbitrary !== null) {\n if (!arbitrary) return null;\n if (isWidthColorPrefix(prefix)) {\n const width = entries.find((entry) => entry.prop.endsWith(\"Width\"));\n const color = entries.find((entry) => entry.prop.endsWith(\"Color\"));\n const kind = arbitraryBorderKind(decodeArbitrary(arbitrary));\n if (!kind || !width || !color) return null;\n return {\n entry: kind === \"width\" ? width : color,\n valueKind: \"arbitrary\"\n };\n }\n if (prefix === \"text\") {\n const kind = arbitraryTextKind(decodeArbitrary(arbitrary));\n const fontSize = entries.find((entry) => entry.prop === \"fontSize\");\n const color = entries.find((entry) => entry.prop === \"color\");\n if (kind === \"fontSize\" && fontSize) {\n return { entry: fontSize, valueKind: \"arbitrary\" };\n }\n if (kind === \"color\" && color) {\n return { entry: color, valueKind: \"arbitrary\" };\n }\n return null;\n }\n if (prefix === \"font\") {\n return {\n entry: entries.find((entry) => entry.prop === \"fontFamily\"),\n valueKind: \"arbitrary\"\n };\n }\n return { entry: entries[0], valueKind: \"arbitrary\" };\n }\n if (prefix === \"text\") {\n const fontSize = entries.find((entry) => entry.prop === \"fontSize\");\n if (fontSize && hasTokenName(config, \"fontSize\", rawValue)) {\n return { entry: fontSize, valueKind: \"token\" };\n }\n if (textAlignKeywords.has(rawValue)) {\n return {\n entry: entries.find((entry) => entry.prop === \"textAlign\"),\n valueKind: \"enum\"\n };\n }\n const color = entries.find((entry) => entry.prop === \"color\");\n if (color && rawValue === \"transparent\") {\n return { entry: color, valueKind: \"enum\" };\n }\n const colorName = tokenLookupName(\"color\", rawValue);\n if (color && hasTokenName(config, \"color\", colorName)) {\n return { entry: color, valueKind: \"token\" };\n }\n return null;\n }\n if (prefix === \"font\") {\n const fontFamily = entries.find((entry) => entry.prop === \"fontFamily\");\n const fontWeight = entries.find((entry) => entry.prop === \"fontWeight\");\n if (!fontFamily) return null;\n const matchesFamily = hasTokenName(config, \"fontFamily\", rawValue);\n const matchesWeight = fontWeight && hasTokenName(config, \"fontWeight\", rawValue);\n if (matchesFamily && matchesWeight) return null;\n if (matchesFamily) {\n return { entry: fontFamily, valueKind: \"token\" };\n }\n if (matchesWeight) {\n return { entry: fontWeight, valueKind: \"token\" };\n }\n return fontGenerics.has(rawValue) ? { entry: fontFamily, valueKind: \"convenience\", convenience: \"font-generic\" } : null;\n }\n if (isWidthColorPrefix(prefix)) {\n const width = entries.find((entry) => entry.prop.endsWith(\"Width\"));\n const color = entries.find((entry) => entry.prop.endsWith(\"Color\"));\n const token = negative ? `-${rawValue}` : rawValue;\n const widthCategory = width?.tokenCategory || \"space\";\n const matchesWidth = width && hasTokenName(config, widthCategory, token);\n const colorName = tokenLookupName(\"color\", rawValue);\n const matchesColor = color && hasTokenName(config, \"color\", colorName);\n if (matchesWidth && matchesColor) return null;\n if (matchesWidth) {\n return { entry: width, valueKind: \"token\" };\n }\n if (matchesColor) {\n return { entry: color, valueKind: \"token\" };\n }\n if (color && rawValue === \"transparent\") {\n return { entry: color, valueKind: \"enum\" };\n }\n return null;\n }\n if (prefix === \"flex\" && fractionIsValid(rawValue)) {\n const flex = entries.find((entry) => entry.prop === \"flex\");\n if (flex) {\n return { entry: flex, valueKind: \"convenience\", convenience: \"flex-bundle\" };\n }\n }\n if (prefix === \"tracking\" && Object.hasOwn(tailwindTrackingEms, rawValue)) {\n const letterSpacing = entries.find((entry) => entry.prop === \"letterSpacing\");\n if (letterSpacing) {\n return {\n entry: letterSpacing,\n valueKind: \"convenience\",\n convenience: \"tracking-keyword\"\n };\n }\n }\n if (prefix === \"leading\" && Object.hasOwn(tailwindLeadingRatios, rawValue)) {\n const lineHeight = entries.find((entry) => entry.prop === \"lineHeight\");\n if (lineHeight) {\n return {\n entry: lineHeight,\n valueKind: \"convenience\",\n convenience: \"leading-keyword\"\n };\n }\n }\n if (numericPattern.test(rawValue)) {\n const angle = entries.find((entry) => entry.conveniences?.includes(\"angle\"));\n if (angle) {\n return { entry: angle, valueKind: \"convenience\", convenience: \"angle\" };\n }\n if (prefix === \"flex\") {\n const flex = entries.find((entry) => entry.prop === \"flex\");\n if (flex)\n return { entry: flex, valueKind: \"convenience\", convenience: \"flex-bundle\" };\n }\n if (prefix === \"grow\") {\n const grow = entries.find((entry) => entry.prop === \"flexGrow\");\n if (grow) return { entry: grow, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (prefix === \"shrink\") {\n const shrink = entries.find((entry) => entry.prop === \"flexShrink\");\n if (shrink)\n return { entry: shrink, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (prefix === \"line-clamp\") {\n const clamp = entries.find((entry) => entry.prop === \"numberOfLines\");\n if (clamp) return { entry: clamp, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (prefix === \"leading\") {\n const lineHeight = entries.find((entry) => entry.prop === \"lineHeight\");\n if (lineHeight && (!lineHeight.tokenCategory || !hasTokenName(config, lineHeight.tokenCategory, rawValue))) {\n return {\n entry: lineHeight,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n }\n if (prefix === \"grid-cols\" || prefix === \"col-span\" || prefix === \"col-start\" || prefix === \"col-end\" || prefix === \"row-span\" || prefix === \"row-start\" || prefix === \"row-end\") {\n const entry = entries[0];\n if (entry) return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n }\n for (const entry of entries) {\n if (entry.tokenCategory) {\n if (entry.tokenCategory === \"color\" && rawValue === \"transparent\") {\n return { entry, valueKind: \"enum\" };\n }\n if (entry.tokenCategory === \"radius\" && rawValue === \"none\") {\n return { entry, valueKind: \"convenience\", convenience: \"zero\" };\n }\n const name = negative && rawValue !== \"0\" ? `-${rawValue}` : rawValue;\n const tokenName = tokenLookupName(entry.tokenCategory, name);\n if (hasTokenName(config, entry.tokenCategory, tokenName)) {\n return { entry, valueKind: \"token\" };\n }\n if (entry.conveniences?.includes(\"sizing-keyword\") && (sizingConveniences.has(rawValue) || fractionIsValid(rawValue))) {\n return { entry, valueKind: \"convenience\", convenience: \"sizing-keyword\" };\n }\n if (positionSpaceProps.has(entry.prop) && (rawValue === \"full\" || rawValue === \"auto\" || fractionIsValid(rawValue))) {\n return { entry, valueKind: \"convenience\", convenience: \"sizing-keyword\" };\n }\n if (marginSpaceProps.has(entry.prop) && rawValue === \"auto\") {\n return { entry, valueKind: \"convenience\", convenience: \"sizing-keyword\" };\n }\n if (entry.tokenCategory === \"zIndex\" && numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (numericPattern.test(rawValue) && (entry.tokenCategory === \"space\" || entry.tokenCategory === \"size\" || propTokenGroupFallbacks[entry.tokenCategory] === \"size\")) {\n return { entry, valueKind: \"convenience\", convenience: \"spacing-scale\" };\n }\n continue;\n }\n if (prefix === \"opacity\" || prefix === \"scale\" || prefix === \"scale-x\" || prefix === \"scale-y\") {\n if (numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"percentage\" };\n }\n continue;\n }\n if (entry.prop === \"zIndex\" && numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n if (entry.conveniences?.includes(\"integer\") && numericPattern.test(rawValue)) {\n return { entry, valueKind: \"convenience\", convenience: \"integer\" };\n }\n }\n return null;\n}\nfunction parseCandidate(candidate, config) {\n const split = splitCandidate(candidate);\n if (!split) return null;\n const modifiers = normalizeModifiers(split.modifiers, config);\n if (!modifiers) return null;\n const negative = split.base[0] === \"-\";\n const core = negative ? split.base.slice(1) : split.base;\n const prefix = findPrefix(core, config);\n let dynamic;\n if (prefix) {\n const rawValue = core.slice(prefix.length + 1);\n if (rawValue) {\n const entries = resolveEntries(prefix, config);\n const selected = chooseEntry(entries, prefix, rawValue, negative, config);\n if (selected && (!negative || selected.convenience === \"tracking-keyword\" || negativeTokenProps.has(selected.entry.prop) && (selected.valueKind === \"token\" || selected.valueKind === \"arbitrary\" && selected.entry.prop === \"order\" || selected.convenience === \"angle\" || selected.convenience === \"percentage\" || selected.convenience === \"sizing-keyword\" || selected.convenience === \"spacing-scale\" || selected.convenience === \"integer\"))) {\n dynamic = { prefix, rawValue, selected };\n if (selected.valueKind === \"token\") {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix,\n rawValue,\n arbitrary: arbitraryInner(rawValue) !== null,\n entry: selected.entry,\n valueKind: selected.valueKind,\n convenience: selected.convenience\n };\n }\n }\n }\n }\n const direct = wholeClassUtilities[split.base];\n if (!negative && direct && (split.base !== \"shadow\" || hasTokenName(config, \"boxShadow\", \"sm\"))) {\n const convenience = wholeClassConveniences[split.base];\n return {\n candidate,\n base: split.base,\n modifiers,\n kind: \"utility\",\n valueKind: convenience ? \"convenience\" : \"enum\",\n properties: direct,\n convenience,\n negative: false\n };\n }\n if (dynamic) {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix: dynamic.prefix,\n rawValue: dynamic.rawValue,\n arbitrary: arbitraryInner(dynamic.rawValue) !== null,\n entry: dynamic.selected.entry,\n valueKind: dynamic.selected.valueKind,\n convenience: dynamic.selected.convenience\n };\n }\n return null;\n}\nfunction classifyCandidate(candidate, config) {\n const parsed = parseCandidate(candidate, config);\n return parsed ? { kind: \"tamagui\", parsed } : { kind: \"passthrough\", reason: \"not in the configured Tamagui grammar\" };\n}\nfunction tokenValidationConfig(entry, value, config) {\n const tokenNames = {\n ...config?.tokenNames\n };\n const category = entry.tokenCategory;\n if (tokenNames[category] === void 0) {\n tokenNames[category] = [tokenLookupName(category, value)];\n }\n for (const other of prefixToEntries[entry.prefix] || []) {\n if (other.tokenCategory && tokenNames[other.tokenCategory] === void 0) {\n tokenNames[other.tokenCategory] = [];\n }\n }\n return { ...config, tokenNames };\n}\nfunction formatCandidate({ prop, value, valueKind, modifiers = [] }, config) {\n const entry = propToGrammarEntry[prop];\n if (!entry) return null;\n if (valueKind === \"arbitrary\" && value === \"\") return null;\n const normalizedModifiers = normalizeModifiers(modifiers, config || {});\n if (!normalizedModifiers) return null;\n if (valueKind === \"enum\") {\n const whole2 = standaloneValueProps[prop]?.[value];\n if (whole2) {\n const candidate2 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${whole2}` : whole2;\n if (config) {\n const parsed2 = parseCandidate(candidate2, config);\n if (!parsed2?.properties || parsed2.properties[prop] !== value) return null;\n }\n return candidate2;\n }\n if (prop === \"fontWeight\") {\n const name = fontWeightNames[value];\n if (!name) return null;\n const core2 = `font-${name}`;\n if (String(wholeClassUtilities[core2]?.fontWeight) !== value) return null;\n const candidate2 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core2}` : core2;\n if (config) {\n const parsed2 = parseCandidate(candidate2, config);\n if (!parsed2?.properties || String(parsed2.properties.fontWeight) !== value) {\n return null;\n }\n }\n return candidate2;\n }\n }\n if (!entry.prefix) return null;\n if (valueKind === \"token\") {\n if (!entry.tokenCategory) return null;\n const sourceDomainKnown = !!config && hasTokenDomain(config, entry.tokenCategory);\n const lookupName = tokenLookupName(entry.tokenCategory, value);\n if (sourceDomainKnown && !hasTokenName(config, entry.tokenCategory, lookupName))\n return null;\n const colliding = prefixToEntries[entry.prefix].filter(\n (other) => other.prop !== prop && other.tokenCategory\n );\n if (colliding.length) {\n if (!config || !sourceDomainKnown) return null;\n for (const other of colliding) {\n if (!hasTokenDomain(config, other.tokenCategory)) return null;\n if (hasTokenName(config, other.tokenCategory, value)) return null;\n }\n }\n }\n const formattedValue = valueKind === \"arbitrary\" ? `[${encodeArbitrary(value)}]` : value;\n const core = formattedValue[0] === \"-\" && formattedValue[1] !== \"[\" ? `-${entry.prefix}-${formattedValue.slice(1)}` : formattedValue ? `${entry.prefix}-${formattedValue}` : entry.prefix;\n const candidate = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core}` : core;\n const whole = wholeClassUtilities[core];\n if (whole) {\n if (valueKind === \"token\") {\n if (!config || !hasTokenDomain(config, entry.tokenCategory)) return null;\n } else if (config) {\n const parsed2 = parseCandidate(candidate, config);\n if (parsed2?.kind === \"utility\") {\n return parsed2.properties && prop in parsed2.properties && String(parsed2.properties[prop]) === value ? candidate : null;\n }\n return parsed2?.entry?.prop === prop && parsed2.valueKind === valueKind ? candidate : null;\n } else if (prop in whole && String(whole[prop]) === value) {\n return candidate;\n } else {\n return null;\n }\n }\n if (valueKind === \"token\") {\n if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate, config || {})) {\n return null;\n }\n const parsed2 = parseCandidate(candidate, tokenValidationConfig(entry, value, config));\n const parsedValue = parsed2?.rawValue ? `${parsed2.negative ? \"-\" : \"\"}${parsed2.rawValue}` : null;\n if (parsed2?.kind !== \"dynamic\" || parsed2.entry?.prop !== prop || parsed2.valueKind !== \"token\" || parsedValue !== value) {\n return null;\n }\n return candidate;\n }\n const parsed = parseCandidate(candidate, config || {});\n if (!parsed || parsed.entry?.prop !== prop || parsed.valueKind !== valueKind)\n return null;\n return candidate;\n}\nfunction encodeArbitrary(value) {\n let encoded = \"\";\n for (const char of value) {\n if (char === \"\\\\\" || char === \"_\" || char === \"[\" || char === \"]\") {\n encoded += `\\\\${char}`;\n } else if (/\\s/.test(char)) {\n encoded += \"_\";\n } else {\n encoded += char;\n }\n }\n return encoded;\n}\nfunction decodeArbitrary(value) {\n let decoded = \"\";\n for (let index = 0; index < value.length; index++) {\n const char = value[index];\n if (char === \"\\\\\" && index + 1 < value.length) {\n decoded += value[++index];\n } else {\n decoded += char === \"_\" ? \" \" : char;\n }\n }\n return decoded;\n}\nexport {\n classifyCandidate,\n decimalHalfTokenAlias,\n decodeArbitrary,\n encodeArbitrary,\n formatCandidate,\n hasTokenName,\n parseCandidate,\n resolveTokenName,\n splitCandidate,\n tailwindLeadingRatios,\n tailwindTrackingEms\n};\n//# sourceMappingURL=candidate.js.map\n"],"mappings":";;;;;;;;;AA0BA,MAAM,qCAAqC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,+BAA+B,IAAI,IAAI;CAAC;CAAQ;CAAS;AAAM,CAAC;AACtE,MAAM,iBAAiB;AACvB,MAAM,wBAAwB;CAC5B,MAAM;CACN,OAAO;CACP,MAAM;CACN,QAAQ;CACR,SAAS;CACT,OAAO;AACT;AACA,MAAM,sBAAsB;CAC1B,SAAS,CAAC;CACV,OAAO,CAAC;CACR,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AACA,MAAM,gBAAgB;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,qCAAqC,IAAI,IAAI;CACjD;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,MAAM,qCAAqC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,mCAAmC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,sCAAsC,IAAI,IAAI;CAAC;CAAQ;CAAU;AAAO,CAAC;AAC/E,MAAM,uCAAuC,IAAI,IAAI;CACnD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,iBAAiB;AACvB,MAAM,mBAAmB,IAAI,OAAO,0BAA0B,eAAe,IAAI,GAAG;AACpF,SAAS,QAAQ,OAAO,MAAM;CAC5B,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,SAAS,IAAI;CACpD,IAAI,i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"}
|
|
@@ -815,6 +815,13 @@ function chooseEntry(entries, prefix, rawValue, negative, config) {
|
|
|
815
815
|
convenience: "integer"
|
|
816
816
|
};
|
|
817
817
|
}
|
|
818
|
+
if (numericPattern.test(rawValue) && (entry2.tokenCategory === "space" || entry2.tokenCategory === "size" || propTokenGroupFallbacks[entry2.tokenCategory] === "size")) {
|
|
819
|
+
return {
|
|
820
|
+
entry: entry2,
|
|
821
|
+
valueKind: "convenience",
|
|
822
|
+
convenience: "spacing-scale"
|
|
823
|
+
};
|
|
824
|
+
}
|
|
818
825
|
continue;
|
|
819
826
|
}
|
|
820
827
|
if (prefix === "opacity" || prefix === "scale" || prefix === "scale-x" || prefix === "scale-y") {
|
|
@@ -872,7 +879,7 @@ function parseCandidate(candidate, config) {
|
|
|
872
879
|
if (rawValue) {
|
|
873
880
|
var entries = resolveEntries(prefix, config);
|
|
874
881
|
var selected = chooseEntry(entries, prefix, rawValue, negative, config);
|
|
875
|
-
if (selected && (!negative || selected.convenience === "tracking-keyword" || negativeTokenProps.has(selected.entry.prop) && (selected.valueKind === "token" || selected.valueKind === "arbitrary" && selected.entry.prop === "order" || selected.convenience === "angle" || selected.convenience === "percentage" || selected.convenience === "sizing-keyword" || selected.convenience === "integer"))) {
|
|
882
|
+
if (selected && (!negative || selected.convenience === "tracking-keyword" || negativeTokenProps.has(selected.entry.prop) && (selected.valueKind === "token" || selected.valueKind === "arbitrary" && selected.entry.prop === "order" || selected.convenience === "angle" || selected.convenience === "percentage" || selected.convenience === "sizing-keyword" || selected.convenience === "spacing-scale" || selected.convenience === "integer"))) {
|
|
876
883
|
dynamic = {
|
|
877
884
|
prefix,
|
|
878
885
|
rawValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidate.native.js","names":[],"sources":["esm/tooling/candidate.native.js"],"sourcesContent":["import { namedCssColors } from \"../runtime/namedCssColors\";\nimport { propTokenGroupFallbacks } from \"./config\";\nimport { grammarEntries, fontWeightNames, insetAxisProps, prefixToEntries, propToGrammarEntry, radiusCornerProps, sizeUtilityProps, standaloneValueProps, textAlignKeywords, wholeClassConveniences, wholeClassUtilities } from \"./registry\";\nimport { canonicalClauseModifier, containerModifierSizeEnd, parseGroupModifier } from \"../runtime/clauseIdentity\";\nimport { compileModifierVocabulary, modifierKindMedia } from \"../runtime/modifierVocabulary\";\nimport { splitColorOpacitySuffix } from \"../runtime/colorOpacity\";\nimport { getSafeAreaEdge } from \"../runtime/safeAreaVariables\";\nvar sizingConveniences = /* @__PURE__ */ new Set([\n \"full\",\n \"auto\",\n \"screen\",\n \"dvh\",\n \"lvh\",\n \"svh\",\n \"dvw\",\n \"lvw\",\n \"svw\",\n \"min\",\n \"max\",\n \"fit\"\n]);\nvar fontGenerics = /* @__PURE__ */ new Set([\n \"sans\",\n \"serif\",\n \"mono\"\n]);\nvar numericPattern = /^\\d+(?:\\.\\d+)?$/;\nvar tailwindLeadingRatios = {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2\n};\nvar tailwindTrackingEms = {\n tighter: -0.05,\n tight: -0.025,\n normal: 0,\n wide: 0.025,\n wider: 0.05,\n widest: 0.1\n};\nvar extraPrefixes = [\n \"border-x\",\n \"border-y\",\n \"rounded-t\",\n \"rounded-r\",\n \"rounded-b\",\n \"rounded-l\",\n \"rounded-s\",\n \"rounded-e\",\n \"inset-x\",\n \"inset-y\",\n \"size\",\n \"translate\"\n];\nvar negativeTokenProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\",\n \"zIndex\",\n \"x\",\n \"y\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skewX\",\n \"skewY\",\n \"order\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"letterSpacing\",\n \"outlineOffset\"\n]);\nvar positionSpaceProps = /* @__PURE__ */ new Set([\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\"\n]);\nvar marginSpaceProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\"\n]);\nvar borderWidthKeywords = /* @__PURE__ */ new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nvar ambiguousCssKeywords = /* @__PURE__ */ new Set([\n \"auto\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"groove\",\n \"hidden\",\n \"inherit\",\n \"initial\",\n \"inset\",\n \"none\",\n \"outset\",\n \"revert\",\n \"revert-layer\",\n \"ridge\",\n \"solid\",\n \"unset\"\n]);\nvar cssLengthUnits = \"(?:px|em|rem|ex|ch|cap|ic|lh|rlh|vw|vh|vmin|vmax|svw|svh|svmin|svmax|lvw|lvh|lvmin|lvmax|dvw|dvh|dvmin|dvmax|cm|mm|q|in|pt|pc)\";\nvar cssLengthPattern = new RegExp(`^-?(?:\\\\d+|\\\\d*\\\\.\\\\d+)${cssLengthUnits}$`, \"i\");\nfunction hasName(names, name) {\n if (!names) return false;\n if (Array.isArray(names)) return names.includes(name);\n if (names instanceof Set) return names.has(name);\n return name in names;\n}\nfunction splitCandidate(candidate) {\n var parts = [];\n var current = \"\";\n var bracketDepth = 0;\n var escaped = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidate[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var char = _step.value;\n if (escaped) {\n current += char;\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n current += char;\n escaped = true;\n continue;\n }\n if (char === \"[\") bracketDepth++;\n if (char === \"]\") bracketDepth--;\n if (char === \":\" && bracketDepth === 0) {\n parts.push(current);\n current = \"\";\n } else {\n current += char;\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 (!current || bracketDepth !== 0) return null;\n return {\n modifiers: parts,\n base: current\n };\n}\nvar modifierVocabularyCache = /* @__PURE__ */ new WeakMap();\nvar modifierKindGroup = 5;\nvar modifierKindContainer = 6;\nfunction getModifierVocabulary(config) {\n var vocabulary = modifierVocabularyCache.get(config);\n if (!vocabulary) {\n vocabulary = compileModifierVocabulary(config);\n modifierVocabularyCache.set(config, vocabulary);\n }\n return vocabulary;\n}\nfunction modifierKindCode(modifier, config) {\n var vocabulary = getModifierVocabulary(config);\n var exact = vocabulary[modifier];\n if (exact !== void 0) return exact & 7;\n if (parseGroupModifier(modifier)) return modifierKindGroup;\n var sizeEnd = containerModifierSizeEnd(modifier);\n if (sizeEnd === -1) return 0;\n var size = modifier.slice(1, sizeEnd);\n return (vocabulary[size] & 7) === modifierKindMedia && (config.containerSizeNames === void 0 || hasName(config.containerSizeNames, size)) ? modifierKindContainer : 0;\n}\nfunction normalizeModifiers(modifiers, config) {\n var normalized = [];\n var seen = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = modifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var modifier = _step.value;\n var canonical = canonicalClauseModifier(modifier);\n var kind = modifierKindCode(canonical, config);\n if (!kind || seen.has(kind)) return null;\n seen.add(kind);\n normalized.push(canonical);\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 normalized;\n}\nfunction tokenDomain(config, category) {\n var _config_tokenNames, _config_tokenNames1;\n var fallback = propTokenGroupFallbacks[category];\n return ((_config_tokenNames = config.tokenNames) === null || _config_tokenNames === void 0 ? void 0 : _config_tokenNames[category]) || (fallback ? (_config_tokenNames1 = config.tokenNames) === null || _config_tokenNames1 === void 0 ? void 0 : _config_tokenNames1[fallback] : void 0);\n}\nfunction hasTokenDomain(config, category) {\n return tokenDomain(config, category) !== void 0;\n}\nfunction hasTokenName(config, category, name) {\n return resolveTokenName(config, category, name) !== null;\n}\nfunction decimalHalfTokenAlias(name) {\n var match = /^(-?\\d+)\\.5$/.exec(name);\n return match ? `${match[1]}-5` : null;\n}\nfunction resolveTokenName(config, category, name) {\n var names = tokenDomain(config, category);\n if (hasName(names, name)) return name;\n var alias = decimalHalfTokenAlias(name);\n return alias !== null && hasName(names, alias) ? alias : null;\n}\nfunction entriesForProps(props) {\n var byProp = new Map(grammarEntries.map(function(entry2) {\n return [\n entry2.prop,\n entry2\n ];\n }));\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n var entry = byProp.get(prop);\n if (entry) out.push(entry);\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 out;\n}\nfunction resolveEntries(prefix, config) {\n var _config_shorthands;\n var registered = prefixToEntries[prefix];\n if (prefix === \"text\") {\n return entriesForProps([\n \"fontSize\",\n \"textAlign\",\n \"color\"\n ]);\n }\n if (registered) return registered;\n if (prefix === \"border-x\" || prefix === \"border-y\") {\n var sides = prefix === \"border-x\" ? [\n \"Left\",\n \"Right\"\n ] : [\n \"Top\",\n \"Bottom\"\n ];\n return entriesForProps(sides.flatMap(function(side) {\n return [\n `border${side}Width`,\n `border${side}Color`\n ];\n }));\n }\n if (prefix === \"size\") {\n return entriesForProps(sizeUtilityProps).map(function(entry) {\n return {\n ...entry,\n tokenCategory: \"size\"\n };\n });\n }\n if (prefix === \"inset-x\" || prefix === \"inset-y\") {\n return entriesForProps(insetAxisProps[prefix.slice(\"inset-\".length)]);\n }\n if (prefix === \"translate\") {\n return entriesForProps([\n \"x\",\n \"y\"\n ]);\n }\n if (prefix.startsWith(\"rounded-\")) {\n var props = radiusCornerProps[prefix.slice(\"rounded-\".length)];\n return props ? entriesForProps(props) : [];\n }\n var expanded = (_config_shorthands = config.shorthands) === null || _config_shorthands === void 0 ? void 0 : _config_shorthands[prefix];\n if (!expanded) return [];\n return grammarEntries.filter(function(entry) {\n return entry.prop === expanded;\n });\n}\nfunction findPrefix(base, config) {\n var prefixes = new Set(Object.keys(prefixToEntries));\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = extraPrefixes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prefix = _step.value;\n prefixes.add(prefix);\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 shorthand in config.shorthands) prefixes.add(shorthand);\n var found = null;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = prefixes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var prefix1 = _step1.value;\n if (base.startsWith(`${prefix1}-`) && (!found || prefix1.length > found.length)) {\n found = prefix1;\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 return found;\n}\nfunction arbitraryInner(rawValue) {\n if (rawValue.length <= 2 || rawValue[0] !== \"[\" || rawValue.at(-1) !== \"]\") {\n return null;\n }\n var inner = rawValue.slice(1, -1);\n return arbitraryValueIsBalanced(decodeArbitrary(inner)) ? inner : null;\n}\nfunction arbitraryValueIsBalanced(value) {\n var opening = /* @__PURE__ */ new Set([\n \"(\",\n \"[\",\n \"{\"\n ]);\n var matching = {\n \")\": \"(\",\n \"]\": \"[\",\n \"}\": \"{\"\n };\n var stack = [];\n var quote = \"\";\n var escaped = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var char = _step.value;\n if (escaped) {\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n escaped = true;\n continue;\n }\n if (quote) {\n if (char === quote) quote = \"\";\n continue;\n }\n if (char === '\"' || char === \"'\") {\n quote = char;\n continue;\n }\n if (opening.has(char)) {\n stack.push(char);\n continue;\n }\n var expected = matching[char];\n if (expected && stack.pop() !== expected) return false;\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 !escaped && !quote && stack.length === 0;\n}\nfunction fractionIsValid(value) {\n var fraction = /^(\\d+)\\/(\\d+)$/.exec(value);\n return !!fraction && Number(fraction[2]) !== 0;\n}\nfunction arbitraryTextKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"fontSize\";\n if (cssLengthPattern.test(value) || /^(?:calc|min|max|clamp)\\(/.test(value)) {\n return \"fontSize\";\n }\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || namedCssColors.has(value.toLowerCase())) {\n return \"color\";\n }\n if (/^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) return \"fontSize\";\n return null;\n}\nfunction isWidthColorPrefix(prefix) {\n return prefix.startsWith(\"border\") || prefix === \"outline\";\n}\nfunction arbitraryBorderKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"width\";\n if (cssLengthPattern.test(value) || borderWidthKeywords.has(value)) return \"width\";\n if (/^(?:calc|min|max|clamp)\\(/.test(value)) return \"width\";\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || /^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) {\n return \"color\";\n }\n return null;\n}\nfunction tokenLookupName(category, value) {\n if (category !== \"color\") return value;\n var suffix = splitColorOpacitySuffix(value);\n return suffix.kind === \"none\" ? value : suffix.name;\n}\nfunction chooseEntry(entries, prefix, rawValue, negative, config) {\n if (getSafeAreaEdge(rawValue)) {\n var entry = entries.find(function(param) {\n var { tokenCategory } = param;\n return tokenCategory === \"space\" || tokenCategory === \"size\" || tokenCategory === \"radius\" || tokenCategory === \"fontSize\" || tokenCategory === \"lineHeight\" || tokenCategory === \"letterSpacing\";\n });\n if (entry) {\n return {\n entry,\n valueKind: \"convenience\",\n convenience: \"safe-area\"\n };\n }\n }\n var arbitrary = arbitraryInner(rawValue);\n if (arbitrary !== null) {\n if (!arbitrary) return null;\n if (isWidthColorPrefix(prefix)) {\n var width = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Width\");\n });\n var color = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Color\");\n });\n var kind = arbitraryBorderKind(decodeArbitrary(arbitrary));\n if (!kind || !width || !color) return null;\n return {\n entry: kind === \"width\" ? width : color,\n valueKind: \"arbitrary\"\n };\n }\n if (prefix === \"text\") {\n var kind1 = arbitraryTextKind(decodeArbitrary(arbitrary));\n var fontSize = entries.find(function(entry3) {\n return entry3.prop === \"fontSize\";\n });\n var color1 = entries.find(function(entry3) {\n return entry3.prop === \"color\";\n });\n if (kind1 === \"fontSize\" && fontSize) {\n return {\n entry: fontSize,\n valueKind: \"arbitrary\"\n };\n }\n if (kind1 === \"color\" && color1) {\n return {\n entry: color1,\n valueKind: \"arbitrary\"\n };\n }\n return null;\n }\n if (prefix === \"font\") {\n return {\n entry: entries.find(function(entry3) {\n return entry3.prop === \"fontFamily\";\n }),\n valueKind: \"arbitrary\"\n };\n }\n return {\n entry: entries[0],\n valueKind: \"arbitrary\"\n };\n }\n if (prefix === \"text\") {\n var fontSize1 = entries.find(function(entry3) {\n return entry3.prop === \"fontSize\";\n });\n if (fontSize1 && hasTokenName(config, \"fontSize\", rawValue)) {\n return {\n entry: fontSize1,\n valueKind: \"token\"\n };\n }\n if (textAlignKeywords.has(rawValue)) {\n return {\n entry: entries.find(function(entry3) {\n return entry3.prop === \"textAlign\";\n }),\n valueKind: \"enum\"\n };\n }\n var color2 = entries.find(function(entry3) {\n return entry3.prop === \"color\";\n });\n if (color2 && rawValue === \"transparent\") {\n return {\n entry: color2,\n valueKind: \"enum\"\n };\n }\n var colorName = tokenLookupName(\"color\", rawValue);\n if (color2 && hasTokenName(config, \"color\", colorName)) {\n return {\n entry: color2,\n valueKind: \"token\"\n };\n }\n return null;\n }\n if (prefix === \"font\") {\n var fontFamily = entries.find(function(entry3) {\n return entry3.prop === \"fontFamily\";\n });\n var fontWeight = entries.find(function(entry3) {\n return entry3.prop === \"fontWeight\";\n });\n if (!fontFamily) return null;\n var matchesFamily = hasTokenName(config, \"fontFamily\", rawValue);\n var matchesWeight = fontWeight && hasTokenName(config, \"fontWeight\", rawValue);\n if (matchesFamily && matchesWeight) return null;\n if (matchesFamily) {\n return {\n entry: fontFamily,\n valueKind: \"token\"\n };\n }\n if (matchesWeight) {\n return {\n entry: fontWeight,\n valueKind: \"token\"\n };\n }\n return fontGenerics.has(rawValue) ? {\n entry: fontFamily,\n valueKind: \"convenience\",\n convenience: \"font-generic\"\n } : null;\n }\n if (isWidthColorPrefix(prefix)) {\n var width1 = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Width\");\n });\n var color3 = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Color\");\n });\n var token = negative ? `-${rawValue}` : rawValue;\n var widthCategory = (width1 === null || width1 === void 0 ? void 0 : width1.tokenCategory) || \"space\";\n var matchesWidth = width1 && hasTokenName(config, widthCategory, token);\n var colorName1 = tokenLookupName(\"color\", rawValue);\n var matchesColor = color3 && hasTokenName(config, \"color\", colorName1);\n if (matchesWidth && matchesColor) return null;\n if (matchesWidth) {\n return {\n entry: width1,\n valueKind: \"token\"\n };\n }\n if (matchesColor) {\n return {\n entry: color3,\n valueKind: \"token\"\n };\n }\n if (color3 && rawValue === \"transparent\") {\n return {\n entry: color3,\n valueKind: \"enum\"\n };\n }\n return null;\n }\n if (prefix === \"flex\" && fractionIsValid(rawValue)) {\n var flex = entries.find(function(entry3) {\n return entry3.prop === \"flex\";\n });\n if (flex) {\n return {\n entry: flex,\n valueKind: \"convenience\",\n convenience: \"flex-bundle\"\n };\n }\n }\n if (prefix === \"tracking\" && Object.hasOwn(tailwindTrackingEms, rawValue)) {\n var letterSpacing = entries.find(function(entry3) {\n return entry3.prop === \"letterSpacing\";\n });\n if (letterSpacing) {\n return {\n entry: letterSpacing,\n valueKind: \"convenience\",\n convenience: \"tracking-keyword\"\n };\n }\n }\n if (prefix === \"leading\" && Object.hasOwn(tailwindLeadingRatios, rawValue)) {\n var lineHeight = entries.find(function(entry3) {\n return entry3.prop === \"lineHeight\";\n });\n if (lineHeight) {\n return {\n entry: lineHeight,\n valueKind: \"convenience\",\n convenience: \"leading-keyword\"\n };\n }\n }\n if (numericPattern.test(rawValue)) {\n var angle = entries.find(function(entry3) {\n var _entry_conveniences2;\n return (_entry_conveniences2 = entry3.conveniences) === null || _entry_conveniences2 === void 0 ? void 0 : _entry_conveniences2.includes(\"angle\");\n });\n if (angle) {\n return {\n entry: angle,\n valueKind: \"convenience\",\n convenience: \"angle\"\n };\n }\n if (prefix === \"flex\") {\n var flex1 = entries.find(function(entry3) {\n return entry3.prop === \"flex\";\n });\n if (flex1) return {\n entry: flex1,\n valueKind: \"convenience\",\n convenience: \"flex-bundle\"\n };\n }\n if (prefix === \"grow\") {\n var grow = entries.find(function(entry3) {\n return entry3.prop === \"flexGrow\";\n });\n if (grow) return {\n entry: grow,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (prefix === \"shrink\") {\n var shrink = entries.find(function(entry3) {\n return entry3.prop === \"flexShrink\";\n });\n if (shrink) return {\n entry: shrink,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (prefix === \"line-clamp\") {\n var clamp = entries.find(function(entry3) {\n return entry3.prop === \"numberOfLines\";\n });\n if (clamp) return {\n entry: clamp,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (prefix === \"leading\") {\n var lineHeight1 = entries.find(function(entry3) {\n return entry3.prop === \"lineHeight\";\n });\n if (lineHeight1 && (!lineHeight1.tokenCategory || !hasTokenName(config, lineHeight1.tokenCategory, rawValue))) {\n return {\n entry: lineHeight1,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n }\n if (prefix === \"grid-cols\" || prefix === \"col-span\" || prefix === \"col-start\" || prefix === \"col-end\" || prefix === \"row-span\" || prefix === \"row-start\" || prefix === \"row-end\") {\n var entry1 = entries[0];\n if (entry1) return {\n entry: entry1,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry2 = _step.value;\n var _entry_conveniences;\n if (entry2.tokenCategory) {\n var _entry_conveniences1;\n if (entry2.tokenCategory === \"color\" && rawValue === \"transparent\") {\n return {\n entry: entry2,\n valueKind: \"enum\"\n };\n }\n if (entry2.tokenCategory === \"radius\" && rawValue === \"none\") {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"zero\"\n };\n }\n var name = negative && rawValue !== \"0\" ? `-${rawValue}` : rawValue;\n var tokenName = tokenLookupName(entry2.tokenCategory, name);\n if (hasTokenName(config, entry2.tokenCategory, tokenName)) {\n return {\n entry: entry2,\n valueKind: \"token\"\n };\n }\n if (((_entry_conveniences1 = entry2.conveniences) === null || _entry_conveniences1 === void 0 ? void 0 : _entry_conveniences1.includes(\"sizing-keyword\")) && (sizingConveniences.has(rawValue) || fractionIsValid(rawValue))) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"sizing-keyword\"\n };\n }\n if (positionSpaceProps.has(entry2.prop) && (rawValue === \"full\" || rawValue === \"auto\" || fractionIsValid(rawValue))) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"sizing-keyword\"\n };\n }\n if (marginSpaceProps.has(entry2.prop) && rawValue === \"auto\") {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"sizing-keyword\"\n };\n }\n if (entry2.tokenCategory === \"zIndex\" && numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n continue;\n }\n if (prefix === \"opacity\" || prefix === \"scale\" || prefix === \"scale-x\" || prefix === \"scale-y\") {\n if (numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"percentage\"\n };\n }\n continue;\n }\n if (entry2.prop === \"zIndex\" && numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (((_entry_conveniences = entry2.conveniences) === null || _entry_conveniences === void 0 ? void 0 : _entry_conveniences.includes(\"integer\")) && numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"integer\"\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 return null;\n}\nfunction parseCandidate(candidate, config) {\n var split = splitCandidate(candidate);\n if (!split) return null;\n var modifiers = normalizeModifiers(split.modifiers, config);\n if (!modifiers) return null;\n var negative = split.base[0] === \"-\";\n var core = negative ? split.base.slice(1) : split.base;\n var prefix = findPrefix(core, config);\n var dynamic;\n if (prefix) {\n var rawValue = core.slice(prefix.length + 1);\n if (rawValue) {\n var entries = resolveEntries(prefix, config);\n var selected = chooseEntry(entries, prefix, rawValue, negative, config);\n if (selected && (!negative || selected.convenience === \"tracking-keyword\" || negativeTokenProps.has(selected.entry.prop) && (selected.valueKind === \"token\" || selected.valueKind === \"arbitrary\" && selected.entry.prop === \"order\" || selected.convenience === \"angle\" || selected.convenience === \"percentage\" || selected.convenience === \"sizing-keyword\" || selected.convenience === \"integer\"))) {\n dynamic = {\n prefix,\n rawValue,\n selected\n };\n if (selected.valueKind === \"token\") {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix,\n rawValue,\n arbitrary: arbitraryInner(rawValue) !== null,\n entry: selected.entry,\n valueKind: selected.valueKind,\n convenience: selected.convenience\n };\n }\n }\n }\n }\n var direct = wholeClassUtilities[split.base];\n if (!negative && direct && (split.base !== \"shadow\" || hasTokenName(config, \"boxShadow\", \"sm\"))) {\n var convenience = wholeClassConveniences[split.base];\n return {\n candidate,\n base: split.base,\n modifiers,\n kind: \"utility\",\n valueKind: convenience ? \"convenience\" : \"enum\",\n properties: direct,\n convenience,\n negative: false\n };\n }\n if (dynamic) {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix: dynamic.prefix,\n rawValue: dynamic.rawValue,\n arbitrary: arbitraryInner(dynamic.rawValue) !== null,\n entry: dynamic.selected.entry,\n valueKind: dynamic.selected.valueKind,\n convenience: dynamic.selected.convenience\n };\n }\n return null;\n}\nfunction classifyCandidate(candidate, config) {\n var parsed = parseCandidate(candidate, config);\n return parsed ? {\n kind: \"tamagui\",\n parsed\n } : {\n kind: \"passthrough\",\n reason: \"not in the configured Tamagui grammar\"\n };\n}\nfunction tokenValidationConfig(entry, value, config) {\n var tokenNames = {\n ...config === null || config === void 0 ? void 0 : config.tokenNames\n };\n var category = entry.tokenCategory;\n if (tokenNames[category] === void 0) {\n tokenNames[category] = [\n tokenLookupName(category, value)\n ];\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = (prefixToEntries[entry.prefix] || [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var other = _step.value;\n if (other.tokenCategory && tokenNames[other.tokenCategory] === void 0) {\n tokenNames[other.tokenCategory] = [];\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 return {\n ...config,\n tokenNames\n };\n}\nfunction formatCandidate(param, config) {\n var { prop, value, valueKind, modifiers = [] } = param;\n var _parsed_entry;\n var entry = propToGrammarEntry[prop];\n if (!entry) return null;\n if (valueKind === \"arbitrary\" && value === \"\") return null;\n var normalizedModifiers = normalizeModifiers(modifiers, config || {});\n if (!normalizedModifiers) return null;\n if (valueKind === \"enum\") {\n var _standaloneValueProps_prop;\n var whole = (_standaloneValueProps_prop = standaloneValueProps[prop]) === null || _standaloneValueProps_prop === void 0 ? void 0 : _standaloneValueProps_prop[value];\n if (whole) {\n var candidate = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${whole}` : whole;\n if (config) {\n var parsed = parseCandidate(candidate, config);\n if (!(parsed === null || parsed === void 0 ? void 0 : parsed.properties) || parsed.properties[prop] !== value) return null;\n }\n return candidate;\n }\n if (prop === \"fontWeight\") {\n var _wholeClassUtilities_core;\n var name = fontWeightNames[value];\n if (!name) return null;\n var core = `font-${name}`;\n if (String((_wholeClassUtilities_core = wholeClassUtilities[core]) === null || _wholeClassUtilities_core === void 0 ? void 0 : _wholeClassUtilities_core.fontWeight) !== value) return null;\n var candidate1 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core}` : core;\n if (config) {\n var parsed1 = parseCandidate(candidate1, config);\n if (!(parsed1 === null || parsed1 === void 0 ? void 0 : parsed1.properties) || String(parsed1.properties.fontWeight) !== value) {\n return null;\n }\n }\n return candidate1;\n }\n }\n if (!entry.prefix) return null;\n if (valueKind === \"token\") {\n if (!entry.tokenCategory) return null;\n var sourceDomainKnown = !!config && hasTokenDomain(config, entry.tokenCategory);\n var lookupName = tokenLookupName(entry.tokenCategory, value);\n if (sourceDomainKnown && !hasTokenName(config, entry.tokenCategory, lookupName)) return null;\n var colliding = prefixToEntries[entry.prefix].filter(function(other2) {\n return other2.prop !== prop && other2.tokenCategory;\n });\n if (colliding.length) {\n if (!config || !sourceDomainKnown) return null;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = colliding[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var other = _step.value;\n if (!hasTokenDomain(config, other.tokenCategory)) return null;\n if (hasTokenName(config, other.tokenCategory, value)) return null;\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 }\n }\n var formattedValue = valueKind === \"arbitrary\" ? `[${encodeArbitrary(value)}]` : value;\n var core1 = formattedValue[0] === \"-\" && formattedValue[1] !== \"[\" ? `-${entry.prefix}-${formattedValue.slice(1)}` : formattedValue ? `${entry.prefix}-${formattedValue}` : entry.prefix;\n var candidate2 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core1}` : core1;\n var whole1 = wholeClassUtilities[core1];\n if (whole1) {\n if (valueKind === \"token\") {\n if (!config || !hasTokenDomain(config, entry.tokenCategory)) return null;\n } else if (config) {\n var _parsed_entry1;\n var parsed2 = parseCandidate(candidate2, config);\n if ((parsed2 === null || parsed2 === void 0 ? void 0 : parsed2.kind) === \"utility\") {\n return parsed2.properties && prop in parsed2.properties && String(parsed2.properties[prop]) === value ? candidate2 : null;\n }\n return (parsed2 === null || parsed2 === void 0 ? void 0 : (_parsed_entry1 = parsed2.entry) === null || _parsed_entry1 === void 0 ? void 0 : _parsed_entry1.prop) === prop && parsed2.valueKind === valueKind ? candidate2 : null;\n } else if (prop in whole1 && String(whole1[prop]) === value) {\n return candidate2;\n } else {\n return null;\n }\n }\n if (valueKind === \"token\") {\n var _parsed_entry2;\n if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate2, config || {})) {\n return null;\n }\n var parsed3 = parseCandidate(candidate2, tokenValidationConfig(entry, value, config));\n var parsedValue = (parsed3 === null || parsed3 === void 0 ? void 0 : parsed3.rawValue) ? `${parsed3.negative ? \"-\" : \"\"}${parsed3.rawValue}` : null;\n if ((parsed3 === null || parsed3 === void 0 ? void 0 : parsed3.kind) !== \"dynamic\" || ((_parsed_entry2 = parsed3.entry) === null || _parsed_entry2 === void 0 ? void 0 : _parsed_entry2.prop) !== prop || parsed3.valueKind !== \"token\" || parsedValue !== value) {\n return null;\n }\n return candidate2;\n }\n var parsed4 = parseCandidate(candidate2, config || {});\n if (!parsed4 || ((_parsed_entry = parsed4.entry) === null || _parsed_entry === void 0 ? void 0 : _parsed_entry.prop) !== prop || parsed4.valueKind !== valueKind) return null;\n return candidate2;\n}\nfunction encodeArbitrary(value) {\n var encoded = \"\";\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var char = _step.value;\n if (char === \"\\\\\" || char === \"_\" || char === \"[\" || char === \"]\") {\n encoded += `\\\\${char}`;\n } else if (/\\s/.test(char)) {\n encoded += \"_\";\n } else {\n encoded += char;\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 return encoded;\n}\nfunction decodeArbitrary(value) {\n var decoded = \"\";\n for (var index = 0; index < value.length; index++) {\n var char = value[index];\n if (char === \"\\\\\" && index + 1 < value.length) {\n decoded += value[++index];\n } else {\n decoded += char === \"_\" ? \" \" : char;\n }\n }\n return decoded;\n}\nexport {\n classifyCandidate,\n decimalHalfTokenAlias,\n decodeArbitrary,\n encodeArbitrary,\n formatCandidate,\n hasTokenName,\n parseCandidate,\n resolveTokenName,\n splitCandidate,\n tailwindLeadingRatios,\n tailwindTrackingEms\n};\n//# sourceMappingURL=candidate.js.map\n"],"mappings":";;;;;;;;;AAOA,IAAI,qCAAqC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,+BAA+B,IAAI,IAAI;CACzC;CACA;CACA;AACF,CAAC;AACD,IAAI,iBAAiB;AACrB,IAAI,wBAAwB;CAC1B,MAAM;CACN,OAAO;CACP,MAAM;CACN,QAAQ;CACR,SAAS;CACT,OAAO;AACT;AACA,IAAI,sBAAsB;CACxB,SAAS,CAAC;CACV,OAAO,CAAC;CACR,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AACA,IAAI,gBAAgB;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,IAAI,qCAAqC,IAAI,IAAI;CAC/C;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,IAAI,qCAAqC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,mCAAmC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,sCAAsC,IAAI,IAAI;CAChD;CACA;CACA;AACF,CAAC;AACD,IAAI,uCAAuC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,iBAAiB;AACrB,IAAI,mBAAmB,IAAI,OAAO,0BAA0B,eAAe,IAAI,GAAG;AAClF,SAAS,QAAQ,OAAO,MAAM;CAC5B,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,SAAS,IAAI;CACpD,IAAI,iB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"}
|
|
1
|
+
{"version":3,"file":"candidate.native.js","names":[],"sources":["esm/tooling/candidate.native.js"],"sourcesContent":["import { namedCssColors } from \"../runtime/namedCssColors\";\nimport { propTokenGroupFallbacks } from \"./config\";\nimport { grammarEntries, fontWeightNames, insetAxisProps, prefixToEntries, propToGrammarEntry, radiusCornerProps, sizeUtilityProps, standaloneValueProps, textAlignKeywords, wholeClassConveniences, wholeClassUtilities } from \"./registry\";\nimport { canonicalClauseModifier, containerModifierSizeEnd, parseGroupModifier } from \"../runtime/clauseIdentity\";\nimport { compileModifierVocabulary, modifierKindMedia } from \"../runtime/modifierVocabulary\";\nimport { splitColorOpacitySuffix } from \"../runtime/colorOpacity\";\nimport { getSafeAreaEdge } from \"../runtime/safeAreaVariables\";\nvar sizingConveniences = /* @__PURE__ */ new Set([\n \"full\",\n \"auto\",\n \"screen\",\n \"dvh\",\n \"lvh\",\n \"svh\",\n \"dvw\",\n \"lvw\",\n \"svw\",\n \"min\",\n \"max\",\n \"fit\"\n]);\nvar fontGenerics = /* @__PURE__ */ new Set([\n \"sans\",\n \"serif\",\n \"mono\"\n]);\nvar numericPattern = /^\\d+(?:\\.\\d+)?$/;\nvar tailwindLeadingRatios = {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2\n};\nvar tailwindTrackingEms = {\n tighter: -0.05,\n tight: -0.025,\n normal: 0,\n wide: 0.025,\n wider: 0.05,\n widest: 0.1\n};\nvar extraPrefixes = [\n \"border-x\",\n \"border-y\",\n \"rounded-t\",\n \"rounded-r\",\n \"rounded-b\",\n \"rounded-l\",\n \"rounded-s\",\n \"rounded-e\",\n \"inset-x\",\n \"inset-y\",\n \"size\",\n \"translate\"\n];\nvar negativeTokenProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\",\n \"zIndex\",\n \"x\",\n \"y\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skewX\",\n \"skewY\",\n \"order\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"letterSpacing\",\n \"outlineOffset\"\n]);\nvar positionSpaceProps = /* @__PURE__ */ new Set([\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"inset\",\n \"insetInlineStart\",\n \"insetInlineEnd\",\n \"insetBlockStart\",\n \"insetBlockEnd\",\n \"start\",\n \"end\"\n]);\nvar marginSpaceProps = /* @__PURE__ */ new Set([\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n \"marginInlineStart\",\n \"marginInlineEnd\",\n \"marginBlockStart\",\n \"marginBlockEnd\",\n \"marginHorizontal\",\n \"marginVertical\"\n]);\nvar borderWidthKeywords = /* @__PURE__ */ new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nvar ambiguousCssKeywords = /* @__PURE__ */ new Set([\n \"auto\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"groove\",\n \"hidden\",\n \"inherit\",\n \"initial\",\n \"inset\",\n \"none\",\n \"outset\",\n \"revert\",\n \"revert-layer\",\n \"ridge\",\n \"solid\",\n \"unset\"\n]);\nvar cssLengthUnits = \"(?:px|em|rem|ex|ch|cap|ic|lh|rlh|vw|vh|vmin|vmax|svw|svh|svmin|svmax|lvw|lvh|lvmin|lvmax|dvw|dvh|dvmin|dvmax|cm|mm|q|in|pt|pc)\";\nvar cssLengthPattern = new RegExp(`^-?(?:\\\\d+|\\\\d*\\\\.\\\\d+)${cssLengthUnits}$`, \"i\");\nfunction hasName(names, name) {\n if (!names) return false;\n if (Array.isArray(names)) return names.includes(name);\n if (names instanceof Set) return names.has(name);\n return name in names;\n}\nfunction splitCandidate(candidate) {\n var parts = [];\n var current = \"\";\n var bracketDepth = 0;\n var escaped = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidate[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var char = _step.value;\n if (escaped) {\n current += char;\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n current += char;\n escaped = true;\n continue;\n }\n if (char === \"[\") bracketDepth++;\n if (char === \"]\") bracketDepth--;\n if (char === \":\" && bracketDepth === 0) {\n parts.push(current);\n current = \"\";\n } else {\n current += char;\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 (!current || bracketDepth !== 0) return null;\n return {\n modifiers: parts,\n base: current\n };\n}\nvar modifierVocabularyCache = /* @__PURE__ */ new WeakMap();\nvar modifierKindGroup = 5;\nvar modifierKindContainer = 6;\nfunction getModifierVocabulary(config) {\n var vocabulary = modifierVocabularyCache.get(config);\n if (!vocabulary) {\n vocabulary = compileModifierVocabulary(config);\n modifierVocabularyCache.set(config, vocabulary);\n }\n return vocabulary;\n}\nfunction modifierKindCode(modifier, config) {\n var vocabulary = getModifierVocabulary(config);\n var exact = vocabulary[modifier];\n if (exact !== void 0) return exact & 7;\n if (parseGroupModifier(modifier)) return modifierKindGroup;\n var sizeEnd = containerModifierSizeEnd(modifier);\n if (sizeEnd === -1) return 0;\n var size = modifier.slice(1, sizeEnd);\n return (vocabulary[size] & 7) === modifierKindMedia && (config.containerSizeNames === void 0 || hasName(config.containerSizeNames, size)) ? modifierKindContainer : 0;\n}\nfunction normalizeModifiers(modifiers, config) {\n var normalized = [];\n var seen = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = modifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var modifier = _step.value;\n var canonical = canonicalClauseModifier(modifier);\n var kind = modifierKindCode(canonical, config);\n if (!kind || seen.has(kind)) return null;\n seen.add(kind);\n normalized.push(canonical);\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 normalized;\n}\nfunction tokenDomain(config, category) {\n var _config_tokenNames, _config_tokenNames1;\n var fallback = propTokenGroupFallbacks[category];\n return ((_config_tokenNames = config.tokenNames) === null || _config_tokenNames === void 0 ? void 0 : _config_tokenNames[category]) || (fallback ? (_config_tokenNames1 = config.tokenNames) === null || _config_tokenNames1 === void 0 ? void 0 : _config_tokenNames1[fallback] : void 0);\n}\nfunction hasTokenDomain(config, category) {\n return tokenDomain(config, category) !== void 0;\n}\nfunction hasTokenName(config, category, name) {\n return resolveTokenName(config, category, name) !== null;\n}\nfunction decimalHalfTokenAlias(name) {\n var match = /^(-?\\d+)\\.5$/.exec(name);\n return match ? `${match[1]}-5` : null;\n}\nfunction resolveTokenName(config, category, name) {\n var names = tokenDomain(config, category);\n if (hasName(names, name)) return name;\n var alias = decimalHalfTokenAlias(name);\n return alias !== null && hasName(names, alias) ? alias : null;\n}\nfunction entriesForProps(props) {\n var byProp = new Map(grammarEntries.map(function(entry2) {\n return [\n entry2.prop,\n entry2\n ];\n }));\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n var entry = byProp.get(prop);\n if (entry) out.push(entry);\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 out;\n}\nfunction resolveEntries(prefix, config) {\n var _config_shorthands;\n var registered = prefixToEntries[prefix];\n if (prefix === \"text\") {\n return entriesForProps([\n \"fontSize\",\n \"textAlign\",\n \"color\"\n ]);\n }\n if (registered) return registered;\n if (prefix === \"border-x\" || prefix === \"border-y\") {\n var sides = prefix === \"border-x\" ? [\n \"Left\",\n \"Right\"\n ] : [\n \"Top\",\n \"Bottom\"\n ];\n return entriesForProps(sides.flatMap(function(side) {\n return [\n `border${side}Width`,\n `border${side}Color`\n ];\n }));\n }\n if (prefix === \"size\") {\n return entriesForProps(sizeUtilityProps).map(function(entry) {\n return {\n ...entry,\n tokenCategory: \"size\"\n };\n });\n }\n if (prefix === \"inset-x\" || prefix === \"inset-y\") {\n return entriesForProps(insetAxisProps[prefix.slice(\"inset-\".length)]);\n }\n if (prefix === \"translate\") {\n return entriesForProps([\n \"x\",\n \"y\"\n ]);\n }\n if (prefix.startsWith(\"rounded-\")) {\n var props = radiusCornerProps[prefix.slice(\"rounded-\".length)];\n return props ? entriesForProps(props) : [];\n }\n var expanded = (_config_shorthands = config.shorthands) === null || _config_shorthands === void 0 ? void 0 : _config_shorthands[prefix];\n if (!expanded) return [];\n return grammarEntries.filter(function(entry) {\n return entry.prop === expanded;\n });\n}\nfunction findPrefix(base, config) {\n var prefixes = new Set(Object.keys(prefixToEntries));\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = extraPrefixes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prefix = _step.value;\n prefixes.add(prefix);\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 shorthand in config.shorthands) prefixes.add(shorthand);\n var found = null;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = prefixes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var prefix1 = _step1.value;\n if (base.startsWith(`${prefix1}-`) && (!found || prefix1.length > found.length)) {\n found = prefix1;\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 return found;\n}\nfunction arbitraryInner(rawValue) {\n if (rawValue.length <= 2 || rawValue[0] !== \"[\" || rawValue.at(-1) !== \"]\") {\n return null;\n }\n var inner = rawValue.slice(1, -1);\n return arbitraryValueIsBalanced(decodeArbitrary(inner)) ? inner : null;\n}\nfunction arbitraryValueIsBalanced(value) {\n var opening = /* @__PURE__ */ new Set([\n \"(\",\n \"[\",\n \"{\"\n ]);\n var matching = {\n \")\": \"(\",\n \"]\": \"[\",\n \"}\": \"{\"\n };\n var stack = [];\n var quote = \"\";\n var escaped = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var char = _step.value;\n if (escaped) {\n escaped = false;\n continue;\n }\n if (char === \"\\\\\") {\n escaped = true;\n continue;\n }\n if (quote) {\n if (char === quote) quote = \"\";\n continue;\n }\n if (char === '\"' || char === \"'\") {\n quote = char;\n continue;\n }\n if (opening.has(char)) {\n stack.push(char);\n continue;\n }\n var expected = matching[char];\n if (expected && stack.pop() !== expected) return false;\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 !escaped && !quote && stack.length === 0;\n}\nfunction fractionIsValid(value) {\n var fraction = /^(\\d+)\\/(\\d+)$/.exec(value);\n return !!fraction && Number(fraction[2]) !== 0;\n}\nfunction arbitraryTextKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"fontSize\";\n if (cssLengthPattern.test(value) || /^(?:calc|min|max|clamp)\\(/.test(value)) {\n return \"fontSize\";\n }\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || namedCssColors.has(value.toLowerCase())) {\n return \"color\";\n }\n if (/^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) return \"fontSize\";\n return null;\n}\nfunction isWidthColorPrefix(prefix) {\n return prefix.startsWith(\"border\") || prefix === \"outline\";\n}\nfunction arbitraryBorderKind(value) {\n if (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(value)) return \"width\";\n if (cssLengthPattern.test(value) || borderWidthKeywords.has(value)) return \"width\";\n if (/^(?:calc|min|max|clamp)\\(/.test(value)) return \"width\";\n if (ambiguousCssKeywords.has(value) || value.startsWith(\"var(\")) return null;\n if (value.startsWith(\"#\") || /^(?:rgb|hsl|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\\(/.test(value) || /^[a-zA-Z][a-zA-Z0-9-]*$/.test(value)) {\n return \"color\";\n }\n return null;\n}\nfunction tokenLookupName(category, value) {\n if (category !== \"color\") return value;\n var suffix = splitColorOpacitySuffix(value);\n return suffix.kind === \"none\" ? value : suffix.name;\n}\nfunction chooseEntry(entries, prefix, rawValue, negative, config) {\n if (getSafeAreaEdge(rawValue)) {\n var entry = entries.find(function(param) {\n var { tokenCategory } = param;\n return tokenCategory === \"space\" || tokenCategory === \"size\" || tokenCategory === \"radius\" || tokenCategory === \"fontSize\" || tokenCategory === \"lineHeight\" || tokenCategory === \"letterSpacing\";\n });\n if (entry) {\n return {\n entry,\n valueKind: \"convenience\",\n convenience: \"safe-area\"\n };\n }\n }\n var arbitrary = arbitraryInner(rawValue);\n if (arbitrary !== null) {\n if (!arbitrary) return null;\n if (isWidthColorPrefix(prefix)) {\n var width = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Width\");\n });\n var color = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Color\");\n });\n var kind = arbitraryBorderKind(decodeArbitrary(arbitrary));\n if (!kind || !width || !color) return null;\n return {\n entry: kind === \"width\" ? width : color,\n valueKind: \"arbitrary\"\n };\n }\n if (prefix === \"text\") {\n var kind1 = arbitraryTextKind(decodeArbitrary(arbitrary));\n var fontSize = entries.find(function(entry3) {\n return entry3.prop === \"fontSize\";\n });\n var color1 = entries.find(function(entry3) {\n return entry3.prop === \"color\";\n });\n if (kind1 === \"fontSize\" && fontSize) {\n return {\n entry: fontSize,\n valueKind: \"arbitrary\"\n };\n }\n if (kind1 === \"color\" && color1) {\n return {\n entry: color1,\n valueKind: \"arbitrary\"\n };\n }\n return null;\n }\n if (prefix === \"font\") {\n return {\n entry: entries.find(function(entry3) {\n return entry3.prop === \"fontFamily\";\n }),\n valueKind: \"arbitrary\"\n };\n }\n return {\n entry: entries[0],\n valueKind: \"arbitrary\"\n };\n }\n if (prefix === \"text\") {\n var fontSize1 = entries.find(function(entry3) {\n return entry3.prop === \"fontSize\";\n });\n if (fontSize1 && hasTokenName(config, \"fontSize\", rawValue)) {\n return {\n entry: fontSize1,\n valueKind: \"token\"\n };\n }\n if (textAlignKeywords.has(rawValue)) {\n return {\n entry: entries.find(function(entry3) {\n return entry3.prop === \"textAlign\";\n }),\n valueKind: \"enum\"\n };\n }\n var color2 = entries.find(function(entry3) {\n return entry3.prop === \"color\";\n });\n if (color2 && rawValue === \"transparent\") {\n return {\n entry: color2,\n valueKind: \"enum\"\n };\n }\n var colorName = tokenLookupName(\"color\", rawValue);\n if (color2 && hasTokenName(config, \"color\", colorName)) {\n return {\n entry: color2,\n valueKind: \"token\"\n };\n }\n return null;\n }\n if (prefix === \"font\") {\n var fontFamily = entries.find(function(entry3) {\n return entry3.prop === \"fontFamily\";\n });\n var fontWeight = entries.find(function(entry3) {\n return entry3.prop === \"fontWeight\";\n });\n if (!fontFamily) return null;\n var matchesFamily = hasTokenName(config, \"fontFamily\", rawValue);\n var matchesWeight = fontWeight && hasTokenName(config, \"fontWeight\", rawValue);\n if (matchesFamily && matchesWeight) return null;\n if (matchesFamily) {\n return {\n entry: fontFamily,\n valueKind: \"token\"\n };\n }\n if (matchesWeight) {\n return {\n entry: fontWeight,\n valueKind: \"token\"\n };\n }\n return fontGenerics.has(rawValue) ? {\n entry: fontFamily,\n valueKind: \"convenience\",\n convenience: \"font-generic\"\n } : null;\n }\n if (isWidthColorPrefix(prefix)) {\n var width1 = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Width\");\n });\n var color3 = entries.find(function(entry3) {\n return entry3.prop.endsWith(\"Color\");\n });\n var token = negative ? `-${rawValue}` : rawValue;\n var widthCategory = (width1 === null || width1 === void 0 ? void 0 : width1.tokenCategory) || \"space\";\n var matchesWidth = width1 && hasTokenName(config, widthCategory, token);\n var colorName1 = tokenLookupName(\"color\", rawValue);\n var matchesColor = color3 && hasTokenName(config, \"color\", colorName1);\n if (matchesWidth && matchesColor) return null;\n if (matchesWidth) {\n return {\n entry: width1,\n valueKind: \"token\"\n };\n }\n if (matchesColor) {\n return {\n entry: color3,\n valueKind: \"token\"\n };\n }\n if (color3 && rawValue === \"transparent\") {\n return {\n entry: color3,\n valueKind: \"enum\"\n };\n }\n return null;\n }\n if (prefix === \"flex\" && fractionIsValid(rawValue)) {\n var flex = entries.find(function(entry3) {\n return entry3.prop === \"flex\";\n });\n if (flex) {\n return {\n entry: flex,\n valueKind: \"convenience\",\n convenience: \"flex-bundle\"\n };\n }\n }\n if (prefix === \"tracking\" && Object.hasOwn(tailwindTrackingEms, rawValue)) {\n var letterSpacing = entries.find(function(entry3) {\n return entry3.prop === \"letterSpacing\";\n });\n if (letterSpacing) {\n return {\n entry: letterSpacing,\n valueKind: \"convenience\",\n convenience: \"tracking-keyword\"\n };\n }\n }\n if (prefix === \"leading\" && Object.hasOwn(tailwindLeadingRatios, rawValue)) {\n var lineHeight = entries.find(function(entry3) {\n return entry3.prop === \"lineHeight\";\n });\n if (lineHeight) {\n return {\n entry: lineHeight,\n valueKind: \"convenience\",\n convenience: \"leading-keyword\"\n };\n }\n }\n if (numericPattern.test(rawValue)) {\n var angle = entries.find(function(entry3) {\n var _entry_conveniences2;\n return (_entry_conveniences2 = entry3.conveniences) === null || _entry_conveniences2 === void 0 ? void 0 : _entry_conveniences2.includes(\"angle\");\n });\n if (angle) {\n return {\n entry: angle,\n valueKind: \"convenience\",\n convenience: \"angle\"\n };\n }\n if (prefix === \"flex\") {\n var flex1 = entries.find(function(entry3) {\n return entry3.prop === \"flex\";\n });\n if (flex1) return {\n entry: flex1,\n valueKind: \"convenience\",\n convenience: \"flex-bundle\"\n };\n }\n if (prefix === \"grow\") {\n var grow = entries.find(function(entry3) {\n return entry3.prop === \"flexGrow\";\n });\n if (grow) return {\n entry: grow,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (prefix === \"shrink\") {\n var shrink = entries.find(function(entry3) {\n return entry3.prop === \"flexShrink\";\n });\n if (shrink) return {\n entry: shrink,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (prefix === \"line-clamp\") {\n var clamp = entries.find(function(entry3) {\n return entry3.prop === \"numberOfLines\";\n });\n if (clamp) return {\n entry: clamp,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (prefix === \"leading\") {\n var lineHeight1 = entries.find(function(entry3) {\n return entry3.prop === \"lineHeight\";\n });\n if (lineHeight1 && (!lineHeight1.tokenCategory || !hasTokenName(config, lineHeight1.tokenCategory, rawValue))) {\n return {\n entry: lineHeight1,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n }\n if (prefix === \"grid-cols\" || prefix === \"col-span\" || prefix === \"col-start\" || prefix === \"col-end\" || prefix === \"row-span\" || prefix === \"row-start\" || prefix === \"row-end\") {\n var entry1 = entries[0];\n if (entry1) return {\n entry: entry1,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry2 = _step.value;\n var _entry_conveniences;\n if (entry2.tokenCategory) {\n var _entry_conveniences1;\n if (entry2.tokenCategory === \"color\" && rawValue === \"transparent\") {\n return {\n entry: entry2,\n valueKind: \"enum\"\n };\n }\n if (entry2.tokenCategory === \"radius\" && rawValue === \"none\") {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"zero\"\n };\n }\n var name = negative && rawValue !== \"0\" ? `-${rawValue}` : rawValue;\n var tokenName = tokenLookupName(entry2.tokenCategory, name);\n if (hasTokenName(config, entry2.tokenCategory, tokenName)) {\n return {\n entry: entry2,\n valueKind: \"token\"\n };\n }\n if (((_entry_conveniences1 = entry2.conveniences) === null || _entry_conveniences1 === void 0 ? void 0 : _entry_conveniences1.includes(\"sizing-keyword\")) && (sizingConveniences.has(rawValue) || fractionIsValid(rawValue))) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"sizing-keyword\"\n };\n }\n if (positionSpaceProps.has(entry2.prop) && (rawValue === \"full\" || rawValue === \"auto\" || fractionIsValid(rawValue))) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"sizing-keyword\"\n };\n }\n if (marginSpaceProps.has(entry2.prop) && rawValue === \"auto\") {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"sizing-keyword\"\n };\n }\n if (entry2.tokenCategory === \"zIndex\" && numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (numericPattern.test(rawValue) && (entry2.tokenCategory === \"space\" || entry2.tokenCategory === \"size\" || propTokenGroupFallbacks[entry2.tokenCategory] === \"size\")) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"spacing-scale\"\n };\n }\n continue;\n }\n if (prefix === \"opacity\" || prefix === \"scale\" || prefix === \"scale-x\" || prefix === \"scale-y\") {\n if (numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"percentage\"\n };\n }\n continue;\n }\n if (entry2.prop === \"zIndex\" && numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"integer\"\n };\n }\n if (((_entry_conveniences = entry2.conveniences) === null || _entry_conveniences === void 0 ? void 0 : _entry_conveniences.includes(\"integer\")) && numericPattern.test(rawValue)) {\n return {\n entry: entry2,\n valueKind: \"convenience\",\n convenience: \"integer\"\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 return null;\n}\nfunction parseCandidate(candidate, config) {\n var split = splitCandidate(candidate);\n if (!split) return null;\n var modifiers = normalizeModifiers(split.modifiers, config);\n if (!modifiers) return null;\n var negative = split.base[0] === \"-\";\n var core = negative ? split.base.slice(1) : split.base;\n var prefix = findPrefix(core, config);\n var dynamic;\n if (prefix) {\n var rawValue = core.slice(prefix.length + 1);\n if (rawValue) {\n var entries = resolveEntries(prefix, config);\n var selected = chooseEntry(entries, prefix, rawValue, negative, config);\n if (selected && (!negative || selected.convenience === \"tracking-keyword\" || negativeTokenProps.has(selected.entry.prop) && (selected.valueKind === \"token\" || selected.valueKind === \"arbitrary\" && selected.entry.prop === \"order\" || selected.convenience === \"angle\" || selected.convenience === \"percentage\" || selected.convenience === \"sizing-keyword\" || selected.convenience === \"spacing-scale\" || selected.convenience === \"integer\"))) {\n dynamic = {\n prefix,\n rawValue,\n selected\n };\n if (selected.valueKind === \"token\") {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix,\n rawValue,\n arbitrary: arbitraryInner(rawValue) !== null,\n entry: selected.entry,\n valueKind: selected.valueKind,\n convenience: selected.convenience\n };\n }\n }\n }\n }\n var direct = wholeClassUtilities[split.base];\n if (!negative && direct && (split.base !== \"shadow\" || hasTokenName(config, \"boxShadow\", \"sm\"))) {\n var convenience = wholeClassConveniences[split.base];\n return {\n candidate,\n base: split.base,\n modifiers,\n kind: \"utility\",\n valueKind: convenience ? \"convenience\" : \"enum\",\n properties: direct,\n convenience,\n negative: false\n };\n }\n if (dynamic) {\n return {\n candidate,\n base: split.base,\n modifiers,\n negative,\n kind: \"dynamic\",\n prefix: dynamic.prefix,\n rawValue: dynamic.rawValue,\n arbitrary: arbitraryInner(dynamic.rawValue) !== null,\n entry: dynamic.selected.entry,\n valueKind: dynamic.selected.valueKind,\n convenience: dynamic.selected.convenience\n };\n }\n return null;\n}\nfunction classifyCandidate(candidate, config) {\n var parsed = parseCandidate(candidate, config);\n return parsed ? {\n kind: \"tamagui\",\n parsed\n } : {\n kind: \"passthrough\",\n reason: \"not in the configured Tamagui grammar\"\n };\n}\nfunction tokenValidationConfig(entry, value, config) {\n var tokenNames = {\n ...config === null || config === void 0 ? void 0 : config.tokenNames\n };\n var category = entry.tokenCategory;\n if (tokenNames[category] === void 0) {\n tokenNames[category] = [\n tokenLookupName(category, value)\n ];\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = (prefixToEntries[entry.prefix] || [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var other = _step.value;\n if (other.tokenCategory && tokenNames[other.tokenCategory] === void 0) {\n tokenNames[other.tokenCategory] = [];\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 return {\n ...config,\n tokenNames\n };\n}\nfunction formatCandidate(param, config) {\n var { prop, value, valueKind, modifiers = [] } = param;\n var _parsed_entry;\n var entry = propToGrammarEntry[prop];\n if (!entry) return null;\n if (valueKind === \"arbitrary\" && value === \"\") return null;\n var normalizedModifiers = normalizeModifiers(modifiers, config || {});\n if (!normalizedModifiers) return null;\n if (valueKind === \"enum\") {\n var _standaloneValueProps_prop;\n var whole = (_standaloneValueProps_prop = standaloneValueProps[prop]) === null || _standaloneValueProps_prop === void 0 ? void 0 : _standaloneValueProps_prop[value];\n if (whole) {\n var candidate = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${whole}` : whole;\n if (config) {\n var parsed = parseCandidate(candidate, config);\n if (!(parsed === null || parsed === void 0 ? void 0 : parsed.properties) || parsed.properties[prop] !== value) return null;\n }\n return candidate;\n }\n if (prop === \"fontWeight\") {\n var _wholeClassUtilities_core;\n var name = fontWeightNames[value];\n if (!name) return null;\n var core = `font-${name}`;\n if (String((_wholeClassUtilities_core = wholeClassUtilities[core]) === null || _wholeClassUtilities_core === void 0 ? void 0 : _wholeClassUtilities_core.fontWeight) !== value) return null;\n var candidate1 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core}` : core;\n if (config) {\n var parsed1 = parseCandidate(candidate1, config);\n if (!(parsed1 === null || parsed1 === void 0 ? void 0 : parsed1.properties) || String(parsed1.properties.fontWeight) !== value) {\n return null;\n }\n }\n return candidate1;\n }\n }\n if (!entry.prefix) return null;\n if (valueKind === \"token\") {\n if (!entry.tokenCategory) return null;\n var sourceDomainKnown = !!config && hasTokenDomain(config, entry.tokenCategory);\n var lookupName = tokenLookupName(entry.tokenCategory, value);\n if (sourceDomainKnown && !hasTokenName(config, entry.tokenCategory, lookupName)) return null;\n var colliding = prefixToEntries[entry.prefix].filter(function(other2) {\n return other2.prop !== prop && other2.tokenCategory;\n });\n if (colliding.length) {\n if (!config || !sourceDomainKnown) return null;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = colliding[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var other = _step.value;\n if (!hasTokenDomain(config, other.tokenCategory)) return null;\n if (hasTokenName(config, other.tokenCategory, value)) return null;\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 }\n }\n var formattedValue = valueKind === \"arbitrary\" ? `[${encodeArbitrary(value)}]` : value;\n var core1 = formattedValue[0] === \"-\" && formattedValue[1] !== \"[\" ? `-${entry.prefix}-${formattedValue.slice(1)}` : formattedValue ? `${entry.prefix}-${formattedValue}` : entry.prefix;\n var candidate2 = normalizedModifiers.length ? `${normalizedModifiers.join(\":\")}:${core1}` : core1;\n var whole1 = wholeClassUtilities[core1];\n if (whole1) {\n if (valueKind === \"token\") {\n if (!config || !hasTokenDomain(config, entry.tokenCategory)) return null;\n } else if (config) {\n var _parsed_entry1;\n var parsed2 = parseCandidate(candidate2, config);\n if ((parsed2 === null || parsed2 === void 0 ? void 0 : parsed2.kind) === \"utility\") {\n return parsed2.properties && prop in parsed2.properties && String(parsed2.properties[prop]) === value ? candidate2 : null;\n }\n return (parsed2 === null || parsed2 === void 0 ? void 0 : (_parsed_entry1 = parsed2.entry) === null || _parsed_entry1 === void 0 ? void 0 : _parsed_entry1.prop) === prop && parsed2.valueKind === valueKind ? candidate2 : null;\n } else if (prop in whole1 && String(whole1[prop]) === value) {\n return candidate2;\n } else {\n return null;\n }\n }\n if (valueKind === \"token\") {\n var _parsed_entry2;\n if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate2, config || {})) {\n return null;\n }\n var parsed3 = parseCandidate(candidate2, tokenValidationConfig(entry, value, config));\n var parsedValue = (parsed3 === null || parsed3 === void 0 ? void 0 : parsed3.rawValue) ? `${parsed3.negative ? \"-\" : \"\"}${parsed3.rawValue}` : null;\n if ((parsed3 === null || parsed3 === void 0 ? void 0 : parsed3.kind) !== \"dynamic\" || ((_parsed_entry2 = parsed3.entry) === null || _parsed_entry2 === void 0 ? void 0 : _parsed_entry2.prop) !== prop || parsed3.valueKind !== \"token\" || parsedValue !== value) {\n return null;\n }\n return candidate2;\n }\n var parsed4 = parseCandidate(candidate2, config || {});\n if (!parsed4 || ((_parsed_entry = parsed4.entry) === null || _parsed_entry === void 0 ? void 0 : _parsed_entry.prop) !== prop || parsed4.valueKind !== valueKind) return null;\n return candidate2;\n}\nfunction encodeArbitrary(value) {\n var encoded = \"\";\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var char = _step.value;\n if (char === \"\\\\\" || char === \"_\" || char === \"[\" || char === \"]\") {\n encoded += `\\\\${char}`;\n } else if (/\\s/.test(char)) {\n encoded += \"_\";\n } else {\n encoded += char;\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 return encoded;\n}\nfunction decodeArbitrary(value) {\n var decoded = \"\";\n for (var index = 0; index < value.length; index++) {\n var char = value[index];\n if (char === \"\\\\\" && index + 1 < value.length) {\n decoded += value[++index];\n } else {\n decoded += char === \"_\" ? \" \" : char;\n }\n }\n return decoded;\n}\nexport {\n classifyCandidate,\n decimalHalfTokenAlias,\n decodeArbitrary,\n encodeArbitrary,\n formatCandidate,\n hasTokenName,\n parseCandidate,\n resolveTokenName,\n splitCandidate,\n tailwindLeadingRatios,\n tailwindTrackingEms\n};\n//# sourceMappingURL=candidate.js.map\n"],"mappings":";;;;;;;;;AAOA,IAAI,qCAAqC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,+BAA+B,IAAI,IAAI;CACzC;CACA;CACA;AACF,CAAC;AACD,IAAI,iBAAiB;AACrB,IAAI,wBAAwB;CAC1B,MAAM;CACN,OAAO;CACP,MAAM;CACN,QAAQ;CACR,SAAS;CACT,OAAO;AACT;AACA,IAAI,sBAAsB;CACxB,SAAS,CAAC;CACV,OAAO,CAAC;CACR,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AACA,IAAI,gBAAgB;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,IAAI,qCAAqC,IAAI,IAAI;CAC/C;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,IAAI,qCAAqC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,mCAAmC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,sCAAsC,IAAI,IAAI;CAChD;CACA;CACA;AACF,CAAC;AACD,IAAI,uCAAuC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,IAAI,iBAAiB;AACrB,IAAI,mBAAmB,IAAI,OAAO,0BAA0B,eAAe,IAAI,GAAG;AAClF,SAAS,QAAQ,OAAO,MAAM;CAC5B,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,SAAS,IAAI;CACpD,IAAI,iB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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/style-grammar",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {},
|
|
86
86
|
"devDependencies": {
|
|
87
|
-
"@tamagui/build": "3.1.
|
|
87
|
+
"@tamagui/build": "3.1.10",
|
|
88
88
|
"vitest": "4.1.11"
|
|
89
89
|
},
|
|
90
90
|
"repository": {
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"url": "git+https://github.com/tamagui/tamagui.git",
|
|
93
93
|
"directory": "code/core/style-grammar"
|
|
94
94
|
},
|
|
95
|
-
"releaseSourceCommit": "
|
|
95
|
+
"releaseSourceCommit": "667a06425e709c73431628b364929dba4aa3bca1"
|
|
96
96
|
}
|
package/src/tooling/candidate.ts
CHANGED
|
@@ -718,6 +718,15 @@ function chooseEntry(
|
|
|
718
718
|
if (entry.tokenCategory === 'zIndex' && numericPattern.test(rawValue)) {
|
|
719
719
|
return { entry, valueKind: 'convenience', convenience: 'integer' }
|
|
720
720
|
}
|
|
721
|
+
// tailwind spacing is any number times 4px, so h-10.5 needs no token
|
|
722
|
+
if (
|
|
723
|
+
numericPattern.test(rawValue) &&
|
|
724
|
+
(entry.tokenCategory === 'space' ||
|
|
725
|
+
entry.tokenCategory === 'size' ||
|
|
726
|
+
propTokenGroupFallbacks[entry.tokenCategory] === 'size')
|
|
727
|
+
) {
|
|
728
|
+
return { entry, valueKind: 'convenience', convenience: 'spacing-scale' }
|
|
729
|
+
}
|
|
721
730
|
continue
|
|
722
731
|
}
|
|
723
732
|
if (
|
|
@@ -775,6 +784,7 @@ export function parseCandidate(
|
|
|
775
784
|
selected.convenience === 'angle' ||
|
|
776
785
|
selected.convenience === 'percentage' ||
|
|
777
786
|
selected.convenience === 'sizing-keyword' ||
|
|
787
|
+
selected.convenience === 'spacing-scale' ||
|
|
778
788
|
selected.convenience === 'integer')))
|
|
779
789
|
) {
|
|
780
790
|
dynamic = { prefix, rawValue, selected }
|