@tamagui/tailwind 3.0.0-beta.831.1 → 3.0.0-beta.889.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"candidate.native.js","names":[],"sources":["esm/candidate.native.js"],"sourcesContent":["import { isWeb } from \"@tamagui/constants\";\nimport { plainValueToPayload } from \"@tamagui/core/internal-runtime\";\nimport { borderSideSuffix, classifyCandidate, configRevisionSymbol, createGrammarConfigView, decodeArbitrary, getTokenCategory, getSafeAreaEdge, percentUtilityProps, radiusCornerProps, splitColorOpacitySuffix } from \"@tamagui/style-grammar/runtime\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar styleGrammarConfigCache = /* @__PURE__ */ new WeakMap();\nfunction getStyleGrammarConfig(config) {\n var _config_configRevisionSymbol;\n var cached = styleGrammarConfigCache.get(config);\n var revision = ((_config_configRevisionSymbol = config[configRevisionSymbol]) === null || _config_configRevisionSymbol === void 0 ? void 0 : _config_configRevisionSymbol.revision) || 0;\n if (cached && cached.revision === revision) return cached.value;\n var view = createGrammarConfigView(config);\n styleGrammarConfigCache.set(config, {\n revision,\n value: view\n });\n return view;\n}\nfunction isTokenValueProp(prop) {\n return getTokenCategory(prop) !== null;\n}\nfunction arbitraryValue(inner) {\n var px = /^(-?\\d*\\.?\\d+)px$/.exec(inner);\n if (px) return Number(px[1]);\n if (/^-?\\d*\\.?\\d+$/.test(inner)) return Number(inner);\n return inner;\n}\nfunction tailwindSizingValue(prop, value) {\n if (value === \"full\") return \"100%\";\n if (value === \"auto\") return \"auto\";\n if (value === \"screen\") return /[Hh]eight/.test(prop) ? \"100vh\" : \"100vw\";\n if (value === \"min\") return \"min-content\";\n if (value === \"max\") return \"max-content\";\n if (value === \"fit\") return \"fit-content\";\n var frac = /^(\\d+)\\/(\\d+)$/.exec(value);\n if (frac && Number(frac[2]) !== 0) {\n return `${Number(frac[1]) / Number(frac[2]) * 100}%`;\n }\n return null;\n}\nfunction borderDimValue(raw) {\n var inner = raw;\n if (raw.length > 1 && raw[0] === \"[\" && raw[raw.length - 1] === \"]\") {\n inner = decodeArbitrary(raw.slice(1, -1));\n }\n var px = /^(-?\\d*\\.?\\d+)px$/.exec(inner);\n if (px) return Number.parseFloat(px[1]);\n if (/^-?\\d*\\.?\\d+$/.test(inner)) return Number(inner);\n return inner;\n}\nfunction expandBorderCandidate(parsed, value) {\n var _parsed_entry;\n var prefix = parsed.prefix;\n if (!prefix) return null;\n if (prefix.startsWith(\"rounded-\")) {\n var props = radiusCornerProps[prefix.slice(\"rounded-\".length)];\n if (!props || props.length === 1) return null;\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 p = _step.value;\n out[p] = value;\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 }\n var m = /^border-([trblxy])$/.exec(prefix);\n if (!m) return null;\n var sides = borderSideSuffix[m[1]];\n var suffix = ((_parsed_entry = parsed.entry) === null || _parsed_entry === void 0 ? void 0 : _parsed_entry.prop.endsWith(\"Width\")) ? \"Width\" : \"Color\";\n var out1 = {};\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = sides[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var side = _step1.value;\n out1[`border${side}${suffix}`] = value;\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 out1;\n}\nfunction tailwindClassToFlatProp(parsed) {\n var _parsed_prefix;\n if (parsed.kind !== \"dynamic\" || !parsed.entry || parsed.rawValue === void 0) {\n return null;\n }\n var prop = parsed.entry.prop;\n var category = parsed.entry.tokenCategory;\n var value = parsed.rawValue;\n if (prop.endsWith(\"Width\") && ((_parsed_prefix = parsed.prefix) === null || _parsed_prefix === void 0 ? void 0 : _parsed_prefix.startsWith(\"border\"))) {\n if (parsed.valueKind === \"token\") {\n value = `${parsed.negative ? \"-\" : \"\"}${value}`;\n } else if (parsed.valueKind === \"arbitrary\") {\n value = borderDimValue(value);\n } else {\n return null;\n }\n return {\n key: prop,\n value\n };\n }\n if (prop === \"fontFamily\") {\n var famValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n famValue = decodeArbitrary(value.slice(1, -1));\n } else {\n var generic = {\n sans: \"sans-serif\",\n serif: \"serif\",\n mono: \"monospace\"\n };\n famValue = parsed.valueKind === \"token\" ? value : generic[value] || value;\n }\n return {\n key: \"fontFamily\",\n value: famValue\n };\n }\n if (prop === \"fontSize\") {\n var fsValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n fsValue = arbitraryValue(decodeArbitrary(value.slice(1, -1)));\n } else {\n fsValue = value;\n }\n return {\n key: \"fontSize\",\n value: fsValue\n };\n }\n if (prop === \"lineHeight\") {\n var lhValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n var inner = decodeArbitrary(value.slice(1, -1));\n lhValue = /^-?\\d*\\.?\\d+px$/.test(inner) ? Number.parseFloat(inner) : inner;\n } else {\n lhValue = value;\n }\n return {\n key: \"lineHeight\",\n value: lhValue\n };\n }\n if (prop === \"letterSpacing\") {\n var lsValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n lsValue = arbitraryValue(decodeArbitrary(value.slice(1, -1)));\n } else {\n lsValue = value;\n }\n return {\n key: \"letterSpacing\",\n value: lsValue\n };\n }\n if (prop === \"boxShadow\" && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n return {\n key: \"boxShadow\",\n value: decodeArbitrary(value.slice(1, -1))\n };\n }\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n var inner1 = decodeArbitrary(value.slice(1, -1));\n if (inner1 === \"\") return null;\n return {\n key: prop,\n value: arbitraryValue(inner1)\n };\n }\n if (category === \"size\" && parsed.valueKind !== \"token\") {\n var sized = tailwindSizingValue(prop, value);\n if (sized != null) {\n return {\n key: prop,\n value: sized\n };\n }\n }\n var opacitySuffix = \"\";\n if (category === \"color\" && typeof value === \"string\") {\n var suffix = splitColorOpacitySuffix(value);\n if (suffix.kind === \"invalid\") {\n return {\n key: prop,\n value\n };\n }\n if (suffix.kind === \"valid\") {\n opacitySuffix = value.slice(suffix.name.length);\n value = suffix.name;\n }\n }\n if (percentUtilityProps.has(prop) && /^\\d+$/.test(value)) {\n value = Number(value) / 100;\n } else if (/^\\d+(\\.\\d+)?$/.test(value)) {\n if (category === \"zIndex\" && parsed.valueKind === \"convenience\") {\n value = Number(value);\n } else if (category) {\n value = `${parsed.negative ? \"-\" : \"\"}${value}`;\n } else {\n value = Number(value);\n }\n } else if (typeof value === \"string\") {\n if (category && !((category === \"space\" || category === \"size\" || category === \"radius\") && getSafeAreaEdge(value))) {\n value = `${parsed.negative ? \"-\" : \"\"}${value}`;\n }\n }\n if (opacitySuffix && typeof value === \"string\") {\n value = `${value}${opacitySuffix}`;\n }\n if (parsed.negative && !category) {\n if (typeof value === \"number\") value = -value;\n else if (typeof value === \"string\" && value[0] !== \"-\") value = `-${value}`;\n }\n return {\n key: prop,\n value\n };\n}\nvar classPlanCache = /* @__PURE__ */ new WeakMap();\nfunction getClassPlanCache(grammarConfig) {\n var cache = classPlanCache.get(grammarConfig);\n if (!cache) {\n cache = /* @__PURE__ */ new Map();\n classPlanCache.set(grammarConfig, cache);\n }\n return cache;\n}\nfunction createPlanEntry(property, value, modifiers) {\n if (modifiers.length === 0) return [\n property,\n value\n ];\n var payload = plainValueToPayload(value, property);\n if (payload === null) return null;\n var condition = \"\";\n for (var index = 0; index < modifiers.length; index++) {\n if (index) condition += \":\";\n condition += modifiers[index];\n }\n return [\n property,\n payload,\n condition,\n modifiers\n ];\n}\nfunction computeClassPlan(cls, grammarConfig) {\n var groupMarker = /^group(?:\\/([A-Za-z0-9_-]+))?$/.exec(cls);\n if (groupMarker) {\n return {\n entries: [\n [\n \"group\",\n groupMarker[1] || true\n ]\n ],\n preserveRawClass: isWeb\n };\n }\n var containerMarker = /^@container(-size)?(?:\\/([A-Za-z0-9_-]+))?$/.exec(cls);\n if (containerMarker) {\n var isSize = containerMarker[1] !== void 0;\n var name = containerMarker[2];\n var entries = [];\n entries.push([\n \"container\",\n name || true\n ]);\n if (isSize) {\n entries.push([\n \"containerType\",\n \"size\"\n ]);\n }\n return {\n entries,\n preserveRawClass: isWeb\n };\n }\n var classification = classifyCandidate(cls, grammarConfig);\n if (classification.kind === \"passthrough\") {\n return isWeb ? \"raw\" : null;\n }\n var parsed = classification.parsed;\n var util = parsed.kind === \"utility\" ? parsed.properties : null;\n if (util) {\n var entries1 = [];\n for (var p in util) {\n var entry = createPlanEntry(p, util[p], parsed.modifiers);\n if (!entry) return \"raw\";\n entries1.push(entry);\n }\n return entries1;\n }\n var flatProp = tailwindClassToFlatProp(parsed);\n if (flatProp) {\n var expanded = expandBorderCandidate(parsed, flatProp.value);\n if (expanded) {\n var entries2 = [];\n for (var p1 in expanded) {\n var entry1 = createPlanEntry(p1, expanded[p1], parsed.modifiers);\n if (!entry1) return \"raw\";\n entries2.push(entry1);\n }\n return entries2;\n }\n var entry2 = createPlanEntry(flatProp.key, flatProp.value, parsed.modifiers);\n return entry2 ? [\n entry2\n ] : \"raw\";\n }\n return \"raw\";\n}\nfunction getTailwindClassPlan(candidate, config) {\n var grammarConfig = getStyleGrammarConfig(config);\n var plans = getClassPlanCache(grammarConfig);\n var plan = plans.get(candidate);\n if (plan === void 0) {\n plan = computeClassPlan(candidate, grammarConfig);\n plans.set(candidate, plan);\n }\n return plan;\n}\nfunction resolveTailwindClassName(className, config) {\n var result = {};\n var rawClassName = \"\";\n var start = 0;\n for (var index = 0; index <= className.length; index++) {\n if (index !== className.length && className.charCodeAt(index) > 32) continue;\n if (start === index) {\n start = index + 1;\n continue;\n }\n var candidate = className.slice(start, index);\n var plan = getTailwindClassPlan(candidate, config);\n if (plan === \"raw\") {\n rawClassName = rawClassName ? `${rawClassName} ${candidate}` : candidate;\n } else if (plan) {\n var parentPlan = plan;\n if (!Array.isArray(plan) && parentPlan.preserveRawClass) {\n rawClassName = rawClassName ? `${rawClassName} ${candidate}` : candidate;\n }\n var entries = Array.isArray(plan) ? plan : parentPlan.entries;\n for (var entryIndex = 0; entryIndex < entries.length; entryIndex++) {\n var [key, value, condition] = entries[entryIndex];\n var previous = result[key];\n var next = value;\n if (condition !== void 0) {\n next = previous && (typeof previous === \"undefined\" ? \"undefined\" : _type_of(previous)) === \"object\" && !Array.isArray(previous) ? {\n ...previous,\n [condition]: value\n } : previous === void 0 ? {\n [condition]: value\n } : {\n default: previous,\n [condition]: value\n };\n } else if (previous && (typeof previous === \"undefined\" ? \"undefined\" : _type_of(previous)) === \"object\" && !Array.isArray(previous)) {\n next = {\n ...previous,\n default: value\n };\n }\n setInAuthoredOrder(result, key, next);\n }\n }\n start = index + 1;\n }\n if (rawClassName) result.className = rawClassName;\n return result;\n}\nfunction setInAuthoredOrder(target, key, value) {\n if (key in target) delete target[key];\n target[key] = value;\n}\nexport {\n getStyleGrammarConfig,\n getTailwindClassPlan,\n isTokenValueProp,\n resolveTailwindClassName,\n setInAuthoredOrder\n};\n//# sourceMappingURL=candidate.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"candidate.native.js","names":[],"sources":["esm/candidate.native.js"],"sourcesContent":["import { isWeb } from \"@tamagui/constants\";\nimport { plainValueToPayload } from \"@tamagui/core/internal-runtime\";\nimport { borderSideSuffix, configRevisionSymbol, createGrammarConfigView, getTokenCategory, getSafeAreaEdge, insetAxisProps, percentUtilityProps, radiusCornerProps, sizeUtilityProps, splitColorOpacitySuffix } from \"@tamagui/style-grammar/runtime\";\nimport { classifyCandidate, decodeArbitrary } from \"@tamagui/style-grammar/tooling/candidate\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar styleGrammarConfigCache = /* @__PURE__ */ new WeakMap();\nfunction getStyleGrammarConfig(config) {\n var _config_configRevisionSymbol;\n var cached = styleGrammarConfigCache.get(config);\n var revision = ((_config_configRevisionSymbol = config[configRevisionSymbol]) === null || _config_configRevisionSymbol === void 0 ? void 0 : _config_configRevisionSymbol.revision) || 0;\n if (cached && cached.revision === revision) return cached.value;\n var view = createGrammarConfigView(config);\n styleGrammarConfigCache.set(config, {\n revision,\n value: view\n });\n return view;\n}\nfunction isTokenValueProp(prop) {\n return getTokenCategory(prop) !== null;\n}\nfunction arbitraryValue(inner) {\n var px = /^(-?\\d*\\.?\\d+)px$/.exec(inner);\n if (px) return Number(px[1]);\n if (/^-?\\d*\\.?\\d+$/.test(inner)) return Number(inner);\n return inner;\n}\nfunction tailwindSizingValue(prop, value) {\n if (value === \"full\") return \"100%\";\n if (value === \"auto\") return \"auto\";\n if (value === \"screen\") return /[Hh]eight/.test(prop) ? \"100vh\" : \"100vw\";\n if (value === \"min\") return \"min-content\";\n if (value === \"max\") return \"max-content\";\n if (value === \"fit\") return \"fit-content\";\n var frac = /^(\\d+)\\/(\\d+)$/.exec(value);\n if (frac && Number(frac[2]) !== 0) {\n return `${Number(frac[1]) / Number(frac[2]) * 100}%`;\n }\n return null;\n}\nfunction borderDimValue(raw) {\n var inner = raw;\n if (raw.length > 1 && raw[0] === \"[\" && raw[raw.length - 1] === \"]\") {\n inner = decodeArbitrary(raw.slice(1, -1));\n }\n var px = /^(-?\\d*\\.?\\d+)px$/.exec(inner);\n if (px) return Number.parseFloat(px[1]);\n if (/^-?\\d*\\.?\\d+$/.test(inner)) return Number(inner);\n return inner;\n}\nfunction expansionProps(parsed) {\n var _parsed_entry;\n var prefix = parsed.prefix;\n if (!prefix) return null;\n if (prefix === \"size\") return sizeUtilityProps;\n if (prefix === \"inset-x\" || prefix === \"inset-y\") {\n return insetAxisProps[prefix.slice(\"inset-\".length)];\n }\n if (prefix.startsWith(\"rounded-\")) {\n var props = radiusCornerProps[prefix.slice(\"rounded-\".length)];\n if (!props || props.length === 1) return null;\n return props;\n }\n var m = /^border-([trblxy])$/.exec(prefix);\n if (!m) return null;\n var sides = borderSideSuffix[m[1]];\n var suffix = ((_parsed_entry = parsed.entry) === null || _parsed_entry === void 0 ? void 0 : _parsed_entry.prop.endsWith(\"Width\")) ? \"Width\" : \"Color\";\n return sides.map(function(side) {\n return `border${side}${suffix}`;\n });\n}\nfunction tailwindClassToFlatProp(parsed) {\n var _parsed_prefix;\n if (parsed.kind !== \"dynamic\" || !parsed.entry || parsed.rawValue === void 0) {\n return null;\n }\n var prop = parsed.entry.prop;\n var category = parsed.entry.tokenCategory;\n var value = parsed.rawValue;\n if (prop.endsWith(\"Width\") && ((_parsed_prefix = parsed.prefix) === null || _parsed_prefix === void 0 ? void 0 : _parsed_prefix.startsWith(\"border\"))) {\n if (parsed.valueKind === \"token\") {\n value = `${parsed.negative ? \"-\" : \"\"}${value}`;\n } else if (parsed.valueKind === \"arbitrary\") {\n value = borderDimValue(value);\n } else {\n return null;\n }\n return {\n key: prop,\n value\n };\n }\n if (prop === \"fontFamily\") {\n var famValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n famValue = decodeArbitrary(value.slice(1, -1));\n } else {\n var generic = {\n sans: \"sans-serif\",\n serif: \"serif\",\n mono: \"monospace\"\n };\n famValue = parsed.valueKind === \"token\" ? value : generic[value] || value;\n }\n return {\n key: \"fontFamily\",\n value: famValue\n };\n }\n if (prop === \"fontSize\") {\n var fsValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n fsValue = arbitraryValue(decodeArbitrary(value.slice(1, -1)));\n } else {\n fsValue = value;\n }\n return {\n key: \"fontSize\",\n value: fsValue\n };\n }\n if (prop === \"lineHeight\") {\n var lhValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n var inner = decodeArbitrary(value.slice(1, -1));\n lhValue = /^-?\\d*\\.?\\d+px$/.test(inner) ? Number.parseFloat(inner) : inner;\n } else {\n lhValue = value;\n }\n return {\n key: \"lineHeight\",\n value: lhValue\n };\n }\n if (prop === \"letterSpacing\") {\n var lsValue;\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n lsValue = arbitraryValue(decodeArbitrary(value.slice(1, -1)));\n } else {\n lsValue = value;\n }\n return {\n key: \"letterSpacing\",\n value: lsValue\n };\n }\n if (prop === \"boxShadow\" && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n return {\n key: \"boxShadow\",\n value: decodeArbitrary(value.slice(1, -1))\n };\n }\n if (value.length > 2 && value[0] === \"[\" && value[value.length - 1] === \"]\") {\n var inner1 = decodeArbitrary(value.slice(1, -1));\n if (inner1 === \"\") return null;\n return {\n key: prop,\n value: arbitraryValue(inner1)\n };\n }\n if (category === \"size\" && parsed.valueKind !== \"token\") {\n var sized = tailwindSizingValue(prop, value);\n if (sized != null) {\n return {\n key: prop,\n value: sized\n };\n }\n }\n var opacitySuffix = \"\";\n if (category === \"color\" && typeof value === \"string\") {\n var suffix = splitColorOpacitySuffix(value);\n if (suffix.kind === \"invalid\") {\n return {\n key: prop,\n value\n };\n }\n if (suffix.kind === \"valid\") {\n opacitySuffix = value.slice(suffix.name.length);\n value = suffix.name;\n }\n }\n if (percentUtilityProps.has(prop) && /^\\d+$/.test(value)) {\n value = Number(value) / 100;\n } else if (/^\\d+(\\.\\d+)?$/.test(value)) {\n if (category === \"zIndex\" && parsed.valueKind === \"convenience\") {\n value = Number(value);\n } else if (category) {\n value = `${parsed.negative ? \"-\" : \"\"}${value}`;\n } else {\n value = Number(value);\n }\n } else if (typeof value === \"string\") {\n if (category && !((category === \"space\" || category === \"size\" || category === \"radius\") && getSafeAreaEdge(value))) {\n value = `${parsed.negative ? \"-\" : \"\"}${value}`;\n }\n }\n if (opacitySuffix && typeof value === \"string\") {\n value = `${value}${opacitySuffix}`;\n }\n if (parsed.negative && !category) {\n if (typeof value === \"number\") value = -value;\n else if (typeof value === \"string\" && value[0] !== \"-\") value = `-${value}`;\n }\n return {\n key: prop,\n value\n };\n}\nvar classPlanCache = /* @__PURE__ */ new WeakMap();\nfunction getClassPlanCache(grammarConfig) {\n var cache = classPlanCache.get(grammarConfig);\n if (!cache) {\n cache = /* @__PURE__ */ new Map();\n classPlanCache.set(grammarConfig, cache);\n }\n return cache;\n}\nfunction createPlanEntry(property, value, modifiers) {\n if (modifiers.length === 0) return [\n property,\n value\n ];\n var payload = plainValueToPayload(value, property);\n if (payload === null) return null;\n var condition = \"\";\n for (var index = 0; index < modifiers.length; index++) {\n if (index) condition += \":\";\n condition += modifiers[index];\n }\n return [\n property,\n payload,\n condition,\n modifiers\n ];\n}\nfunction computeClassPlan(cls, grammarConfig) {\n var groupMarker = /^group(?:\\/([A-Za-z0-9_-]+))?$/.exec(cls);\n if (groupMarker) {\n return {\n entries: [\n [\n \"group\",\n groupMarker[1] || true\n ]\n ],\n preserveRawClass: isWeb\n };\n }\n var containerMarker = /^@container(-size)?(?:\\/([A-Za-z0-9_-]+))?$/.exec(cls);\n if (containerMarker) {\n var isSize = containerMarker[1] !== void 0;\n var name = containerMarker[2];\n var entries = [];\n entries.push([\n \"container\",\n name || true\n ]);\n if (isSize) {\n entries.push([\n \"containerType\",\n \"size\"\n ]);\n }\n return {\n entries,\n preserveRawClass: isWeb\n };\n }\n var classification = classifyCandidate(cls, grammarConfig);\n if (classification.kind === \"passthrough\") {\n return isWeb ? \"raw\" : null;\n }\n var parsed = classification.parsed;\n var util = parsed.kind === \"utility\" ? parsed.properties : null;\n if (util) {\n var entries1 = [];\n for (var p in util) {\n var entry = createPlanEntry(p, util[p], parsed.modifiers);\n if (!entry) return \"raw\";\n entries1.push(entry);\n }\n return entries1;\n }\n var expandedProps = expansionProps(parsed);\n if (expandedProps) {\n var entries2 = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = expandedProps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n var flatProp = tailwindClassToFlatProp({\n ...parsed,\n entry: parsed.entry ? {\n ...parsed.entry,\n prop\n } : parsed.entry\n });\n if (!flatProp) return \"raw\";\n var entry1 = createPlanEntry(flatProp.key, flatProp.value, parsed.modifiers);\n if (!entry1) return \"raw\";\n entries2.push(entry1);\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 entries2;\n }\n var flatProp1 = tailwindClassToFlatProp(parsed);\n if (flatProp1) {\n var entry2 = createPlanEntry(flatProp1.key, flatProp1.value, parsed.modifiers);\n return entry2 ? [\n entry2\n ] : \"raw\";\n }\n return \"raw\";\n}\nfunction getTailwindClassPlan(candidate, config) {\n var grammarConfig = getStyleGrammarConfig(config);\n var plans = getClassPlanCache(grammarConfig);\n var plan = plans.get(candidate);\n if (plan === void 0) {\n plan = computeClassPlan(candidate, grammarConfig);\n plans.set(candidate, plan);\n }\n return plan;\n}\nfunction resolveTailwindClassName(className, config) {\n var result = {};\n var rawClassName = \"\";\n var start = 0;\n for (var index = 0; index <= className.length; index++) {\n if (index !== className.length && className.charCodeAt(index) > 32) continue;\n if (start === index) {\n start = index + 1;\n continue;\n }\n var candidate = className.slice(start, index);\n var plan = getTailwindClassPlan(candidate, config);\n if (plan === \"raw\") {\n rawClassName = rawClassName ? `${rawClassName} ${candidate}` : candidate;\n } else if (plan) {\n var parentPlan = plan;\n if (!Array.isArray(plan) && parentPlan.preserveRawClass) {\n rawClassName = rawClassName ? `${rawClassName} ${candidate}` : candidate;\n }\n var entries = Array.isArray(plan) ? plan : parentPlan.entries;\n for (var entryIndex = 0; entryIndex < entries.length; entryIndex++) {\n var [key, value, condition] = entries[entryIndex];\n var previous = result[key];\n var next = value;\n if (condition !== void 0) {\n next = previous && (typeof previous === \"undefined\" ? \"undefined\" : _type_of(previous)) === \"object\" && !Array.isArray(previous) ? {\n ...previous,\n [condition]: value\n } : previous === void 0 ? {\n [condition]: value\n } : {\n default: previous,\n [condition]: value\n };\n } else if (previous && (typeof previous === \"undefined\" ? \"undefined\" : _type_of(previous)) === \"object\" && !Array.isArray(previous)) {\n next = {\n ...previous,\n default: value\n };\n }\n setInAuthoredOrder(result, key, next);\n }\n }\n start = index + 1;\n }\n if (rawClassName) result.className = rawClassName;\n return result;\n}\nfunction setInAuthoredOrder(target, key, value) {\n if (key in target) delete target[key];\n target[key] = value;\n}\nexport {\n getStyleGrammarConfig,\n getTailwindClassPlan,\n isTokenValueProp,\n resolveTailwindClassName,\n setInAuthoredOrder\n};\n//# sourceMappingURL=candidate.js.map\n"],"mappings":"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"}
@@ -21,8 +21,17 @@ function normalizeTailwindStaticConfig(staticConfig, config) {
21
21
  variants
22
22
  };
23
23
  }
24
+ function resolveTailwindCandidate(candidate, config, sink) {
25
+ const plan = getTailwindClassPlan(candidate, config);
26
+ if (plan === "raw") return true;
27
+ if (plan === null) return null;
28
+ const parent = Array.isArray(plan) ? null : plan;
29
+ const entries = parent ? parent.entries : plan;
30
+ for (let index = 0; index < entries.length; index++) sink(entries[index]);
31
+ return parent?.preserveRawClass || false;
32
+ }
24
33
  const tailwindStyleFrontend = {
25
- getClassPlan: getTailwindClassPlan,
34
+ resolveClassName: resolveTailwindCandidate,
26
35
  normalizeStaticConfig: normalizeTailwindStaticConfig
27
36
  };
28
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.js","names":[],"sources":["esm/frontend.js"],"sourcesContent":["import { getTailwindClassPlan, resolveTailwindClassName } from \"./candidate\";\nfunction parseStaticStyle(input, config) {\n return resolveTailwindClassName(input, config);\n}\nfunction normalizeTailwindStaticConfig(staticConfig, config) {\n let variants = staticConfig.variants;\n if (variants) {\n variants = Object.fromEntries(\n Object.entries(variants).map(([variantName, definition]) => [\n variantName,\n typeof definition === \"object\" && definition ? Object.fromEntries(\n Object.entries(definition).map(([matcher, value]) => [\n matcher,\n typeof value === \"string\" ? parseStaticStyle(value, config) : value\n ])\n ) : definition\n ])\n );\n }\n let baseStyle = staticConfig.baseStyle;\n let passthroughClassName = staticConfig.passthroughClassName;\n if (staticConfig.baseClassName) {\n const { className, ...styles } = parseStaticStyle(staticConfig.baseClassName, config);\n baseStyle = styles;\n passthroughClassName = className;\n }\n return { baseStyle, passthroughClassName, variants };\n}\nconst tailwindStyleFrontend = {\n getClassPlan: getTailwindClassPlan,\n normalizeStaticConfig: normalizeTailwindStaticConfig\n};\nexport {\n parseStaticStyle,\n tailwindStyleFrontend\n};\n//# sourceMappingURL=frontend.js.map\n"],"mappings":";;;AACA,SAAS,iBAAiB,OAAO,QAAQ;CACvC,OAAO,yBAAyB,OAAO,MAAM;AAC/C;AACA,SAAS,8BAA8B,cAAc,QAAQ;CAC3D,IAAI,WAAW,aAAa;CAC5B,IAAI,UAAU;EACZ,WAAW,OAAO,YAChB,OAAO,QAAQ,QAAQ,CAAC,CAAC,KAAK,CAAC,aAAa,gBAAgB,CAC1D,aACA,OAAO,eAAe,YAAY,aAAa,OAAO,YACpD,OAAO,QAAQ,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,WAAW,CACnD,SACA,OAAO,UAAU,WAAW,iBAAiB,OAAO,MAAM,IAAI,KAChE,CAAC,CACH,IAAI,UACN,CAAC,CACH;CACF;CACA,IAAI,YAAY,aAAa;CAC7B,IAAI,uBAAuB,aAAa;CACxC,IAAI,aAAa,eAAe;EAC9B,MAAM,EAAE,WAAW,GAAG,WAAW,iBAAiB,aAAa,eAAe,MAAM;EACpF,YAAY;EACZ,uBAAuB;CACzB;CACA,OAAO;EAAE;EAAW;EAAsB;CAAS;AACrD;AACA,MAAM,wBAAwB;CAC5B,cAAc;CACd,uBAAuB;AACzB"}
1
+ {"version":3,"file":"frontend.js","names":[],"sources":["esm/frontend.js"],"sourcesContent":["import { getTailwindClassPlan, resolveTailwindClassName } from \"./candidate\";\nfunction parseStaticStyle(input, config) {\n return resolveTailwindClassName(input, config);\n}\nfunction normalizeTailwindStaticConfig(staticConfig, config) {\n let variants = staticConfig.variants;\n if (variants) {\n variants = Object.fromEntries(\n Object.entries(variants).map(([variantName, definition]) => [\n variantName,\n typeof definition === \"object\" && definition ? Object.fromEntries(\n Object.entries(definition).map(([matcher, value]) => [\n matcher,\n typeof value === \"string\" ? parseStaticStyle(value, config) : value\n ])\n ) : definition\n ])\n );\n }\n let baseStyle = staticConfig.baseStyle;\n let passthroughClassName = staticConfig.passthroughClassName;\n if (staticConfig.baseClassName) {\n const { className, ...styles } = parseStaticStyle(staticConfig.baseClassName, config);\n baseStyle = styles;\n passthroughClassName = className;\n }\n return { baseStyle, passthroughClassName, variants };\n}\nfunction resolveTailwindCandidate(candidate, config, sink) {\n const plan = getTailwindClassPlan(candidate, config);\n if (plan === \"raw\") return true;\n if (plan === null) return null;\n const parent = Array.isArray(plan) ? null : plan;\n const entries = parent ? parent.entries : plan;\n for (let index = 0; index < entries.length; index++) sink(entries[index]);\n return parent?.preserveRawClass || false;\n}\nconst tailwindStyleFrontend = {\n resolveClassName: resolveTailwindCandidate,\n normalizeStaticConfig: normalizeTailwindStaticConfig\n};\nexport {\n parseStaticStyle,\n tailwindStyleFrontend\n};\n//# sourceMappingURL=frontend.js.map\n"],"mappings":";;;AACA,SAAS,iBAAiB,OAAO,QAAQ;CACvC,OAAO,yBAAyB,OAAO,MAAM;AAC/C;AACA,SAAS,8BAA8B,cAAc,QAAQ;CAC3D,IAAI,WAAW,aAAa;CAC5B,IAAI,UAAU;EACZ,WAAW,OAAO,YAChB,OAAO,QAAQ,QAAQ,CAAC,CAAC,KAAK,CAAC,aAAa,gBAAgB,CAC1D,aACA,OAAO,eAAe,YAAY,aAAa,OAAO,YACpD,OAAO,QAAQ,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,WAAW,CACnD,SACA,OAAO,UAAU,WAAW,iBAAiB,OAAO,MAAM,IAAI,KAChE,CAAC,CACH,IAAI,UACN,CAAC,CACH;CACF;CACA,IAAI,YAAY,aAAa;CAC7B,IAAI,uBAAuB,aAAa;CACxC,IAAI,aAAa,eAAe;EAC9B,MAAM,EAAE,WAAW,GAAG,WAAW,iBAAiB,aAAa,eAAe,MAAM;EACpF,YAAY;EACZ,uBAAuB;CACzB;CACA,OAAO;EAAE;EAAW;EAAsB;CAAS;AACrD;AACA,SAAS,yBAAyB,WAAW,QAAQ,MAAM;CACzD,MAAM,OAAO,qBAAqB,WAAW,MAAM;CACnD,IAAI,SAAS,OAAO,OAAO;CAC3B,IAAI,SAAS,MAAM,OAAO;CAC1B,MAAM,SAAS,MAAM,QAAQ,IAAI,IAAI,OAAO;CAC5C,MAAM,UAAU,SAAS,OAAO,UAAU;CAC1C,KAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,KAAK,QAAQ,MAAM;CACxE,OAAO,QAAQ,oBAAoB;AACrC;AACA,MAAM,wBAAwB;CAC5B,kBAAkB;CAClB,uBAAuB;AACzB"}
@@ -31,8 +31,17 @@ function normalizeTailwindStaticConfig(staticConfig, config) {
31
31
  variants
32
32
  };
33
33
  }
34
+ function resolveTailwindCandidate(candidate, config, sink) {
35
+ var plan = getTailwindClassPlan(candidate, config);
36
+ if (plan === "raw") return true;
37
+ if (plan === null) return null;
38
+ var parent = Array.isArray(plan) ? null : plan;
39
+ var entries = parent ? parent.entries : plan;
40
+ for (var index = 0; index < entries.length; index++) sink(entries[index]);
41
+ return (parent === null || parent === void 0 ? void 0 : parent.preserveRawClass) || false;
42
+ }
34
43
  var tailwindStyleFrontend = {
35
- getClassPlan: getTailwindClassPlan,
44
+ resolveClassName: resolveTailwindCandidate,
36
45
  normalizeStaticConfig: normalizeTailwindStaticConfig
37
46
  };
38
47
 
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.native.js","names":[],"sources":["esm/frontend.native.js"],"sourcesContent":["import { getTailwindClassPlan, resolveTailwindClassName } from \"./candidate\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction parseStaticStyle(input, config) {\n return resolveTailwindClassName(input, config);\n}\nfunction normalizeTailwindStaticConfig(staticConfig, config) {\n var variants = staticConfig.variants;\n if (variants) {\n variants = Object.fromEntries(Object.entries(variants).map(function(param) {\n var [variantName, definition] = param;\n return [\n variantName,\n (typeof definition === \"undefined\" ? \"undefined\" : _type_of(definition)) === \"object\" && definition ? Object.fromEntries(Object.entries(definition).map(function(param2) {\n var [matcher, value] = param2;\n return [\n matcher,\n typeof value === \"string\" ? parseStaticStyle(value, config) : value\n ];\n })) : definition\n ];\n }));\n }\n var baseStyle = staticConfig.baseStyle;\n var passthroughClassName = staticConfig.passthroughClassName;\n if (staticConfig.baseClassName) {\n var { className, ...styles } = parseStaticStyle(staticConfig.baseClassName, config);\n baseStyle = styles;\n passthroughClassName = className;\n }\n return {\n baseStyle,\n passthroughClassName,\n variants\n };\n}\nvar tailwindStyleFrontend = {\n getClassPlan: getTailwindClassPlan,\n normalizeStaticConfig: normalizeTailwindStaticConfig\n};\nexport {\n parseStaticStyle,\n tailwindStyleFrontend\n};\n//# sourceMappingURL=frontend.js.map\n"],"mappings":";;;AACA,SAAS,SAAS,KAAK;CACrB;CACA,OAAO,OAAO,OAAO,WAAW,eAAe,IAAI,gBAAgB,SAAS,WAAW,OAAO;AAChG;AACA,SAAS,iBAAiB,OAAO,QAAQ;CACvC,OAAO,yBAAyB,OAAO,MAAM;AAC/C;AACA,SAAS,8BAA8B,cAAc,QAAQ;CAC3D,IAAI,WAAW,aAAa;CAC5B,IAAI,UAAU;EACZ,WAAW,OAAO,YAAY,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAAI,SAAS,OAAO;GACzE,IAAI,CAAC,aAAa,cAAc;GAChC,OAAO,CACL,cACC,OAAO,eAAe,cAAc,cAAc,SAAS,UAAU,OAAO,YAAY,aAAa,OAAO,YAAY,OAAO,QAAQ,UAAU,CAAC,CAAC,IAAI,SAAS,QAAQ;IACvK,IAAI,CAAC,SAAS,SAAS;IACvB,OAAO,CACL,SACA,OAAO,UAAU,WAAW,iBAAiB,OAAO,MAAM,IAAI,KAChE;GACF,CAAC,CAAC,IAAI,UACR;EACF,CAAC,CAAC;CACJ;CACA,IAAI,YAAY,aAAa;CAC7B,IAAI,uBAAuB,aAAa;CACxC,IAAI,aAAa,eAAe;EAC9B,IAAI,EAAE,WAAW,GAAG,WAAW,iBAAiB,aAAa,eAAe,MAAM;EAClF,YAAY;EACZ,uBAAuB;CACzB;CACA,OAAO;EACL;EACA;EACA;CACF;AACF;AACA,IAAI,wBAAwB;CAC1B,cAAc;CACd,uBAAuB;AACzB"}
1
+ {"version":3,"file":"frontend.native.js","names":[],"sources":["esm/frontend.native.js"],"sourcesContent":["import { getTailwindClassPlan, resolveTailwindClassName } from \"./candidate\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction parseStaticStyle(input, config) {\n return resolveTailwindClassName(input, config);\n}\nfunction normalizeTailwindStaticConfig(staticConfig, config) {\n var variants = staticConfig.variants;\n if (variants) {\n variants = Object.fromEntries(Object.entries(variants).map(function(param) {\n var [variantName, definition] = param;\n return [\n variantName,\n (typeof definition === \"undefined\" ? \"undefined\" : _type_of(definition)) === \"object\" && definition ? Object.fromEntries(Object.entries(definition).map(function(param2) {\n var [matcher, value] = param2;\n return [\n matcher,\n typeof value === \"string\" ? parseStaticStyle(value, config) : value\n ];\n })) : definition\n ];\n }));\n }\n var baseStyle = staticConfig.baseStyle;\n var passthroughClassName = staticConfig.passthroughClassName;\n if (staticConfig.baseClassName) {\n var { className, ...styles } = parseStaticStyle(staticConfig.baseClassName, config);\n baseStyle = styles;\n passthroughClassName = className;\n }\n return {\n baseStyle,\n passthroughClassName,\n variants\n };\n}\nfunction resolveTailwindCandidate(candidate, config, sink) {\n var plan = getTailwindClassPlan(candidate, config);\n if (plan === \"raw\") return true;\n if (plan === null) return null;\n var parent = Array.isArray(plan) ? null : plan;\n var entries = parent ? parent.entries : plan;\n for (var index = 0; index < entries.length; index++) sink(entries[index]);\n return (parent === null || parent === void 0 ? void 0 : parent.preserveRawClass) || false;\n}\nvar tailwindStyleFrontend = {\n resolveClassName: resolveTailwindCandidate,\n normalizeStaticConfig: normalizeTailwindStaticConfig\n};\nexport {\n parseStaticStyle,\n tailwindStyleFrontend\n};\n//# sourceMappingURL=frontend.js.map\n"],"mappings":";;;AACA,SAAS,SAAS,KAAK;CACrB;CACA,OAAO,OAAO,OAAO,WAAW,eAAe,IAAI,gBAAgB,SAAS,WAAW,OAAO;AAChG;AACA,SAAS,iBAAiB,OAAO,QAAQ;CACvC,OAAO,yBAAyB,OAAO,MAAM;AAC/C;AACA,SAAS,8BAA8B,cAAc,QAAQ;CAC3D,IAAI,WAAW,aAAa;CAC5B,IAAI,UAAU;EACZ,WAAW,OAAO,YAAY,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAAI,SAAS,OAAO;GACzE,IAAI,CAAC,aAAa,cAAc;GAChC,OAAO,CACL,cACC,OAAO,eAAe,cAAc,cAAc,SAAS,UAAU,OAAO,YAAY,aAAa,OAAO,YAAY,OAAO,QAAQ,UAAU,CAAC,CAAC,IAAI,SAAS,QAAQ;IACvK,IAAI,CAAC,SAAS,SAAS;IACvB,OAAO,CACL,SACA,OAAO,UAAU,WAAW,iBAAiB,OAAO,MAAM,IAAI,KAChE;GACF,CAAC,CAAC,IAAI,UACR;EACF,CAAC,CAAC;CACJ;CACA,IAAI,YAAY,aAAa;CAC7B,IAAI,uBAAuB,aAAa;CACxC,IAAI,aAAa,eAAe;EAC9B,IAAI,EAAE,WAAW,GAAG,WAAW,iBAAiB,aAAa,eAAe,MAAM;EAClF,YAAY;EACZ,uBAAuB;CACzB;CACA,OAAO;EACL;EACA;EACA;CACF;AACF;AACA,SAAS,yBAAyB,WAAW,QAAQ,MAAM;CACzD,IAAI,OAAO,qBAAqB,WAAW,MAAM;CACjD,IAAI,SAAS,OAAO,OAAO;CAC3B,IAAI,SAAS,MAAM,OAAO;CAC1B,IAAI,SAAS,MAAM,QAAQ,IAAI,IAAI,OAAO;CAC1C,IAAI,UAAU,SAAS,OAAO,UAAU;CACxC,KAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,KAAK,QAAQ,MAAM;CACxE,QAAQ,WAAW,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,qBAAqB;AACtF;AACA,IAAI,wBAAwB;CAC1B,kBAAkB;CAClB,uBAAuB;AACzB"}
@@ -1,6 +1,7 @@
1
1
  import { compile } from "@tailwindcss/node";
2
2
  import { Scanner } from "@tailwindcss/oxide";
3
- import { classifyCandidate, createGrammarConfigView } from "@tamagui/style-grammar/runtime";
3
+ import { createGrammarConfigView } from "@tamagui/style-grammar/runtime";
4
+ import { classifyCandidate } from "@tamagui/style-grammar/tooling";
4
5
  import { readFile, realpath } from "node:fs/promises";
5
6
  import { createRequire } from "node:module";
6
7
  import path from "node:path";
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","names":[],"sources":["esm/vite/state.js"],"sourcesContent":["import { compile } from \"@tailwindcss/node\";\nimport { Scanner } from \"@tailwindcss/oxide\";\nimport {\n classifyCandidate,\n createGrammarConfigView\n} from \"@tamagui/style-grammar/runtime\";\nimport { readFile, realpath } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport path from \"node:path\";\nconst TAILWIND_VERSION = \"4.3.0\";\nconst TAILWIND_VIRTUAL_ID = \"virtual:tamagui-tailwind.css\";\nconst TAILWIND_RESOLVED_ID = `\\0${TAILWIND_VIRTUAL_ID}`;\nfunction wrapWithTamaguiLayer(css) {\n return `@layer tamagui {\n${css}\n}`;\n}\nfunction isTamaguiCoreResetCSS(id) {\n const normalizedId = id.split(\"?\", 1)[0].replace(/\\\\/g, \"/\");\n return normalizedId.endsWith(\"/@tamagui/core/reset.css\") || normalizedId.endsWith(\"/code/core/core/reset.css\");\n}\nconst TAILWIND_INPUT = `@layer tamagui, theme, utilities;\n@import \"tailwindcss/theme.css\" layer(theme);\n@import \"tailwindcss/utilities.css\" layer(utilities);`;\nfunction extensionForFile(id) {\n return path.extname(id.split(\"?\", 1)[0]).slice(1) || \"html\";\n}\nasync function assertHostTailwind(root) {\n const requireFromRoot = createRequire(path.join(root, \"package.json\"));\n let packagePath;\n try {\n packagePath = requireFromRoot.resolve(\"tailwindcss/package.json\");\n } catch {\n throw new Error(\n `[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \\`bun add -D tailwindcss@${TAILWIND_VERSION}\\` (resolved from ${root}).`\n );\n }\n const packageJSON = JSON.parse(await readFile(packagePath, \"utf8\"));\n if (packageJSON.version !== TAILWIND_VERSION) {\n throw new Error(\n `[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || \"an unknown version\"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`\n );\n }\n}\nfunction createTailwindScannerState() {\n let root = \"\";\n let generation = -1;\n let enabled = false;\n let scanner = null;\n let compiler = null;\n let grammarConfig = createGrammarConfigView({});\n let candidatesByFile = /* @__PURE__ */ new Map();\n let compiledCandidates = /* @__PURE__ */ new Set();\n let addDependency = () => {\n };\n let css = \"\";\n function clear() {\n root = \"\";\n generation = -1;\n enabled = false;\n scanner = null;\n compiler = null;\n grammarConfig = createGrammarConfigView({});\n candidatesByFile = /* @__PURE__ */ new Map();\n compiledCandidates = /* @__PURE__ */ new Set();\n addDependency = () => {\n };\n css = \"\";\n }\n async function configure(nextRoot, nextGeneration, config, onDependency, onSourceGlob = () => {\n }) {\n if (!config) {\n clear();\n generation = nextGeneration;\n return false;\n }\n if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {\n return true;\n }\n await assertHostTailwind(nextRoot);\n root = nextRoot;\n generation = nextGeneration;\n enabled = true;\n grammarConfig = createGrammarConfigView(config);\n addDependency = onDependency;\n scanner = new Scanner({\n sources: [\n { base: root, pattern: \"**/*\", negated: false },\n { base: root, pattern: \"node_modules/**\", negated: true },\n { base: root, pattern: \".git/**\", negated: true },\n { base: root, pattern: \".vite/**\", negated: true },\n { base: root, pattern: \"dist/**\", negated: true },\n { base: root, pattern: \"build/**\", negated: true },\n { base: root, pattern: \"coverage/**\", negated: true }\n ]\n });\n compiler = await createCompiler();\n scanner.scan();\n registerScannerSources(scanner, onDependency, onSourceGlob);\n candidatesByFile = /* @__PURE__ */ new Map();\n await Promise.all(\n scanner.files.map(async (file) => {\n try {\n const source = await readFile(file, \"utf8\");\n candidatesByFile.set(\n await normalizeSourcePath(file),\n candidatesForSource(scanner, file, source)\n );\n } catch {\n }\n })\n );\n await rebuild();\n return true;\n }\n async function createCompiler() {\n return compile(TAILWIND_INPUT, {\n base: root,\n onDependency: addDependency\n });\n }\n async function rebuild() {\n if (!compiler) return false;\n const allCandidates = /* @__PURE__ */ new Set();\n for (const candidates of candidatesByFile.values()) {\n for (const candidate of candidates) allCandidates.add(candidate);\n }\n const passthrough = [...allCandidates].filter(\n (candidate) => classifyCandidate(candidate, grammarConfig).kind === \"passthrough\"\n ).sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n const nextCandidates = new Set(passthrough);\n const removedCandidate = [...compiledCandidates].some(\n (candidate) => !nextCandidates.has(candidate)\n );\n if (removedCandidate) {\n compiler = await createCompiler();\n }\n const nextCSS = compiler.build(passthrough);\n compiledCandidates = nextCandidates;\n if (nextCSS === css) return false;\n css = nextCSS;\n return true;\n }\n async function scanSource(id, source) {\n if (!enabled || !scanner) return false;\n candidatesByFile.set(\n await normalizeSourcePath(id),\n candidatesForSource(scanner, id, source)\n );\n return rebuild();\n }\n async function removeSource(id) {\n if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;\n return rebuild();\n }\n return {\n clear,\n configure,\n removeSource,\n scanSource,\n get enabled() {\n return enabled;\n },\n get css() {\n return css;\n },\n get candidateCount() {\n return compiledCandidates.size;\n }\n };\n}\nasync function updateTailwindForWatchChange(state, id, event, configure) {\n if (!await configure()) return false;\n if (event === \"delete\") {\n return state.removeSource(id);\n }\n try {\n return state.scanSource(id, await readFile(id, \"utf8\"));\n } catch {\n return state.removeSource(id);\n }\n}\nfunction registerScannerSources(scanner, onDependency, onSourceGlob) {\n for (const file of scanner.files) {\n onDependency(file);\n }\n for (const { base, pattern } of scanner.globs) {\n onSourceGlob(path.join(base, pattern));\n }\n}\nasync function normalizeSourcePath(id) {\n const cleanId = path.resolve(id.split(\"?\", 1)[0]);\n try {\n return await realpath(cleanId);\n } catch {\n try {\n return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));\n } catch {\n return cleanId;\n }\n }\n}\nfunction candidatesForSource(scanner, id, source) {\n return new Set(\n scanner.getCandidatesWithPositions({\n content: source,\n extension: extensionForFile(id)\n }).map(({ candidate }) => candidate)\n );\n}\nexport {\n TAILWIND_RESOLVED_ID,\n TAILWIND_VERSION,\n TAILWIND_VIRTUAL_ID,\n createTailwindScannerState,\n isTamaguiCoreResetCSS,\n updateTailwindForWatchChange,\n wrapWithTamaguiLayer\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"state.js","names":[],"sources":["esm/vite/state.js"],"sourcesContent":["import { compile } from \"@tailwindcss/node\";\nimport { Scanner } from \"@tailwindcss/oxide\";\nimport {\n createGrammarConfigView\n} from \"@tamagui/style-grammar/runtime\";\nimport { classifyCandidate } from \"@tamagui/style-grammar/tooling\";\nimport { readFile, realpath } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport path from \"node:path\";\nconst TAILWIND_VERSION = \"4.3.0\";\nconst TAILWIND_VIRTUAL_ID = \"virtual:tamagui-tailwind.css\";\nconst TAILWIND_RESOLVED_ID = `\\0${TAILWIND_VIRTUAL_ID}`;\nfunction wrapWithTamaguiLayer(css) {\n return `@layer tamagui {\n${css}\n}`;\n}\nfunction isTamaguiCoreResetCSS(id) {\n const normalizedId = id.split(\"?\", 1)[0].replace(/\\\\/g, \"/\");\n return normalizedId.endsWith(\"/@tamagui/core/reset.css\") || normalizedId.endsWith(\"/code/core/core/reset.css\");\n}\nconst TAILWIND_INPUT = `@layer tamagui, theme, utilities;\n@import \"tailwindcss/theme.css\" layer(theme);\n@import \"tailwindcss/utilities.css\" layer(utilities);`;\nfunction extensionForFile(id) {\n return path.extname(id.split(\"?\", 1)[0]).slice(1) || \"html\";\n}\nasync function assertHostTailwind(root) {\n const requireFromRoot = createRequire(path.join(root, \"package.json\"));\n let packagePath;\n try {\n packagePath = requireFromRoot.resolve(\"tailwindcss/package.json\");\n } catch {\n throw new Error(\n `[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \\`bun add -D tailwindcss@${TAILWIND_VERSION}\\` (resolved from ${root}).`\n );\n }\n const packageJSON = JSON.parse(await readFile(packagePath, \"utf8\"));\n if (packageJSON.version !== TAILWIND_VERSION) {\n throw new Error(\n `[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || \"an unknown version\"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`\n );\n }\n}\nfunction createTailwindScannerState() {\n let root = \"\";\n let generation = -1;\n let enabled = false;\n let scanner = null;\n let compiler = null;\n let grammarConfig = createGrammarConfigView({});\n let candidatesByFile = /* @__PURE__ */ new Map();\n let compiledCandidates = /* @__PURE__ */ new Set();\n let addDependency = () => {\n };\n let css = \"\";\n function clear() {\n root = \"\";\n generation = -1;\n enabled = false;\n scanner = null;\n compiler = null;\n grammarConfig = createGrammarConfigView({});\n candidatesByFile = /* @__PURE__ */ new Map();\n compiledCandidates = /* @__PURE__ */ new Set();\n addDependency = () => {\n };\n css = \"\";\n }\n async function configure(nextRoot, nextGeneration, config, onDependency, onSourceGlob = () => {\n }) {\n if (!config) {\n clear();\n generation = nextGeneration;\n return false;\n }\n if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {\n return true;\n }\n await assertHostTailwind(nextRoot);\n root = nextRoot;\n generation = nextGeneration;\n enabled = true;\n grammarConfig = createGrammarConfigView(config);\n addDependency = onDependency;\n scanner = new Scanner({\n sources: [\n { base: root, pattern: \"**/*\", negated: false },\n { base: root, pattern: \"node_modules/**\", negated: true },\n { base: root, pattern: \".git/**\", negated: true },\n { base: root, pattern: \".vite/**\", negated: true },\n { base: root, pattern: \"dist/**\", negated: true },\n { base: root, pattern: \"build/**\", negated: true },\n { base: root, pattern: \"coverage/**\", negated: true }\n ]\n });\n compiler = await createCompiler();\n scanner.scan();\n registerScannerSources(scanner, onDependency, onSourceGlob);\n candidatesByFile = /* @__PURE__ */ new Map();\n await Promise.all(\n scanner.files.map(async (file) => {\n try {\n const source = await readFile(file, \"utf8\");\n candidatesByFile.set(\n await normalizeSourcePath(file),\n candidatesForSource(scanner, file, source)\n );\n } catch {\n }\n })\n );\n await rebuild();\n return true;\n }\n async function createCompiler() {\n return compile(TAILWIND_INPUT, {\n base: root,\n onDependency: addDependency\n });\n }\n async function rebuild() {\n if (!compiler) return false;\n const allCandidates = /* @__PURE__ */ new Set();\n for (const candidates of candidatesByFile.values()) {\n for (const candidate of candidates) allCandidates.add(candidate);\n }\n const passthrough = [...allCandidates].filter(\n (candidate) => classifyCandidate(candidate, grammarConfig).kind === \"passthrough\"\n ).sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n const nextCandidates = new Set(passthrough);\n const removedCandidate = [...compiledCandidates].some(\n (candidate) => !nextCandidates.has(candidate)\n );\n if (removedCandidate) {\n compiler = await createCompiler();\n }\n const nextCSS = compiler.build(passthrough);\n compiledCandidates = nextCandidates;\n if (nextCSS === css) return false;\n css = nextCSS;\n return true;\n }\n async function scanSource(id, source) {\n if (!enabled || !scanner) return false;\n candidatesByFile.set(\n await normalizeSourcePath(id),\n candidatesForSource(scanner, id, source)\n );\n return rebuild();\n }\n async function removeSource(id) {\n if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;\n return rebuild();\n }\n return {\n clear,\n configure,\n removeSource,\n scanSource,\n get enabled() {\n return enabled;\n },\n get css() {\n return css;\n },\n get candidateCount() {\n return compiledCandidates.size;\n }\n };\n}\nasync function updateTailwindForWatchChange(state, id, event, configure) {\n if (!await configure()) return false;\n if (event === \"delete\") {\n return state.removeSource(id);\n }\n try {\n return state.scanSource(id, await readFile(id, \"utf8\"));\n } catch {\n return state.removeSource(id);\n }\n}\nfunction registerScannerSources(scanner, onDependency, onSourceGlob) {\n for (const file of scanner.files) {\n onDependency(file);\n }\n for (const { base, pattern } of scanner.globs) {\n onSourceGlob(path.join(base, pattern));\n }\n}\nasync function normalizeSourcePath(id) {\n const cleanId = path.resolve(id.split(\"?\", 1)[0]);\n try {\n return await realpath(cleanId);\n } catch {\n try {\n return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));\n } catch {\n return cleanId;\n }\n }\n}\nfunction candidatesForSource(scanner, id, source) {\n return new Set(\n scanner.getCandidatesWithPositions({\n content: source,\n extension: extensionForFile(id)\n }).map(({ candidate }) => candidate)\n );\n}\nexport {\n TAILWIND_RESOLVED_ID,\n TAILWIND_VERSION,\n TAILWIND_VIRTUAL_ID,\n createTailwindScannerState,\n isTamaguiCoreResetCSS,\n updateTailwindForWatchChange,\n wrapWithTamaguiLayer\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { compile } from "@tailwindcss/node";
2
2
  import { Scanner } from "@tailwindcss/oxide";
3
- import { classifyCandidate, createGrammarConfigView } from "@tamagui/style-grammar/runtime";
3
+ import { createGrammarConfigView } from "@tamagui/style-grammar/runtime";
4
+ import { classifyCandidate } from "@tamagui/style-grammar/tooling";
4
5
  import { readFile, realpath } from "fs/promises";
5
6
  import { createRequire } from "module";
6
7
  import path from "path";
@@ -1 +1 @@
1
- {"version":3,"file":"state.native.js","names":[],"sources":["esm/vite/state.native.js"],"sourcesContent":["import { compile } from \"@tailwindcss/node\";\nimport { Scanner } from \"@tailwindcss/oxide\";\nimport { classifyCandidate, createGrammarConfigView } from \"@tamagui/style-grammar/runtime\";\nimport { readFile, realpath } from \"fs/promises\";\nimport { createRequire } from \"module\";\nimport path from \"path\";\nvar TAILWIND_VERSION = \"4.3.0\";\nvar TAILWIND_VIRTUAL_ID = \"virtual:tamagui-tailwind.css\";\nvar TAILWIND_RESOLVED_ID = `\\0${TAILWIND_VIRTUAL_ID}`;\nfunction wrapWithTamaguiLayer(css) {\n return `@layer tamagui {\n${css}\n}`;\n}\nfunction isTamaguiCoreResetCSS(id) {\n var normalizedId = id.split(\"?\", 1)[0].replace(/\\\\/g, \"/\");\n return normalizedId.endsWith(\"/@tamagui/core/reset.css\") || normalizedId.endsWith(\"/code/core/core/reset.css\");\n}\nvar TAILWIND_INPUT = `@layer tamagui, theme, utilities;\n@import \"tailwindcss/theme.css\" layer(theme);\n@import \"tailwindcss/utilities.css\" layer(utilities);`;\nfunction extensionForFile(id) {\n return path.extname(id.split(\"?\", 1)[0]).slice(1) || \"html\";\n}\nasync function assertHostTailwind(root) {\n var requireFromRoot = createRequire(path.join(root, \"package.json\"));\n var packagePath;\n try {\n packagePath = requireFromRoot.resolve(\"tailwindcss/package.json\");\n } catch (e) {\n throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \\`bun add -D tailwindcss@${TAILWIND_VERSION}\\` (resolved from ${root}).`);\n }\n var packageJSON = JSON.parse(await readFile(packagePath, \"utf8\"));\n if (packageJSON.version !== TAILWIND_VERSION) {\n throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || \"an unknown version\"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`);\n }\n}\nfunction createTailwindScannerState() {\n var root = \"\";\n var generation = -1;\n var enabled = false;\n var scanner = null;\n var compiler = null;\n var grammarConfig = createGrammarConfigView({});\n var candidatesByFile = /* @__PURE__ */ new Map();\n var compiledCandidates = /* @__PURE__ */ new Set();\n var addDependency = function() {\n };\n var css = \"\";\n function clear() {\n root = \"\";\n generation = -1;\n enabled = false;\n scanner = null;\n compiler = null;\n grammarConfig = createGrammarConfigView({});\n candidatesByFile = /* @__PURE__ */ new Map();\n compiledCandidates = /* @__PURE__ */ new Set();\n addDependency = function() {\n };\n css = \"\";\n }\n async function configure(nextRoot, nextGeneration, config, onDependency) {\n var onSourceGlob = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : function() {\n };\n if (!config) {\n clear();\n generation = nextGeneration;\n return false;\n }\n if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {\n return true;\n }\n await assertHostTailwind(nextRoot);\n root = nextRoot;\n generation = nextGeneration;\n enabled = true;\n grammarConfig = createGrammarConfigView(config);\n addDependency = onDependency;\n scanner = new Scanner({\n sources: [\n {\n base: root,\n pattern: \"**/*\",\n negated: false\n },\n {\n base: root,\n pattern: \"node_modules/**\",\n negated: true\n },\n {\n base: root,\n pattern: \".git/**\",\n negated: true\n },\n {\n base: root,\n pattern: \".vite/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"dist/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"build/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"coverage/**\",\n negated: true\n }\n ]\n });\n compiler = await createCompiler();\n scanner.scan();\n registerScannerSources(scanner, onDependency, onSourceGlob);\n candidatesByFile = /* @__PURE__ */ new Map();\n await Promise.all(scanner.files.map(async function(file) {\n try {\n var source = await readFile(file, \"utf8\");\n candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));\n } catch (e) {\n }\n }));\n await rebuild();\n return true;\n }\n async function createCompiler() {\n return compile(TAILWIND_INPUT, {\n base: root,\n onDependency: addDependency\n });\n }\n async function rebuild() {\n if (!compiler) return false;\n var allCandidates = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidatesByFile.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidates = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = candidates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var candidate = _step1.value;\n allCandidates.add(candidate);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var passthrough = [\n ...allCandidates\n ].filter(function(candidate2) {\n return classifyCandidate(candidate2, grammarConfig).kind === \"passthrough\";\n }).sort(function(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n });\n var nextCandidates = new Set(passthrough);\n var removedCandidate = [\n ...compiledCandidates\n ].some(function(candidate2) {\n return !nextCandidates.has(candidate2);\n });\n if (removedCandidate) {\n compiler = await createCompiler();\n }\n var nextCSS = compiler.build(passthrough);\n compiledCandidates = nextCandidates;\n if (nextCSS === css) return false;\n css = nextCSS;\n return true;\n }\n async function scanSource(id, source) {\n if (!enabled || !scanner) return false;\n candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));\n return rebuild();\n }\n async function removeSource(id) {\n if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;\n return rebuild();\n }\n return {\n clear,\n configure,\n removeSource,\n scanSource,\n get enabled() {\n return enabled;\n },\n get css() {\n return css;\n },\n get candidateCount() {\n return compiledCandidates.size;\n }\n };\n}\nasync function updateTailwindForWatchChange(state, id, event, configure) {\n if (!await configure()) return false;\n if (event === \"delete\") {\n return state.removeSource(id);\n }\n try {\n return state.scanSource(id, await readFile(id, \"utf8\"));\n } catch (e) {\n return state.removeSource(id);\n }\n}\nfunction registerScannerSources(scanner, onDependency, onSourceGlob) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = scanner.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var file = _step.value;\n onDependency(file);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = scanner.globs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var { base, pattern } = _step1.value;\n onSourceGlob(path.join(base, pattern));\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}\nasync function normalizeSourcePath(id) {\n var cleanId = path.resolve(id.split(\"?\", 1)[0]);\n try {\n return await realpath(cleanId);\n } catch (e) {\n try {\n return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));\n } catch (e2) {\n return cleanId;\n }\n }\n}\nfunction candidatesForSource(scanner, id, source) {\n return new Set(scanner.getCandidatesWithPositions({\n content: source,\n extension: extensionForFile(id)\n }).map(function(param) {\n var { candidate } = param;\n return candidate;\n }));\n}\nexport {\n TAILWIND_RESOLVED_ID,\n TAILWIND_VERSION,\n TAILWIND_VIRTUAL_ID,\n createTailwindScannerState,\n isTamaguiCoreResetCSS,\n updateTailwindForWatchChange,\n wrapWithTamaguiLayer\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"state.native.js","names":[],"sources":["esm/vite/state.native.js"],"sourcesContent":["import { compile } from \"@tailwindcss/node\";\nimport { Scanner } from \"@tailwindcss/oxide\";\nimport { createGrammarConfigView } from \"@tamagui/style-grammar/runtime\";\nimport { classifyCandidate } from \"@tamagui/style-grammar/tooling\";\nimport { readFile, realpath } from \"fs/promises\";\nimport { createRequire } from \"module\";\nimport path from \"path\";\nvar TAILWIND_VERSION = \"4.3.0\";\nvar TAILWIND_VIRTUAL_ID = \"virtual:tamagui-tailwind.css\";\nvar TAILWIND_RESOLVED_ID = `\\0${TAILWIND_VIRTUAL_ID}`;\nfunction wrapWithTamaguiLayer(css) {\n return `@layer tamagui {\n${css}\n}`;\n}\nfunction isTamaguiCoreResetCSS(id) {\n var normalizedId = id.split(\"?\", 1)[0].replace(/\\\\/g, \"/\");\n return normalizedId.endsWith(\"/@tamagui/core/reset.css\") || normalizedId.endsWith(\"/code/core/core/reset.css\");\n}\nvar TAILWIND_INPUT = `@layer tamagui, theme, utilities;\n@import \"tailwindcss/theme.css\" layer(theme);\n@import \"tailwindcss/utilities.css\" layer(utilities);`;\nfunction extensionForFile(id) {\n return path.extname(id.split(\"?\", 1)[0]).slice(1) || \"html\";\n}\nasync function assertHostTailwind(root) {\n var requireFromRoot = createRequire(path.join(root, \"package.json\"));\n var packagePath;\n try {\n packagePath = requireFromRoot.resolve(\"tailwindcss/package.json\");\n } catch (e) {\n throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION} in the app. Install it with \\`bun add -D tailwindcss@${TAILWIND_VERSION}\\` (resolved from ${root}).`);\n }\n var packageJSON = JSON.parse(await readFile(packagePath, \"utf8\"));\n if (packageJSON.version !== TAILWIND_VERSION) {\n throw new Error(`[tamagui] @tamagui/tailwind/vite requires tailwindcss@${TAILWIND_VERSION}, but ${packageJSON.version || \"an unknown version\"} was resolved from ${packagePath}. Align the app dependency before starting Vite.`);\n }\n}\nfunction createTailwindScannerState() {\n var root = \"\";\n var generation = -1;\n var enabled = false;\n var scanner = null;\n var compiler = null;\n var grammarConfig = createGrammarConfigView({});\n var candidatesByFile = /* @__PURE__ */ new Map();\n var compiledCandidates = /* @__PURE__ */ new Set();\n var addDependency = function() {\n };\n var css = \"\";\n function clear() {\n root = \"\";\n generation = -1;\n enabled = false;\n scanner = null;\n compiler = null;\n grammarConfig = createGrammarConfigView({});\n candidatesByFile = /* @__PURE__ */ new Map();\n compiledCandidates = /* @__PURE__ */ new Set();\n addDependency = function() {\n };\n css = \"\";\n }\n async function configure(nextRoot, nextGeneration, config, onDependency) {\n var onSourceGlob = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : function() {\n };\n if (!config) {\n clear();\n generation = nextGeneration;\n return false;\n }\n if (compiler && scanner && enabled && generation === nextGeneration && root === nextRoot) {\n return true;\n }\n await assertHostTailwind(nextRoot);\n root = nextRoot;\n generation = nextGeneration;\n enabled = true;\n grammarConfig = createGrammarConfigView(config);\n addDependency = onDependency;\n scanner = new Scanner({\n sources: [\n {\n base: root,\n pattern: \"**/*\",\n negated: false\n },\n {\n base: root,\n pattern: \"node_modules/**\",\n negated: true\n },\n {\n base: root,\n pattern: \".git/**\",\n negated: true\n },\n {\n base: root,\n pattern: \".vite/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"dist/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"build/**\",\n negated: true\n },\n {\n base: root,\n pattern: \"coverage/**\",\n negated: true\n }\n ]\n });\n compiler = await createCompiler();\n scanner.scan();\n registerScannerSources(scanner, onDependency, onSourceGlob);\n candidatesByFile = /* @__PURE__ */ new Map();\n await Promise.all(scanner.files.map(async function(file) {\n try {\n var source = await readFile(file, \"utf8\");\n candidatesByFile.set(await normalizeSourcePath(file), candidatesForSource(scanner, file, source));\n } catch (e) {\n }\n }));\n await rebuild();\n return true;\n }\n async function createCompiler() {\n return compile(TAILWIND_INPUT, {\n base: root,\n onDependency: addDependency\n });\n }\n async function rebuild() {\n if (!compiler) return false;\n var allCandidates = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidatesByFile.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidates = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = candidates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var candidate = _step1.value;\n allCandidates.add(candidate);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var passthrough = [\n ...allCandidates\n ].filter(function(candidate2) {\n return classifyCandidate(candidate2, grammarConfig).kind === \"passthrough\";\n }).sort(function(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n });\n var nextCandidates = new Set(passthrough);\n var removedCandidate = [\n ...compiledCandidates\n ].some(function(candidate2) {\n return !nextCandidates.has(candidate2);\n });\n if (removedCandidate) {\n compiler = await createCompiler();\n }\n var nextCSS = compiler.build(passthrough);\n compiledCandidates = nextCandidates;\n if (nextCSS === css) return false;\n css = nextCSS;\n return true;\n }\n async function scanSource(id, source) {\n if (!enabled || !scanner) return false;\n candidatesByFile.set(await normalizeSourcePath(id), candidatesForSource(scanner, id, source));\n return rebuild();\n }\n async function removeSource(id) {\n if (!candidatesByFile.delete(await normalizeSourcePath(id))) return false;\n return rebuild();\n }\n return {\n clear,\n configure,\n removeSource,\n scanSource,\n get enabled() {\n return enabled;\n },\n get css() {\n return css;\n },\n get candidateCount() {\n return compiledCandidates.size;\n }\n };\n}\nasync function updateTailwindForWatchChange(state, id, event, configure) {\n if (!await configure()) return false;\n if (event === \"delete\") {\n return state.removeSource(id);\n }\n try {\n return state.scanSource(id, await readFile(id, \"utf8\"));\n } catch (e) {\n return state.removeSource(id);\n }\n}\nfunction registerScannerSources(scanner, onDependency, onSourceGlob) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = scanner.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var file = _step.value;\n onDependency(file);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = scanner.globs[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var { base, pattern } = _step1.value;\n onSourceGlob(path.join(base, pattern));\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}\nasync function normalizeSourcePath(id) {\n var cleanId = path.resolve(id.split(\"?\", 1)[0]);\n try {\n return await realpath(cleanId);\n } catch (e) {\n try {\n return path.join(await realpath(path.dirname(cleanId)), path.basename(cleanId));\n } catch (e2) {\n return cleanId;\n }\n }\n}\nfunction candidatesForSource(scanner, id, source) {\n return new Set(scanner.getCandidatesWithPositions({\n content: source,\n extension: extensionForFile(id)\n }).map(function(param) {\n var { candidate } = param;\n return candidate;\n }));\n}\nexport {\n TAILWIND_RESOLVED_ID,\n TAILWIND_VERSION,\n TAILWIND_VIRTUAL_ID,\n createTailwindScannerState,\n isTamaguiCoreResetCSS,\n updateTailwindForWatchChange,\n wrapWithTamaguiLayer\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/tailwind",
3
- "version": "3.0.0-beta.831.1",
3
+ "version": "3.0.0-beta.889.1",
4
4
  "license": "MIT",
5
5
  "author": {
6
6
  "name": "Nate Wienert"
@@ -64,20 +64,20 @@
64
64
  "dependencies": {
65
65
  "@tailwindcss/node": "4.3.0",
66
66
  "@tailwindcss/oxide": "4.3.0",
67
- "@tamagui/constants": "3.0.0-beta.831.1",
68
- "@tamagui/core": "3.0.0-beta.831.1",
69
- "@tamagui/helpers": "3.0.0-beta.831.1",
70
- "@tamagui/style-grammar": "3.0.0-beta.831.1",
71
- "@tamagui/vite-plugin": "3.0.0-beta.831.1"
67
+ "@tamagui/constants": "3.0.0-beta.889.1",
68
+ "@tamagui/core": "3.0.0-beta.889.1",
69
+ "@tamagui/helpers": "3.0.0-beta.889.1",
70
+ "@tamagui/style-grammar": "3.0.0-beta.889.1",
71
+ "@tamagui/vite-plugin": "3.0.0-beta.889.1"
72
72
  },
73
73
  "devDependencies": {
74
- "@tamagui/build": "3.0.0-beta.831.1",
75
- "@tamagui/config": "3.0.0-beta.831.1",
76
- "@tamagui/config-default": "3.0.0-beta.831.1",
77
- "@tamagui/fake-react-native": "3.0.0-beta.831.1",
78
- "@tamagui/react-native-web-lite": "3.0.0-beta.831.1",
79
- "@tamagui/to-tailwind": "3.0.0-beta.831.1",
80
- "@tamagui/web": "3.0.0-beta.831.1",
74
+ "@tamagui/build": "3.0.0-beta.889.1",
75
+ "@tamagui/config": "3.0.0-beta.889.1",
76
+ "@tamagui/config-default": "3.0.0-beta.889.1",
77
+ "@tamagui/fake-react-native": "3.0.0-beta.889.1",
78
+ "@tamagui/react-native-web-lite": "3.0.0-beta.889.1",
79
+ "@tamagui/to-tailwind": "3.0.0-beta.889.1",
80
+ "@tamagui/web": "3.0.0-beta.889.1",
81
81
  "react": "19.2.3",
82
82
  "typescript": "~6.0.3",
83
83
  "vite": "^8.2.2",
package/src/candidate.ts CHANGED
@@ -7,18 +7,22 @@ import {
7
7
  } from '@tamagui/core/internal-runtime'
8
8
  import {
9
9
  borderSideSuffix,
10
- classifyCandidate,
11
10
  configRevisionSymbol,
12
11
  createGrammarConfigView,
13
- decodeArbitrary,
14
12
  getTokenCategory,
15
13
  getSafeAreaEdge,
14
+ insetAxisProps,
16
15
  percentUtilityProps,
17
16
  radiusCornerProps,
17
+ sizeUtilityProps,
18
18
  splitColorOpacitySuffix,
19
+ } from '@tamagui/style-grammar/runtime'
20
+ import {
21
+ classifyCandidate,
22
+ decodeArbitrary,
19
23
  type GrammarConfigView,
20
24
  type ParsedCandidate,
21
- } from '@tamagui/style-grammar/runtime'
25
+ } from '@tamagui/style-grammar/tooling/candidate'
22
26
 
23
27
  /**
24
28
  * Class-string tokenization and candidate adaptation. This is the Tailwind
@@ -94,31 +98,28 @@ function borderDimValue(raw: string): number | string {
94
98
  }
95
99
 
96
100
  /**
97
- * Expand a registry-parsed directional border/radius into all affected props. The registry
98
- * already selected the token category and width-vs-color meaning; this function only expands
99
- * that semantic result across sides/corners.
101
+ * Prefixes that write more than one longhand from a single candidate. The registry
102
+ * already selected the token category and width-vs-color meaning; this only names
103
+ * the affected props. Values are converted per longhand so size-screen can be
104
+ * 100vw by 100vh.
100
105
  */
101
- function expandBorderCandidate(
102
- parsed: ParsedCandidate,
103
- value: any
104
- ): Record<string, any> | null {
106
+ function expansionProps(parsed: ParsedCandidate): readonly string[] | null {
105
107
  const prefix = parsed.prefix
106
108
  if (!prefix) return null
109
+ if (prefix === 'size') return sizeUtilityProps
110
+ if (prefix === 'inset-x' || prefix === 'inset-y') {
111
+ return insetAxisProps[prefix.slice('inset-'.length)]
112
+ }
107
113
  if (prefix.startsWith('rounded-')) {
108
114
  const props = radiusCornerProps[prefix.slice('rounded-'.length)]
109
115
  if (!props || props.length === 1) return null
110
- const out: Record<string, any> = {}
111
- for (const p of props) out[p] = value
112
- return out
116
+ return props
113
117
  }
114
-
115
118
  const m = /^border-([trblxy])$/.exec(prefix)
116
119
  if (!m) return null
117
120
  const sides = borderSideSuffix[m[1]]
118
121
  const suffix = parsed.entry?.prop.endsWith('Width') ? 'Width' : 'Color'
119
- const out: Record<string, any> = {}
120
- for (const side of sides) out[`border${side}${suffix}`] = value
121
- return out
122
+ return sides.map((side) => `border${side}${suffix}`)
122
123
  }
123
124
 
124
125
  /**
@@ -383,20 +384,25 @@ function computeClassPlan(
383
384
  }
384
385
  return entries
385
386
  }
386
- // Resolve only after the registry has claimed the candidate. Directional border/radius
387
- // expansion below consumes that parsed decision instead of re-parsing width vs color.
387
+ // Resolve only after the registry has claimed the candidate. Multi-prop expansion
388
+ // below consumes that parsed decision instead of re-parsing width vs color.
389
+ const expandedProps = expansionProps(parsed)
390
+ if (expandedProps) {
391
+ const entries: TailwindPlanEntry[] = []
392
+ for (const prop of expandedProps) {
393
+ const flatProp = tailwindClassToFlatProp({
394
+ ...parsed,
395
+ entry: parsed.entry ? { ...parsed.entry, prop } : parsed.entry,
396
+ })
397
+ if (!flatProp) return 'raw'
398
+ const entry = createPlanEntry(flatProp.key, flatProp.value, parsed.modifiers)
399
+ if (!entry) return 'raw'
400
+ entries.push(entry)
401
+ }
402
+ return entries
403
+ }
388
404
  const flatProp = tailwindClassToFlatProp(parsed)
389
405
  if (flatProp) {
390
- const expanded = expandBorderCandidate(parsed, flatProp.value)
391
- if (expanded) {
392
- const entries: TailwindPlanEntry[] = []
393
- for (const p in expanded) {
394
- const entry = createPlanEntry(p, expanded[p], parsed.modifiers)
395
- if (!entry) return 'raw'
396
- entries.push(entry)
397
- }
398
- return entries
399
- }
400
406
  const entry = createPlanEntry(flatProp.key, flatProp.value, parsed.modifiers)
401
407
  return entry ? [entry] : 'raw'
402
408
  }
package/src/frontend.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  type FrontendStaticConfig,
3
3
  type FrontendStaticConfigNormalization,
4
+ type FrontendClassSink,
4
5
  type StyleFrontend,
5
6
  type StyleFrontendConfig,
6
7
  } from '@tamagui/core/internal-runtime'
@@ -9,9 +10,8 @@ import { getTailwindClassPlan, resolveTailwindClassName } from './candidate'
9
10
  /**
10
11
  * The Tailwind frontend descriptor.
11
12
  *
12
- * The shared style cursor tokenizes `className` once and asks this descriptor for
13
- * an immutable plan per candidate.
14
- * Everything after this point — value programs,
13
+ * The shared style cursor tokenizes `className` once and asks this descriptor to
14
+ * emit the entries for each candidate. Everything after this point — value programs,
15
15
  * per-longhand forward merging, web lowering, native evaluation — is shared.
16
16
  *
17
17
  * Owned candidates are never string-merged: each contributes at its authored
@@ -66,7 +66,21 @@ function normalizeTailwindStaticConfig(
66
66
  return { baseStyle, passthroughClassName, variants }
67
67
  }
68
68
 
69
+ function resolveTailwindCandidate(
70
+ candidate: string,
71
+ config: StyleFrontendConfig,
72
+ sink: FrontendClassSink
73
+ ): boolean | null {
74
+ const plan = getTailwindClassPlan(candidate, config)
75
+ if (plan === 'raw') return true
76
+ if (plan === null) return null
77
+ const parent = Array.isArray(plan) ? null : plan
78
+ const entries = parent ? parent.entries : plan
79
+ for (let index = 0; index < entries.length; index++) sink(entries[index])
80
+ return parent?.preserveRawClass || false
81
+ }
82
+
69
83
  export const tailwindStyleFrontend: StyleFrontend = {
70
- getClassPlan: getTailwindClassPlan,
84
+ resolveClassName: resolveTailwindCandidate,
71
85
  normalizeStaticConfig: normalizeTailwindStaticConfig,
72
86
  }
package/src/vite/state.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { compile } from '@tailwindcss/node'
2
2
  import { Scanner } from '@tailwindcss/oxide'
3
3
  import {
4
- classifyCandidate,
5
4
  createGrammarConfigView,
6
5
  type GrammarSourceConfig,
7
6
  } from '@tamagui/style-grammar/runtime'
7
+ import { classifyCandidate } from '@tamagui/style-grammar/tooling'
8
8
  import { readFile, realpath } from 'node:fs/promises'
9
9
  import { createRequire } from 'node:module'
10
10
  import path from 'node:path'
@@ -1,5 +1,5 @@
1
1
  import { type FrontendClassPlan, type StyleFrontendConfig } from '@tamagui/core/internal-runtime';
2
- import { type GrammarConfigView } from '@tamagui/style-grammar/runtime';
2
+ import { type GrammarConfigView } from '@tamagui/style-grammar/tooling/candidate';
3
3
  export declare function getStyleGrammarConfig(config: StyleFrontendConfig): GrammarConfigView;
4
4
  export declare function isTokenValueProp(prop: string): boolean;
5
5
  export declare function getTailwindClassPlan(candidate: string, config: StyleFrontendConfig): FrontendClassPlan;
@@ -1 +1 @@
1
- {"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../src/candidate.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAWL,KAAK,iBAAiB,EAEvB,MAAM,gCAAgC,CAAA;AAkBvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAqWD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAC1B,iBAAiB,CASnB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyCrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,GACT,IAAI,CAGN"}
1
+ {"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../src/candidate.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAA;AAavC,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,0CAA0C,CAAA;AAkBjD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAuWD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAC1B,iBAAiB,CASnB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyCrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,GACT,IAAI,CAGN"}
@@ -2,9 +2,8 @@ import { type StyleFrontend, type StyleFrontendConfig } from '@tamagui/core/inte
2
2
  /**
3
3
  * The Tailwind frontend descriptor.
4
4
  *
5
- * The shared style cursor tokenizes `className` once and asks this descriptor for
6
- * an immutable plan per candidate.
7
- * Everything after this point — value programs,
5
+ * The shared style cursor tokenizes `className` once and asks this descriptor to
6
+ * emit the entries for each candidate. Everything after this point — value programs,
8
7
  * per-longhand forward merging, web lowering, native evaluation — is shared.
9
8
  *
10
9
  * Owned candidates are never string-merged: each contributes at its authored
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAA;AAGvC;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErB;AAsCD,eAAO,MAAM,qBAAqB,EAAE,aAGnC,CAAA"}
1
+ {"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAA;AAGvC;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErB;AAoDD,eAAO,MAAM,qBAAqB,EAAE,aAGnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/vite/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAA;AAKvC,eAAO,MAAM,gBAAgB,UAAU,CAAA;AACvC,eAAO,MAAM,mBAAmB,iCAAiC,CAAA;AACjE,eAAO,MAAM,oBAAoB,mCAA6B,CAAA;AAE9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMzD;AAQD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AA2B/D;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B;;0BA0B5B,MAAM,kBACA,MAAM,UACd,mBAAmB,GAAG,IAAI,GAAG,SAAS,gBAChC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,iBACtB,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KACnC,OAAO,CAAC,OAAO,CAAC;uBAiGa,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;qBAT3B,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;;;;EA6BxE;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,oBAAoB,EAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC,CAUlB"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/vite/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAA;AAMvC,eAAO,MAAM,gBAAgB,UAAU,CAAA;AACvC,eAAO,MAAM,mBAAmB,iCAAiC,CAAA;AACjE,eAAO,MAAM,oBAAoB,mCAA6B,CAAA;AAE9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMzD;AAQD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AA2B/D;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B;;0BA0B5B,MAAM,kBACA,MAAM,UACd,mBAAmB,GAAG,IAAI,GAAG,SAAS,gBAChC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,iBACtB,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KACnC,OAAO,CAAC,OAAO,CAAC;uBAiGa,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;qBAT3B,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;;;;EA6BxE;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,oBAAoB,EAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC,CAUlB"}