{"version":3,"file":"get-variant-context.mjs","sources":["../../../../src/render/utils/get-variant-context.ts"],"sourcesContent":["import { isVariantLabel } from \"./is-variant-label\"\nimport { variantProps } from \"./variant-props\"\n\nconst numVariantProps = variantProps.length\n\ntype VariantStateContext = {\n    initial?: string | string[]\n    animate?: string | string[]\n    exit?: string | string[]\n    whileHover?: string | string[]\n    whileDrag?: string | string[]\n    whileFocus?: string | string[]\n    whileTap?: string | string[]\n}\n\n/**\n * Get variant context from a visual element's parent chain.\n * Uses `any` type for visualElement to avoid circular dependencies.\n */\nexport function getVariantContext(\n    visualElement?: any\n): undefined | VariantStateContext {\n    if (!visualElement) return undefined\n\n    if (!visualElement.isControllingVariants) {\n        const context = visualElement.parent\n            ? getVariantContext(visualElement.parent) || {}\n            : {}\n        if (visualElement.props.initial !== undefined) {\n            context.initial = visualElement.props.initial as any\n        }\n        return context\n    }\n\n    const context: VariantStateContext = {}\n    for (let i = 0; i < numVariantProps; i++) {\n        const name = variantProps[i] as keyof typeof context\n        const prop = visualElement.props[name]\n\n        if (isVariantLabel(prop) || prop === false) {\n            ;(context as any)[name] = prop\n        }\n    }\n\n    return context\n}\n"],"names":[],"mappings":";;;AAGA,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAA;AAY3C;;;AAGG;AACG,SAAU,iBAAiB,CAC7B,aAAmB,EAAA;AAEnB,IAAA,IAAI,CAAC,aAAa;AAAE,QAAA,OAAO,SAAS,CAAA;AAEpC,IAAA,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM;cAC9B,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE;cAC7C,EAAE,CAAA;QACR,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;YAC3C,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAc,CAAA;SACvD;AACD,QAAA,OAAO,OAAO,CAAA;KACjB;IAED,MAAM,OAAO,GAAwB,EAAE,CAAA;AACvC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACtC,QAAA,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAyB,CAAA;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE;AACtC,YAAA,OAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;SACjC;KACJ;AAED,IAAA,OAAO,OAAO,CAAA;AAClB;;;;"}