"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../../../../../../motion-dom/dist/es/render/Feature.mjs.js"),e=require("../../../../../../motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js");let i=0;class s extends t.Feature{constructor(){super(...arguments),this.id=i++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:i}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;if(t&&!1===s){if(this.isExitComplete){const{initial:t,custom:i}=this.node.getProps();if("string"==typeof t||"object"==typeof t&&null!==t&&!Array.isArray(t)){const s=e.resolveVariant(this.node,t,i);if(s){const{transition:t,transitionEnd:e,...i}=s;for(const t in i)this.node.getValue(t)?.jump(i[t])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);return void(this.isExitComplete=!1)}const n=this.node.animationState.setActive("exit",!t);i&&!t&&n.then((()=>{this.isExitComplete=!0,i(this.id)}))}mount(){const{register:t,onExitComplete:e}=this.node.presenceContext||{};e&&e(this.id),t&&(this.unmount=t(this.id))}unmount(){}}exports.ExitAnimationFeature=s;
//# sourceMappingURL=exit.mjs.js.map
