{"version":3,"file":"compose.js","names":[],"sources":["esm/compose.js"],"sourcesContent":["import { plainValueToPayload } from \"@tamagui/core/internal-runtime\";\nimport { canonicalClauseModifier, splitColorOpacitySuffix } from \"@tamagui/style-grammar/runtime\";\nimport { classifyCandidate, decodeArbitrary, hasTokenName, splitCandidate } from \"@tamagui/style-grammar/tooling/candidate\";\nimport { isAndroid, isWeb } from \"@tamagui/constants\";\n\nconst transformProps = /* @__PURE__ */ new Set([\n\t\"perspective\",\n\t\"rotateX\",\n\t\"rotateY\",\n\t\"rotateZ\",\n\t\"skewX\",\n\t\"skewY\"\n]);\nconst nativeTarget = !isWeb || false;\nconst linearTo = {\n\tt: \"to top\",\n\ttr: \"to top right\",\n\tr: \"to right\",\n\tbr: \"to bottom right\",\n\tb: \"to bottom\",\n\tbl: \"to bottom left\",\n\tl: \"to left\",\n\ttl: \"to top left\"\n};\nconst colorKeywords = {\n\ttransparent: \"transparent\",\n\tcurrent: \"currentColor\",\n\tinherit: \"inherit\",\n\tblack: \"black\",\n\twhite: \"white\"\n};\nconst dropShadowPresets = {\n\txs: {\n\t\tgeometry: \"0 1px 1px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.05)\"\n\t},\n\tsm: {\n\t\tgeometry: \"0 1px 2px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.15)\"\n\t},\n\tmd: {\n\t\tgeometry: \"0 3px 3px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.12)\"\n\t},\n\tlg: {\n\t\tgeometry: \"0 4px 4px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.15)\"\n\t},\n\txl: {\n\t\tgeometry: \"0 9px 7px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.1)\"\n\t},\n\t\"2xl\": {\n\t\tgeometry: \"0 25px 25px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.15)\"\n\t},\n\tnone: {\n\t\tgeometry: \"0 0 0\",\n\t\tdefaultColor: \"transparent\"\n\t}\n};\nconst textShadowPresets = {\n\t\"2xs\": {\n\t\toffset: {\n\t\t\twidth: 0,\n\t\t\theight: 1\n\t\t},\n\t\tradius: 0,\n\t\tdefaultColor: \"rgb(0 0 0 / 0.15)\"\n\t},\n\txs: {\n\t\toffset: {\n\t\t\twidth: 0,\n\t\t\theight: 1\n\t\t},\n\t\tradius: 1,\n\t\tdefaultColor: \"rgb(0 0 0 / 0.2)\"\n\t},\n\tnone: {\n\t\toffset: {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t},\n\t\tradius: 0,\n\t\tdefaultColor: \"transparent\"\n\t}\n};\nconst insetShadowPresets = {\n\t\"2xs\": {\n\t\tgeometry: \"inset 0 1px 0\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.05)\"\n\t},\n\txs: {\n\t\tgeometry: \"inset 0 1px 1px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.05)\"\n\t},\n\tsm: {\n\t\tgeometry: \"inset 0 2px 4px\",\n\t\tdefaultColor: \"rgb(0 0 0 / 0.05)\"\n\t},\n\tnone: {\n\t\tgeometry: \"\",\n\t\tdefaultColor: \"transparent\"\n\t}\n};\nconst filterPropMap = {\n\tblur: \"__filter_blur\",\n\tbrightness: \"__filter_brightness\",\n\tcontrast: \"__filter_contrast\",\n\tgrayscale: \"__filter_grayscale\",\n\t\"hue-rotate\": \"__filter_hueRotate\",\n\tinvert: \"__filter_invert\",\n\tsaturate: \"__filter_saturate\",\n\tsepia: \"__filter_sepia\"\n};\nfunction composerKind(core) {\n\tconst first = core.charCodeAt(0);\n\tif (first === 100) return core.startsWith(\"drop-shadow-\") ? \"drop-shadow\" : null;\n\tif (first === 102) return core.startsWith(\"from-\") ? \"from\" : null;\n\tif (first === 118) return core.startsWith(\"via-\") ? \"via\" : null;\n\tif (first === 116) {\n\t\tif (core.startsWith(\"text-shadow-\")) return \"text-shadow\";\n\t\treturn core.startsWith(\"to-\") ? \"to\" : null;\n\t}\n\tif (first === 98) {\n\t\tif (core.startsWith(\"bg-linear-to-\")) return \"image\";\n\t\treturn core.startsWith(\"blur-\") || core.startsWith(\"brightness-\") ? \"filter\" : null;\n\t}\n\tif (first === 114) {\n\t\tif (core.startsWith(\"ring-offset-\")) return \"ring-offset\";\n\t\treturn core === \"ring\" || core.startsWith(\"ring-\") ? \"ring\" : null;\n\t}\n\tif (first === 99) return core.startsWith(\"contrast-\") ? \"filter\" : null;\n\tif (first === 103) return core === \"grayscale\" || core.startsWith(\"grayscale-\") ? \"filter\" : null;\n\tif (first === 104) return core.startsWith(\"hue-rotate-\") ? \"filter\" : null;\n\tif (first === 105) return core.startsWith(\"inset-ring\") ? \"inset-ring\" : core.startsWith(\"inset-shadow-\") ? \"inset-shadow\" : core === \"invert\" || core.startsWith(\"invert-\") ? \"filter\" : null;\n\tif (first === 115) {\n\t\tif (core.startsWith(\"shadow-\")) return \"shadow-color\";\n\t\treturn core.startsWith(\"saturate-\") || core === \"sepia\" || core.startsWith(\"sepia-\") ? \"filter\" : null;\n\t}\n\treturn null;\n}\nfunction filterPart(core) {\n\tif (core.startsWith(\"blur-\")) {\n\t\tconst value = {\n\t\t\tnone: 0,\n\t\t\txs: 4,\n\t\t\tsm: 8,\n\t\t\tmd: 12,\n\t\t\tlg: 16,\n\t\t\txl: 24,\n\t\t\t\"2xl\": 40,\n\t\t\t\"3xl\": 64\n\t\t}[core.slice(5)];\n\t\treturn value === void 0 ? null : [\"blur\", `${value}px`];\n\t}\n\tfor (const name of [\n\t\t\"brightness\",\n\t\t\"contrast\",\n\t\t\"saturate\"\n\t]) {\n\t\tif (!core.startsWith(`${name}-`)) continue;\n\t\tconst value = core.slice(name.length + 1);\n\t\tif (!/^\\d+$/.test(value)) return null;\n\t\treturn [name, `${value}%`];\n\t}\n\tfor (const name of [\n\t\t\"grayscale\",\n\t\t\"invert\",\n\t\t\"sepia\"\n\t]) {\n\t\tif (core === name) return [name, \"100%\"];\n\t\tif (!core.startsWith(`${name}-`)) continue;\n\t\tconst value = core.slice(name.length + 1);\n\t\tif (!/^\\d+$/.test(value)) return null;\n\t\treturn [name, `${value}%`];\n\t}\n\tif (core.startsWith(\"hue-rotate-\")) {\n\t\tconst value = core.slice(11);\n\t\tif (!/^\\d+$/.test(value)) return null;\n\t\treturn [\"hue-rotate\", `${value}deg`];\n\t}\n\treturn null;\n}\nfunction resolveColor(raw, config) {\n\tif (raw.length > 1 && raw[0] === \"[\" && raw[raw.length - 1] === \"]\") return decodeArbitrary(raw.slice(1, -1)) || null;\n\tif (raw.endsWith(\"%\")) return null;\n\tconst keyword = colorKeywords[raw];\n\tif (keyword) return keyword;\n\tconst suffix = splitColorOpacitySuffix(raw);\n\tif (!hasTokenName(config, \"color\", suffix.kind === \"none\" ? raw : suffix.name)) return null;\n\treturn raw;\n}\nfunction emit(sink, property, value, modifiers) {\n\tif (modifiers.length === 0) {\n\t\tsink([property, value]);\n\t\treturn;\n\t}\n\tconst payload = plainValueToPayload(value, property) ?? value;\n\tif (payload === null) return;\n\tlet condition = modifiers[0];\n\tfor (let index = 1; index < modifiers.length; index++) condition += `:${modifiers[index]}`;\n\tsink([\n\t\tproperty,\n\t\tpayload,\n\t\tcondition,\n\t\tmodifiers\n\t]);\n}\nfunction ringWidth(raw) {\n\tif (raw === \"inset\") return null;\n\tif (/^\\d+$/.test(raw)) return `${raw}px`;\n\tif (raw.length > 1 && raw[0] === \"[\" && raw[raw.length - 1] === \"]\") {\n\t\tconst inner = decodeArbitrary(raw.slice(1, -1));\n\t\tif (/^-?(?:\\d+|\\d*\\.\\d+)$/.test(inner)) return `${inner}px`;\n\t\tif (/^-?(?:\\d+|\\d*\\.\\d+)px$/.test(inner)) return inner;\n\t\treturn null;\n\t}\n\treturn null;\n}\nfunction tryCompose(candidate, config, sink) {\n\tconst modified = candidate.indexOf(\":\") !== -1;\n\tconst split = modified ? splitCandidate(candidate) : null;\n\tif (modified && !split) return void 0;\n\tconst core = split ? split.base : candidate;\n\tif (!core) return void 0;\n\tconst kind = composerKind(core);\n\tif (kind == null) return void 0;\n\tconst modifiers = split ? split.modifiers.map(canonicalClauseModifier) : [];\n\tif (kind === \"filter\") {\n\t\tconst part = filterPart(core);\n\t\tif (!part) return true;\n\t\tif (nativeTarget && part[0] !== \"brightness\" && !isAndroid) return null;\n\t\tconst prop = filterPropMap[part[0]];\n\t\tif (prop) emit(sink, prop, part[1], modifiers);\n\t\treturn false;\n\t}\n\tif (kind === \"drop-shadow\") {\n\t\tif (nativeTarget && !isAndroid) return null;\n\t\tconst raw2 = core.slice(12);\n\t\tconst shadow = dropShadowPresets[raw2];\n\t\tif (shadow) {\n\t\t\temit(sink, \"__dropShadowGeometry\", shadow.geometry, modifiers);\n\t\t\temit(sink, \"__dropShadowDefaultColor\", shadow.defaultColor, modifiers);\n\t\t} else {\n\t\t\tconst color2 = resolveColor(raw2, config);\n\t\t\tif (color2 == null) return void 0;\n\t\t\temit(sink, \"__dropShadowColor\", color2, modifiers);\n\t\t}\n\t\treturn false;\n\t}\n\tif (kind === \"text-shadow\") {\n\t\tconst raw2 = core.slice(12);\n\t\tconst geometry = textShadowPresets[raw2];\n\t\tif (geometry) {\n\t\t\tif (modifiers.length > 0) return nativeTarget ? null : void 0;\n\t\t\temit(sink, \"__textShadow_preset\", geometry, modifiers);\n\t\t} else {\n\t\t\tconst resolved = resolveColor(raw2, config);\n\t\t\tconst classified = resolved == null ? classifyCandidate(core, config) : null;\n\t\t\tconst color2 = resolved ?? (classified?.kind === \"tamagui\" && classified.parsed.entry?.prop === \"textShadowColor\" ? raw2 : null);\n\t\t\tif (color2 == null) return void 0;\n\t\t\temit(sink, \"__textShadow_color\", color2, modifiers);\n\t\t}\n\t\treturn false;\n\t}\n\tif (kind === \"inset-ring\") {\n\t\tconst raw2 = core === \"inset-ring\" ? \"\" : core.slice(11);\n\t\tconst width2 = raw2 === \"\" ? \"1px\" : ringWidth(raw2);\n\t\tif (width2 != null) emit(sink, \"__insetRingWidth\", width2, modifiers);\n\t\telse {\n\t\t\tconst color2 = resolveColor(raw2, config);\n\t\t\tif (color2 == null) return void 0;\n\t\t\temit(sink, \"__insetRingColor\", color2, modifiers);\n\t\t}\n\t\treturn false;\n\t}\n\tif (kind === \"inset-shadow\") {\n\t\tconst raw2 = core.slice(13);\n\t\tconst shadow = insetShadowPresets[raw2];\n\t\tif (shadow) {\n\t\t\temit(sink, \"__insetShadowGeometry\", shadow.geometry, modifiers);\n\t\t\temit(sink, \"__insetShadowDefaultColor\", shadow.defaultColor, modifiers);\n\t\t} else {\n\t\t\tconst color2 = resolveColor(raw2, config);\n\t\t\tif (color2 == null) return void 0;\n\t\t\temit(sink, \"__insetShadowColor\", color2, modifiers);\n\t\t}\n\t\treturn false;\n\t}\n\tif (kind === \"shadow-color\") {\n\t\tconst raw2 = core.slice(7);\n\t\tconst color2 = resolveColor(raw2, config);\n\t\tif (color2 == null || raw2[0] === \"[\" && /\\s/.test(color2.replace(/\\([^)]*\\)/g, \"\"))) return void 0;\n\t\temit(sink, \"__shadowColor\", color2, modifiers);\n\t\treturn false;\n\t}\n\tif (kind === \"ring-offset\") {\n\t\tconst raw2 = core.slice(12);\n\t\tconst width2 = ringWidth(raw2);\n\t\tif (width2 != null) {\n\t\t\temit(sink, \"__ringOffsetWidth\", width2, modifiers);\n\t\t\treturn false;\n\t\t}\n\t\tconst color2 = resolveColor(raw2, config);\n\t\tif (color2 == null) return void 0;\n\t\temit(sink, \"__ringOffsetColor\", color2, modifiers);\n\t\treturn false;\n\t}\n\tif (kind === \"image\") {\n\t\tconst dir = linearTo[core.slice(13)];\n\t\tif (!dir) return true;\n\t\temit(sink, \"__gradientDirection\", dir, modifiers);\n\t\treturn false;\n\t}\n\tif (kind === \"from\" || kind === \"via\" || kind === \"to\") {\n\t\tconst raw2 = core.slice(kind.length + 1);\n\t\tconst prop = kind === \"from\" ? \"__gradientFrom\" : kind === \"via\" ? \"__gradientVia\" : \"__gradientTo\";\n\t\tif (/^\\d+(?:\\.\\d+)?%$/.test(raw2)) {\n\t\t\temit(sink, `${prop}Position`, raw2, modifiers);\n\t\t\treturn false;\n\t\t}\n\t\tconst color2 = resolveColor(raw2, config);\n\t\tif (color2 == null) return true;\n\t\temit(sink, prop, color2, modifiers);\n\t\treturn false;\n\t}\n\tif (core === \"ring\") {\n\t\temit(sink, \"__ring\", \"1px\", modifiers);\n\t\treturn false;\n\t}\n\tif (core === \"ring-inset\") {\n\t\temit(sink, \"__ringInset\", true, modifiers);\n\t\treturn false;\n\t}\n\tconst raw = core.slice(5);\n\tconst width = ringWidth(raw);\n\tif (width != null) {\n\t\temit(sink, \"__ring\", width, modifiers);\n\t\treturn false;\n\t}\n\tconst color = resolveColor(raw, config);\n\tif (color == null) return true;\n\temit(sink, \"__ringColor\", color, modifiers);\n\treturn false;\n}\nfunction noteTailwindTransform(sink, entry) {\n\tif (!transformProps.has(entry[0])) return false;\n\temit(sink, `__transform_${entry[0]}`, entry[1], entry[3] || []);\n\treturn true;\n}\nfunction noteBoxShadow(sink, value, modifiers) {\n\tif (typeof value !== \"string\" || value === \"unset\") return;\n\tif (value.indexOf(\" \") === -1 && value !== \"none\" && !value.startsWith(\"inset\")) return;\n\temit(sink, \"__shadow\", value, modifiers);\n}\n\nexport { noteBoxShadow, noteTailwindTransform, tryCompose };"],"mappings":"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"}