@tamagui/style-grammar 3.1.9 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -684,6 +684,13 @@ function chooseEntry(entries, prefix, rawValue, negative, config) {
684
684
  convenience: "integer"
685
685
  };
686
686
  }
687
+ if (numericPattern.test(rawValue) && (entry.tokenCategory === "space" || entry.tokenCategory === "size" || import_config.propTokenGroupFallbacks[entry.tokenCategory] === "size")) {
688
+ return {
689
+ entry,
690
+ valueKind: "convenience",
691
+ convenience: "spacing-scale"
692
+ };
693
+ }
687
694
  continue;
688
695
  }
689
696
  if (prefix === "opacity" || prefix === "scale" || prefix === "scale-x" || prefix === "scale-y") {
@@ -727,7 +734,7 @@ function parseCandidate(candidate, config) {
727
734
  if (rawValue) {
728
735
  const entries = resolveEntries(prefix, config);
729
736
  const selected = chooseEntry(entries, prefix, rawValue, negative, config);
730
- 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"))) {
737
+ 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"))) {
731
738
  dynamic = {
732
739
  prefix,
733
740
  rawValue,
@@ -874,7 +881,8 @@ function formatCandidate({ prop, value, valueKind, modifiers = [] }, config) {
874
881
  }
875
882
  }
876
883
  if (valueKind === "token") {
877
- if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate, config || {})) {
884
+ const untokened = !hasTokenDomain(config || {}, entry.tokenCategory) ? parseCandidate(candidate, config || {}) : null;
885
+ if (untokened && untokened.convenience !== "spacing-scale") {
878
886
  return null;
879
887
  }
880
888
  const parsed2 = parseCandidate(candidate, tokenValidationConfig(entry, value, config));
@@ -851,6 +851,13 @@ function chooseEntry(entries, prefix, rawValue, negative, config) {
851
851
  convenience: "integer"
852
852
  };
853
853
  }
854
+ if (numericPattern.test(rawValue) && (entry2.tokenCategory === "space" || entry2.tokenCategory === "size" || import_config.propTokenGroupFallbacks[entry2.tokenCategory] === "size")) {
855
+ return {
856
+ entry: entry2,
857
+ valueKind: "convenience",
858
+ convenience: "spacing-scale"
859
+ };
860
+ }
854
861
  continue;
855
862
  }
856
863
  if (prefix === "opacity" || prefix === "scale" || prefix === "scale-x" || prefix === "scale-y") {
@@ -908,7 +915,7 @@ function parseCandidate(candidate, config) {
908
915
  if (rawValue) {
909
916
  var entries = resolveEntries(prefix, config);
910
917
  var selected = chooseEntry(entries, prefix, rawValue, negative, config);
911
- 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"))) {
918
+ 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"))) {
912
919
  dynamic = {
913
920
  prefix,
914
921
  rawValue,
@@ -1097,7 +1104,8 @@ function formatCandidate(param, config) {
1097
1104
  }
1098
1105
  if (valueKind === "token") {
1099
1106
  var _parsed_entry2;
1100
- if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate2, config || {})) {
1107
+ var untokened = !hasTokenDomain(config || {}, entry.tokenCategory) ? parseCandidate(candidate2, config || {}) : null;
1108
+ if (untokened && untokened.convenience !== "spacing-scale") {
1101
1109
  return null;
1102
1110
  }
1103
1111
  var parsed3 = parseCandidate(candidate2, tokenValidationConfig(entry, value, config));
@@ -851,6 +851,13 @@ function chooseEntry(entries, prefix, rawValue, negative, config) {
851
851
  convenience: "integer"
852
852
  };
853
853
  }
854
+ if (numericPattern.test(rawValue) && (entry2.tokenCategory === "space" || entry2.tokenCategory === "size" || import_config.propTokenGroupFallbacks[entry2.tokenCategory] === "size")) {
855
+ return {
856
+ entry: entry2,
857
+ valueKind: "convenience",
858
+ convenience: "spacing-scale"
859
+ };
860
+ }
854
861
  continue;
855
862
  }
856
863
  if (prefix === "opacity" || prefix === "scale" || prefix === "scale-x" || prefix === "scale-y") {
@@ -908,7 +915,7 @@ function parseCandidate(candidate, config) {
908
915
  if (rawValue) {
909
916
  var entries = resolveEntries(prefix, config);
910
917
  var selected = chooseEntry(entries, prefix, rawValue, negative, config);
911
- 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"))) {
918
+ 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"))) {
912
919
  dynamic = {
913
920
  prefix,
914
921
  rawValue,
@@ -1097,7 +1104,8 @@ function formatCandidate(param, config) {
1097
1104
  }
1098
1105
  if (valueKind === "token") {
1099
1106
  var _parsed_entry2;
1100
- if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate2, config || {})) {
1107
+ var untokened = !hasTokenDomain(config || {}, entry.tokenCategory) ? parseCandidate(candidate2, config || {}) : null;
1108
+ if (untokened && untokened.convenience !== "spacing-scale") {
1101
1109
  return null;
1102
1110
  }
1103
1111
  var parsed3 = parseCandidate(candidate2, tokenValidationConfig(entry, value, config));
@@ -1 +1 @@
1
- {"version":3,"file":"candidate.native.js","names":[],"sources":["cjs/tooling/candidate.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar candidate_exports = {};\n__export(candidate_exports, {\n classifyCandidate: () => classifyCandidate,\n decimalHalfTokenAlias: () => decimalHalfTokenAlias,\n decodeArbitrary: () => decodeArbitrary,\n encodeArbitrary: () => encodeArbitrary,\n formatCandidate: () => formatCandidate,\n hasTokenName: () => hasTokenName,\n parseCandidate: () => parseCandidate,\n resolveTokenName: () => resolveTokenName,\n splitCandidate: () => splitCandidate,\n tailwindLeadingRatios: () => tailwindLeadingRatios,\n tailwindTrackingEms: () => tailwindTrackingEms\n});\nmodule.exports = __toCommonJS(candidate_exports);\nvar import_namedCssColors = require(\"../runtime/namedCssColors\");\nvar import_config = require(\"./config\");\nvar import_registry = require(\"./registry\");\nvar import_clauseIdentity = require(\"../runtime/clauseIdentity\");\nvar import_modifierVocabulary = require(\"../runtime/modifierVocabulary\");\nvar import_colorOpacity = require(\"../runtime/colorOpacity\");\nvar import_safeAreaVariables = require(\"../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 = (0, import_modifierVocabulary.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 ((0, import_clauseIdentity.parseGroupModifier)(modifier)) return modifierKindGroup;\n var sizeEnd = (0, import_clauseIdentity.containerModifierSizeEnd)(modifier);\n if (sizeEnd === -1) return 0;\n var size = modifier.slice(1, sizeEnd);\n return (vocabulary[size] & 7) === import_modifierVocabulary.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 = (0, import_clauseIdentity.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 = import_config.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(import_registry.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 = import_registry.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(import_registry.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(import_registry.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 = import_registry.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 import_registry.grammarEntries.filter(function(entry) {\n return entry.prop === expanded;\n });\n}\nfunction findPrefix(base, config) {\n var prefixes = new Set(Object.keys(import_registry.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) || import_namedCssColors.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 = (0, import_colorOpacity.splitColorOpacitySuffix)(value);\n return suffix.kind === \"none\" ? value : suffix.name;\n}\nfunction chooseEntry(entries, prefix, rawValue, negative, config) {\n if ((0, import_safeAreaVariables.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 (import_registry.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 = import_registry.wholeClassUtilities[split.base];\n if (!negative && direct && (split.base !== \"shadow\" || hasTokenName(config, \"boxShadow\", \"sm\"))) {\n var convenience = import_registry.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 = (import_registry.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 = import_registry.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 = import_registry.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 = import_registry.fontWeightNames[value];\n if (!name) return null;\n var core = `font-${name}`;\n if (String((_wholeClassUtilities_core = import_registry.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 = import_registry.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 = import_registry.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}\n//# sourceMappingURL=candidate.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,oBAAoB,CAAC;AACzB,SAAS,mBAAmB;CAC1B,yBAAyB;CACzB,6BAA6B;CAC7B,uBAAuB;CACvB,uBAAuB;CACvB,uBAAuB;CACvB,oBAAoB;CACpB,sBAAsB;CACtB,wBAAwB;CACxB,sBAAsB;CACtB,6BAA6B;CAC7B,2BAA2B;AAC7B,CAAC;AACD,OAAO,UAAU,aAAa,iBAAiB;AAC/C,IAAI,wBAAwB,QAAQ,qCAA2B;AAC/D,IAAI,gBAAgB,QAAQ,oBAAU;AACtC,IAAI,kBAAkB,QAAQ,sBAAY;AAC1C,IAAI,wBAAwB,QAAQ,qCAA2B;AAC/D,IAAI,4BAA4B,QAAQ,yCAA+B;AACvE,IAAI,sBAAsB,QAAQ,mCAAyB;AAC3D,IAAI,2BAA2B,QAAQ,wCAA8B;AACrE,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,iBAAiB,KAAK,OAAO,MAAM,IAAI,IAAI;CAC/C,OAAO,QAAQ;AACjB;AACA,SAAS,eAAe,WAAW;CACjC,IAAI,QAAQ,CAAC;CACb,IAAI,UAAU;CACd,IAAI,eAAe;CACnB,IAAI,UAAU;CACd,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,UAAU,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC1J,IAAI,OAAO,MAAM;GACjB,IAAI,SAAS;IACX,WAAW;IACX,UAAU;IACV;GACF;GACA,IAAI,SAAS,MAAM;IACjB,WAAW;IACX,UAAU;IACV;GACF;GACA,IAAI,SAAS,KAAK;GAClB,IAAI,SAAS,KAAK;GAClB,IAAI,SAAS,OAAO,iBAAiB,GAAG;IACtC,MAAM,KAAK,OAAO;IAClB,UAAU;GACZ,OAAO;IACL,WAAW;GACb;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,CAAC,WAAW,iBAAiB,GAAG,OAAO;CAC3C,OAAO;EACL,WAAW;EACX,MAAM;CACR;AACF;AACA,IAAI,0CAA0C,IAAI,QAAQ;AAC1D,IAAI,oBAAoB;AACxB,IAAI,wBAAwB;AAC5B,SAAS,sBAAsB,QAAQ;CACrC,IAAI,aAAa,wBAAwB,IAAI,MAAM;CACnD,IAAI,CAAC,YAAY;EACf,cAAc,GAAG,0BAA0B,0BAAyB,CAAE,MAAM;EAC5E,wBAAwB,IAAI,QAAQ,UAAU;CAChD;CACA,OAAO;AACT;AACA,SAAS,iBAAiB,UAAU,QAAQ;CAC1C,IAAI,aAAa,sBAAsB,MAAM;CAC7C,IAAI,QAAQ,WAAW;CACvB,IAAI,UAAU,KAAK,GAAG,OAAO,QAAQ;CACrC,KAAK,GAAG,sBAAsB,mBAAkB,CAAE,QAAQ,GAAG,OAAO;CACpE,IAAI,WAAW,GAAG,sBAAsB,yBAAwB,CAAE,QAAQ;CAC1E,IAAI,YAAY,CAAC,GAAG,OAAO;CAC3B,IAAI,OAAO,SAAS,MAAM,GAAG,OAAO;CACpC,QAAQ,WAAW,QAAQ,OAAO,0BAA0B,sBAAsB,OAAO,uBAAuB,KAAK,KAAK,QAAQ,OAAO,oBAAoB,IAAI,KAAK,wBAAwB;AAChM;AACA,SAAS,mBAAmB,WAAW,QAAQ;CAC7C,IAAI,aAAa,CAAC;CAClB,IAAI,uBAAuB,IAAI,IAAI;CACnC,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,UAAU,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC1J,IAAI,WAAW,MAAM;GACrB,IAAI,aAAa,GAAG,sBAAsB,wBAAuB,CAAE,QAAQ;GAC3E,IAAI,OAAO,iBAAiB,WAAW,MAAM;GAC7C,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,OAAO;GACpC,KAAK,IAAI,IAAI;GACb,WAAW,KAAK,SAAS;EAC3B;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,YAAY,QAAQ,UAAU;CACrC,IAAI,oBAAoB;CACxB,IAAI,WAAW,cAAc,wBAAwB;CACrD,SAAS,qBAAqB,OAAO,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,eAAe,YAAY,sBAAsB,OAAO,gBAAgB,QAAQ,wBAAwB,KAAK,IAAI,KAAK,IAAI,oBAAoB,YAAY,KAAK;AAC1R;AACA,SAAS,eAAe,QAAQ,UAAU;CACxC,OAAO,YAAY,QAAQ,QAAQ,MAAM,KAAK;AAChD;AACA,SAAS,aAAa,QAAQ,UAAU,MAAM;CAC5C,OAAO,iBAAiB,QAAQ,UAAU,IAAI,MAAM;AACtD;AACA,SAAS,sBAAsB,MAAM;CACnC,IAAI,QAAQ,eAAe,KAAK,IAAI;CACpC,OAAO,QAAQ,GAAG,MAAM,GAAG,MAAM;AACnC;AACA,SAAS,iBAAiB,QAAQ,UAAU,MAAM;CAChD,IAAI,QAAQ,YAAY,QAAQ,QAAQ;CACxC,IAAI,QAAQ,OAAO,IAAI,GAAG,OAAO;CACjC,IAAI,QAAQ,sBAAsB,IAAI;CACtC,OAAO,UAAU,QAAQ,QAAQ,OAAO,KAAK,IAAI,QAAQ;AAC3D;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,SAAS,IAAI,IAAI,gBAAgB,eAAe,IAAI,SAAS,QAAQ;EACvE,OAAO,CACL,OAAO,MACP,MACF;CACF,CAAC,CAAC;CACF,IAAI,MAAM,CAAC;CACX,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,MAAM,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACtJ,IAAI,OAAO,MAAM;GACjB,IAAI,QAAQ,OAAO,IAAI,IAAI;GAC3B,IAAI,OAAO,IAAI,KAAK,KAAK;EAC3B;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,eAAe,QAAQ,QAAQ;CACtC,IAAI;CACJ,IAAI,aAAa,gBAAgB,gBAAgB;CACjD,IAAI,WAAW,QAAQ;EACrB,OAAO,gBAAgB;GACrB;GACA;GACA;EACF,CAAC;CACH;CACA,IAAI,YAAY,OAAO;CACvB,IAAI,WAAW,cAAc,WAAW,YAAY;EAClD,IAAI,QAAQ,WAAW,aAAa,CAClC,QACA,OACF,IAAI,CACF,OACA,QACF;EACA,OAAO,gBAAgB,MAAM,QAAQ,SAAS,MAAM;GAClD,OAAO,CACL,SAAS,KAAK,QACd,SAAS,KAAK,MAChB;EACF,CAAC,CAAC;CACJ;CACA,IAAI,WAAW,QAAQ;EACrB,OAAO,gBAAgB,gBAAgB,gBAAgB,CAAC,CAAC,IAAI,SAAS,OAAO;GAC3E,OAAO;IACL,GAAG;IACH,eAAe;GACjB;EACF,CAAC;CACH;CACA,IAAI,WAAW,aAAa,WAAW,WAAW;EAChD,OAAO,gBAAgB,gBAAgB,eAAe,OAAO,MAAM,SAAS,MAAM,EAAE;CACtF;CACA,IAAI,WAAW,aAAa;EAC1B,OAAO,gBAAgB,CACrB,KACA,GACF,CAAC;CACH;CACA,IAAI,OAAO,WAAW,UAAU,GAAG;EACjC,IAAI,QAAQ,gBAAgB,kBAAkB,OAAO,MAAM,WAAW,MAAM;EAC5E,OAAO,QAAQ,gBAAgB,KAAK,IAAI,CAAC;CAC3C;CACA,IAAI,YAAY,qBAAqB,OAAO,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB;CAChI,IAAI,CAAC,UAAU,OAAO,CAAC;CACvB,OAAO,gBAAgB,eAAe,OAAO,SAAS,OAAO;EAC3D,OAAO,MAAM,SAAS;CACxB,CAAC;AACH;AACA,SAAS,WAAW,MAAM,QAAQ;CAChC,IAAI,WAAW,IAAI,IAAI,OAAO,KAAK,gBAAgB,eAAe,CAAC;CACnE,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,cAAc,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC9J,IAAI,SAAS,MAAM;GACnB,SAAS,IAAI,MAAM;EACrB;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,KAAK,IAAI,aAAa,OAAO,YAAY,SAAS,IAAI,SAAS;CAC/D,IAAI,QAAQ;CACZ,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;CAC1F,IAAI;EACF,KAAK,IAAI,aAAa,SAAS,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;GAC/J,IAAI,UAAU,OAAO;GACrB,IAAI,KAAK,WAAW,GAAG,QAAQ,EAAE,MAAM,CAAC,SAAS,QAAQ,SAAS,MAAM,SAAS;IAC/E,QAAQ;GACV;EACF;CACF,SAAS,KAAK;EACZ,qBAAqB;EACrB,kBAAkB;CACpB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;IAC5D,WAAW,OAAO;GACpB;EACF,UAAU;GACR,IAAI,oBAAoB;IACtB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,eAAe,UAAU;CAChC,IAAI,SAAS,UAAU,KAAK,SAAS,OAAO,OAAO,SAAS,GAAG,CAAC,CAAC,MAAM,KAAK;EAC1E,OAAO;CACT;CACA,IAAI,QAAQ,SAAS,MAAM,GAAG,CAAC,CAAC;CAChC,OAAO,yBAAyB,gBAAgB,KAAK,CAAC,IAAI,QAAQ;AACpE;AACA,SAAS,yBAAyB,OAAO;CACvC,IAAI,0BAA0B,IAAI,IAAI;EACpC;EACA;EACA;CACF,CAAC;CACD,IAAI,WAAW;EACb,KAAK;EACL,KAAK;EACL,KAAK;CACP;CACA,IAAI,QAAQ,CAAC;CACb,IAAI,QAAQ;CACZ,IAAI,UAAU;CACd,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,MAAM,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACtJ,IAAI,OAAO,MAAM;GACjB,IAAI,SAAS;IACX,UAAU;IACV;GACF;GACA,IAAI,SAAS,MAAM;IACjB,UAAU;IACV;GACF;GACA,IAAI,OAAO;IACT,IAAI,SAAS,OAAO,QAAQ;IAC5B;GACF;GACA,IAAI,SAAS,QAAO,SAAS,KAAK;IAChC,QAAQ;IACR;GACF;GACA,IAAI,QAAQ,IAAI,IAAI,GAAG;IACrB,MAAM,KAAK,IAAI;IACf;GACF;GACA,IAAI,WAAW,SAAS;GACxB,IAAI,YAAY,MAAM,IAAI,MAAM,UAAU,OAAO;EACnD;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO,CAAC,WAAW,CAAC,SAAS,MAAM,WAAW;AAChD;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,WAAW,iBAAiB,KAAK,KAAK;CAC1C,OAAO,CAAC,CAAC,YAAY,OAAO,SAAS,EAAE,MAAM;AAC/C;AACA,SAAS,kBAAkB,OAAO;CAChC,IAAI,uBAAuB,KAAK,KAAK,GAAG,OAAO;CAC/C,IAAI,iBAAiB,KAAK,KAAK,KAAK,4BAA4B,KAAK,KAAK,GAAG;EAC3E,OAAO;CACT;CACA,IAAI,qBAAqB,IAAI,KAAK,KAAK,MAAM,WAAW,MAAM,GAAG,OAAO;CACxE,IAAI,MAAM,WAAW,GAAG,KAAK,oEAAoE,KAAK,KAAK,KAAK,sBAAsB,eAAe,IAAI,MAAM,YAAY,CAAC,GAAG;EAC7K,OAAO;CACT;CACA,IAAI,0BAA0B,KAAK,KAAK,GAAG,OAAO;CAClD,OAAO;AACT;AACA,SAAS,mBAAmB,QAAQ;CAClC,OAAO,OAAO,WAAW,QAAQ,KAAK,WAAW;AACnD;AACA,SAAS,oBAAoB,OAAO;CAClC,IAAI,uBAAuB,KAAK,KAAK,GAAG,OAAO;CAC/C,IAAI,iBAAiB,KAAK,KAAK,KAAK,oBAAoB,IAAI,KAAK,GAAG,OAAO;CAC3E,IAAI,4BAA4B,KAAK,KAAK,GAAG,OAAO;CACpD,IAAI,qBAAqB,IAAI,KAAK,KAAK,MAAM,WAAW,MAAM,GAAG,OAAO;CACxE,IAAI,MAAM,WAAW,GAAG,KAAK,oEAAoE,KAAK,KAAK,KAAK,0BAA0B,KAAK,KAAK,GAAG;EACrJ,OAAO;CACT;CACA,OAAO;AACT;AACA,SAAS,gBAAgB,UAAU,OAAO;CACxC,IAAI,aAAa,SAAS,OAAO;CACjC,IAAI,UAAU,GAAG,oBAAoB,wBAAuB,CAAE,KAAK;CACnE,OAAO,OAAO,SAAS,SAAS,QAAQ,OAAO;AACjD;AACA,SAAS,YAAY,SAAS,QAAQ,UAAU,UAAU,QAAQ;CAChE,KAAK,GAAG,yBAAyB,gBAAe,CAAE,QAAQ,GAAG;EAC3D,IAAI,QAAQ,QAAQ,KAAK,SAAS,OAAO;GACvC,IAAI,EAAE,kBAAkB;GACxB,OAAO,kBAAkB,WAAW,kBAAkB,UAAU,kBAAkB,YAAY,kBAAkB,cAAc,kBAAkB,gBAAgB,kBAAkB;EACpL,CAAC;EACD,IAAI,OAAO;GACT,OAAO;IACL;IACA,WAAW;IACX,aAAa;GACf;EACF;CACF;CACA,IAAI,YAAY,eAAe,QAAQ;CACvC,IAAI,cAAc,MAAM;EACtB,IAAI,CAAC,WAAW,OAAO;EACvB,IAAI,mBAAmB,MAAM,GAAG;GAC9B,IAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ;IACxC,OAAO,OAAO,KAAK,SAAS,OAAO;GACrC,CAAC;GACD,IAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ;IACxC,OAAO,OAAO,KAAK,SAAS,OAAO;GACrC,CAAC;GACD,IAAI,OAAO,oBAAoB,gBAAgB,SAAS,CAAC;GACzD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,OAAO;GACtC,OAAO;IACL,OAAO,SAAS,UAAU,QAAQ;IAClC,WAAW;GACb;EACF;EACA,IAAI,WAAW,QAAQ;GACrB,IAAI,QAAQ,kBAAkB,gBAAgB,SAAS,CAAC;GACxD,IAAI,WAAW,QAAQ,KAAK,SAAS,QAAQ;IAC3C,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,SAAS,QAAQ,KAAK,SAAS,QAAQ;IACzC,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,UAAU,cAAc,UAAU;IACpC,OAAO;KACL,OAAO;KACP,WAAW;IACb;GACF;GACA,IAAI,UAAU,WAAW,QAAQ;IAC/B,OAAO;KACL,OAAO;KACP,WAAW;IACb;GACF;GACA,OAAO;EACT;EACA,IAAI,WAAW,QAAQ;GACrB,OAAO;IACL,OAAO,QAAQ,KAAK,SAAS,QAAQ;KACnC,OAAO,OAAO,SAAS;IACzB,CAAC;IACD,WAAW;GACb;EACF;EACA,OAAO;GACL,OAAO,QAAQ;GACf,WAAW;EACb;CACF;CACA,IAAI,WAAW,QAAQ;EACrB,IAAI,YAAY,QAAQ,KAAK,SAAS,QAAQ;GAC5C,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,aAAa,aAAa,QAAQ,YAAY,QAAQ,GAAG;GAC3D,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,IAAI,gBAAgB,kBAAkB,IAAI,QAAQ,GAAG;GACnD,OAAO;IACL,OAAO,QAAQ,KAAK,SAAS,QAAQ;KACnC,OAAO,OAAO,SAAS;IACzB,CAAC;IACD,WAAW;GACb;EACF;EACA,IAAI,SAAS,QAAQ,KAAK,SAAS,QAAQ;GACzC,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,UAAU,aAAa,eAAe;GACxC,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,IAAI,YAAY,gBAAgB,SAAS,QAAQ;EACjD,IAAI,UAAU,aAAa,QAAQ,SAAS,SAAS,GAAG;GACtD,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,OAAO;CACT;CACA,IAAI,WAAW,QAAQ;EACrB,IAAI,aAAa,QAAQ,KAAK,SAAS,QAAQ;GAC7C,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,aAAa,QAAQ,KAAK,SAAS,QAAQ;GAC7C,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,CAAC,YAAY,OAAO;EACxB,IAAI,gBAAgB,aAAa,QAAQ,cAAc,QAAQ;EAC/D,IAAI,gBAAgB,cAAc,aAAa,QAAQ,cAAc,QAAQ;EAC7E,IAAI,iBAAiB,eAAe,OAAO;EAC3C,IAAI,eAAe;GACjB,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,IAAI,eAAe;GACjB,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,OAAO,aAAa,IAAI,QAAQ,IAAI;GAClC,OAAO;GACP,WAAW;GACX,aAAa;EACf,IAAI;CACN;CACA,IAAI,mBAAmB,MAAM,GAAG;EAC9B,IAAI,SAAS,QAAQ,KAAK,SAAS,QAAQ;GACzC,OAAO,OAAO,KAAK,SAAS,OAAO;EACrC,CAAC;EACD,IAAI,SAAS,QAAQ,KAAK,SAAS,QAAQ;GACzC,OAAO,OAAO,KAAK,SAAS,OAAO;EACrC,CAAC;EACD,IAAI,QAAQ,WAAW,IAAI,aAAa;EACxC,IAAI,iBAAiB,WAAW,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,kBAAkB;EAC9F,IAAI,eAAe,UAAU,aAAa,QAAQ,eAAe,KAAK;EACtE,IAAI,aAAa,gBAAgB,SAAS,QAAQ;EAClD,IAAI,eAAe,UAAU,aAAa,QAAQ,SAAS,UAAU;EACrE,IAAI,gBAAgB,cAAc,OAAO;EACzC,IAAI,cAAc;GAChB,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,IAAI,cAAc;GAChB,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,IAAI,UAAU,aAAa,eAAe;GACxC,OAAO;IACL,OAAO;IACP,WAAW;GACb;EACF;EACA,OAAO;CACT;CACA,IAAI,WAAW,UAAU,gBAAgB,QAAQ,GAAG;EAClD,IAAI,OAAO,QAAQ,KAAK,SAAS,QAAQ;GACvC,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,MAAM;GACR,OAAO;IACL,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;CACF;CACA,IAAI,WAAW,cAAc,OAAO,OAAO,qBAAqB,QAAQ,GAAG;EACzE,IAAI,gBAAgB,QAAQ,KAAK,SAAS,QAAQ;GAChD,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,eAAe;GACjB,OAAO;IACL,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;CACF;CACA,IAAI,WAAW,aAAa,OAAO,OAAO,uBAAuB,QAAQ,GAAG;EAC1E,IAAI,aAAa,QAAQ,KAAK,SAAS,QAAQ;GAC7C,OAAO,OAAO,SAAS;EACzB,CAAC;EACD,IAAI,YAAY;GACd,OAAO;IACL,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;CACF;CACA,IAAI,eAAe,KAAK,QAAQ,GAAG;EACjC,IAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ;GACxC,IAAI;GACJ,QAAQ,uBAAuB,OAAO,kBAAkB,QAAQ,yBAAyB,KAAK,IAAI,KAAK,IAAI,qBAAqB,SAAS,OAAO;EAClJ,CAAC;EACD,IAAI,OAAO;GACT,OAAO;IACL,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;EACA,IAAI,WAAW,QAAQ;GACrB,IAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ;IACxC,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,OAAO,OAAO;IAChB,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;EACA,IAAI,WAAW,QAAQ;GACrB,IAAI,OAAO,QAAQ,KAAK,SAAS,QAAQ;IACvC,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,MAAM,OAAO;IACf,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;EACA,IAAI,WAAW,UAAU;GACvB,IAAI,SAAS,QAAQ,KAAK,SAAS,QAAQ;IACzC,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,QAAQ,OAAO;IACjB,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;EACA,IAAI,WAAW,cAAc;GAC3B,IAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ;IACxC,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,OAAO,OAAO;IAChB,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;EACA,IAAI,WAAW,WAAW;GACxB,IAAI,cAAc,QAAQ,KAAK,SAAS,QAAQ;IAC9C,OAAO,OAAO,SAAS;GACzB,CAAC;GACD,IAAI,gBAAgB,CAAC,YAAY,iBAAiB,CAAC,aAAa,QAAQ,YAAY,eAAe,QAAQ,IAAI;IAC7G,OAAO;KACL,OAAO;KACP,WAAW;KACX,aAAa;IACf;GACF;EACF;EACA,IAAI,WAAW,eAAe,WAAW,cAAc,WAAW,eAAe,WAAW,aAAa,WAAW,cAAc,WAAW,eAAe,WAAW,WAAW;GAChL,IAAI,SAAS,QAAQ;GACrB,IAAI,QAAQ,OAAO;IACjB,OAAO;IACP,WAAW;IACX,aAAa;GACf;EACF;CACF;CACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,QAAQ,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACxJ,IAAI,SAAS,MAAM;GACnB,IAAI;GACJ,IAAI,OAAO,eAAe;IACxB,IAAI;IACJ,IAAI,OAAO,kBAAkB,WAAW,aAAa,eAAe;KAClE,OAAO;MACL,OAAO;MACP,WAAW;KACb;IACF;IACA,IAAI,OAAO,kBAAkB,YAAY,aAAa,QAAQ;KAC5D,OAAO;MACL,OAAO;MACP,WAAW;MACX,aAAa;KACf;IACF;IACA,IAAI,OAAO,YAAY,aAAa,MAAM,IAAI,aAAa;IAC3D,IAAI,YAAY,gBAAgB,OAAO,eAAe,IAAI;IAC1D,IAAI,aAAa,QAAQ,OAAO,eAAe,SAAS,GAAG;KACzD,OAAO;MACL,OAAO;MACP,WAAW;KACb;IACF;IACA,MAAM,uBAAuB,OAAO,kBAAkB,QAAQ,yBAAyB,KAAK,IAAI,KAAK,IAAI,qBAAqB,SAAS,gBAAgB,OAAO,mBAAmB,IAAI,QAAQ,KAAK,gBAAgB,QAAQ,IAAI;KAC5N,OAAO;MACL,OAAO;MACP,WAAW;MACX,aAAa;KACf;IACF;IACA,IAAI,mBAAmB,IAAI,OAAO,IAAI,MAAM,aAAa,UAAU,aAAa,UAAU,gBAAgB,QAAQ,IAAI;KACpH,OAAO;MACL,OAAO;MACP,WAAW;MACX,aAAa;KACf;IACF;IACA,IAAI,iBAAiB,IAAI,OAAO,IAAI,KAAK,aAAa,QAAQ;KAC5D,OAAO;MACL,OAAO;MACP,WAAW;MACX,aAAa;KACf;IACF;IACA,IAAI,OAAO,kBAAkB,YAAY,eAAe,KAAK,QAAQ,GAAG;KACtE,OAAO;MACL,OAAO;MACP,WAAW;MACX,aAAa;KACf;IACF;IACA;GACF;GACA,IAAI,WAAW,aAAa,WAAW,WAAW,WAAW,aAAa,WAAW,WAAW;IAC9F,IAAI,eAAe,KAAK,QAAQ,GAAG;KACjC,OAAO;MACL,OAAO;MACP,WAAW;MACX,aAAa;KACf;IACF;IACA;GACF;GACA,IAAI,OAAO,SAAS,YAAY,eAAe,KAAK,QAAQ,GAAG;IAC7D,OAAO;KACL,OAAO;KACP,WAAW;KACX,aAAa;IACf;GACF;GACA,MAAM,sBAAsB,OAAO,kBAAkB,QAAQ,wBAAwB,KAAK,IAAI,KAAK,IAAI,oBAAoB,SAAS,SAAS,MAAM,eAAe,KAAK,QAAQ,GAAG;IAChL,OAAO;KACL,OAAO;KACP,WAAW;KACX,aAAa;IACf;GACF;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,eAAe,WAAW,QAAQ;CACzC,IAAI,QAAQ,eAAe,SAAS;CACpC,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,YAAY,mBAAmB,MAAM,WAAW,MAAM;CAC1D,IAAI,CAAC,WAAW,OAAO;CACvB,IAAI,WAAW,MAAM,KAAK,OAAO;CACjC,IAAI,OAAO,WAAW,MAAM,KAAK,MAAM,CAAC,IAAI,MAAM;CAClD,IAAI,SAAS,WAAW,MAAM,MAAM;CACpC,IAAI;CACJ,IAAI,QAAQ;EACV,IAAI,WAAW,KAAK,MAAM,OAAO,SAAS,CAAC;EAC3C,IAAI,UAAU;GACZ,IAAI,UAAU,eAAe,QAAQ,MAAM;GAC3C,IAAI,WAAW,YAAY,SAAS,QAAQ,UAAU,UAAU,MAAM;GACtE,IAAI,aAAa,CAAC,YAAY,SAAS,gBAAgB,sBAAsB,mBAAmB,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,cAAc,WAAW,SAAS,cAAc,eAAe,SAAS,MAAM,SAAS,WAAW,SAAS,gBAAgB,WAAW,SAAS,gBAAgB,gBAAgB,SAAS,gBAAgB,oBAAoB,SAAS,gBAAgB,aAAa;IACtY,UAAU;KACR;KACA;KACA;IACF;IACA,IAAI,SAAS,cAAc,SAAS;KAClC,OAAO;MACL;MACA,MAAM,MAAM;MACZ;MACA;MACA,MAAM;MACN;MACA;MACA,WAAW,eAAe,QAAQ,MAAM;MACxC,OAAO,SAAS;MAChB,WAAW,SAAS;MACpB,aAAa,SAAS;KACxB;IACF;GACF;EACF;CACF;CACA,IAAI,SAAS,gBAAgB,oBAAoB,MAAM;CACvD,IAAI,CAAC,YAAY,WAAW,MAAM,SAAS,YAAY,aAAa,QAAQ,aAAa,IAAI,IAAI;EAC/F,IAAI,cAAc,gBAAgB,uBAAuB,MAAM;EAC/D,OAAO;GACL;GACA,MAAM,MAAM;GACZ;GACA,MAAM;GACN,WAAW,cAAc,gBAAgB;GACzC,YAAY;GACZ;GACA,UAAU;EACZ;CACF;CACA,IAAI,SAAS;EACX,OAAO;GACL;GACA,MAAM,MAAM;GACZ;GACA;GACA,MAAM;GACN,QAAQ,QAAQ;GAChB,UAAU,QAAQ;GAClB,WAAW,eAAe,QAAQ,QAAQ,MAAM;GAChD,OAAO,QAAQ,SAAS;GACxB,WAAW,QAAQ,SAAS;GAC5B,aAAa,QAAQ,SAAS;EAChC;CACF;CACA,OAAO;AACT;AACA,SAAS,kBAAkB,WAAW,QAAQ;CAC5C,IAAI,SAAS,eAAe,WAAW,MAAM;CAC7C,OAAO,SAAS;EACd,MAAM;EACN;CACF,IAAI;EACF,MAAM;EACN,QAAQ;CACV;AACF;AACA,SAAS,sBAAsB,OAAO,OAAO,QAAQ;CACnD,IAAI,aAAa,EACf,GAAG,WAAW,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,WAC5D;CACA,IAAI,WAAW,MAAM;CACrB,IAAI,WAAW,cAAc,KAAK,GAAG;EACnC,WAAW,YAAY,CACrB,gBAAgB,UAAU,KAAK,CACjC;CACF;CACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,aAAa,gBAAgB,gBAAgB,MAAM,WAAW,CAAC,EAAC,CAAE,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACtM,IAAI,QAAQ,MAAM;GAClB,IAAI,MAAM,iBAAiB,WAAW,MAAM,mBAAmB,KAAK,GAAG;IACrE,WAAW,MAAM,iBAAiB,CAAC;GACrC;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;EACL,GAAG;EACH;CACF;AACF;AACA,SAAS,gBAAgB,OAAO,QAAQ;CACtC,IAAI,EAAE,MAAM,OAAO,WAAW,YAAY,CAAC,MAAM;CACjD,IAAI;CACJ,IAAI,QAAQ,gBAAgB,mBAAmB;CAC/C,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,cAAc,eAAe,UAAU,IAAI,OAAO;CACtD,IAAI,sBAAsB,mBAAmB,WAAW,UAAU,CAAC,CAAC;CACpE,IAAI,CAAC,qBAAqB,OAAO;CACjC,IAAI,cAAc,QAAQ;EACxB,IAAI;EACJ,IAAI,SAAS,6BAA6B,gBAAgB,qBAAqB,WAAW,QAAQ,+BAA+B,KAAK,IAAI,KAAK,IAAI,2BAA2B;EAC9K,IAAI,OAAO;GACT,IAAI,YAAY,oBAAoB,SAAS,GAAG,oBAAoB,KAAK,GAAG,EAAE,GAAG,UAAU;GAC3F,IAAI,QAAQ;IACV,IAAI,SAAS,eAAe,WAAW,MAAM;IAC7C,IAAI,EAAE,WAAW,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,eAAe,OAAO,WAAW,UAAU,OAAO,OAAO;GACxH;GACA,OAAO;EACT;EACA,IAAI,SAAS,cAAc;GACzB,IAAI;GACJ,IAAI,OAAO,gBAAgB,gBAAgB;GAC3C,IAAI,CAAC,MAAM,OAAO;GAClB,IAAI,OAAO,QAAQ;GACnB,IAAI,QAAQ,4BAA4B,gBAAgB,oBAAoB,WAAW,QAAQ,8BAA8B,KAAK,IAAI,KAAK,IAAI,0BAA0B,UAAU,MAAM,OAAO,OAAO;GACvM,IAAI,aAAa,oBAAoB,SAAS,GAAG,oBAAoB,KAAK,GAAG,EAAE,GAAG,SAAS;GAC3F,IAAI,QAAQ;IACV,IAAI,UAAU,eAAe,YAAY,MAAM;IAC/C,IAAI,EAAE,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,eAAe,OAAO,QAAQ,WAAW,UAAU,MAAM,OAAO;KAC9H,OAAO;IACT;GACF;GACA,OAAO;EACT;CACF;CACA,IAAI,CAAC,MAAM,QAAQ,OAAO;CAC1B,IAAI,cAAc,SAAS;EACzB,IAAI,CAAC,MAAM,eAAe,OAAO;EACjC,IAAI,oBAAoB,CAAC,CAAC,UAAU,eAAe,QAAQ,MAAM,aAAa;EAC9E,IAAI,aAAa,gBAAgB,MAAM,eAAe,KAAK;EAC3D,IAAI,qBAAqB,CAAC,aAAa,QAAQ,MAAM,eAAe,UAAU,GAAG,OAAO;EACxF,IAAI,YAAY,gBAAgB,gBAAgB,MAAM,OAAO,CAAC,OAAO,SAAS,QAAQ;GACpF,OAAO,OAAO,SAAS,QAAQ,OAAO;EACxC,CAAC;EACD,IAAI,UAAU,QAAQ;GACpB,IAAI,CAAC,UAAU,CAAC,mBAAmB,OAAO;GAC1C,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;GACvF,IAAI;IACF,KAAK,IAAI,YAAY,UAAU,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;KAC1J,IAAI,QAAQ,MAAM;KAClB,IAAI,CAAC,eAAe,QAAQ,MAAM,aAAa,GAAG,OAAO;KACzD,IAAI,aAAa,QAAQ,MAAM,eAAe,KAAK,GAAG,OAAO;IAC/D;GACF,SAAS,KAAK;IACZ,oBAAoB;IACpB,iBAAiB;GACnB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;MAC1D,UAAU,OAAO;KACnB;IACF,UAAU;KACR,IAAI,mBAAmB;MACrB,MAAM;KACR;IACF;GACF;EACF;CACF;CACA,IAAI,iBAAiB,cAAc,cAAc,IAAI,gBAAgB,KAAK,EAAE,KAAK;CACjF,IAAI,QAAQ,eAAe,OAAO,OAAO,eAAe,OAAO,MAAM,IAAI,MAAM,OAAO,GAAG,eAAe,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,OAAO,GAAG,mBAAmB,MAAM;CAClL,IAAI,aAAa,oBAAoB,SAAS,GAAG,oBAAoB,KAAK,GAAG,EAAE,GAAG,UAAU;CAC5F,IAAI,SAAS,gBAAgB,oBAAoB;CACjD,IAAI,QAAQ;EACV,IAAI,cAAc,SAAS;GACzB,IAAI,CAAC,UAAU,CAAC,eAAe,QAAQ,MAAM,aAAa,GAAG,OAAO;EACtE,OAAO,IAAI,QAAQ;GACjB,IAAI;GACJ,IAAI,UAAU,eAAe,YAAY,MAAM;GAC/C,KAAK,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,WAAW;IAClF,OAAO,QAAQ,cAAc,QAAQ,QAAQ,cAAc,OAAO,QAAQ,WAAW,KAAK,MAAM,QAAQ,aAAa;GACvH;GACA,QAAQ,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,KAAK,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,UAAU,QAAQ,QAAQ,cAAc,YAAY,aAAa;EAC9N,OAAO,IAAI,QAAQ,UAAU,OAAO,OAAO,KAAK,MAAM,OAAO;GAC3D,OAAO;EACT,OAAO;GACL,OAAO;EACT;CACF;CACA,IAAI,cAAc,SAAS;EACzB,IAAI;EACJ,IAAI,CAAC,eAAe,UAAU,CAAC,GAAG,MAAM,aAAa,KAAK,eAAe,YAAY,UAAU,CAAC,CAAC,GAAG;GAClG,OAAO;EACT;EACA,IAAI,UAAU,eAAe,YAAY,sBAAsB,OAAO,OAAO,MAAM,CAAC;EACpF,IAAI,eAAe,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,YAAY,GAAG,QAAQ,WAAW,MAAM,KAAK,QAAQ,aAAa;EAC/I,KAAK,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,eAAe,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,UAAU,QAAQ,QAAQ,cAAc,WAAW,gBAAgB,OAAO;GAChQ,OAAO;EACT;EACA,OAAO;CACT;CACA,IAAI,UAAU,eAAe,YAAY,UAAU,CAAC,CAAC;CACrD,IAAI,CAAC,aAAa,gBAAgB,QAAQ,WAAW,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,UAAU,QAAQ,QAAQ,cAAc,WAAW,OAAO;CACzK,OAAO;AACT;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,UAAU;CACd,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,MAAM,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACtJ,IAAI,OAAO,MAAM;GACjB,IAAI,SAAS,QAAQ,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;IACjE,WAAW,KAAK;GAClB,OAAO,IAAI,KAAK,KAAK,IAAI,GAAG;IAC1B,WAAW;GACb,OAAO;IACL,WAAW;GACb;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,UAAU;CACd,KAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;EACjD,IAAI,OAAO,MAAM;EACjB,IAAI,SAAS,QAAQ,QAAQ,IAAI,MAAM,QAAQ;GAC7C,WAAW,MAAM,EAAE;EACrB,OAAO;GACL,WAAW,SAAS,MAAM,MAAM;EAClC;CACF;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"candidate.native.js","names":[],"sources":["cjs/tooling/candidate.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar candidate_exports = {};\n__export(candidate_exports, {\n classifyCandidate: () => classifyCandidate,\n decimalHalfTokenAlias: () => decimalHalfTokenAlias,\n decodeArbitrary: () => decodeArbitrary,\n encodeArbitrary: () => encodeArbitrary,\n formatCandidate: () => formatCandidate,\n hasTokenName: () => hasTokenName,\n parseCandidate: () => parseCandidate,\n resolveTokenName: () => resolveTokenName,\n splitCandidate: () => splitCandidate,\n tailwindLeadingRatios: () => tailwindLeadingRatios,\n tailwindTrackingEms: () => tailwindTrackingEms\n});\nmodule.exports = __toCommonJS(candidate_exports);\nvar import_namedCssColors = require(\"../runtime/namedCssColors\");\nvar import_config = require(\"./config\");\nvar import_registry = require(\"./registry\");\nvar import_clauseIdentity = require(\"../runtime/clauseIdentity\");\nvar import_modifierVocabulary = require(\"../runtime/modifierVocabulary\");\nvar import_colorOpacity = require(\"../runtime/colorOpacity\");\nvar import_safeAreaVariables = require(\"../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 = (0, import_modifierVocabulary.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 ((0, import_clauseIdentity.parseGroupModifier)(modifier)) return modifierKindGroup;\n var sizeEnd = (0, import_clauseIdentity.containerModifierSizeEnd)(modifier);\n if (sizeEnd === -1) return 0;\n var size = modifier.slice(1, sizeEnd);\n return (vocabulary[size] & 7) === import_modifierVocabulary.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 = (0, import_clauseIdentity.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 = import_config.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(import_registry.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 = import_registry.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(import_registry.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(import_registry.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 = import_registry.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 import_registry.grammarEntries.filter(function(entry) {\n return entry.prop === expanded;\n });\n}\nfunction findPrefix(base, config) {\n var prefixes = new Set(Object.keys(import_registry.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) || import_namedCssColors.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 = (0, import_colorOpacity.splitColorOpacitySuffix)(value);\n return suffix.kind === \"none\" ? value : suffix.name;\n}\nfunction chooseEntry(entries, prefix, rawValue, negative, config) {\n if ((0, import_safeAreaVariables.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 (import_registry.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\" || import_config.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 = import_registry.wholeClassUtilities[split.base];\n if (!negative && direct && (split.base !== \"shadow\" || hasTokenName(config, \"boxShadow\", \"sm\"))) {\n var convenience = import_registry.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 = (import_registry.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 = import_registry.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 = import_registry.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 = import_registry.fontWeightNames[value];\n if (!name) return null;\n var core = `font-${name}`;\n if (String((_wholeClassUtilities_core = import_registry.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 = import_registry.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 = import_registry.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 var untokened = !hasTokenDomain(config || {}, entry.tokenCategory) ? parseCandidate(candidate2, config || {}) : null;\n if (untokened && untokened.convenience !== \"spacing-scale\") {\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}\n//# sourceMappingURL=candidate.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,oBAAoB,CAAC;AACzB,SAAS,mBAAmB;CAC1B,yBAAyB;CACzB,6BAA6B;CAC7B,uBAAuB;CACvB,uBAAuB;CACvB,uBAAuB;CACvB,oBAAoB;CACpB,sBAAsB;CACtB,wBAAwB;CACxB,sBAAsB;CACtB,6BAA6B;CAC7B,2BAA2B;AAC7B,CAAC;AACD,OAAO,UAAU,aAAa,iBAAiB;AAC/C,IAAI,wBAAwB,QAAQ,qCAA2B;AAC/D,IAAI,gBAAgB,QAAQ,oBAAU;AACtC,IAAI,kBAAkB,QAAQ,sBAAY;AAC1C,IAAI,wBAAwB,QAAQ,qCAA2B;AAC/D,IAAI,4BAA4B,QAAQ,yCAA+B;AACvE,IAAI,sBAAsB,QAAQ,mCAAyB;AAC3D,IAAI,2BAA2B,QAAQ,wCAA8B;AACrE,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,iBAAiB,KAAK,OAAO,MAAM,IAAI,IAAI;CAC/C,OAAO,QAAQ;AACjB;AACA,SAAS,eAAe,WAAW;CACjC,IAAI,QAAQ,CAAC;CACb,IAAI,UAAU;CACd,IAAI,eAAe;CACnB,IAAI,UAAU;CACd,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,UAAU,OAA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"}
@@ -650,6 +650,13 @@ function chooseEntry(entries, prefix, rawValue, negative, config) {
650
650
  convenience: "integer"
651
651
  };
652
652
  }
653
+ if (numericPattern.test(rawValue) && (entry.tokenCategory === "space" || entry.tokenCategory === "size" || propTokenGroupFallbacks[entry.tokenCategory] === "size")) {
654
+ return {
655
+ entry,
656
+ valueKind: "convenience",
657
+ convenience: "spacing-scale"
658
+ };
659
+ }
653
660
  continue;
654
661
  }
655
662
  if (prefix === "opacity" || prefix === "scale" || prefix === "scale-x" || prefix === "scale-y") {
@@ -693,7 +700,7 @@ function parseCandidate(candidate, config) {
693
700
  if (rawValue) {
694
701
  const entries = resolveEntries(prefix, config);
695
702
  const selected = chooseEntry(entries, prefix, rawValue, negative, config);
696
- 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"))) {
703
+ 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"))) {
697
704
  dynamic = {
698
705
  prefix,
699
706
  rawValue,
@@ -840,7 +847,8 @@ function formatCandidate({ prop, value, valueKind, modifiers = [] }, config) {
840
847
  }
841
848
  }
842
849
  if (valueKind === "token") {
843
- if (!hasTokenDomain(config || {}, entry.tokenCategory) && parseCandidate(candidate, config || {})) {
850
+ const untokened = !hasTokenDomain(config || {}, entry.tokenCategory) ? parseCandidate(candidate, config || {}) : null;
851
+ if (untokened && untokened.convenience !== "spacing-scale") {
844
852
  return null;
845
853
  }
846
854
  const parsed2 = parseCandidate(candidate, tokenValidationConfig(entry, value, config));