@motion.page/sdk 1.0.0 → 1.0.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.
@@ -31,7 +31,7 @@
31
31
  "/**\n * PositionParser - Parse timeline position parameters\n *\n * Supports:\n * - Number: absolute time (e.g., 2)\n * - \"+=0.5\": relative to current end (0.5s after)\n * - \"-=0.5\": relative to current end (0.5s before, overlap)\n * - \"<\": start of previous animation\n * - \">\": end of previous animation\n * - \"<0.5\" or \"<+0.5\": start of previous + offset\n * - \"<-0.5\": start of previous - offset\n * - \">0.5\" or \">+0.5\": end of previous + offset\n * - \">-0.5\": end of previous - offset\n */\n\nexport class PositionParser {\n /**\n * Parse position parameter and return absolute time\n * @param position Position parameter (string or number)\n * @param currentEnd Current end time of timeline\n * @param previousStart Start time of previous child\n * @param previousEnd End time of previous child\n */\n static parse(\n position: string | number | undefined,\n currentEnd: number,\n previousStart: number,\n previousEnd: number\n ): number {\n if (position === undefined) {\n return currentEnd;\n }\n\n if (typeof position === 'number') {\n return position;\n }\n\n const str = position.trim();\n\n // \"<\": start of previous animation\n if (str === '<') {\n return previousStart;\n }\n\n // \">\": end of previous animation\n if (str === '>') {\n return previousEnd;\n }\n\n // \"<offset\": start of previous + offset\n if (str.startsWith('<')) {\n const offset = parseFloat(str.substring(1));\n if (!isNaN(offset)) {\n return previousStart + offset;\n }\n }\n\n // \">offset\": end of previous + offset\n if (str.startsWith('>')) {\n const offset = parseFloat(str.substring(1));\n if (!isNaN(offset)) {\n return previousEnd + offset;\n }\n }\n\n // \"+=\" relative to current end\n if (str.startsWith('+=')) {\n const offset = parseFloat(str.substring(2));\n return currentEnd + offset;\n }\n\n // \"-=\" relative to current end\n if (str.startsWith('-=')) {\n const offset = parseFloat(str.substring(2));\n return currentEnd - offset;\n }\n\n console.warn(`Invalid position parameter: \"${str}\", using current end`);\n return currentEnd;\n }\n}\n",
32
32
  "/**\n * Timeline for sequencing animations\n *\n * Features:\n * - Named timeline registry (create/retrieve by name)\n * - Position parameter support (absolute, +=, -=, <, >)\n * - Nested timelines\n * - Callback scheduling\n * - Control methods (play, pause, reverse, seek, etc.)\n * - Trigger system integration\n */\n\nimport type {\n HoverConfig,\n ClickConfig,\n ScrollConfig,\n MouseMoveConfig,\n GestureConfig,\n GestureConfigInternal,\n CursorConfig,\n PageExitConfig,\n TargetInput,\n AnimationConfig,\n} from '../types';\nimport { Animation } from './Animation';\nimport { AnimationBuilder } from './AnimationBuilder';\nimport { PositionParser } from '../utils/PositionParser';\nimport { SDKRegistry } from '../registries/SDKRegistry';\nimport { isElement } from '../utils/TargetResolver';\nimport { getCurrentValue, getOriginalCSSValueWithUnit, isTransformProp, isColorProp, isFilterProp, isPathProp } from '../utils/PropertyParser';\nimport { setTransformValue, buildTransformString, clearTransformCache } from '../render/TransformCache';\n\ninterface TimelineChild {\n type: 'animation' | 'timeline' | 'callback';\n child: Animation | Timeline | ((...args: unknown[]) => void);\n builder?: AnimationBuilder; // Store builder for each-mode cloning\n startTime: number;\n duration: number;\n params?: unknown[];\n}\n\nexport class Timeline {\n /** Monotonic counter for generating unique each-mode instance names */\n private static _eachCounter = 0;\n\n /**\n * Static callback for registering named timelines with Engine.\n * Set by Engine.getInstance() to break circular dependency.\n * @internal\n */\n private static _registerWithEngine: ((name: string, timeline: Timeline) => void) | null = null;\n\n /**\n * Set the engine registration callback. Called once by Engine during initialization.\n * @internal\n */\n static setEngineRegisterCallback(callback: (name: string, timeline: Timeline) => void): void {\n Timeline._registerWithEngine = callback;\n }\n\n private _name?: string;\n private _children: TimelineChild[] = [];\n private _duration: number = 0;\n private _time: number = 0;\n private _progress: number = 0;\n private _timeScale: number = 1;\n private _isActive: boolean = false;\n private _isReversed: boolean = false;\n private _killed: boolean = false;\n\n // Callbacks\n private _onStart?: () => void;\n private _onUpdate?: (progress: number, time: number) => void;\n private _onComplete?: () => void;\n private _startFired: boolean = false;\n\n /**\n * Reference to attached trigger (for cleanup in kill()).\n * @internal\n */\n _trigger?: { disable(): void };\n\n /** @internal */\n private _unregisterCallback?: () => void;\n\n /**\n * Set unregister callback for cleanup. Called by Engine after registration.\n * @internal\n */\n setUnregisterCallback(callback: () => void): void {\n this._unregisterCallback = callback;\n }\n\n // Track previous child for position parsing\n private _previousStart: number = 0;\n private _previousEnd: number = 0;\n\n // Store cloned timelines for each-mode (independent per-element triggers)\n private _eachInstances?: Timeline[];\n private _eachDuration?: number; // Preserves pre-each duration for forwarding\n\n // Initial property values per element (captured once at build time, restored on seek to 0)\n // For regular CSS: stores value/unit OR a flag to just remove inline style\n // For transforms: we just track that the element was animated (will clear cache on restore)\n private _initialValues: Map<Element, Map<string, { \n removeInline: boolean; // If true, just remove inline style (lets stylesheet auto/calc/clamp take over)\n value?: number; \n unit?: string;\n }>> = new Map();\n\n // Track original inline transform values for restoration\n private _initialTransforms: Map<Element, string | null> = new Map();\n\n // Track elements that have transform animations (for cache cleanup)\n private _transformElements: Set<Element> = new Set();\n\n // Original inline transition values per animated element. Populated at build time.\n // During active playback, transitions are overridden with 'none' to prevent CSS\n // transitions from interfering with frame-by-frame SDK rendering.\n // Disabled on timeline start, restored on completion and kill.\n private _savedTransitions: Map<HTMLElement, string> = new Map();\n private _transitionsDisabled: boolean = false;\n\n // Original will-change values per animated element with transform properties.\n // Set to 'transform' at build time for compositor layer promotion (avoids\n // layout thrashing), restored on kill/clear.\n private _savedWillChange: Map<HTMLElement, string> = new Map();\n\n constructor(name?: string) {\n this._name = name;\n\n // Register named timeline with Engine via callback (avoids circular dependency)\n if (name && Timeline._registerWithEngine) {\n Timeline._registerWithEngine(name, this);\n }\n }\n\n /**\n * Get timeline duration\n */\n duration(): number {\n if (this._eachDuration !== undefined) {\n return this._eachDuration;\n }\n return this._duration;\n }\n\n /**\n * Clear timeline state for rebuild (used for re-triggerable animations)\n * Kills existing animations, clears children, resets state\n */\n clear(): this {\n // Kill existing animations\n for (const child of this._children) {\n if (child.type === 'animation') {\n (child.child as Animation).kill();\n } else if (child.type === 'timeline') {\n (child.child as Timeline).kill();\n }\n }\n\n // Reset state\n this._children = [];\n this._duration = 0;\n this._time = 0;\n this._progress = 0;\n this._isActive = false;\n this._isReversed = false;\n this._startFired = false;\n this._previousStart = 0;\n this._previousEnd = 0;\n this._initialValues.clear();\n this._initialTransforms.clear();\n this._transformElements.clear();\n this._clearTransitionData();\n\n return this;\n }\n\n /**\n * Capture initial values for an animation's properties (called once per property per element)\n */\n private _captureInitialValues(animation: Animation): void {\n const targets = animation.getTargets();\n // Access PropTweens to get property names\n let propTween = animation.getFirstPropTween();\n\n while (propTween) {\n const property = propTween.property;\n\n for (const target of targets) {\n if (!(target instanceof Element)) continue;\n\n // Get or create property map for this element\n let propMap = this._initialValues.get(target);\n if (!propMap) {\n propMap = new Map();\n this._initialValues.set(target, propMap);\n }\n\n // Only capture if not already recorded (first animation for this property wins)\n if (!propMap.has(property)) {\n const htmlEl = target as HTMLElement;\n \n if (isTransformProp(property) || isPathProp(property)) {\n // Transform properties AND path property: track that this element has transforms\n // Path animations modify x, y, and optionally rotate transforms\n // We'll clear the entire transform cache on restore\n this._transformElements.add(target);\n if (!this._initialTransforms.has(target)) {\n const inlineTransform = htmlEl.style.transform;\n this._initialTransforms.set(target, inlineTransform || null);\n }\n // Still add to propMap so we know to restore this element\n propMap.set(property, { removeInline: true });\n } else if (isColorProp(property) || isFilterProp(property)) {\n // Color and filter properties: always remove inline style on restore\n // These are strings (not numeric) - just let stylesheet take over\n propMap.set(property, { removeInline: true });\n } else {\n // Regular CSS properties (numeric values with units)\n const kebabProp = property.replace(/([A-Z])/g, '-$1').toLowerCase();\n const hasInlineStyle = htmlEl.style.getPropertyValue(kebabProp) !== '';\n \n if (hasInlineStyle) {\n // Inline style exists - capture its value/unit so we can restore it\n const initial = getOriginalCSSValueWithUnit(target, property);\n propMap.set(property, { removeInline: false, value: initial.value, unit: initial.unit });\n } else {\n // No inline style - just flag to remove inline on restore (lets stylesheet auto/calc/clamp take over)\n propMap.set(property, { removeInline: true });\n }\n }\n }\n }\n\n propTween = propTween.next;\n }\n }\n\n /**\n * Restore all elements to their initial property values (used when seeking to position 0)\n */\n private _restoreInitialValues(): void {\n // First, handle transform elements - clear cache and remove inline transform\n for (const element of this._transformElements) {\n const htmlEl = element as HTMLElement;\n // Clear the transform cache completely (resets to defaults: scale=1, others=0)\n clearTransformCache(element);\n const originalTransform = this._initialTransforms.get(element);\n if (originalTransform) {\n htmlEl.style.transform = originalTransform;\n } else {\n htmlEl.style.removeProperty('transform');\n }\n }\n\n // Then handle regular CSS properties\n for (const [element, propMap] of this._initialValues) {\n const htmlEl = element as HTMLElement;\n\n for (const [property, initial] of propMap) {\n // Skip transform properties - already handled above\n if (isTransformProp(property)) continue;\n\n const kebabProp = property.replace(/([A-Z])/g, '-$1').toLowerCase();\n\n if (initial.removeInline) {\n // No original inline style - just remove the inline style we added\n // This lets the stylesheet value (auto, calc, clamp, etc.) take over\n htmlEl.style.removeProperty(kebabProp);\n } else {\n // Regular CSS property - restore with original value and unit\n const cssValue = `${initial.value}${initial.unit}`;\n htmlEl.style.setProperty(kebabProp, cssValue);\n }\n }\n }\n }\n\n\n /**\n * Disable CSS transitions on all animated elements.\n * Called when the timeline starts playing to prevent CSS transitions\n * from fighting frame-by-frame SDK rendering.\n */\n private _disableTransitions(): void {\n if (this._transitionsDisabled) return;\n for (const element of this._savedTransitions.keys()) {\n element.style.transition = 'none';\n }\n this._transitionsDisabled = true;\n }\n\n /**\n * Restore original CSS transition values on all animated elements.\n * Called on timeline completion and kill to re-enable CSS hover/focus\n * transitions after the SDK animation is done.\n */\n private _restoreTransitions(): void {\n if (!this._transitionsDisabled) return;\n for (const [element, original] of this._savedTransitions) {\n element.style.transition = original;\n }\n this._transitionsDisabled = false;\n }\n\n /**\n * Clear all saved transition data (for kill/clear).\n */\n private _clearTransitionData(): void {\n this._restoreTransitions();\n this._savedTransitions.clear();\n this._transitionsDisabled = false;\n this._restoreWillChange();\n }\n\n /**\n * Restore original will-change values on elements promoted for transforms.\n */\n private _restoreWillChange(): void {\n for (const [element, original] of this._savedWillChange) {\n if (original) {\n element.style.willChange = original;\n } else {\n element.style.removeProperty('will-change');\n }\n }\n this._savedWillChange.clear();\n }\n\n /**\n * Internal: Add animation entry (used by Motion function)\n * @internal\n */\n _addEntry(target: TargetInput, config: AnimationConfig, position?: string | number): this {\n const startTime = PositionParser.parse(\n position,\n this._duration,\n this._previousStart,\n this._previousEnd\n );\n\n const builder = new AnimationBuilder(target, config);\n return this._addBuilder(builder, startTime);\n }\n\n /**\n * Internal method to add an AnimationBuilder directly\n */\n private _addBuilder(builder: AnimationBuilder, position: number): this {\n // Tell builder to skip Engine's immediate FROM render (animation.render(0)).\n // Timeline captures initial CSS values first via _captureInitialValues,\n // THEN renders the FROM state via renderAtTime(0) below.\n // Without this, Engine renders FROM values before capture, so kill()\n // would restore elements to FROM values instead of their true initial state.\n builder.setSkipInitialFromRender(true);\n\n const animations = builder.getAnimations();\n if (animations.length === 0) return this;\n\n let maxEndTime = position;\n for (const animation of animations) {\n const animDelay = animation.getDelay();\n const animStartTime = position + animDelay;\n animation.clearDelay();\n const animDuration = animation.totalDuration();\n\n const timelineChild: TimelineChild = {\n type: 'animation',\n child: animation,\n builder,\n startTime: animStartTime,\n duration: animDuration,\n };\n\n this._children.push(timelineChild);\n animation.setTimelineChild(true);\n animation.pause();\n this._captureInitialValues(animation);\n\n // Save original CSS transition values for later override during playback.\n // CSS transitions (e.g. `transition: transform 0.25s`) fight the SDK's\n // frame-by-frame rendering when both control the same property.\n // Values are saved here at build time; actual disable happens on timeline start.\n for (const target of animation.getTargets()) {\n if (target instanceof HTMLElement && !this._savedTransitions.has(target)) {\n this._savedTransitions.set(target, target.style.transition);\n }\n }\n\n // Promote elements with transform animations to their own compositor layer.\n // This prevents layout thrashing: without will-change, writing to\n // element.style.transform marks styles dirty, and any subsequent layout\n // read (e.g. scrollTo, getBoundingClientRect) forces a synchronous layout.\n // With will-change: transform, the browser composites the element on a\n // separate layer, so transform writes don't invalidate main-thread layout.\n // Saved/restored alongside transitions so cleanup is automatic.\n for (const target of animation.getTargets()) {\n if (target instanceof HTMLElement && this._transformElements.has(target) && !this._savedWillChange.has(target)) {\n this._savedWillChange.set(target, target.style.willChange);\n target.style.willChange = 'transform';\n }\n }\n\n const hasExplicitFrom = !!builder.getConfig().fromVars;\n if (animStartTime > 0 && !hasExplicitFrom) {\n animation.setLazyStartCapture(true);\n }\n\n // Immediately render from state for explicit-from animations to prevent\n // FOUC (Flash of Unstyled Content). Without this, elements remain at their\n // natural CSS state for one frame before the engine's rAF loop applies\n // the from values. Rendering synchronously ensures elements are hidden\n // (e.g. opacity: 0, y: '100%' behind a mask) before the browser paints.\n // Safe: animation is paused (_isActive=false) so no callbacks fire.\n if (hasExplicitFrom) {\n animation.renderAtTime(0);\n }\n\n // For split+mask animations, the from state targets split fragments (not\n // the original parent element). If the parent has a CSS pre-hide\n // (e.g. opacity: 0), it would block the fragments from ever becoming\n // visible — children cannot be more opaque than their parent. Override\n // the parent's opacity since the mask (overflow:hidden + y offset)\n // already handles visibility of the split fragments.\n if (builder.hasSplit()) {\n for (const target of builder.getOriginalTargets()) {\n if (target instanceof Element) {\n (target as HTMLElement).style.opacity = '1';\n }\n }\n }\n\n const endTime = animStartTime + animDuration;\n if (endTime > maxEndTime) {\n maxEndTime = endTime;\n }\n }\n\n this._previousStart = position;\n this._previousEnd = maxEndTime;\n\n if (maxEndTime > this._duration) {\n this._duration = maxEndTime;\n }\n\n return this;\n }\n\n /**\n * Call function at position\n */\n call(callback: (...args: unknown[]) => void, params?: unknown[], position?: string | number): this {\n const startTime = PositionParser.parse(\n position,\n this._duration,\n this._previousStart,\n this._previousEnd\n );\n\n const timelineChild: TimelineChild = {\n type: 'callback',\n child: callback,\n startTime,\n duration: 0,\n params,\n };\n\n this._children.push(timelineChild);\n\n // Update previous tracking\n this._previousStart = startTime;\n this._previousEnd = startTime;\n\n // Update timeline duration if callback is beyond current end\n if (startTime > this._duration) {\n this._duration = startTime;\n }\n\n return this;\n }\n\n /**\n * Get the first animation's target element for trigger inference\n * Note: Returns only DOM Elements, not plain objects\n */\n private _getFirstAnimationTarget(): Element | undefined {\n const firstAnimation = this.getFirstChildAnimation();\n if (firstAnimation) {\n const targets = firstAnimation.getTargets();\n // Find the first DOM element (skip plain objects)\n for (const target of targets) {\n if (isElement(target)) {\n return target;\n }\n }\n }\n return undefined;\n }\n\n /**\n * Get all target elements from the first animation (for each mode)\n * Note: Returns only DOM Elements, not plain objects\n *\n * When the builder uses text splitting (split: 'words' etc.), the animation's\n * targets are the split fragments — but for each-mode we need the ORIGINAL\n * pre-split elements so each gets its own ScrollTrigger. The cloned builder\n * will re-split inside that element independently.\n */\n private _getAllAnimationTargets(): Element[] {\n for (const child of this._children) {\n if (child.type === 'animation' && child.builder) {\n const targets = child.builder.hasSplit()\n ? child.builder.getOriginalTargets()\n : child.builder.getTargets();\n return targets.filter((target): target is Element => isElement(target));\n }\n }\n return [];\n }\n\n /**\n * Create a timeline instance for a single element (for each mode)\n * This clones the timeline structure but only targets the specific element.\n */\n private _createInstanceForElement(element: Element, index: number): Timeline {\n // Create a named timeline so it gets registered with Engine for ticking\n // Use parent name (if any) + unique suffix to avoid collisions\n const baseName = this._name || '__each';\n const instanceName = `${baseName}__each_${index}_${Timeline._eachCounter++}`;\n const instance = new Timeline(instanceName);\n\n const processedBuilders = new Set<AnimationBuilder>();\n\n // Clone each child animation for this specific element\n for (const child of this._children) {\n if (child.type === 'animation' && child.builder) {\n // Skip if we already processed this builder (stagger creates multiple children from one builder)\n if (processedBuilders.has(child.builder)) continue;\n processedBuilders.add(child.builder);\n\n const builderConfig = child.builder.getConfig();\n\n // Build repeat config if any repeat properties are set\n const repeatConfig = builderConfig.repeat != null\n ? { times: builderConfig.repeat, delay: builderConfig.repeatDelay, yoyo: builderConfig.yoyo }\n : undefined;\n\n // When the original builder uses split, pass split + stagger to the\n // clone so each element re-splits its own text and staggers internally.\n // Without split, stagger is omitted — each element animates independently.\n const hasSplit = child.builder.hasSplit();\n\n const newBuilder = new AnimationBuilder(element, {\n from: builderConfig.fromVars,\n to: builderConfig.toVars,\n duration: builderConfig.duration,\n delay: builderConfig.delay,\n ease: builderConfig.ease,\n repeat: repeatConfig,\n ...(hasSplit && builderConfig.split ? { split: builderConfig.split } : {}),\n ...(hasSplit && builderConfig.mask ? { mask: builderConfig.mask } : {}),\n ...(hasSplit && builderConfig.stagger !== undefined ? { stagger: builderConfig.stagger } : {}),\n onStart: builderConfig.onStart,\n onUpdate: builderConfig.onUpdate,\n onComplete: builderConfig.onComplete,\n onRepeat: builderConfig.onRepeat,\n onReverseComplete: builderConfig.onReverseComplete,\n });\n if (builderConfig.axis) {\n newBuilder.setAxis(builderConfig.axis);\n }\n\n // Add to instance at same position\n instance._addBuilder(newBuilder, child.startTime);\n } else if (child.type === 'callback') {\n // Clone callbacks too\n instance.call(\n child.child as (...args: unknown[]) => void,\n child.params,\n child.startTime\n );\n }\n // Note: nested timelines not supported in each mode for now\n }\n\n return instance;\n }\n\n /**\n * Create a timeline instance for multiple elements (for each mode with explicit container target).\n * This is a sibling of _createInstanceForElement — the only difference is that it accepts an\n * Element[] and passes the array directly to AnimationBuilder instead of a single element.\n */\n private _createInstanceForElements(elements: Element[], index: number): Timeline {\n const baseName = this._name || '__each';\n const instanceName = `${baseName}__each_${index}_${Timeline._eachCounter++}`;\n const instance = new Timeline(instanceName);\n\n const processedBuilders = new Set<AnimationBuilder>();\n\n for (const child of this._children) {\n if (child.type === 'animation' && child.builder) {\n if (processedBuilders.has(child.builder)) continue;\n processedBuilders.add(child.builder);\n\n const builderConfig = child.builder.getConfig();\n\n const repeatConfig = builderConfig.repeat != null\n ? { times: builderConfig.repeat, delay: builderConfig.repeatDelay, yoyo: builderConfig.yoyo }\n : undefined;\n\n const hasSplit = child.builder.hasSplit();\n\n const newBuilder = new AnimationBuilder(elements, {\n from: builderConfig.fromVars,\n to: builderConfig.toVars,\n duration: builderConfig.duration,\n delay: builderConfig.delay,\n ease: builderConfig.ease,\n repeat: repeatConfig,\n ...(hasSplit && builderConfig.split ? { split: builderConfig.split } : {}),\n ...(hasSplit && builderConfig.mask ? { mask: builderConfig.mask } : {}),\n ...(hasSplit && builderConfig.stagger !== undefined ? { stagger: builderConfig.stagger } : {}),\n onStart: builderConfig.onStart,\n onUpdate: builderConfig.onUpdate,\n onComplete: builderConfig.onComplete,\n onRepeat: builderConfig.onRepeat,\n onReverseComplete: builderConfig.onReverseComplete,\n });\n if (builderConfig.axis) {\n newBuilder.setAxis(builderConfig.axis);\n }\n\n instance._addBuilder(newBuilder, child.startTime);\n } else if (child.type === 'callback') {\n instance.call(\n child.child as (...args: unknown[]) => void,\n child.params,\n child.startTime\n );\n }\n // Note: nested timelines not supported in each mode for now\n }\n\n return instance;\n }\n\n /**\n * Resolve a CSS selector string or Element into an array of DOM elements.\n */\n private _resolveTargetElements(selector: string | Element): Element[] {\n if (typeof selector !== 'string') return [selector as Element];\n if (typeof document !== 'undefined') {\n try { return Array.from(document.querySelectorAll(selector)); }\n catch (e) { console.warn(`[Motion] Invalid selector \"${selector}\":`, e); }\n }\n return [];\n }\n\n /**\n * Generic helper for each-mode setup: resolve targets, create instances, register triggers.\n * The setupTrigger callback receives each (instance, element) pair for trigger-specific registration.\n */\n private _setupEachModeGeneric(\n targets: Element[],\n setupTrigger: (instance: Timeline, target: Element) => void\n ): void {\n if (targets.length === 0) return;\n\n this._eachInstances = [];\n\n // If the original builder used text splitting, the build already mutated the\n // DOM for ALL targets. Revert those splits now so each per-element clone can\n // split its own target independently from clean (original) HTML.\n const needsRevert = this._children.some(\n c => c.type === 'animation' && c.builder?.hasSplit()\n );\n if (needsRevert) {\n for (const el of targets) {\n SDKRegistry.textSplitter?.revert?.(el);\n }\n }\n\n // Clear transition data from the initial build.\n // Each per-element instance will independently save + manage transitions\n // for its own target during its own playback lifecycle.\n this._clearTransitionData();\n\n for (let i = 0; i < targets.length; i++) {\n const element = targets[i];\n const instance = this._createInstanceForElement(element, i);\n\n setupTrigger(instance, element);\n\n this._eachInstances.push(instance);\n }\n\n // Save pre-each duration for forwarding (control methods use this after children are cleared)\n this._eachDuration = this._duration;\n\n // CRITICAL: Clear the original timeline's animations so they don't compete\n // with the cloned per-element timelines. The original AnimationBuilder already\n // built PropTweens for ALL elements and rendered them (e.g., at opacity: 0).\n // If we leave them alive, they keep overwriting elements back to their FROM\n // state, causing only the first element to appear to animate. The original\n // timeline becomes just a container that holds _eachInstances references;\n // it should have NO active animations of its own.\n for (const child of this._children) {\n if (child.type === 'animation') {\n const animation = child.child as Animation;\n // Release from timeline ownership so it can be cleaned up\n animation.setTimelineChild(false);\n animation.kill();\n } else if (child.type === 'timeline') {\n (child.child as Timeline).kill();\n }\n }\n this._children = [];\n this._duration = 0;\n this._initialValues.clear();\n this._initialTransforms.clear();\n this._transformElements.clear();\n\n // Reset parent state after each-mode setup\n this._isActive = false;\n this._time = 0;\n this._progress = 0;\n this._isReversed = false;\n this._startFired = false;\n }\n\n /**\n * Set up each-mode: create independent timeline instances for each target element\n */\n private _setupEachMode(\n triggerType: 'hover' | 'click' | 'scroll',\n config: HoverConfig | ClickConfig | ScrollConfig\n ): void {\n const triggerManager = SDKRegistry.triggerManager?.getInstance?.();\n if (!triggerManager) return; // TriggerManager not loaded\n\n // Strip 'each' from config to prevent recursion in per-element instances\n const { each: _, ...cleanConfig } = config as ScrollConfig & { each?: boolean };\n\n // When an explicit container target is provided, scope animation targets to each container\n if (config.target) {\n const containers = this._resolveTargetElements(config.target as string | Element);\n if (containers.length === 0) return;\n\n const allAnimTargets = this._getAllAnimationTargets();\n\n // Revert text splits on animation targets so each container-scoped clone can re-split\n const needsRevert = this._children.some(c => c.type === 'animation' && c.builder?.hasSplit());\n if (needsRevert) {\n for (const el of allAnimTargets) { SDKRegistry.textSplitter?.revert?.(el); }\n }\n\n this._clearTransitionData();\n this._eachInstances = [];\n\n for (let i = 0; i < containers.length; i++) {\n const container = containers[i];\n const scopedTargets = allAnimTargets.filter(t => container.contains(t));\n if (scopedTargets.length === 0) continue;\n\n const instance = this._createInstanceForElements(scopedTargets, i);\n\n // Register trigger on the CONTAINER, not the animation targets\n if (triggerType === 'scroll') {\n triggerManager.registerScroll(instance, { ...cleanConfig, target: container } as ScrollConfig);\n } else if (triggerType === 'hover') {\n triggerManager.registerHover(instance, { ...cleanConfig, target: container as Element } as HoverConfig);\n } else {\n triggerManager.registerClick(instance, { ...cleanConfig, target: container as Element } as ClickConfig);\n }\n\n this._eachInstances.push(instance);\n }\n\n // Save pre-each duration for forwarding (control methods use this after children are cleared)\n this._eachDuration = this._duration;\n\n // CRITICAL: Clear the original timeline's animations so they don't compete\n // with the cloned per-container timelines.\n for (const child of this._children) {\n if (child.type === 'animation') {\n const animation = child.child as Animation;\n animation.setTimelineChild(false);\n animation.kill();\n } else if (child.type === 'timeline') {\n (child.child as Timeline).kill();\n }\n }\n this._children = [];\n this._duration = 0;\n this._initialValues.clear();\n this._initialTransforms.clear();\n this._transformElements.clear();\n\n // Reset parent state after each-mode setup\n this._isActive = false;\n this._time = 0;\n this._progress = 0;\n this._isReversed = false;\n this._startFired = false;\n return;\n }\n\n const targets = this._getAllAnimationTargets();\n\n this._setupEachModeGeneric(targets, (instance, element) => {\n if (triggerType === 'scroll') {\n triggerManager.registerScroll(instance, { ...cleanConfig, target: element as Element } as ScrollConfig);\n } else if (triggerType === 'hover') {\n triggerManager.registerHover(instance, { ...cleanConfig, target: element as Element } as HoverConfig);\n } else {\n triggerManager.registerClick(instance, { ...cleanConfig, target: element as Element } as ClickConfig);\n }\n });\n }\n\n /**\n * Trigger timeline on hover (mouseenter plays, mouseleave configurable)\n */\n onHover(config?: HoverConfig): this {\n if (config?.each) {\n this._setupEachMode('hover', config);\n return this;\n }\n\n const target = config?.target ?? this._getFirstAnimationTarget();\n SDKRegistry.triggerManager?.getInstance?.().registerHover(this, {\n target,\n onLeave: config?.onLeave,\n leaveDelay: config?.leaveDelay,\n });\n return this;\n }\n\n /**\n * Trigger timeline on click\n */\n onClick(config?: ClickConfig): this {\n if (config?.each) {\n this._setupEachMode('click', config);\n return this;\n }\n\n const target = config?.target ?? this._getFirstAnimationTarget();\n SDKRegistry.triggerManager?.getInstance?.().registerClick(this, {\n target,\n secondTarget: config?.secondTarget,\n toggle: config?.toggle,\n preventDefault: config?.preventDefault,\n });\n return this;\n }\n\n /**\n * Trigger timeline on scroll\n */\n onScroll(config?: ScrollConfig): this {\n if (config?.each) {\n this._setupEachMode('scroll', config);\n return this;\n }\n\n const target = config?.target ?? this._getFirstAnimationTarget();\n SDKRegistry.triggerManager?.getInstance?.().registerScroll(this, { ...config, target });\n return this;\n }\n\n /**\n * Trigger timeline on mouse movement\n * Drives animation progress based on mouse position (axis mode) or distance from center (distance mode)\n */\n onMouseMove(config?: MouseMoveConfig): this {\n // Handle each mode for mouse move (only with target)\n if (config?.each && config.target) {\n this._setupMouseMoveEachMode(config);\n return this;\n }\n\n SDKRegistry.triggerManager?.getInstance?.().registerMouseMove(this, {\n type: config?.type ?? 'distance',\n target: config?.target,\n smooth: config?.smooth,\n startProgress: config?.startProgress,\n leaveProgress: config?.leaveProgress,\n });\n return this;\n }\n\n /**\n * Set up each-mode for mouse movement: create independent timeline instances for each target element\n */\n private _setupMouseMoveEachMode(config: MouseMoveConfig): void {\n if (!config.target) return;\n\n // Resolve target elements\n let targets: Element[] = [];\n if (typeof config.target === 'string') {\n if (typeof document !== 'undefined') {\n targets = Array.from(document.querySelectorAll(config.target));\n }\n } else {\n targets = [config.target as Element];\n }\n\n const triggerManager = SDKRegistry.triggerManager?.getInstance?.();\n if (!triggerManager) return; // TriggerManager not loaded\n\n this._setupEachModeGeneric(targets, (instance, element) => {\n triggerManager.registerMouseMove(instance, {\n type: config.type ?? 'distance',\n target: element,\n smooth: config.smooth,\n startProgress: config.startProgress,\n leaveProgress: config.leaveProgress,\n });\n });\n }\n\n /**\n * Trigger timeline on page load\n */\n onPageLoad(): this {\n SDKRegistry.triggerManager?.getInstance?.().registerPageLoad(this, {});\n return this;\n }\n\n /**\n * Trigger timeline when user navigates away from the page (clicks a link).\n * Intercepts the click, plays the exit animation, then navigates to the target URL.\n */\n onPageExit(config?: PageExitConfig): this {\n SDKRegistry.triggerManager?.getInstance?.().registerPageExit(this, config || {});\n return this;\n }\n\n /**\n * Trigger timeline based on user gestures (pointer, touch, wheel, scroll)\n * Maps directional callbacks to timeline actions\n */\n onGesture(config: GestureConfig): this {\n // Handle each mode for gesture\n if (config.each) {\n this._setupGestureEachMode(config);\n return this;\n }\n\n SDKRegistry.triggerManager?.getInstance?.().registerGesture(this, config);\n return this;\n }\n\n /**\n * Set up each-mode for gesture: create independent instances for each target element\n */\n private _setupGestureEachMode(config: GestureConfig): void {\n // Resolve target elements\n let targets: Element[] = [];\n\n if (config.target) {\n if (typeof config.target === 'string') {\n if (typeof document !== 'undefined') {\n targets = Array.from(document.querySelectorAll(config.target));\n }\n } else {\n targets = [config.target as Element];\n }\n } else {\n // If no target specified, use animation targets\n targets = this._getAllAnimationTargets();\n }\n\n // First pass: create all instances (using generic helper with a no-op trigger setup)\n this._setupEachModeGeneric(targets, () => {});\n\n if (!this._eachInstances || this._eachInstances.length === 0) return;\n\n // Second pass: register triggers with sibling info for playNext/playPrevious\n const triggerManager = SDKRegistry.triggerManager?.getInstance?.();\n if (!triggerManager) return; // TriggerManager not loaded\n\n for (let i = 0; i < targets.length; i++) {\n const element = targets[i];\n const instance = this._eachInstances[i];\n\n triggerManager.registerGesture(instance, {\n ...config,\n target: element,\n each: false, // Prevent recursion\n _siblings: this._eachInstances, // Pass all siblings for sequence control\n _index: i, // Current index in sequence\n } as GestureConfigInternal);\n }\n }\n\n /**\n * Attach cursor behavior to this timeline's target element\n * Creates a custom cursor that follows mouse with smooth tracking and state-based animations\n */\n onCursor(config: CursorConfig): this {\n SDKRegistry.triggerManager?.getInstance?.().registerCursor(this, config);\n return this;\n }\n\n /**\n * Update a callback child: fire when time crosses its position\n */\n private _updateCallbackChild(child: TimelineChild, prevTime: number, deltaTime: number): void {\n const childStartTime = child.startTime;\n\n // Execute callback when time crosses its position (from either direction)\n // or when seeking directly to the callback position\n const crossedForward = prevTime < childStartTime && this._time >= childStartTime;\n const crossedBackward = prevTime > childStartTime && this._time <= childStartTime;\n const atPosition = Math.abs(this._time - childStartTime) < 0.001; // Within 1ms\n\n if (crossedForward || crossedBackward || (atPosition && deltaTime === 0)) {\n const callback = child.child as (...args: unknown[]) => void;\n const params = child.params || [];\n callback(...params);\n }\n }\n\n /**\n * Update an animation child: seek/activate/deactivate based on parent time\n */\n private _updateAnimationChild(child: TimelineChild, deltaTime: number): void {\n const animation = child.child as Animation;\n const timeScale = Math.abs(animation.getTimeScale()) || 1;\n const scaledDuration = animation.totalDuration() / timeScale;\n\n // Calculate local time within the animation\n const localTime = this._time - child.startTime;\n const scaledLocalTime = localTime * timeScale;\n\n if (localTime >= 0 && localTime <= scaledDuration) {\n // Animation should be active\n if (!animation.isActive()) {\n // Capture start values from current element state (for chained animations)\n animation.captureStartValues();\n animation.play();\n }\n\n // Seek animation to local time\n animation.renderAtTime(scaledLocalTime);\n } else if (localTime < 0) {\n // Animation hasn't started yet\n // Only render at start state if it has explicit FROM values (not lazy capture)\n // Lazy-capture animations should NEVER render before they start,\n // even after values have been captured, to avoid overwriting earlier animations\n if (!animation.isLazyCapture()) {\n animation.renderAtTime(0);\n }\n if (animation.isActive()) {\n animation.pause();\n // Fire onReverseComplete when an active animation exits the start boundary\n // during reverse playback. Also resets _startFired/_completeFired for next play.\n animation.fireReverseComplete();\n }\n } else if (animation.isActive()) {\n // Animation past its end - pause at final state\n animation.renderAtTime(animation.totalDuration());\n animation.pause();\n } else if (deltaTime === 0) {\n // Seeking past animation end - render at final state\n animation.renderAtTime(animation.totalDuration());\n }\n }\n\n /**\n * Update a nested timeline child: seek/activate/deactivate based on parent time\n */\n private _updateTimelineChild(child: TimelineChild, deltaTime: number): void {\n const timeline = child.child as Timeline;\n const actualDuration = timeline.duration();\n\n // Calculate local time within the timeline\n const localTime = this._time - child.startTime;\n\n if (localTime >= 0 && localTime <= actualDuration) {\n // Timeline should be active\n if (!timeline.isActive()) {\n timeline.play();\n }\n\n // Seek timeline to local time\n timeline.time(localTime);\n } else if (timeline.isActive()) {\n // Timeline should not be active - pause it at boundary\n if (localTime < 0) {\n timeline.time(0);\n timeline.pause();\n } else {\n timeline.time(actualDuration);\n timeline.pause();\n }\n } else if (deltaTime === 0) {\n // Only render boundary state when SEEKING (not during normal playback)\n if (localTime < 0) {\n // Timeline hasn't started yet - don't render during seek\n } else {\n timeline.time(actualDuration);\n }\n }\n // During normal playback, don't render inactive timelines outside their range\n }\n\n /**\n * Update timeline by delta time\n */\n update(deltaTime: number): void {\n // In each-mode, forward updates to instances\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.update(deltaTime);\n return;\n }\n\n // Store previous time before updating\n const prevTime = this._time;\n\n if (!this._isActive && deltaTime === 0) {\n // This is a seek operation, still need to update children\n } else if (!this._isActive) {\n return;\n }\n\n // Apply time scale\n const scaledDelta = deltaTime * this._timeScale;\n\n // Update time\n this._time += this._isReversed ? -scaledDelta : scaledDelta;\n\n // Clamp time\n if (this._time < 0) {\n this._time = 0;\n } else if (this._time > this._duration) {\n this._time = this._duration;\n }\n\n // Update progress\n this._progress = this._duration > 0 ? this._time / this._duration : 0;\n\n // Fire onStart callback on first update\n if (!this._startFired && this._isActive && this._progress > 0) {\n this._startFired = true;\n // Disable CSS transitions during active playback to prevent interference\n this._disableTransitions();\n this._onStart?.();\n }\n\n // Fire onUpdate callback\n if (this._isActive) {\n this._onUpdate?.(this._progress, this._time);\n }\n\n // Update children - dispatch to type-specific helpers\n for (const child of this._children) {\n if (child.type === 'callback') {\n this._updateCallbackChild(child, prevTime, deltaTime);\n } else if (child.type === 'animation') {\n this._updateAnimationChild(child, deltaTime);\n } else if (child.type === 'timeline') {\n this._updateTimelineChild(child, deltaTime);\n }\n }\n\n // Check if complete\n if (!this._isReversed && this._time >= this._duration) {\n this._isActive = false;\n this._startFired = false; // Reset so next play/reverse fires onStart\n // Restore CSS transitions now that animation is done.\n // If the timeline replays (hover, restart), _disableTransitions re-fires on next onStart.\n this._restoreTransitions();\n this._onComplete?.();\n } else if (this._isReversed && this._time <= 0) {\n this._isActive = false;\n this._startFired = false; // Reset so next play/reverse fires onStart\n this._restoreTransitions();\n this._onComplete?.();\n }\n }\n\n // Control methods\n\n /**\n * Play timeline from position.\n * If already playing forward, continues from current position.\n */\n play(from?: number): this {\n if (this._killed) {\n console.warn('[Motion] Cannot play a killed timeline. Create a new one with Motion(name).');\n return this;\n }\n\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.play(from);\n return this;\n }\n\n if (from !== undefined) {\n this._time = from;\n this._progress = this._duration > 0 ? this._time / this._duration : 0;\n }\n\n this._isReversed = false;\n this._isActive = true;\n\n return this;\n }\n\n /**\n * Pause timeline at time\n */\n pause(atTime?: number): this {\n if (this._killed) {\n console.warn('[Motion] Cannot pause a killed timeline. Create a new one with Motion(name).');\n return this;\n }\n\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.pause(atTime);\n return this;\n }\n\n if (atTime !== undefined) {\n this._time = atTime;\n this._progress = this._duration > 0 ? this._time / this._duration : 0;\n }\n\n this._isActive = false;\n\n // Pause all children\n for (const child of this._children) {\n if (child.type !== 'callback') {\n const animation = child.child as Animation | Timeline;\n if ('pause' in animation) {\n animation.pause();\n }\n }\n }\n\n return this;\n }\n\n /**\n * Reverse timeline from position.\n * If already reversing, continues from current position.\n */\n reverse(from?: number): this {\n if (this._killed) {\n console.warn('[Motion] Cannot reverse a killed timeline. Create a new one with Motion(name).');\n return this;\n }\n\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.reverse(from);\n return this;\n }\n\n if (from !== undefined) {\n this._time = from;\n this._progress = this._duration > 0 ? this._time / this._duration : 0;\n }\n\n this._isReversed = true;\n this._isActive = true;\n\n return this;\n }\n\n /**\n * Restart timeline\n */\n restart(): this {\n if (this._killed) {\n console.warn('[Motion] Cannot restart a killed timeline. Create a new one with Motion(name).');\n return this;\n }\n\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.restart();\n return this;\n }\n\n this._time = 0;\n this._progress = 0;\n this._isActive = true;\n this._isReversed = false;\n this._startFired = false;\n\n // Reset callback flags for clean replay\n for (const child of this._children) {\n if (child.type === 'animation') {\n (child.child as Animation).resetForReplay();\n }\n }\n\n // Restore all properties to initial values, then render position-0 animations\n this._restoreInitialValues();\n this._renderPositionZeroAnimations();\n\n return this;\n }\n\n /**\n * Render only position-0 (non-lazy) animations at their start state\n */\n private _renderPositionZeroAnimations(): void {\n for (const child of this._children) {\n if (child.type === 'animation') {\n const animation = child.child as Animation;\n // Only render non-lazy animations (they have explicit FROM or are at position 0)\n if (!animation.isLazyCapture()) {\n animation.renderAtTime(0);\n }\n if (animation.isActive()) {\n animation.pause();\n }\n } else if (child.type === 'timeline') {\n (child.child as Timeline).progress(0);\n }\n }\n }\n\n /**\n * Seek to position\n */\n seek(position: number): this {\n if (this._killed) {\n console.warn('[Motion] Cannot seek a killed timeline. Create a new one with Motion(name).');\n return this;\n }\n\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.seek(position);\n return this;\n }\n\n this._time = Math.max(0, Math.min(position, this._duration));\n this._progress = this._duration > 0 ? this._time / this._duration : 0;\n\n // Update all children to match seek position\n this.update(0);\n\n return this;\n }\n\n /**\n * Set progress for animations bound to a specific axis (for mouse movement trigger)\n * Only affects animations that have .axis() set to the specified axis.\n * @param axis - 'x' or 'y'\n * @param value - Progress value (0-1)\n */\n setAxisProgress(axis: 'x' | 'y', value: number): this {\n const clampedValue = Math.max(0, Math.min(1, value));\n\n for (const child of this._children) {\n if (child.type === 'animation' && child.builder) {\n const builderAxis = child.builder.getConfig().axis;\n if (builderAxis === axis) {\n const animation = child.child as Animation;\n const duration = animation.totalDuration();\n\n // Ensure animation is initialized (capture start values for TO-only animations)\n if (!animation.isActive()) {\n animation.captureStartValues();\n animation.play();\n }\n\n // Set animation time based on progress\n animation.renderAtTime(clampedValue * duration);\n }\n }\n }\n\n return this;\n }\n\n /**\n * Set callback for when timeline starts playing\n */\n onStart(callback: () => void): this {\n this._onStart = callback;\n return this;\n }\n\n /**\n * Set callback for progress updates (called every frame while active)\n * @param callback - Receives (progress: 0-1, time: seconds)\n */\n onUpdate(callback: (progress: number, time: number) => void): this {\n this._onUpdate = callback;\n return this;\n }\n\n /**\n * Set callback for when timeline completes\n */\n onComplete(callback: () => void): this {\n this._onComplete = callback;\n return this;\n }\n\n /**\n * Get or set progress (0-1)\n */\n progress(): number;\n progress(value: number): this;\n progress(value?: number): number | this {\n if (value === undefined) {\n // Getter: aggregate from each instances if in each-mode\n if (this._eachInstances && this._eachInstances.length > 0) {\n let maxProgress = 0;\n for (const inst of this._eachInstances) {\n const p = inst.progress();\n if (p > maxProgress) maxProgress = p;\n }\n return maxProgress;\n }\n return this._progress;\n }\n\n // Setter\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.progress(value);\n return this;\n }\n\n const clampedValue = Math.max(0, Math.min(1, value));\n\n // Reset callback flags when seeking to beginning\n if (clampedValue === 0) {\n for (const child of this._children) {\n if (child.type === 'animation') {\n (child.child as Animation).resetForReplay();\n }\n }\n }\n\n this._time = clampedValue * this._duration;\n this._progress = clampedValue;\n\n // When seeking to position 0, restore initial values then render position-0 animations\n if (clampedValue === 0) {\n this._restoreInitialValues();\n this._renderPositionZeroAnimations();\n } else {\n this.update(0);\n }\n\n // Fire onUpdate callback when progress is explicitly set (e.g., scroll scrubbing)\n // This ensures playhead sync even when timeline isn't \"active\"\n this._onUpdate?.(this._progress, this._time);\n\n return this;\n }\n\n /**\n * Get or set time in seconds\n */\n time(): number;\n time(value: number): this;\n time(value?: number): number | this {\n if (value === undefined) {\n if (this._eachInstances && this._eachInstances.length > 0) {\n let maxTime = 0;\n for (const inst of this._eachInstances) {\n const t = inst.time();\n if (t > maxTime) maxTime = t;\n }\n return maxTime;\n }\n return this._time;\n }\n\n if (this._eachInstances) {\n for (const inst of this._eachInstances) inst.time(value);\n return this;\n }\n\n this._time = Math.max(0, Math.min(value, this._duration));\n this._progress = this._duration > 0 ? this._time / this._duration : 0;\n\n // Update all children\n this.update(0);\n\n return this;\n }\n\n /**\n * Get or set time scale (speed multiplier)\n */\n timeScale(): number;\n timeScale(value: number): this;\n timeScale(value?: number): number | this {\n if (value === undefined) {\n return this._timeScale;\n }\n\n this._timeScale = value;\n\n return this;\n }\n\n /**\n * Kill timeline and all children, reset all state\n * @param clearProps - If true (default), restore elements to their initial CSS values\n */\n kill(clearProps: boolean = true): void {\n this._killed = true;\n this._isActive = false;\n\n // Clean up attached triggers (including page load)\n SDKRegistry.triggerManager?.getInstance?.().unregister(this);\n\n // Clean up each-mode instances\n if (this._eachInstances) {\n for (const instance of this._eachInstances) {\n instance.kill(clearProps);\n }\n this._eachInstances = undefined;\n }\n\n // Restore CSS transitions and clear saved data before restoring initial values\n this._clearTransitionData();\n\n // Restore initial CSS values BEFORE killing animations\n // This resets elements to their state before the timeline was created\n // Check both _initialValues (CSS props) AND _transformElements (transform props like rotation from path)\n if (clearProps && (this._initialValues.size > 0 || this._transformElements.size > 0)) {\n this._restoreInitialValues();\n }\n\n // Release and kill all child animations (returns them to pool)\n for (const child of this._children) {\n if (child.type === 'animation') {\n const animation = child.child as Animation;\n // Release from timeline ownership so it can be pooled\n animation.setTimelineChild(false);\n animation.kill();\n } else if (child.type === 'timeline') {\n (child.child as Timeline).kill(clearProps);\n }\n }\n\n // Unregister from Engine if this is a named timeline\n if (this._unregisterCallback) {\n this._unregisterCallback();\n this._unregisterCallback = undefined;\n }\n\n // Reset all state so timeline can be reused cleanly\n this._children = [];\n this._initialValues.clear();\n this._initialTransforms.clear();\n this._transformElements.clear();\n this._savedTransitions.clear();\n this._savedWillChange.clear();\n this._transitionsDisabled = false;\n this._duration = 0;\n this._time = 0;\n this._progress = 0;\n this._previousStart = 0;\n this._previousEnd = 0;\n this._isReversed = false;\n this._startFired = false;\n }\n\n /**\n * Check if timeline is currently active\n */\n isActive(): boolean {\n if (this._eachInstances) {\n return this._eachInstances.some(inst => inst.isActive());\n }\n return this._isActive;\n }\n\n /**\n * Get timeline name\n */\n getName(): string | undefined {\n return this._name;\n }\n\n /**\n * Get first child animation (for trigger target resolution).\n * @internal\n */\n getFirstChildAnimation(): Animation | null {\n const firstChild = this._children[0];\n if (firstChild?.type === 'animation') {\n return firstChild.child as Animation;\n }\n return null;\n }\n}\n\n\n",
33
33
  "/**\n * QuickSetter - High-performance property setter for per-frame updates\n *\n * Bypasses the full animation pipeline for maximum speed.\n * Used by CursorTrigger for smooth position tracking.\n */\n\nimport { setTransformValue, buildTransformString } from '../render/TransformCache';\nimport { isTransformProp } from './PropertyParser';\n\nexport type QuickSetterFn = (value: number) => void;\n\n/**\n * Create a high-performance property setter for per-frame updates.\n * Returns a function that sets the value directly without animation overhead.\n *\n * @param target - The element to animate\n * @param property - CSS property name (camelCase)\n * @param unit - Unit to append (default: 'px' for transforms, '' for others)\n */\nexport function createQuickSetter(\n target: Element,\n property: string,\n unit?: string\n): QuickSetterFn {\n const htmlEl = target as HTMLElement;\n\n // Transform properties use the cache system\n if (isTransformProp(property)) {\n const resolvedUnit = unit ?? (property.startsWith('scale') ? '' : 'px');\n return (value: number) => {\n setTransformValue(target, property, value, resolvedUnit);\n htmlEl.style.transform = buildTransformString(target);\n };\n }\n\n // CSS custom properties (variables)\n if (property.startsWith('--')) {\n const resolvedUnit = unit ?? '';\n return (value: number) => {\n htmlEl.style.setProperty(property, `${value}${resolvedUnit}`);\n };\n }\n\n // Regular CSS properties\n const kebabProp = property.replace(/([A-Z])/g, '-$1').toLowerCase();\n const resolvedUnit = unit ?? '';\n\n return (value: number) => {\n htmlEl.style.setProperty(kebabProp, `${value}${resolvedUnit}`);\n };\n}\n\n",
34
- "/**\n * CursorTrigger - Custom cursor controller\n *\n * Features:\n * - Smooth position tracking with configurable lag\n * - State-based animations (default, hover, click)\n * - Velocity-based squeeze effect\n * - Text and media cursor variants\n */\n\nimport type { CursorConfig, CursorStateVars, CursorSqueezeConfig } from '../types';\nimport { Timeline } from '../core/Timeline';\nimport { Ticker } from '../core/Ticker';\nimport { createQuickSetter, type QuickSetterFn } from '../utils/QuickSetter';\nimport { camelToKebab } from '../utils/PropertyParser';\nimport { setTransformValue, buildTransformString } from '../render/TransformCache';\nimport { TriggerManager } from './TriggerManager';\nimport { BaseTrigger } from './BaseTrigger';\nimport { getLayoutRect } from '../utils/getLayoutRect';\n\ntype CursorState = 'default' | 'hover' | 'click';\n\n/**\n * Validate that a media URL is safe to load (http/https or relative path).\n * Blocks file://, data:, javascript:, and internal network URLs.\n */\nfunction isSafeMediaUrl(src: string): boolean {\n // SSR guard: if location is unavailable, only allow relative paths (no protocol)\n if (typeof location === 'undefined') {\n return !src.includes(':');\n }\n try {\n const url = new URL(src, location.href);\n return url.protocol === 'https:' || url.protocol === 'http:';\n } catch {\n // Relative paths without a protocol are safe\n return !src.includes(':');\n }\n}\n\ninterface ParsedStateConfig {\n properties: Record<string, string | number>;\n duration: number;\n ease: string;\n targets?: string[];\n enabled: boolean;\n}\n\nexport class CursorTrigger extends BaseTrigger<CursorConfig> {\n private _element: HTMLElement | null = null;\n private _innerElement: HTMLElement | null = null;\n\n // Position tracking\n private _mousePos = { x: -100, y: -100 };\n private _cursorPos = { x: -100, y: -100 };\n private _xSetter: QuickSetterFn | null = null;\n private _ySetter: QuickSetterFn | null = null;\n\n // Squeeze effect\n private _squeezeSetter: QuickSetterFn | null = null;\n private _squeezeConfig: CursorSqueezeConfig = { min: 0.55, max: 1.2, multiplier: 150 };\n\n // State management\n private _state: CursorState = 'default';\n private _stateTimelines: Map<CursorState, Timeline> = new Map();\n private _parsedStates: Map<CursorState, ParsedStateConfig> = new Map();\n\n // Special cursor elements\n private _textElement: HTMLElement | null = null;\n private _mediaElement: HTMLImageElement | HTMLVideoElement | null = null;\n\n // Event listeners\n private _tickerCallback?: (dt: number) => void;\n private _boundMouseMove?: (e: MouseEvent) => void;\n private _boundMouseDown?: () => void;\n private _boundMouseUp?: () => void;\n\n // Hover frozen-rect state for hover targets.\n // Bounds are snapshotted at rest so that animations on target elements don't\n // cause infinite enter/leave jitter if those elements are also animated.\n private _hoverFrozenRects: Map<Element, DOMRect> = new Map();\n private _isHoveringCursorTarget: boolean = false;\n private _boundHoverTargetMoveHandler: ((e: MouseEvent) => void) | null = null;\n\n // Legacy map kept only for _removeEventListeners() compatibility (always empty now).\n private _hoverListeners: Map<Element, { enter: () => void; leave: () => void }> = new Map();\n\n // Text/media attribute listeners\n private _attributeListeners: Map<Element, { enter: (e: Event) => void; leave: () => void }> = new Map();\n\n constructor(timeline: Timeline, config: CursorConfig) {\n super(timeline, config);\n this._config = {\n type: 'basic',\n smooth: 0.25,\n hideNative: false,\n ...config,\n };\n\n // Parse squeeze config\n if (config.squeeze === true) {\n this._squeezeConfig = { min: 0.55, max: 1.2, multiplier: 150 };\n } else if (typeof config.squeeze === 'object') {\n this._squeezeConfig = {\n min: config.squeeze.min ?? 0.55,\n max: config.squeeze.max ?? 1.2,\n multiplier: config.squeeze.multiplier ?? 150,\n };\n }\n\n // Parse state configs\n this._parsedStates.set('default', this._parseStateConfig(config.default));\n if (config.hover) {\n this._parsedStates.set('hover', this._parseStateConfig(config.hover));\n }\n if (config.click) {\n this._parsedStates.set('click', this._parseStateConfig(config.click));\n }\n }\n\n private _parseStateConfig(config: CursorStateVars): ParsedStateConfig {\n const { targets, duration, ease, enabled, ...properties } = config;\n return {\n properties: properties as Record<string, string | number>,\n duration: duration ?? 0.15,\n ease: ease ?? 'power3.inOut',\n targets,\n enabled: enabled ?? true,\n };\n }\n\n /**\n * Set up the cursor: resolve element, create setters, attach listeners, start ticker.\n *\n * Architecture (mirrors original GSAP cursor):\n * - Container (_element): position:fixed, zero-size, moved via x/y QuickSetters\n * - Inner element (_innerElement): centered via translate(-50%, -50%),\n * receives all visual CSS properties and state transitions\n */\n protected _onEnable(): void {\n // Get target element from timeline (this is the container)\n this._element = this._getTargetElement();\n if (!this._element) return;\n\n // Create inner element for visual styling, centered on the container origin.\n // Centering uses TransformCache (not inline CSS) so it composes correctly\n // with transform animations (e.g. scale) on hover/click states.\n this._innerElement = document.createElement('div');\n this._innerElement.setAttribute('data-cursor-inner', '');\n this._innerElement.style.cssText = 'pointer-events:none;position:absolute;top:0;left:0;';\n this._element.appendChild(this._innerElement);\n\n // Set centering via TransformCache so it composes with transform animations\n setTransformValue(this._innerElement, 'x', -50, '%');\n setTransformValue(this._innerElement, 'y', -50, '%');\n\n // Create quick setters for position on the container\n this._xSetter = createQuickSetter(this._element, 'x', 'px');\n this._ySetter = createQuickSetter(this._element, 'y', 'px');\n\n // Create squeeze setter if enabled (on inner element for visual effect)\n if (this._config.squeeze) {\n this._squeezeSetter = createQuickSetter(this._element, 'scale');\n }\n\n // Set initial position (off-screen)\n this._cursorPos = { x: -100, y: -100 };\n this._mousePos = { x: -100, y: -100 };\n this._xSetter(-100);\n this._ySetter(-100);\n\n // Apply default properties to the inner element\n // (may include transform shorthand which gets expanded via TransformCache)\n this._applyProperties(this._parsedStates.get('default')!.properties);\n\n // Ensure centering transform (and any default transforms) are flushed to DOM\n this._innerElement.style.transform = buildTransformString(this._innerElement);\n\n // Hide native cursor\n if (this._config.hideNative) {\n document.body.style.cursor = 'none';\n }\n\n // Setup special cursor types\n if (this._config.type === 'text') {\n this._setupTextCursor();\n } else if (this._config.type === 'media') {\n this._setupMediaCursor();\n }\n\n // Create state transition timelines\n this._createStateTimelines();\n\n // Add event listeners\n this._setupEventListeners();\n\n // Start ticker for position updates\n this._tickerCallback = (dt) => this._tick(dt);\n Ticker.getInstance().add(this._tickerCallback);\n }\n\n /**\n * Tear down the cursor: remove ticker, restore native cursor, remove listeners.\n */\n protected _onDisable(): void {\n // Remove ticker\n if (this._tickerCallback) {\n Ticker.getInstance().remove(this._tickerCallback);\n this._tickerCallback = undefined;\n }\n\n // Restore native cursor\n if (this._config.hideNative) {\n document.body.style.cursor = '';\n }\n\n // Remove event listeners\n this._removeEventListeners();\n\n // Kill state timelines\n this._stateTimelines.forEach(tl => tl.kill());\n this._stateTimelines.clear();\n\n // Remove inner element from DOM\n if (this._innerElement?.parentNode) {\n this._innerElement.remove();\n }\n this._innerElement = null;\n\n // Remove container element from DOM as safety net.\n // The caller (cursor connector) also calls element.remove(), but doing it\n // here ensures cleanup even if the connector's destroy path doesn't run.\n if (this._element?.parentNode) {\n this._element.remove();\n }\n this._element = null;\n }\n\n private _getTargetElement(): HTMLElement | null {\n // Try to resolve from config using base helper\n const resolved = this._resolveElement(this._config.target);\n if (resolved instanceof HTMLElement) return resolved;\n\n // Fallback: try to get from timeline's first animation\n const firstAnim = this._timeline.getFirstChildAnimation();\n if (firstAnim) {\n const targets = firstAnim.getTargets();\n if (targets[0] instanceof HTMLElement) {\n return targets[0];\n }\n }\n return null;\n }\n\n private _applyProperties(properties: Record<string, string | number>): void {\n if (!this._innerElement) return;\n\n for (const [key, value] of Object.entries(properties)) {\n if (key === 'transform') {\n // Expand CSS transform shorthand (e.g. \"scale(2)\") into individual\n // SDK transform properties and apply via TransformCache so they\n // compose with the centering translate(-50%, -50%).\n const expanded = CursorTrigger._expandTransformShorthand(String(value));\n for (const [prop, val] of Object.entries(expanded)) {\n setTransformValue(this._innerElement!, prop, val);\n }\n // Flush is handled by _onEnable after this call\n } else {\n this._innerElement.style.setProperty(camelToKebab(key), String(value));\n }\n }\n }\n\n private _createStateTimelines(): void {\n // State transitions target the inner element (visual styling)\n if (!this._innerElement) return;\n\n // Create hover timeline\n const hoverConfig = this._parsedStates.get('hover');\n if (hoverConfig && hoverConfig.enabled) {\n const hoverTl = new Timeline();\n hoverTl._addEntry(this._innerElement, {\n to: CursorTrigger._expandStateProperties(hoverConfig.properties),\n duration: hoverConfig.duration,\n ease: hoverConfig.ease,\n });\n this._stateTimelines.set('hover', hoverTl);\n }\n\n // Create click timeline\n const clickConfig = this._parsedStates.get('click');\n if (clickConfig && clickConfig.enabled) {\n const clickTl = new Timeline();\n clickTl._addEntry(this._innerElement, {\n to: CursorTrigger._expandStateProperties(clickConfig.properties),\n duration: clickConfig.duration,\n ease: clickConfig.ease,\n });\n this._stateTimelines.set('click', clickTl);\n }\n }\n\n /**\n * Expand CSS transform shorthand in state properties into individual\n * SDK transform properties that the animation system can interpolate.\n * E.g., {transform: 'scale(2)', width: '80px'} → {scale: 2, width: '80px'}\n */\n private static _expandStateProperties(properties: Record<string, string | number>): Record<string, string | number> {\n const result: Record<string, string | number> = {};\n for (const [key, value] of Object.entries(properties)) {\n if (key === 'transform') {\n const expanded = CursorTrigger._expandTransformShorthand(String(value));\n Object.assign(result, expanded);\n } else {\n result[key] = value;\n }\n }\n return result;\n }\n\n /**\n * Parse CSS transform shorthand string into individual SDK transform properties.\n * Handles: scale, scaleX/Y, rotate, rotateX/Y/Z, skewX/Y\n * E.g., \"scale(2)\" → {scale: 2}\n * \"scale(2, 3)\" → {scaleX: 2, scaleY: 3}\n * \"scale(2) rotate(45deg)\" → {scale: 2, rotate: 45}\n */\n private static _expandTransformShorthand(transformStr: string): Record<string, number> {\n const result: Record<string, number> = {};\n const regex = /([a-zA-Z0-9]+)\\(([^)]+)\\)/g;\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(transformStr)) !== null) {\n const fn = match[1];\n const args = match[2].split(',').map(s => parseFloat(s.trim()));\n\n switch (fn) {\n case 'scale': {\n const x = args[0] ?? 1;\n const y = args.length > 1 ? args[1] : x;\n if (x === y) {\n result.scale = x;\n } else {\n result.scaleX = x;\n result.scaleY = y;\n }\n break;\n }\n case 'scaleX':\n result.scaleX = args[0] ?? 1;\n break;\n case 'scaleY':\n result.scaleY = args[0] ?? 1;\n break;\n case 'scaleZ':\n result.scaleZ = args[0] ?? 1;\n break;\n case 'rotate':\n result.rotate = args[0] ?? 0;\n break;\n case 'rotateX':\n result.rotateX = args[0] ?? 0;\n break;\n case 'rotateY':\n result.rotateY = args[0] ?? 0;\n break;\n case 'rotateZ':\n result.rotateZ = args[0] ?? 0;\n break;\n case 'skewX':\n result.skewX = args[0] ?? 0;\n break;\n case 'skewY':\n result.skewY = args[0] ?? 0;\n break;\n }\n }\n\n return result;\n }\n\n private _setupEventListeners(): void {\n // Mouse move (always needed for position tracking)\n this._boundMouseMove = (e) => {\n this._mousePos.x = e.clientX;\n this._mousePos.y = e.clientY;\n };\n document.addEventListener('mousemove', this._boundMouseMove);\n\n // Mouse down/up for click state\n const clickConfig = this._parsedStates.get('click');\n if (clickConfig?.enabled) {\n this._boundMouseDown = () => this._setState('click');\n this._boundMouseUp = () => this._setState(this._state === 'click' ? 'default' : this._state);\n document.addEventListener('mousedown', this._boundMouseDown);\n document.addEventListener('mouseup', this._boundMouseUp);\n }\n\n // Hover targets\n const hoverConfig = this._parsedStates.get('hover');\n if (hoverConfig?.enabled && hoverConfig.targets && hoverConfig.targets.length > 0) {\n this._setupHoverTargets(hoverConfig.targets);\n }\n }\n\n private _setupHoverTargets(targets: string[]): void {\n // Collect all hover target elements and snapshot their bounds at rest.\n // Using frozen rects prevents jitter when target elements are also animated\n // (e.g. a button that scales on hover would cause live bounds to shift,\n // triggering spurious enter/leave events if we used native mouseenter/mouseleave).\n for (const selector of targets) {\n let elements: NodeListOf<Element>;\n try {\n elements = document.querySelectorAll(selector);\n } catch (e) {\n console.warn(`[Motion] Invalid hover target selector \"${selector}\":`, e);\n continue;\n }\n for (const el of elements) {\n this._hoverFrozenRects.set(el, getLayoutRect(el as HTMLElement));\n }\n }\n\n if (this._hoverFrozenRects.size === 0) return;\n\n // A single window mousemove listener replaces per-element mouseenter/mouseleave.\n this._boundHoverTargetMoveHandler = (e: MouseEvent) => {\n const cx = e.clientX;\n const cy = e.clientY;\n\n let isOver = false;\n for (const rect of this._hoverFrozenRects.values()) {\n if (cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom) {\n isOver = true;\n break;\n }\n }\n\n if (isOver && !this._isHoveringCursorTarget) {\n this._isHoveringCursorTarget = true;\n this._setState('hover');\n } else if (!isOver && this._isHoveringCursorTarget) {\n this._isHoveringCursorTarget = false;\n if (this._state === 'hover') {\n this._setState('default');\n }\n }\n };\n\n window.addEventListener('mousemove', this._boundHoverTargetMoveHandler);\n }\n\n private _setupTextCursor(): void {\n if (!this._innerElement) return;\n\n // Style inner element for text cursor: grid centering + overflow visible\n // so text is visible even when the inner element is 0x0\n // (matches old GSAP TextCursor: display:grid, placeItems:center)\n this._innerElement.style.display = 'grid';\n this._innerElement.style.placeItems = 'center';\n this._innerElement.style.overflow = 'visible';\n\n // Create text element inside the inner cursor element\n this._textElement = document.createElement('div');\n this._textElement.setAttribute('data-cursor-text', '');\n // Prevent text wrapping inside zero-width container, start invisible\n this._textElement.style.whiteSpace = 'nowrap';\n this._textElement.style.opacity = '0';\n this._innerElement.appendChild(this._textElement);\n\n // Get transition duration from hover config for opacity animation\n const hoverConfig = this._parsedStates.get('hover');\n const transitionDuration = hoverConfig?.duration ?? 0.15;\n this._textElement.style.transition = `opacity ${transitionDuration}s ease-in-out`;\n\n // Apply text styles if provided\n if (this._config.text) {\n for (const [key, value] of Object.entries(this._config.text)) {\n this._textElement.style.setProperty(camelToKebab(key), String(value));\n }\n }\n\n // Setup attribute-based text triggers\n // Support both mp-cursor-text and mp-cursor-tooltip attributes\n const textElements = document.querySelectorAll('[mp-cursor-text], [mp-cursor-tooltip]');\n for (const el of textElements) {\n const enter = (e: Event) => {\n const target = e.target as Element;\n const text = target.getAttribute('mp-cursor-text')\n ?? target.getAttribute('mp-cursor-tooltip')\n ?? '';\n if (this._textElement) {\n this._textElement.textContent = text;\n this._textElement.style.opacity = '1';\n }\n this._setState('hover');\n };\n const leave = () => {\n if (this._textElement) {\n this._textElement.style.opacity = '0';\n }\n if (this._state === 'hover') {\n this._setState('default');\n }\n };\n\n el.addEventListener('mouseenter', enter);\n el.addEventListener('mouseleave', leave);\n this._attributeListeners.set(el, { enter, leave });\n }\n }\n\n private _setupMediaCursor(): void {\n if (!this._innerElement) return;\n\n // Create image element inside the inner cursor element\n const img = document.createElement('img');\n img.setAttribute('data-cursor-media', '');\n img.style.display = 'none';\n this._innerElement.appendChild(img);\n\n const video = document.createElement('video');\n video.setAttribute('data-cursor-media', '');\n video.autoplay = true;\n video.muted = true;\n video.loop = true;\n video.style.display = 'none';\n this._innerElement.appendChild(video);\n\n // Apply media styles if provided\n if (this._config.media) {\n for (const [key, value] of Object.entries(this._config.media)) {\n img.style.setProperty(camelToKebab(key), String(value));\n video.style.setProperty(camelToKebab(key), String(value));\n }\n }\n\n // Setup attribute-based media triggers\n const mediaElements = document.querySelectorAll('[mp-cursor-media]');\n for (const el of mediaElements) {\n const enter = (e: Event) => {\n const src = (e.target as Element).getAttribute('mp-cursor-media') || '';\n if (!src || !isSafeMediaUrl(src)) {\n if (src) console.warn(`[Motion] Blocked unsafe media URL: \"${src}\". Only http/https URLs and relative paths are allowed.`);\n return;\n }\n const isVideo = src.endsWith('.mp4') || src.endsWith('.webm');\n\n if (isVideo) {\n video.src = src;\n video.style.display = 'block';\n img.style.display = 'none';\n video.play().catch(() => {});\n this._mediaElement = video;\n } else {\n img.src = src;\n img.style.display = 'block';\n video.style.display = 'none';\n this._mediaElement = img;\n }\n this._setState('hover');\n };\n const leave = () => {\n img.style.display = 'none';\n video.style.display = 'none';\n video.pause();\n if (this._state === 'hover') {\n this._setState('default');\n }\n };\n\n el.addEventListener('mouseenter', enter);\n el.addEventListener('mouseleave', leave);\n this._attributeListeners.set(el, { enter, leave });\n }\n }\n\n private _removeEventListeners(): void {\n if (this._boundMouseMove) {\n document.removeEventListener('mousemove', this._boundMouseMove);\n }\n if (this._boundMouseDown) {\n document.removeEventListener('mousedown', this._boundMouseDown);\n }\n if (this._boundMouseUp) {\n document.removeEventListener('mouseup', this._boundMouseUp);\n }\n\n // Remove hover frozen-rect mousemove handler\n if (this._boundHoverTargetMoveHandler) {\n window.removeEventListener('mousemove', this._boundHoverTargetMoveHandler);\n this._boundHoverTargetMoveHandler = null;\n }\n this._hoverFrozenRects.clear();\n this._isHoveringCursorTarget = false;\n\n // _hoverListeners is kept empty now (frozen-rect approach replaced native listeners).\n this._hoverListeners.clear();\n\n // Remove attribute listeners\n this._attributeListeners.forEach((listeners, el) => {\n el.removeEventListener('mouseenter', listeners.enter);\n el.removeEventListener('mouseleave', listeners.leave);\n });\n this._attributeListeners.clear();\n }\n\n private _setState(newState: CursorState): void {\n if (this._state === newState) return;\n\n const prevState = this._state;\n this._state = newState;\n\n // Get the timeline for the new state\n const newTimeline = this._stateTimelines.get(newState);\n const prevTimeline = this._stateTimelines.get(prevState);\n\n if (newState === 'default') {\n // Return to default - reverse the previous state timeline\n if (prevTimeline) {\n prevTimeline.reverse();\n }\n } else {\n // Enter new state\n // If coming from a different non-default state, reverse the old one\n if (prevState !== 'default' && prevTimeline) {\n prevTimeline.reverse();\n }\n\n if (newTimeline) {\n // Use play() instead of restart() to resume from current position.\n // This prevents a visual jump when hovering between adjacent elements:\n // mouseleave on A starts reversing, mouseenter on B resumes forward\n // from wherever the timeline currently is — matching GSAP's overwrite behavior.\n newTimeline.play();\n }\n }\n }\n\n private _tick(deltaTime: number): void {\n if (!this._xSetter || !this._ySetter) return;\n\n // Smooth interpolation matching original GSAP cursor behavior:\n // smooth 0 = most delay/smoothing, smooth 1 = instant tracking\n // Uses power curve (2.5) for natural feel, frame-rate independent\n const smooth = this._config.smooth ?? 0.25;\n const rescaled = Math.pow(smooth, 2.5) || 0.000001;\n const lerpFactor = 1 - Math.pow(1 - rescaled, deltaTime * 60);\n\n // Update cursor position\n this._cursorPos.x += (this._mousePos.x - this._cursorPos.x) * lerpFactor;\n this._cursorPos.y += (this._mousePos.y - this._cursorPos.y) * lerpFactor;\n\n // Apply position\n this._xSetter(this._cursorPos.x);\n this._ySetter(this._cursorPos.y);\n\n // Apply squeeze effect if enabled\n if (this._squeezeSetter && this._config.squeeze) {\n const scale = this._calculateSqueeze();\n this._squeezeSetter(scale);\n }\n\n // Tick state transition timelines (they are unnamed, so not registered\n // with Engine and must be updated manually)\n for (const tl of this._stateTimelines.values()) {\n if (tl.isActive()) {\n tl.update(deltaTime);\n }\n }\n }\n\n private _calculateSqueeze(): number {\n const dx = this._cursorPos.x - this._mousePos.x;\n const dy = this._cursorPos.y - this._mousePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n const { min, max, multiplier } = this._squeezeConfig;\n const scale = 1 - (Math.exp(distance / multiplier!) - 1) / 10;\n\n if (Number.isNaN(scale)) {\n return 1;\n }\n\n return Math.max(min!, Math.min(max!, scale));\n }\n\n /**\n * Get the cursor element\n */\n getElement(): HTMLElement | null {\n return this._element;\n }\n\n /**\n * Get current state\n */\n getState(): CursorState {\n return this._state;\n }\n}\n\n// Register with TriggerManager\nTriggerManager.registerTrigger('cursor', CursorTrigger);\n",
34
+ "/**\n * CursorTrigger - Custom cursor controller\n *\n * Features:\n * - Smooth position tracking with configurable lag\n * - State-based animations (default, hover, click)\n * - Velocity-based squeeze effect\n * - Text and media cursor variants\n */\n\nimport type { CursorConfig, CursorStateVars, CursorSqueezeConfig } from '../types';\nimport { Timeline } from '../core/Timeline';\nimport { Ticker } from '../core/Ticker';\nimport { createQuickSetter, type QuickSetterFn } from '../utils/QuickSetter';\nimport { camelToKebab } from '../utils/PropertyParser';\nimport { setTransformValue, buildTransformString } from '../render/TransformCache';\nimport { TriggerManager } from './TriggerManager';\nimport { BaseTrigger } from './BaseTrigger';\nimport { getLayoutRect } from '../utils/getLayoutRect';\n\ntype CursorState = 'default' | 'hover' | 'click';\n\n/**\n * Validate that a media URL is safe to load (http/https or relative path).\n * Blocks file://, data:, javascript:, and internal network URLs.\n */\nfunction isSafeMediaUrl(src: string): boolean {\n // SSR guard: if location is unavailable, only allow relative paths (no protocol)\n if (typeof location === 'undefined') {\n return !src.includes(':');\n }\n try {\n const url = new URL(src, location.href);\n return url.protocol === 'https:' || url.protocol === 'http:';\n } catch {\n // Relative paths without a protocol are safe\n return !src.includes(':');\n }\n}\n\ninterface ParsedStateConfig {\n properties: Record<string, string | number>;\n duration: number;\n ease: string;\n targets?: string[];\n enabled: boolean;\n}\n\nexport class CursorTrigger extends BaseTrigger<CursorConfig> {\n private _element: HTMLElement | null = null;\n private _innerElement: HTMLElement | null = null;\n\n // Position tracking\n private _mousePos = { x: -100, y: -100 };\n private _cursorPos = { x: -100, y: -100 };\n private _xSetter: QuickSetterFn | null = null;\n private _ySetter: QuickSetterFn | null = null;\n\n // Squeeze effect\n private _squeezeSetter: QuickSetterFn | null = null;\n private _squeezeConfig: CursorSqueezeConfig = { min: 0.55, max: 1.2, multiplier: 150 };\n\n // State management\n private _state: CursorState = 'default';\n private _stateTimelines: Map<CursorState, Timeline> = new Map();\n private _parsedStates: Map<CursorState, ParsedStateConfig> = new Map();\n\n // Special cursor elements\n private _textElement: HTMLElement | null = null;\n private _mediaElement: HTMLImageElement | HTMLVideoElement | null = null;\n\n // Event listeners\n private _tickerCallback?: (dt: number) => void;\n private _boundMouseMove?: (e: MouseEvent) => void;\n private _boundMouseDown?: () => void;\n private _boundMouseUp?: () => void;\n\n // Hover frozen-rect state for hover targets.\n // Bounds are snapshotted at rest so that animations on target elements don't\n // cause infinite enter/leave jitter if those elements are also animated.\n private _hoverFrozenRects: Map<Element, DOMRect> = new Map();\n private _isHoveringCursorTarget: boolean = false;\n private _boundHoverTargetMoveHandler: ((e: MouseEvent) => void) | null = null;\n\n // Legacy map kept only for _removeEventListeners() compatibility (always empty now).\n private _hoverListeners: Map<Element, { enter: () => void; leave: () => void }> = new Map();\n\n // Text/media attribute listeners\n private _attributeListeners: Map<Element, { enter: (e: Event) => void; leave: () => void }> = new Map();\n\n constructor(timeline: Timeline, config: CursorConfig) {\n super(timeline, config);\n this._config = {\n type: 'basic',\n smooth: 0.25,\n hideNative: false,\n ...config,\n };\n\n // Parse squeeze config\n if (config.squeeze === true) {\n this._squeezeConfig = { min: 0.55, max: 1.2, multiplier: 150 };\n } else if (typeof config.squeeze === 'object') {\n this._squeezeConfig = {\n min: config.squeeze.min ?? 0.55,\n max: config.squeeze.max ?? 1.2,\n multiplier: config.squeeze.multiplier ?? 150,\n };\n }\n\n // Parse state configs\n this._parsedStates.set('default', this._parseStateConfig(config.default));\n if (config.hover) {\n this._parsedStates.set('hover', this._parseStateConfig(config.hover));\n }\n if (config.click) {\n this._parsedStates.set('click', this._parseStateConfig(config.click));\n }\n }\n\n private _parseStateConfig(config: CursorStateVars): ParsedStateConfig {\n const { targets, duration, ease, enabled, ...properties } = config;\n return {\n properties: properties as Record<string, string | number>,\n duration: duration ?? 0.15,\n ease: ease ?? 'power3.inOut',\n targets,\n enabled: enabled ?? true,\n };\n }\n\n /**\n * Set up the cursor: create container, create setters, attach listeners, start ticker.\n *\n * Architecture (mirrors original GSAP cursor):\n * - Container (_element): position:fixed, zero-size, moved via x/y QuickSetters\n * - Inner element (_innerElement): centered via translate(-50%, -50%),\n * receives all visual CSS properties and state transitions\n */\n protected _onEnable(): void {\n // Create the container element — SDK owns it entirely\n this._element = this._createContainer();\n\n // Create inner element for visual styling, centered on the container origin.\n // Centering uses TransformCache (not inline CSS) so it composes correctly\n // with transform animations (e.g. scale) on hover/click states.\n this._innerElement = document.createElement('div');\n this._innerElement.setAttribute('data-cursor-inner', '');\n this._innerElement.style.cssText = 'pointer-events:none;position:absolute;top:0;left:0;';\n this._element.appendChild(this._innerElement);\n\n // Set centering via TransformCache so it composes with transform animations\n setTransformValue(this._innerElement, 'x', -50, '%');\n setTransformValue(this._innerElement, 'y', -50, '%');\n\n // Create quick setters for position on the container\n this._xSetter = createQuickSetter(this._element, 'x', 'px');\n this._ySetter = createQuickSetter(this._element, 'y', 'px');\n\n // Create squeeze setter if enabled (on inner element for visual effect)\n if (this._config.squeeze) {\n this._squeezeSetter = createQuickSetter(this._element, 'scale');\n }\n\n // Set initial position (off-screen)\n this._cursorPos = { x: -100, y: -100 };\n this._mousePos = { x: -100, y: -100 };\n this._xSetter(-100);\n this._ySetter(-100);\n\n // Apply default properties to the inner element\n // (may include transform shorthand which gets expanded via TransformCache)\n this._applyProperties(this._parsedStates.get('default')!.properties);\n\n // Ensure centering transform (and any default transforms) are flushed to DOM\n this._innerElement.style.transform = buildTransformString(this._innerElement);\n\n // Hide native cursor\n if (this._config.hideNative) {\n document.body.style.cursor = 'none';\n }\n\n // Setup special cursor types\n if (this._config.type === 'text') {\n this._setupTextCursor();\n } else if (this._config.type === 'media') {\n this._setupMediaCursor();\n }\n\n // Create state transition timelines\n this._createStateTimelines();\n\n // Add event listeners\n this._setupEventListeners();\n\n // Start ticker for position updates\n this._tickerCallback = (dt) => this._tick(dt);\n Ticker.getInstance().add(this._tickerCallback);\n }\n\n /**\n * Tear down the cursor: remove ticker, restore native cursor, remove listeners.\n */\n protected _onDisable(): void {\n // Remove ticker\n if (this._tickerCallback) {\n Ticker.getInstance().remove(this._tickerCallback);\n this._tickerCallback = undefined;\n }\n\n // Restore native cursor\n if (this._config.hideNative) {\n document.body.style.cursor = '';\n }\n\n // Remove event listeners\n this._removeEventListeners();\n\n // Kill state timelines\n this._stateTimelines.forEach(tl => tl.kill());\n this._stateTimelines.clear();\n\n // Remove inner element from DOM\n if (this._innerElement?.parentNode) {\n this._innerElement.remove();\n }\n this._innerElement = null;\n\n // Remove container element from DOM — SDK always owns the container it created.\n if (this._element?.parentNode) {\n this._element.remove();\n }\n this._element = null;\n }\n\n /**\n * Create the cursor container element and append it to document.body.\n * The SDK always owns this container; it is removed in _onDisable().\n */\n private _createContainer(): HTMLElement {\n const container = document.createElement('div');\n container.setAttribute('data-cursor-container', '');\n container.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999;width:0;height:0;';\n document.body.appendChild(container);\n return container;\n }\n\n private _applyProperties(properties: Record<string, string | number>): void {\n if (!this._innerElement) return;\n\n for (const [key, value] of Object.entries(properties)) {\n if (key === 'transform') {\n // Expand CSS transform shorthand (e.g. \"scale(2)\") into individual\n // SDK transform properties and apply via TransformCache so they\n // compose with the centering translate(-50%, -50%).\n const expanded = CursorTrigger._expandTransformShorthand(String(value));\n for (const [prop, val] of Object.entries(expanded)) {\n setTransformValue(this._innerElement!, prop, val);\n }\n // Flush is handled by _onEnable after this call\n } else {\n this._innerElement.style.setProperty(camelToKebab(key), String(value));\n }\n }\n }\n\n private _createStateTimelines(): void {\n // State transitions target the inner element (visual styling)\n if (!this._innerElement) return;\n\n // Create hover timeline\n const hoverConfig = this._parsedStates.get('hover');\n if (hoverConfig && hoverConfig.enabled) {\n const hoverTl = new Timeline();\n hoverTl._addEntry(this._innerElement, {\n to: CursorTrigger._expandStateProperties(hoverConfig.properties),\n duration: hoverConfig.duration,\n ease: hoverConfig.ease,\n });\n this._stateTimelines.set('hover', hoverTl);\n }\n\n // Create click timeline\n const clickConfig = this._parsedStates.get('click');\n if (clickConfig && clickConfig.enabled) {\n const clickTl = new Timeline();\n clickTl._addEntry(this._innerElement, {\n to: CursorTrigger._expandStateProperties(clickConfig.properties),\n duration: clickConfig.duration,\n ease: clickConfig.ease,\n });\n this._stateTimelines.set('click', clickTl);\n }\n }\n\n /**\n * Expand CSS transform shorthand in state properties into individual\n * SDK transform properties that the animation system can interpolate.\n * E.g., {transform: 'scale(2)', width: '80px'} → {scale: 2, width: '80px'}\n */\n private static _expandStateProperties(properties: Record<string, string | number>): Record<string, string | number> {\n const result: Record<string, string | number> = {};\n for (const [key, value] of Object.entries(properties)) {\n if (key === 'transform') {\n const expanded = CursorTrigger._expandTransformShorthand(String(value));\n Object.assign(result, expanded);\n } else {\n result[key] = value;\n }\n }\n return result;\n }\n\n /**\n * Parse CSS transform shorthand string into individual SDK transform properties.\n * Handles: scale, scaleX/Y, rotate, rotateX/Y/Z, skewX/Y\n * E.g., \"scale(2)\" → {scale: 2}\n * \"scale(2, 3)\" → {scaleX: 2, scaleY: 3}\n * \"scale(2) rotate(45deg)\" → {scale: 2, rotate: 45}\n */\n private static _expandTransformShorthand(transformStr: string): Record<string, number> {\n const result: Record<string, number> = {};\n const regex = /([a-zA-Z0-9]+)\\(([^)]+)\\)/g;\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(transformStr)) !== null) {\n const fn = match[1];\n const args = match[2].split(',').map(s => parseFloat(s.trim()));\n\n switch (fn) {\n case 'scale': {\n const x = args[0] ?? 1;\n const y = args.length > 1 ? args[1] : x;\n if (x === y) {\n result.scale = x;\n } else {\n result.scaleX = x;\n result.scaleY = y;\n }\n break;\n }\n case 'scaleX':\n result.scaleX = args[0] ?? 1;\n break;\n case 'scaleY':\n result.scaleY = args[0] ?? 1;\n break;\n case 'scaleZ':\n result.scaleZ = args[0] ?? 1;\n break;\n case 'rotate':\n result.rotate = args[0] ?? 0;\n break;\n case 'rotateX':\n result.rotateX = args[0] ?? 0;\n break;\n case 'rotateY':\n result.rotateY = args[0] ?? 0;\n break;\n case 'rotateZ':\n result.rotateZ = args[0] ?? 0;\n break;\n case 'skewX':\n result.skewX = args[0] ?? 0;\n break;\n case 'skewY':\n result.skewY = args[0] ?? 0;\n break;\n }\n }\n\n return result;\n }\n\n private _setupEventListeners(): void {\n // Mouse move (always needed for position tracking)\n this._boundMouseMove = (e) => {\n this._mousePos.x = e.clientX;\n this._mousePos.y = e.clientY;\n };\n document.addEventListener('mousemove', this._boundMouseMove);\n\n // Mouse down/up for click state\n const clickConfig = this._parsedStates.get('click');\n if (clickConfig?.enabled) {\n this._boundMouseDown = () => this._setState('click');\n this._boundMouseUp = () => this._setState(this._state === 'click' ? 'default' : this._state);\n document.addEventListener('mousedown', this._boundMouseDown);\n document.addEventListener('mouseup', this._boundMouseUp);\n }\n\n // Hover targets\n const hoverConfig = this._parsedStates.get('hover');\n if (hoverConfig?.enabled && hoverConfig.targets && hoverConfig.targets.length > 0) {\n this._setupHoverTargets(hoverConfig.targets);\n }\n }\n\n private _setupHoverTargets(targets: string[]): void {\n // Collect all hover target elements and snapshot their bounds at rest.\n // Using frozen rects prevents jitter when target elements are also animated\n // (e.g. a button that scales on hover would cause live bounds to shift,\n // triggering spurious enter/leave events if we used native mouseenter/mouseleave).\n for (const selector of targets) {\n let elements: NodeListOf<Element>;\n try {\n elements = document.querySelectorAll(selector);\n } catch (e) {\n console.warn(`[Motion] Invalid hover target selector \"${selector}\":`, e);\n continue;\n }\n for (const el of elements) {\n this._hoverFrozenRects.set(el, getLayoutRect(el as HTMLElement));\n }\n }\n\n if (this._hoverFrozenRects.size === 0) return;\n\n // A single window mousemove listener replaces per-element mouseenter/mouseleave.\n this._boundHoverTargetMoveHandler = (e: MouseEvent) => {\n const cx = e.clientX;\n const cy = e.clientY;\n\n let isOver = false;\n for (const rect of this._hoverFrozenRects.values()) {\n if (cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom) {\n isOver = true;\n break;\n }\n }\n\n if (isOver && !this._isHoveringCursorTarget) {\n this._isHoveringCursorTarget = true;\n this._setState('hover');\n } else if (!isOver && this._isHoveringCursorTarget) {\n this._isHoveringCursorTarget = false;\n if (this._state === 'hover') {\n this._setState('default');\n }\n }\n };\n\n window.addEventListener('mousemove', this._boundHoverTargetMoveHandler);\n }\n\n private _setupTextCursor(): void {\n if (!this._innerElement) return;\n\n // Style inner element for text cursor: grid centering + overflow visible\n // so text is visible even when the inner element is 0x0\n // (matches old GSAP TextCursor: display:grid, placeItems:center)\n this._innerElement.style.display = 'grid';\n this._innerElement.style.placeItems = 'center';\n this._innerElement.style.overflow = 'visible';\n\n // Create text element inside the inner cursor element\n this._textElement = document.createElement('div');\n this._textElement.setAttribute('data-cursor-text', '');\n // Prevent text wrapping inside zero-width container, start invisible\n this._textElement.style.whiteSpace = 'nowrap';\n this._textElement.style.opacity = '0';\n this._innerElement.appendChild(this._textElement);\n\n // Get transition duration from hover config for opacity animation\n const hoverConfig = this._parsedStates.get('hover');\n const transitionDuration = hoverConfig?.duration ?? 0.15;\n this._textElement.style.transition = `opacity ${transitionDuration}s ease-in-out`;\n\n // Apply text styles if provided\n if (this._config.text) {\n for (const [key, value] of Object.entries(this._config.text)) {\n this._textElement.style.setProperty(camelToKebab(key), String(value));\n }\n }\n\n // Setup attribute-based text triggers\n // Support both mp-cursor-text and mp-cursor-tooltip attributes\n const textElements = document.querySelectorAll('[mp-cursor-text], [mp-cursor-tooltip]');\n for (const el of textElements) {\n const enter = (e: Event) => {\n const target = e.target as Element;\n const text = target.getAttribute('mp-cursor-text')\n ?? target.getAttribute('mp-cursor-tooltip')\n ?? '';\n if (this._textElement) {\n this._textElement.textContent = text;\n this._textElement.style.opacity = '1';\n }\n this._setState('hover');\n };\n const leave = () => {\n if (this._textElement) {\n this._textElement.style.opacity = '0';\n }\n if (this._state === 'hover') {\n this._setState('default');\n }\n };\n\n el.addEventListener('mouseenter', enter);\n el.addEventListener('mouseleave', leave);\n this._attributeListeners.set(el, { enter, leave });\n }\n }\n\n private _setupMediaCursor(): void {\n if (!this._innerElement) return;\n\n // Create image element inside the inner cursor element\n const img = document.createElement('img');\n img.setAttribute('data-cursor-media', '');\n img.style.display = 'none';\n this._innerElement.appendChild(img);\n\n const video = document.createElement('video');\n video.setAttribute('data-cursor-media', '');\n video.autoplay = true;\n video.muted = true;\n video.loop = true;\n video.style.display = 'none';\n this._innerElement.appendChild(video);\n\n // Apply media styles if provided\n if (this._config.media) {\n for (const [key, value] of Object.entries(this._config.media)) {\n img.style.setProperty(camelToKebab(key), String(value));\n video.style.setProperty(camelToKebab(key), String(value));\n }\n }\n\n // Setup attribute-based media triggers\n const mediaElements = document.querySelectorAll('[mp-cursor-media]');\n for (const el of mediaElements) {\n const enter = (e: Event) => {\n const src = (e.target as Element).getAttribute('mp-cursor-media') || '';\n if (!src || !isSafeMediaUrl(src)) {\n if (src) console.warn(`[Motion] Blocked unsafe media URL: \"${src}\". Only http/https URLs and relative paths are allowed.`);\n return;\n }\n const isVideo = src.endsWith('.mp4') || src.endsWith('.webm');\n\n if (isVideo) {\n video.src = src;\n video.style.display = 'block';\n img.style.display = 'none';\n video.play().catch(() => {});\n this._mediaElement = video;\n } else {\n img.src = src;\n img.style.display = 'block';\n video.style.display = 'none';\n this._mediaElement = img;\n }\n this._setState('hover');\n };\n const leave = () => {\n img.style.display = 'none';\n video.style.display = 'none';\n video.pause();\n if (this._state === 'hover') {\n this._setState('default');\n }\n };\n\n el.addEventListener('mouseenter', enter);\n el.addEventListener('mouseleave', leave);\n this._attributeListeners.set(el, { enter, leave });\n }\n }\n\n private _removeEventListeners(): void {\n if (this._boundMouseMove) {\n document.removeEventListener('mousemove', this._boundMouseMove);\n }\n if (this._boundMouseDown) {\n document.removeEventListener('mousedown', this._boundMouseDown);\n }\n if (this._boundMouseUp) {\n document.removeEventListener('mouseup', this._boundMouseUp);\n }\n\n // Remove hover frozen-rect mousemove handler\n if (this._boundHoverTargetMoveHandler) {\n window.removeEventListener('mousemove', this._boundHoverTargetMoveHandler);\n this._boundHoverTargetMoveHandler = null;\n }\n this._hoverFrozenRects.clear();\n this._isHoveringCursorTarget = false;\n\n // _hoverListeners is kept empty now (frozen-rect approach replaced native listeners).\n this._hoverListeners.clear();\n\n // Remove attribute listeners\n this._attributeListeners.forEach((listeners, el) => {\n el.removeEventListener('mouseenter', listeners.enter);\n el.removeEventListener('mouseleave', listeners.leave);\n });\n this._attributeListeners.clear();\n }\n\n private _setState(newState: CursorState): void {\n if (this._state === newState) return;\n\n const prevState = this._state;\n this._state = newState;\n\n // Get the timeline for the new state\n const newTimeline = this._stateTimelines.get(newState);\n const prevTimeline = this._stateTimelines.get(prevState);\n\n if (newState === 'default') {\n // Return to default - reverse the previous state timeline\n if (prevTimeline) {\n prevTimeline.reverse();\n }\n } else {\n // Enter new state\n // If coming from a different non-default state, reverse the old one\n if (prevState !== 'default' && prevTimeline) {\n prevTimeline.reverse();\n }\n\n if (newTimeline) {\n // Use play() instead of restart() to resume from current position.\n // This prevents a visual jump when hovering between adjacent elements:\n // mouseleave on A starts reversing, mouseenter on B resumes forward\n // from wherever the timeline currently is — matching GSAP's overwrite behavior.\n newTimeline.play();\n }\n }\n }\n\n private _tick(deltaTime: number): void {\n if (!this._xSetter || !this._ySetter) return;\n\n // Smooth interpolation matching original GSAP cursor behavior:\n // smooth 0 = most delay/smoothing, smooth 1 = instant tracking\n // Uses power curve (2.5) for natural feel, frame-rate independent\n const smooth = this._config.smooth ?? 0.25;\n const rescaled = Math.pow(smooth, 2.5) || 0.000001;\n const lerpFactor = 1 - Math.pow(1 - rescaled, deltaTime * 60);\n\n // Update cursor position\n this._cursorPos.x += (this._mousePos.x - this._cursorPos.x) * lerpFactor;\n this._cursorPos.y += (this._mousePos.y - this._cursorPos.y) * lerpFactor;\n\n // Apply position\n this._xSetter(this._cursorPos.x);\n this._ySetter(this._cursorPos.y);\n\n // Apply squeeze effect if enabled\n if (this._squeezeSetter && this._config.squeeze) {\n const scale = this._calculateSqueeze();\n this._squeezeSetter(scale);\n }\n\n // Tick state transition timelines (they are unnamed, so not registered\n // with Engine and must be updated manually)\n for (const tl of this._stateTimelines.values()) {\n if (tl.isActive()) {\n tl.update(deltaTime);\n }\n }\n }\n\n private _calculateSqueeze(): number {\n const dx = this._cursorPos.x - this._mousePos.x;\n const dy = this._cursorPos.y - this._mousePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n const { min, max, multiplier } = this._squeezeConfig;\n const scale = 1 - (Math.exp(distance / multiplier!) - 1) / 10;\n\n if (Number.isNaN(scale)) {\n return 1;\n }\n\n return Math.max(min!, Math.min(max!, scale));\n }\n\n /**\n * Get the cursor element\n */\n getElement(): HTMLElement | null {\n return this._element;\n }\n\n /**\n * Get current state\n */\n getState(): CursorState {\n return this._state;\n }\n}\n\n// Register with TriggerManager\nTriggerManager.registerTrigger('cursor', CursorTrigger);\n",
35
35
  "/**\n * PageExitTrigger\n *\n * Triggers timeline playback when a user clicks a link that would navigate away\n * from the current page. Intercepts the click, plays the exit animation, then\n * navigates to the target URL after the timeline completes.\n *\n * Supports three link selection modes:\n * - 'all': intercept all navigation links (default)\n * - 'include': only intercept links matching specific selectors\n * - 'exclude': intercept all links except those matching specific selectors\n *\n * Supports skipping certain href patterns:\n * - 'anchor': skip # links (same-page anchors)\n * - 'javascript': skip javascript: hrefs\n * - 'mailto': skip mailto: and tel: hrefs\n *\n * Works on all websites — no server-side dependencies (PHP, Node, etc.).\n */\n\nimport type { Timeline } from '../core/Timeline';\nimport { TriggerManager } from './TriggerManager';\nimport { BaseTrigger } from './BaseTrigger';\n\n/** Configuration for PageExitTrigger */\nexport interface PageExitTriggerConfig {\n /** Link selection mode: 'all' (default), 'include', or 'exclude' */\n mode?: 'all' | 'include' | 'exclude';\n /** CSS selector(s) for links — required for 'include'/'exclude' modes */\n selectors?: string;\n /** Href patterns to skip (never intercept) */\n skipHref?: ('anchor' | 'javascript' | 'mailto')[];\n}\n\nexport class PageExitTrigger extends BaseTrigger<PageExitTriggerConfig> {\n private _links: HTMLAnchorElement[] = [];\n private _listeners: Map<EventTarget, Map<string, EventListener>> = new Map();\n private _isNavigating: boolean = false;\n private _pendingUrl: string | null = null;\n private _onCompleteHandler: (() => void) | null = null;\n private _pollTimerId: ReturnType<typeof setTimeout> | null = null;\n\n constructor(timeline: Timeline, config: PageExitTriggerConfig) {\n super(timeline, config);\n }\n\n /**\n * Set up click listeners on qualifying links once DOM is ready.\n */\n protected _onEnable(): void {\n // Skip inside builder iframe\n if (this._isInsideBuilder()) return;\n\n this._resolveLinks();\n this._addClickListeners();\n }\n\n /**\n * Remove all click listeners and cancel pending navigation.\n */\n protected _onDisable(): void {\n this._cleanupListenerMap(this._listeners);\n this._links = [];\n this._isNavigating = false;\n this._pendingUrl = null;\n\n // Cancel pending poll timer\n if (this._pollTimerId !== null) {\n clearTimeout(this._pollTimerId);\n this._pollTimerId = null;\n }\n\n // Remove onComplete callback from timeline\n if (this._onCompleteHandler) {\n this._onCompleteHandler = null;\n }\n }\n\n /**\n * Detect if we're running inside the Motion.page builder iframe.\n * Exit animations should not intercept clicks in the builder.\n */\n private _isInsideBuilder(): boolean {\n try {\n if (typeof window !== 'undefined' && (window as any).top?.mp_iframe) {\n return true;\n }\n } catch {\n // Cross-origin access to top — not in builder\n }\n return false;\n }\n\n /**\n * Resolve which <a> elements should be intercepted based on config mode.\n */\n private _resolveLinks(): void {\n if (typeof document === 'undefined') return;\n\n const mode = this._config.mode || 'all';\n\n let candidates: HTMLAnchorElement[];\n\n if (mode === 'include' && this._config.selectors && this._config.selectors.trim() !== '') {\n // Only links matching the selectors\n try {\n candidates = Array.from(\n document.querySelectorAll<HTMLAnchorElement>(this._config.selectors)\n ).filter(el => el.tagName === 'A');\n\n // If selectors don't specifically target <a> tags, also find <a> descendants\n const containers = document.querySelectorAll(this._config.selectors);\n containers.forEach(container => {\n if (container.tagName !== 'A') {\n const nested = container.querySelectorAll<HTMLAnchorElement>('a');\n candidates.push(...Array.from(nested));\n }\n });\n } catch (e) {\n console.warn(`[Motion] Invalid selector \"${this._config.selectors}\":`, e);\n candidates = [];\n }\n } else if (mode === 'include') {\n // Include mode with missing or empty selectors — no links to intercept\n candidates = [];\n } else if (mode === 'exclude' && this._config.selectors && this._config.selectors.trim() !== '') {\n // All links except those matching selectors\n const allLinks = Array.from(document.querySelectorAll<HTMLAnchorElement>('a'));\n let excluded: Set<Element>;\n try {\n excluded = new Set(document.querySelectorAll(this._config.selectors));\n } catch (e) {\n console.warn(`[Motion] Invalid selector \"${this._config.selectors}\":`, e);\n excluded = new Set();\n }\n candidates = allLinks.filter(link => !excluded.has(link));\n } else {\n // 'all' mode or 'exclude' without selectors — all links on the page\n candidates = Array.from(document.querySelectorAll<HTMLAnchorElement>('a'));\n }\n\n // Deduplicate\n this._links = [...new Set(candidates)];\n\n // Filter out links whose href should be skipped\n this._links = this._links.filter(link => this._shouldIntercept(link));\n }\n\n /**\n * Determine if a link should be intercepted based on its href and skipHref config.\n * Skips links that don't actually navigate away.\n */\n private _shouldIntercept(link: HTMLAnchorElement): boolean {\n const href = link.getAttribute('href');\n\n // No href at all — skip\n if (!href || href === '') return false;\n\n const skipHref = this._config.skipHref || [];\n\n // Anchor links (same-page navigation)\n if (href.startsWith('#')) {\n return !skipHref.includes('anchor');\n }\n\n // javascript: protocol\n if (href.toLowerCase().startsWith('javascript:')) {\n return !skipHref.includes('javascript');\n }\n\n // mailto: and tel: protocols\n if (href.toLowerCase().startsWith('mailto:') || href.toLowerCase().startsWith('tel:')) {\n return !skipHref.includes('mailto');\n }\n\n return true;\n }\n\n /**\n * Attach click listeners to all resolved links.\n */\n private _addClickListeners(): void {\n this._links.forEach(link => {\n const elementListeners = new Map<string, EventListener>();\n\n const clickListener = (e: Event) => {\n // Don't intercept if already navigating (animation in progress)\n if (this._isNavigating) return;\n\n // Don't intercept if modifier keys are held (open in new tab, etc.)\n const mouseEvent = e as MouseEvent;\n if (mouseEvent.ctrlKey || mouseEvent.metaKey || mouseEvent.shiftKey || mouseEvent.altKey) {\n return;\n }\n\n // Don't intercept if link has target=\"_blank\" or similar\n const target = link.getAttribute('target');\n if (target && target !== '_self') return;\n\n // Get the navigation URL\n const href = link.href; // Use .href (resolved absolute URL), not getAttribute('href')\n if (!href) return;\n\n // Prevent default navigation\n e.preventDefault();\n e.stopPropagation();\n\n // Store the target URL and start exit animation\n this._isNavigating = true;\n this._pendingUrl = href;\n\n // Set up completion handler to navigate after animation finishes\n this._onCompleteHandler = () => {\n this._navigate();\n };\n\n // Play the timeline from start\n this._timeline.restart();\n\n // Listen for timeline completion\n // We use a polling approach since Timeline doesn't expose onComplete externally\n this._waitForCompletion();\n };\n\n link.addEventListener('click', clickListener);\n elementListeners.set('click', clickListener);\n this._listeners.set(link, elementListeners);\n });\n }\n\n /**\n * Wait for the timeline to complete, then navigate.\n * Uses requestAnimationFrame polling to check timeline progress.\n */\n private _waitForCompletion(): void {\n const timeline = this._timeline;\n const checkInterval = 16; // ~60fps check\n\n const check = () => {\n this._pollTimerId = null;\n\n // Bail if disabled or no longer navigating\n if (!this._enabled || !this._isNavigating || !this._pendingUrl) return;\n\n // Check if timeline has completed (progress >= 1 or not active)\n const progress = timeline.progress();\n const isActive = timeline.isActive();\n\n if (progress >= 1 || (!isActive && progress > 0)) {\n // Timeline finished — navigate\n this._navigate();\n } else {\n // Keep checking\n this._pollTimerId = setTimeout(check, checkInterval);\n }\n };\n\n // Start checking after a short delay to let the timeline begin\n this._pollTimerId = setTimeout(check, checkInterval);\n }\n\n /**\n * Navigate to the pending URL.\n */\n private _navigate(): void {\n if (!this._pendingUrl) return;\n\n const url = this._pendingUrl;\n this._pendingUrl = null;\n this._isNavigating = false;\n\n if (typeof window !== 'undefined') {\n window.location.href = url;\n }\n }\n}\n\n// Register with TriggerManager\nTriggerManager.registerTrigger('pageExit', PageExitTrigger);\n",
36
36
  "/**\n * ColorParser - Parse any color format to RGBA\n *\n * Supports:\n * - Hex: #ff0000, #f00, #ff0000ff, #f00f\n * - RGB/RGBA: rgb(255, 0, 0), rgba(255, 0, 0, 0.5)\n * - HSL/HSLA: hsl(0, 100%, 50%), hsla(0, 100%, 50%, 0.5)\n * - Named colors: red, coral, transparent\n * - CSS variables: var(--color)\n */\n\n// Cached canvas context for browser-native color parsing\nlet canvasCtx: CanvasRenderingContext2D | null = null;\n\n/**\n * Get or create cached canvas context\n */\nfunction getCanvasContext(): CanvasRenderingContext2D | null {\n if (!canvasCtx && typeof document !== 'undefined') {\n const canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n canvasCtx = canvas.getContext('2d');\n }\n return canvasCtx;\n}\n\n/**\n * Parse hex color to RGBA\n * Supports: #rgb, #rrggbb, #rgba, #rrggbbaa\n */\nfunction parseHex(hex: string): Float32Array | null {\n const h = hex.replace('#', '');\n let r: number, g: number, b: number, a = 1;\n\n if (h.length === 3) {\n // #rgb\n r = parseInt(h[0] + h[0], 16);\n g = parseInt(h[1] + h[1], 16);\n b = parseInt(h[2] + h[2], 16);\n } else if (h.length === 4) {\n // #rgba\n r = parseInt(h[0] + h[0], 16);\n g = parseInt(h[1] + h[1], 16);\n b = parseInt(h[2] + h[2], 16);\n a = parseInt(h[3] + h[3], 16) / 255;\n } else if (h.length === 6) {\n // #rrggbb\n r = parseInt(h.slice(0, 2), 16);\n g = parseInt(h.slice(2, 4), 16);\n b = parseInt(h.slice(4, 6), 16);\n } else if (h.length === 8) {\n // #rrggbbaa\n r = parseInt(h.slice(0, 2), 16);\n g = parseInt(h.slice(2, 4), 16);\n b = parseInt(h.slice(4, 6), 16);\n a = parseInt(h.slice(6, 8), 16) / 255;\n } else {\n return null;\n }\n\n if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) {\n return null;\n }\n\n return new Float32Array([r, g, b, a]);\n}\n\n/**\n * Parse rgb() or rgba() color string\n */\nfunction parseRgb(color: string): Float32Array | null {\n const match = color.match(/rgba?\\s*\\(\\s*([\\d.]+)\\s*[,\\s]\\s*([\\d.]+)\\s*[,\\s]\\s*([\\d.]+)\\s*(?:[,\\/]\\s*([\\d.]+))?\\s*\\)/i);\n if (!match) return null;\n\n const r = parseFloat(match[1]);\n const g = parseFloat(match[2]);\n const b = parseFloat(match[3]);\n const a = match[4] !== undefined ? parseFloat(match[4]) : 1;\n\n if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) {\n return null;\n }\n\n return new Float32Array([r, g, b, a]);\n}\n\n/**\n * Convert HSL to RGB\n * h: 0-360, s: 0-100, l: 0-100\n */\nfunction hslToRgb(h: number, s: number, l: number): [number, number, number] {\n h = h / 360;\n s = s / 100;\n l = l / 100;\n\n let r: number, g: number, b: number;\n\n if (s === 0) {\n r = g = b = l;\n } else {\n const hue2rgb = (p: number, q: number, t: number): number => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n}\n\n/**\n * Parse hsl() or hsla() color string\n */\nfunction parseHsl(color: string): Float32Array | null {\n const match = color.match(/hsla?\\s*\\(\\s*([\\d.]+)\\s*[,\\s]\\s*([\\d.]+)%\\s*[,\\s]\\s*([\\d.]+)%\\s*(?:[,\\/]\\s*([\\d.]+))?\\s*\\)/i);\n if (!match) return null;\n\n const h = parseFloat(match[1]);\n const s = parseFloat(match[2]);\n const l = parseFloat(match[3]);\n const a = match[4] !== undefined ? parseFloat(match[4]) : 1;\n\n if (isNaN(h) || isNaN(s) || isNaN(l) || isNaN(a)) {\n return null;\n }\n\n const [r, g, b] = hslToRgb(h, s, l);\n return new Float32Array([r, g, b, a]);\n}\n\n/**\n * Parse CSS variable by resolving its computed value\n */\nfunction parseCssVariable(color: string, element?: Element): Float32Array | null {\n if (!element || typeof window === 'undefined') return null;\n\n const match = color.match(/var\\s*\\(\\s*(--[\\w-]+)\\s*\\)/i);\n if (!match) return null;\n\n const varName = match[1];\n const computed = window.getComputedStyle(element).getPropertyValue(varName).trim();\n\n if (!computed) return null;\n\n // Recursively parse the resolved value\n return parseColor(computed, element);\n}\n\n/**\n * Parse color using browser's canvas context\n * Handles named colors and validates any color string\n */\nfunction parseWithCanvas(color: string): Float32Array | null {\n const ctx = getCanvasContext();\n if (!ctx) return null;\n\n // Reset to known state\n ctx.fillStyle = '#000000';\n ctx.fillStyle = color;\n\n const result = ctx.fillStyle;\n\n // If result is still black and input wasn't black, invalid color\n if (result === '#000000' && color.toLowerCase() !== 'black' && color !== '#000000' && color !== '#000') {\n return null;\n }\n\n // Canvas returns hex, parse it\n return parseHex(result);\n}\n\n/**\n * Parse any color format to RGBA Float32Array\n * Returns [R, G, B, A] where RGB is 0-255 and A is 0-1\n */\nexport function parseColor(color: string, element?: Element): Float32Array | null {\n if (!color || typeof color !== 'string') return null;\n\n const trimmed = color.trim().toLowerCase();\n\n // Handle transparent\n if (trimmed === 'transparent') {\n return new Float32Array([0, 0, 0, 0]);\n }\n\n // Try hex\n if (trimmed.startsWith('#')) {\n return parseHex(trimmed);\n }\n\n // Try rgb/rgba\n if (trimmed.startsWith('rgb')) {\n return parseRgb(trimmed);\n }\n\n // Try hsl/hsla\n if (trimmed.startsWith('hsl')) {\n return parseHsl(trimmed);\n }\n\n // Try CSS variable\n if (trimmed.startsWith('var(')) {\n return parseCssVariable(trimmed, element);\n }\n\n // Fallback to canvas for named colors\n return parseWithCanvas(trimmed);\n}\n\n/**\n * Convert RGBA Float32Array to CSS rgba() string\n */\nexport function rgbaToString(rgba: Float32Array): string {\n const r = Math.round(rgba[0]);\n const g = Math.round(rgba[1]);\n const b = Math.round(rgba[2]);\n const a = rgba[3];\n\n // Use rgb() if fully opaque for cleaner output\n if (a === 1) {\n return `rgb(${r}, ${g}, ${b})`;\n }\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\n/**\n * Get current color value from element's computed style\n */\nexport function getCurrentColor(element: Element, property: string): Float32Array {\n if (typeof window === 'undefined') {\n return new Float32Array([0, 0, 0, 1]);\n }\n\n const computed = window.getComputedStyle(element);\n const kebabProp = property.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);\n const value = computed.getPropertyValue(kebabProp).trim();\n\n if (!value || value === 'none') {\n // Default to transparent for unset colors\n return new Float32Array([0, 0, 0, 0]);\n }\n\n const parsed = parseColor(value, element);\n return parsed || new Float32Array([0, 0, 0, 1]);\n}\n\n// Register with SDKRegistry for conditional bundling\nimport { SDKRegistry } from '../registries/SDKRegistry';\nSDKRegistry.color = { parseColor, getCurrentColor };\n",
37
37
  "/**\n * FilterParser - Parse CSS filter strings for animation\n *\n * Supports:\n * - blur(px)\n * - brightness(ratio)\n * - contrast(ratio)\n * - saturate(ratio)\n * - grayscale(ratio or %)\n * - sepia(ratio or %)\n * - hue-rotate(deg)\n * - invert(ratio or %)\n * - opacity(ratio or %)\n */\n\n/**\n * Parsed filter function with name, value, and unit\n */\nexport interface ParsedFilterFunction {\n name: string;\n value: number;\n unit: string;\n}\n\n/**\n * Default values for filter functions (when not specified)\n */\nconst FILTER_DEFAULTS: Record<string, { value: number; unit: string }> = {\n blur: { value: 0, unit: 'px' },\n brightness: { value: 1, unit: '' },\n contrast: { value: 1, unit: '' },\n saturate: { value: 1, unit: '' },\n grayscale: { value: 0, unit: '' },\n sepia: { value: 0, unit: '' },\n 'hue-rotate': { value: 0, unit: 'deg' },\n invert: { value: 0, unit: '' },\n opacity: { value: 1, unit: '' },\n};\n\n/**\n * Parse a single filter function like \"blur(10px)\" or \"brightness(1.5)\"\n */\nfunction parseFilterFunction(fn: string): ParsedFilterFunction | null {\n const match = fn.trim().match(/^([\\w-]+)\\(\\s*([\\d.]+)(px|%|deg)?\\s*\\)$/);\n if (!match) return null;\n\n const name = match[1].toLowerCase();\n let value = parseFloat(match[2]);\n let unit = match[3] || '';\n\n // Normalize percentage values to ratio (0-1) for consistency\n if (unit === '%') {\n value = value / 100;\n unit = '';\n }\n\n return { name, value, unit };\n}\n\n/**\n * Parse a complete filter string into an array of filter functions\n * Example: \"blur(10px) brightness(1.5)\" -> [{name: 'blur', value: 10, unit: 'px'}, ...]\n */\nexport function parseFilter(filter: string): ParsedFilterFunction[] | null {\n if (filter === null || filter === undefined || typeof filter !== 'string') return null;\n\n const trimmed = filter.trim().toLowerCase();\n\n // Handle 'none' or empty\n if (trimmed === 'none' || trimmed === '') {\n return [];\n }\n\n // Split by closing parenthesis followed by optional space\n // This handles \"blur(10px) brightness(1.5)\" correctly\n const functions: ParsedFilterFunction[] = [];\n const regex = /([\\w-]+)\\([^)]+\\)/g;\n let match;\n\n while ((match = regex.exec(trimmed)) !== null) {\n const parsed = parseFilterFunction(match[0]);\n if (parsed) {\n functions.push(parsed);\n }\n }\n\n return functions.length > 0 ? functions : null;\n}\n\n/**\n * Convert parsed filter functions back to CSS filter string\n */\nexport function filterToString(filters: ParsedFilterFunction[]): string {\n if (!filters || filters.length === 0) {\n return 'none';\n }\n\n return filters.map(f => {\n // Format value based on filter type\n let valueStr: string;\n if (f.name === 'blur') {\n valueStr = `${f.value}${f.unit || 'px'}`;\n } else if (f.name === 'hue-rotate') {\n valueStr = `${f.value}${f.unit || 'deg'}`;\n } else {\n // For ratio-based filters, output as number\n valueStr = `${f.value}`;\n }\n return `${f.name}(${valueStr})`;\n }).join(' ');\n}\n\n/**\n * Get current filter value from element's computed style\n */\nexport function getCurrentFilter(element: Element): ParsedFilterFunction[] {\n if (typeof window === 'undefined') {\n return [];\n }\n\n const computed = window.getComputedStyle(element);\n const filter = computed.filter || computed.getPropertyValue('filter');\n\n if (!filter || filter === 'none') {\n return [];\n }\n\n return parseFilter(filter) || [];\n}\n\n/**\n * Get default value for a filter function\n */\nfunction getFilterDefault(name: string): ParsedFilterFunction {\n const def = FILTER_DEFAULTS[name];\n if (def) {\n return { name, value: def.value, unit: def.unit };\n }\n // Unknown filter, default to 0\n return { name, value: 0, unit: '' };\n}\n\n/**\n * Merge two filter arrays, ensuring all functions from both are present\n * Missing functions get their default values\n */\nexport function mergeFilterArrays(\n start: ParsedFilterFunction[],\n end: ParsedFilterFunction[]\n): { start: ParsedFilterFunction[]; end: ParsedFilterFunction[] } {\n // Collect all unique filter names\n const allNames = new Set<string>();\n for (const f of start) allNames.add(f.name);\n for (const f of end) allNames.add(f.name);\n\n // Build merged arrays with same order and length\n const mergedStart: ParsedFilterFunction[] = [];\n const mergedEnd: ParsedFilterFunction[] = [];\n\n for (const name of allNames) {\n const startFn = start.find(f => f.name === name);\n const endFn = end.find(f => f.name === name);\n const defaultFn = getFilterDefault(name);\n\n mergedStart.push(startFn || defaultFn);\n mergedEnd.push(endFn || defaultFn);\n }\n\n return { start: mergedStart, end: mergedEnd };\n}\n\n// Pre-allocated array for interpolateFilters to avoid per-frame allocation\nlet filterResultBuffer: ParsedFilterFunction[] = [];\n\n/**\n * Interpolate between two filter arrays at given progress.\n * Reuses a module-level buffer to avoid allocating a new array every frame.\n * NOTE: The returned array is reused on the next call — consume it immediately.\n */\nexport function interpolateFilters(\n start: ParsedFilterFunction[],\n end: ParsedFilterFunction[],\n progress: number\n): ParsedFilterFunction[] {\n const len = start.length;\n\n // Grow the buffer if needed (shrinking is unnecessary — extra slots are harmless)\n if (filterResultBuffer.length < len) {\n for (let i = filterResultBuffer.length; i < len; i++) {\n filterResultBuffer.push({ name: '', value: 0, unit: '' });\n }\n }\n\n for (let i = 0; i < len; i++) {\n const s = start[i];\n const e = end[i];\n const slot = filterResultBuffer[i];\n\n slot.name = s.name;\n slot.value = s.value + (e.value - s.value) * progress;\n slot.unit = s.unit || e.unit;\n }\n\n // Set length to trim any extra slots from previous larger calls\n filterResultBuffer.length = len;\n\n return filterResultBuffer;\n}\n\n// Register with SDKRegistry for conditional bundling\nimport { SDKRegistry } from '../registries/SDKRegistry';\nSDKRegistry.filter = { parseFilter, getCurrentFilter, mergeFilterArrays, interpolateFilters, filterToString };\n",
@@ -46,7 +46,7 @@
46
46
  "/**\n * Motion.utils — GSAP-compatible utility functions\n *\n * Drop-in replacements for common gsap.utils.* helpers.\n * Enables migration from GSAP custom code to the Motion SDK.\n *\n * @example Migration from GSAP\n * // Before: gsap.utils.toArray(\".section\").length\n * // After: Motion.utils.toArray(\".section\").length\n */\n\n/**\n * Convert a selector, NodeList, or value into a flat Array of Elements.\n * Drop-in replacement for gsap.utils.toArray().\n *\n * @param target - CSS selector string, NodeList, HTMLCollection, Element, or array\n * @param scope - Optional parent element to scope selector queries\n * @returns Flat array of matched elements\n *\n * @example\n * Motion.utils.toArray(\".h-scroll-section\") // all matching elements\n * Motion.utils.toArray(\".item\", containerEl) // scoped to container\n * Motion.utils.toArray(document.querySelectorAll(\"p\")) // NodeList → Array\n */\nexport function toArray<T extends Element = Element>(\n target: string | NodeList | HTMLCollection | Element | T[] | ArrayLike<T>,\n scope?: Element | Document\n): T[] {\n if (typeof target === 'string') {\n const root = scope || (typeof document !== 'undefined' ? document : null);\n if (!root) return [];\n try {\n return Array.from(root.querySelectorAll(target)) as T[];\n } catch {\n return [];\n }\n }\n\n if (typeof Element !== 'undefined' && target instanceof Element) {\n return [target as unknown as T];\n }\n\n if (\n (typeof NodeList !== 'undefined' && target instanceof NodeList) ||\n (typeof HTMLCollection !== 'undefined' && target instanceof HTMLCollection)\n ) {\n return Array.from(target) as T[];\n }\n\n if (Array.isArray(target)) {\n return target;\n }\n\n // ArrayLike (has .length)\n if (target && typeof target === 'object' && 'length' in target) {\n return Array.from(target) as T[];\n }\n\n return [];\n}\n\n/**\n * Clamp a value between min and max.\n * Drop-in replacement for gsap.utils.clamp().\n *\n * Can be called with 3 args or curried with 2:\n * - `clamp(0, 100, 150)` → `100`\n * - `const c = clamp(0, 1); c(1.5)` → `1`\n *\n * @param min - Minimum allowed value\n * @param max - Maximum allowed value\n * @param value - Value to clamp (optional — returns curried function if omitted)\n */\nexport function clamp(min: number, max: number, value: number): number;\nexport function clamp(min: number, max: number): (value: number) => number;\nexport function clamp(min: number, max: number, value?: number): number | ((value: number) => number) {\n if (value === undefined) {\n return (v: number) => Math.min(max, Math.max(min, v));\n }\n return Math.min(max, Math.max(min, value));\n}\n\n/**\n * Generate a random number between min and max (inclusive).\n * Drop-in replacement for gsap.utils.random().\n *\n * @param min - Minimum value\n * @param max - Maximum value\n * @param snapIncrement - Optional increment to snap to (e.g., 5 → multiples of 5)\n * @returns Random number in the given range\n *\n * @example\n * Motion.utils.random(0, 100) // 0–100 (float)\n * Motion.utils.random(0, 100, 10) // 0, 10, 20, ... 100\n * Motion.utils.random(-1, 1) // -1 to 1\n */\nexport function random(min: number, max: number, snapIncrement?: number): number {\n const raw = min + Math.random() * (max - min);\n if (snapIncrement && snapIncrement > 0) {\n return Math.round(raw / snapIncrement) * snapIncrement;\n }\n return raw;\n}\n\n/**\n * Snap a number to the nearest increment.\n * Drop-in replacement for gsap.utils.snap().\n *\n * @param snapTo - Increment value or array of values to snap to\n * @param value - Value to snap (optional — returns curried function if omitted)\n *\n * @example\n * Motion.utils.snap(5, 13) // 15\n * Motion.utils.snap([0, 25, 50, 100], 30) // 25\n * const s = Motion.utils.snap(10); s(27) // 30\n */\nexport function snap(snapTo: number | number[], value: number): number;\nexport function snap(snapTo: number | number[]): (value: number) => number;\nexport function snap(snapTo: number | number[], value?: number): number | ((value: number) => number) {\n const snapFn = (v: number): number => {\n if (typeof snapTo === 'number') {\n if (snapTo <= 0) return v;\n return Math.round(v / snapTo) * snapTo;\n }\n\n // Array: find nearest value\n const sorted = snapTo;\n let closest = sorted[0];\n let minDist = Math.abs(v - closest);\n for (let i = 1; i < sorted.length; i++) {\n const dist = Math.abs(v - sorted[i]);\n if (dist < minDist) {\n minDist = dist;\n closest = sorted[i];\n }\n }\n return closest;\n };\n\n if (value === undefined) {\n return snapFn;\n }\n return snapFn(value);\n}\n\n/**\n * Linear interpolation between two values.\n * Drop-in replacement for gsap.utils.interpolate() (simple 2-value case).\n *\n * @param start - Start value\n * @param end - End value\n * @param progress - Interpolation factor (0–1)\n * @returns Interpolated value\n *\n * @example\n * Motion.utils.interpolate(0, 100, 0.5) // 50\n */\nexport function interpolate(start: number, end: number, progress: number): number {\n return start + (end - start) * progress;\n}\n\n/**\n * Map a value from one range to another.\n * Drop-in replacement for gsap.utils.mapRange().\n *\n * @param inMin - Input range minimum\n * @param inMax - Input range maximum\n * @param outMin - Output range minimum\n * @param outMax - Output range maximum\n * @param value - Value to map (optional — returns curried function if omitted)\n *\n * @example\n * Motion.utils.mapRange(0, 100, 0, 1, 50) // 0.5\n * const map = Motion.utils.mapRange(0, 1, -100, 100); map(0.75) // 50\n */\nexport function mapRange(inMin: number, inMax: number, outMin: number, outMax: number, value: number): number;\nexport function mapRange(inMin: number, inMax: number, outMin: number, outMax: number): (value: number) => number;\nexport function mapRange(\n inMin: number, inMax: number, outMin: number, outMax: number, value?: number\n): number | ((value: number) => number) {\n const mapFn = (v: number): number => {\n const ratio = (v - inMin) / (inMax - inMin);\n return outMin + ratio * (outMax - outMin);\n };\n\n if (value === undefined) {\n return mapFn;\n }\n return mapFn(value);\n}\n\n/**\n * Normalize a value from a range to 0–1.\n * Drop-in replacement for gsap.utils.normalize().\n *\n * @param min - Range minimum\n * @param max - Range maximum\n * @param value - Value to normalize (optional — returns curried function if omitted)\n *\n * @example\n * Motion.utils.normalize(0, 100, 25) // 0.25\n */\nexport function normalize(min: number, max: number, value: number): number;\nexport function normalize(min: number, max: number): (value: number) => number;\nexport function normalize(min: number, max: number, value?: number): number | ((value: number) => number) {\n const normFn = (v: number): number => (v - min) / (max - min);\n\n if (value === undefined) {\n return normFn;\n }\n return normFn(value);\n}\n\n/**\n * Wrap a value within a range (modular arithmetic).\n * Drop-in replacement for gsap.utils.wrap().\n *\n * @param min - Range minimum\n * @param max - Range maximum\n * @param value - Value to wrap (optional — returns curried function if omitted)\n *\n * @example\n * Motion.utils.wrap(0, 100, 150) // 50\n * Motion.utils.wrap(0, 360, -90) // 270\n */\nexport function wrap(min: number, max: number, value: number): number;\nexport function wrap(min: number, max: number): (value: number) => number;\nexport function wrap(min: number, max: number, value?: number): number | ((value: number) => number) {\n const range = max - min;\n const wrapFn = (v: number): number => {\n const r = ((v - min) % range + range) % range;\n return r + min;\n };\n\n if (value === undefined) {\n return wrapFn;\n }\n return wrapFn(value);\n}\n\n/**\n * The complete utils namespace, attached to Motion.utils\n */\nexport const MotionUtils = {\n toArray,\n clamp,\n random,\n snap,\n interpolate,\n mapRange,\n normalize,\n wrap,\n} as const;\n",
47
47
  "/**\n * Motion API - Unified entry point for animations\n *\n * All animations are named timelines. Config-based API for consistency.\n *\n * @example Single animation\n * Motion('fadeIn', '.box', {\n * from: { opacity: 0 },\n * to: { opacity: 1 },\n * duration: 0.5\n * }).play()\n *\n * @example Multi-animation timeline\n * Motion('hero', [\n * { target: '.title', from: { y: 50 }, to: { y: 0 }, duration: 1 },\n * { target: '.subtitle', from: { opacity: 0 }, to: { opacity: 1 }, position: 0.5 }\n * ]).play()\n *\n * @example With trigger\n * Motion('scroll', '.box', { from: { x: -100 }, to: { x: 0 } })\n * .onScroll({ scrub: true })\n *\n * @example Replay\n * Motion('fadeIn').play()\n */\n\nimport type { TargetInput, AnimationConfig, AnimationEntry, AnimationVars } from '../types';\nimport { Timeline } from './Timeline';\nimport { Engine } from './Engine';\nimport { resolveTargets } from '../utils/TargetResolver';\nimport { clearTransformCache } from '../render/TransformCache';\nimport { SDKRegistry } from '../registries/SDKRegistry';\nimport { MotionUtils } from '../utils/MotionUtils';\n\n/**\n * Motion function overloads\n */\nfunction MotionFunction(name: string): Timeline;\nfunction MotionFunction(name: string, target: TargetInput, config: AnimationConfig): Timeline;\nfunction MotionFunction(name: string, animations: AnimationEntry[]): Timeline;\nfunction MotionFunction(\n name: string,\n targetOrAnimations?: TargetInput | AnimationEntry[],\n config?: AnimationConfig\n): Timeline {\n const engine = Engine.getInstance();\n const timeline = engine.getTimeline(name);\n\n // Warn when NEW entries are being added to an existing timeline that already has animations.\n // Calling Motion('name') with no second argument to retrieve a timeline should NOT warn.\n if (targetOrAnimations !== undefined && timeline.duration() > 0) {\n console.warn(\n `[Motion] Timeline \"${name}\" already has animations. ` +\n `New entries will be appended. Call Motion(\"${name}\").kill() first to rebuild from scratch.`\n );\n }\n\n // Check if second arg is an array of AnimationEntry objects\n // AnimationEntry has 'target' property, TargetInput arrays don't have objects with 'target'\n if (\n Array.isArray(targetOrAnimations) &&\n targetOrAnimations.length > 0 &&\n typeof targetOrAnimations[0] === 'object' &&\n targetOrAnimations[0] !== null &&\n 'target' in targetOrAnimations[0]\n ) {\n // Multi-animation: Motion('name', [{target, from, to}, ...])\n for (const entry of targetOrAnimations as AnimationEntry[]) {\n timeline._addEntry(entry.target, entry, entry.position);\n }\n } else if (targetOrAnimations !== undefined && config !== undefined) {\n // Single animation: Motion('name', '.target', {from, to})\n timeline._addEntry(targetOrAnimations as TargetInput, config);\n }\n // else: Just retrieve timeline: Motion('name')\n\n return timeline;\n}\n\n/**\n * Reset element(s) to their original state\n * Kills any active animations, clears transform cache and inline styles.\n */\nMotionFunction.reset = function(targets: TargetInput): void {\n Engine.getInstance(); // Ensure engine is initialized before any target resolution\n const resolved = resolveTargets(targets);\n\n const elementTargets: Element[] = [];\n for (const target of resolved) {\n if (target instanceof Element) {\n elementTargets.push(target);\n }\n }\n\n if (elementTargets.length > 0) {\n Engine.getInstance().killAnimationsForTargets(elementTargets);\n }\n\n for (const target of resolved) {\n if (!(target instanceof Element)) continue;\n\n if (SDKRegistry.textSplitter?.isSplit?.(target)) {\n SDKRegistry.textSplitter?.revert?.(target);\n }\n\n clearTransformCache(target);\n SDKRegistry.styleReset?.clearAnimationStylesAndUnregister?.(target);\n SDKRegistry.styleReset?.clearPinStylesAndUnregister?.(target);\n }\n};\n\n/**\n * Immediately set CSS properties on target(s) without animation.\n * Equivalent to GSAP's gsap.set() — useful for initializing element state.\n *\n * Values are applied synchronously via a zero-duration animation.\n * The internal timeline is discarded immediately after rendering (clearProps=false\n * so the transform cache remains in sync with the applied inline styles).\n *\n * @example\n * Motion.set('.box', { opacity: 0, x: -100 })\n */\nMotionFunction.set = function(target: TargetInput, vars: AnimationVars): void {\n Engine.getInstance(); // Ensure engine is initialized (sets AnimationBuilder callback)\n const tl = new Timeline();\n tl._addEntry(target, { to: vars, duration: 0 });\n // kill(false): skip prop restoration so applied values persist on the DOM\n // and the transform cache stays consistent with the new inline styles.\n tl.kill(false);\n};\n\n/**\n * Get an existing timeline by name (returns undefined if not found)\n */\nMotionFunction.get = function(name: string): Timeline | undefined {\n const engine = Engine.getInstance();\n return engine.hasTimeline(name) ? engine.getTimeline(name) : undefined;\n};\n\n/**\n * Check if a timeline exists\n */\nMotionFunction.has = function(name: string): boolean {\n return Engine.getInstance().hasTimeline(name);\n};\n\n/**\n * Get names of all registered timelines\n */\nMotionFunction.getNames = function(): string[] {\n return Engine.getInstance().getTimelineNames();\n};\n\n/**\n * Kill a timeline by name\n */\nMotionFunction.kill = function(name: string): void {\n const engine = Engine.getInstance();\n if (engine.hasTimeline(name)) {\n engine.getTimeline(name).kill();\n }\n};\n\n/**\n * Kill all timelines and animations\n */\nMotionFunction.killAll = function(): void {\n Engine.getInstance().killEverything();\n};\n\n/**\n * Refresh all scroll triggers\n */\nMotionFunction.refreshScrollTriggers = function(): void {\n SDKRegistry.triggerManager?.getInstance?.()?.refreshScrollTriggers();\n};\n\n/**\n * Clean up ScrollTrigger DOM artifacts\n */\nMotionFunction.cleanup = function(): void {\n if (typeof document === 'undefined') return;\n document.querySelectorAll('[data-scrolltrigger-spacer]').forEach(el => el.remove());\n document.querySelectorAll('[data-scrolltrigger-markers]').forEach(el => el.remove());\n};\n\n/**\n * Utility functions — drop-in replacements for gsap.utils.*\n *\n * @example Migration from GSAP\n * // Before: snap: 1 / (gsap.utils.toArray(\".section\").length - 1)\n * // After: snap: 1 / (Motion.utils.toArray(\".section\").length - 1)\n */\nMotionFunction.utils = MotionUtils;\n\nexport const Motion = MotionFunction;\n"
48
48
  ],
49
- "mappings": "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",
50
- "debugId": "A70102557F730D9D64756E2164756E21",
49
+ "mappings": "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",
50
+ "debugId": "2E5415BDA916FA1364756E2164756E21",
51
51
  "names": []
52
52
  }