@wix/interact 1.94.0 → 1.96.0
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.
|
@@ -7,8 +7,7 @@ var _add = require("../core/add");
|
|
|
7
7
|
var _remove = require("../core/remove");
|
|
8
8
|
var _utilities = require("../handlers/utilities");
|
|
9
9
|
var _handlers = _interopRequireDefault(require("../handlers"));
|
|
10
|
-
function
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
11
|
// Mock @wix/motion module
|
|
13
12
|
jest.mock('@wix/motion', () => {
|
|
14
13
|
const mock = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Interact","require","_add","_remove","_utilities","_handlers","_interopRequireDefault","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","jest","mock","getWebAnimation","fn","mockReturnValue","play","cancel","onFinish","getScrubScene","getEasing","mockImplementation","v","getAnimation","target","options","trigger","reducedMotion","Pointer","start","destroy","Scroll","end","describe","element","mockConfig","getMockConfig","interactions","key","params","threshold","effects","effectId","hitArea","type","method","namedEffect","direction","power","listContainer","duration","distance","value","axis","transitionDuration","transitionEasing","centeredToTarget","distanceFactor","range","opacity","rangeStart","name","offset","rangeEnd","transition","styleProperties","beforeEach","document","createElement","div","append","window","KeyframeEffect","constructor","keyframes","ViewTimeline","Animation","effect","timeline","IntersectionObserver","callback","observe","unobserve","CSSStyleSheet","_","replace","insertRule","PointerEvent","MouseEvent","_defineProperty2","pointerType","adoptedStyleSheets","mockMatchMedia","matchingQueries","queryRule","join","mockMQL","query","matches","media","onchange","addEventListener","removeEventListener","dispatchEvent","writable","createCascadingTestConfig","conditions","matchingConditions","desktop","predicate","mobile","tablet","afterEach","clearAllMocks","Interact","forceReducedMotion","allowA11yTriggers","it","create","expect","customElements","toBeDefined","instance","dataset","interactKey","add","keys","dataCache","length","toBe","elements","size","instances","elementCache","toBeGreaterThan","element1","div1","element2","div2","disconnectSpy1","spyOn","disconnectSpy2","toHaveBeenCalled","getInstance","toBeUndefined","newElement","newDiv","newAddEventListenerSpy","toHaveBeenCalledWith","any","undefined","addEventListenerSpy","toHaveBeenCalledTimes","Function","objectContaining","passive","HTMLElement","id","elementClick","divClick","calls","toMatchObject","mockReturnValueOnce","not","pointerInstance","effectToAnimationOptions","scrollInstance","setTimeout","ul","li","li2","cloneNode","addEventListenerSpy2","li3","addEventListenerSpy3","addListItems","targetElement","divTarget","removeEventListenerSpy","remove","toThrow","config","sourceElement","sourceDiv","targetDiv","firstElementChild","complexConfig","target1Element","target1Div","target2Element","target2Div","multiConditionConfig","configWithMissingCondition","configWithEmptyConditions","innerHTML","keyframeEffect","selector","triggerButton","querySelector","firstChild","triggerSpy","firstChildSpy","animationTarget","transform","listItems","Array","from","querySelectorAll","spies","map","item","forEach","spy","_sourceElement$queryS","containerChildren","children","child","consoleSpy","console","mockRestore","color","deepTarget","buttonWithData","setAttribute","backgroundColor","targetFirstChild","keyWithoutInstance","setup","scrollOptionsGetter","pointerOptionsGetter","TRIGGER_TO_HANDLER_MODULE_MAP","viewProgress","pointerMove","a11yElement","getA11yConfig","mockPlay","mockClear","button","KeyboardEvent","code","bubbles","active","testElement","Promise","resolve","then","mockAnimation","reverse","progress","playState","isCSS","classList"],"sources":["../../../src/__tests__/interact.spec.ts"],"sourcesContent":["import { Interact } from '../core/Interact';\nimport { add, addListItems } from '../core/add';\nimport { remove } from '../core/remove';\nimport type {\n InteractConfig,\n ScrubEffect,\n IInteractElement,\n TriggerType,\n} from '../types';\nimport type { NamedEffect } from '@wix/motion';\nimport { effectToAnimationOptions } from '../handlers/utilities';\nimport TRIGGER_TO_HANDLER_MODULE_MAP from '../handlers';\n\n// Mock @wix/motion module\njest.mock('@wix/motion', () => {\n const mock: any = {\n getWebAnimation: jest.fn().mockReturnValue({\n play: jest.fn(),\n cancel: jest.fn(),\n onFinish: jest.fn(),\n }),\n getScrubScene: jest.fn().mockReturnValue({}),\n getEasing: jest.fn().mockImplementation((v) => v),\n getAnimation: jest\n .fn()\n .mockImplementation((target, options, trigger, reducedMotion) => {\n return mock.getWebAnimation(target, options, trigger, {\n reducedMotion,\n });\n }),\n };\n\n return mock;\n});\n\n// Mock kuliso module\njest.mock('kuliso', () => ({\n Pointer: jest.fn().mockImplementation(() => ({\n start: jest.fn(),\n destroy: jest.fn(),\n })),\n}));\n\n// Mock fizban module\njest.mock('fizban', () => ({\n Scroll: jest.fn().mockImplementation(() => ({\n start: jest.fn(),\n end: jest.fn(),\n })),\n}));\n\ndescribe('interact', () => {\n let element: IInteractElement;\n let mockConfig: InteractConfig;\n const getMockConfig: () => InteractConfig = () => ({\n interactions: [\n {\n trigger: 'viewEnter',\n key: 'logo-entrance',\n params: {\n threshold: 0.2,\n },\n effects: [\n {\n key: 'logo-entrance',\n effectId: 'logo-arc-in',\n },\n {\n key: 'logo-click',\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'pageVisible',\n key: 'logo-loop',\n effects: [\n {\n key: 'logo-loop',\n effectId: 'logo-poke',\n },\n ],\n },\n {\n trigger: 'animationEnd',\n key: 'logo-animation-end',\n params: {\n effectId: 'logo-arc-in',\n },\n effects: [\n {\n key: 'logo-animation-end',\n effectId: 'logo-poke',\n },\n ],\n },\n {\n trigger: 'pointerMove',\n key: 'logo-mouse',\n params: {\n hitArea: 'root',\n },\n effects: [\n {\n key: 'logo-mouse',\n effectId: 'logo-track-mouse',\n },\n ],\n },\n {\n trigger: 'click',\n key: 'logo-click',\n params: {\n type: 'alternate',\n },\n effects: [\n {\n key: 'logo-click',\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'click',\n key: 'logo-click',\n params: {\n method: 'toggle',\n },\n effects: [\n {\n key: 'logo-click',\n effectId: 'logo-transition-hover',\n },\n ],\n },\n {\n trigger: 'hover',\n key: 'logo-hover',\n params: {\n type: 'alternate',\n },\n effects: [\n {\n key: 'logo-hover',\n effectId: 'logo-arc-in',\n },\n {\n key: 'logo-hover',\n effectId: 'logo-arc-in',\n namedEffect: {\n type: 'ArcIn',\n direction: 'left',\n power: 'hard',\n } as NamedEffect,\n },\n ],\n },\n {\n trigger: 'hover',\n key: 'logo-hover',\n params: {\n method: 'toggle',\n },\n effects: [\n {\n key: 'logo-hover',\n effectId: 'logo-transition-hover',\n },\n ],\n },\n {\n trigger: 'viewProgress',\n key: 'logo-scroll',\n effects: [\n {\n key: 'logo-scroll',\n effectId: 'logo-fade-scroll',\n },\n ],\n },\n {\n trigger: 'click',\n key: 'logo-click-container',\n listContainer: '#logo-list',\n effects: [\n {\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'viewEnter',\n key: 'logo-view-container',\n effects: [\n {\n listContainer: '#logo-list',\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'viewProgress',\n key: 'logo-scroll-container',\n listContainer: '#logo-scroll-list',\n effects: [\n {\n listContainer: '#logo-scroll-list',\n effectId: 'logo-fade-scroll',\n },\n ],\n },\n {\n trigger: 'viewProgress',\n key: 'logo-scroll-container',\n effects: [\n {\n key: 'logo-scroll-items',\n listContainer: '#logo-scroll-list',\n effectId: 'logo-fade-scroll',\n },\n ],\n },\n ],\n effects: {\n 'logo-arc-in': {\n namedEffect: {\n type: 'ArcIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 1200,\n },\n 'logo-arc-in-with-target': {\n key: 'logo-hover',\n namedEffect: {\n type: 'ArcIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 1200,\n },\n 'logo-track-mouse': {\n namedEffect: {\n type: 'TrackMouse',\n distance: { value: 20, type: 'px' },\n axis: 'both',\n power: 'medium',\n } as NamedEffect,\n transitionDuration: 300,\n transitionEasing: 'easeOut',\n centeredToTarget: true,\n },\n 'logo-bounce': {\n namedEffect: {\n type: 'BounceIn',\n power: 'hard',\n direction: 'center',\n distanceFactor: 1.2,\n } as NamedEffect,\n duration: 500,\n },\n 'logo-fade-scroll': {\n namedEffect: {\n type: 'FadeScroll',\n range: 'in',\n opacity: 0,\n } as NamedEffect,\n rangeStart: {\n name: 'contain',\n offset: { value: -10, type: 'percentage' },\n },\n rangeEnd: {\n name: 'contain',\n offset: { value: 110, type: 'percentage' },\n },\n },\n 'logo-transition-hover': {\n transition: {\n duration: 300,\n styleProperties: [{ name: 'opacity', value: '0' }],\n },\n },\n 'logo-poke': {\n namedEffect: {\n type: 'Poke',\n direction: 'left',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n beforeEach(() => {\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n // Mock Web Animations API\n (window as any).KeyframeEffect = class KeyframeEffect {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n constructor(element: Element | null, keyframes: any[], options: any) {\n return { element, keyframes, options };\n }\n };\n\n // Mock ViewTimeline\n (window as any).ViewTimeline = class ViewTimeline {\n constructor(options: any) {\n return { ...options };\n }\n };\n\n // Mock Animation\n (window as any).Animation = class Animation {\n constructor(effect: any, timeline: any) {\n return { effect, timeline, play: jest.fn() };\n }\n };\n\n // Mock IntersectionObserver\n (window as any).IntersectionObserver = class IntersectionObserver {\n constructor(callback: any, options: any) {\n return { callback, options, observe: jest.fn(), unobserve: jest.fn() };\n }\n };\n\n // Mock CSSStyleSheet\n (window as any).CSSStyleSheet = class CSSStyleSheet {\n constructor(_: string) {\n return { replace: jest.fn(), insertRule: jest.fn() };\n }\n };\n\n // Mock PointerEvent (not available in JSDOM)\n (window as any).PointerEvent = class PointerEvent extends MouseEvent {\n pointerType: string;\n constructor(type: string, params: PointerEventInit = {}) {\n super(type, params);\n this.pointerType = params.pointerType || '';\n }\n };\n\n // Mock adoptedStyleSheets\n if (!document.adoptedStyleSheets) {\n document.adoptedStyleSheets = [];\n }\n\n // Mock matchMedia for condition testing\n mockMatchMedia();\n });\n\n function mockMatchMedia(matchingQueries: string[] = []) {\n const queryRule = `(${matchingQueries.join(') and (')})`;\n const mockMQL = (query: string) => {\n return {\n matches: queryRule === query,\n media: query,\n onchange: null,\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n };\n };\n\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(mockMQL),\n });\n }\n\n function createCascadingTestConfig(\n conditions: Record<string, any> = {},\n matchingConditions: string[] = [],\n ): InteractConfig {\n mockMatchMedia(matchingConditions);\n\n return {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n mobile: {\n type: 'media',\n predicate: 'max-width: 767px',\n },\n tablet: {\n type: 'media',\n predicate: '(min-width: 768px) and (max-width: 1023px)',\n },\n ...conditions,\n },\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n },\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n conditions: ['desktop'],\n namedEffect: {\n type: 'SlideIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 800,\n },\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n conditions: ['mobile'],\n namedEffect: {\n type: 'BounceIn',\n direction: 'center',\n power: 'hard',\n } as NamedEffect,\n duration: 600,\n },\n ],\n },\n ],\n effects: {\n 'default-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n }\n\n afterEach(() => {\n jest.clearAllMocks();\n // Clear Interact instances to ensure test isolation\n Interact.destroy();\n // Reset static flags to default\n Interact.forceReducedMotion = false;\n Interact.allowA11yTriggers = false;\n });\n\n describe('init Interact instance', () => {\n it('should initialize with valid config', () => {\n Interact.create({} as InteractConfig);\n expect(customElements.get('interact-element')).toBeDefined();\n });\n });\n\n describe('destroy Interact instance', () => {\n it('should clear an instance entire cache', () => {\n const instance = Interact.create(getMockConfig());\n\n element = document.createElement('interact-element') as IInteractElement;\n element.dataset.interactKey = 'logo-entrance';\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-entrance');\n\n expect(Object.keys(instance.dataCache.interactions).length).toBe(11);\n expect(instance.elements.size).toBe(1);\n expect(Interact.instances.length).toBe(1);\n\n instance.destroy();\n\n expect(Object.keys(instance.dataCache.interactions).length).toBe(0);\n expect(instance.elements.size).toBe(0);\n expect(Interact.instances.length).toBe(0);\n expect(Interact.elementCache.size).toBe(0);\n });\n });\n\n describe('destroy Interact', () => {\n it('should clear all instances', () => {\n Interact.create(getMockConfig());\n Interact.create(getMockConfig());\n\n expect(Interact.instances.length).toBe(2);\n\n Interact.destroy();\n\n expect(Interact.instances.length).toBe(0);\n });\n\n it('should clear all elements from cache', () => {\n Interact.create(getMockConfig());\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-hover');\n\n expect(Interact.elementCache.size).toBeGreaterThan(0);\n\n Interact.destroy();\n\n expect(Interact.elementCache.size).toBe(0);\n });\n\n it('should call disconnect on all cached elements', () => {\n Interact.create(getMockConfig());\n\n const element1 = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div1 = document.createElement('div');\n element1.append(div1);\n\n const element2 = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div2 = document.createElement('div');\n element2.append(div2);\n\n add(element1, 'logo-hover');\n add(element2, 'logo-click');\n\n const disconnectSpy1 = jest.spyOn(element1, 'disconnect');\n const disconnectSpy2 = jest.spyOn(element2, 'disconnect');\n\n Interact.destroy();\n\n expect(disconnectSpy1).toHaveBeenCalled();\n expect(disconnectSpy2).toHaveBeenCalled();\n });\n\n it('should clean up interactions after destroy', () => {\n Interact.create(getMockConfig());\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-click');\n\n Interact.destroy();\n\n // After destroy, getInstance should return undefined\n expect(Interact.getInstance('logo-click')).toBeUndefined();\n\n // Re-create instance and verify it works independently\n Interact.create(getMockConfig());\n const newElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const newDiv = document.createElement('div');\n newElement.append(newDiv);\n\n const newAddEventListenerSpy = jest.spyOn(newDiv, 'addEventListener');\n add(newElement, 'logo-click');\n\n expect(newAddEventListenerSpy).toHaveBeenCalled();\n expect(Interact.getInstance('logo-click')).toBeDefined();\n });\n\n // TODO: fix this test - when adding this test it causes 2 other tests to fail\n // it('should remove event listeners and styles when disconnect is called', () => {\n // Interact.create(mockConfig);\n\n // element = document.createElement(\n // 'interact-element',\n // ) as IInteractElement;\n // element.dataset.interactKey = 'logo-click';\n // const div = document.createElement('div');\n // element.append(div);\n\n // add(element, 'logo-click');\n\n // const removeEventListenerSpy = jest.spyOn(div, 'removeEventListener');\n\n // Interact.destroy();\n\n // expect(removeEventListenerSpy).toHaveBeenCalled();\n // expect(removeEventListenerSpy).toHaveBeenCalledWith(\n // 'click',\n // expect.any(Function),\n // );\n // });\n });\n\n describe('reduced motion', () => {\n it('should pass reducedMotion=true to getWebAnimation when forceReducedMotion is true', () => {\n const { getWebAnimation } = require('@wix/motion');\n Interact.forceReducedMotion = true;\n Interact.create({\n interactions: [\n {\n trigger: 'hover',\n key: 'logo-hover',\n effects: [\n {\n key: 'logo-hover',\n effectId: 'logo-arc-in',\n },\n ],\n },\n ],\n effects: {\n 'logo-arc-in': {\n namedEffect: {\n type: 'ArcIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 1200,\n },\n },\n });\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-hover');\n\n expect(getWebAnimation).toHaveBeenCalledWith(\n div,\n expect.any(Object),\n undefined,\n { reducedMotion: true },\n );\n\n Interact.forceReducedMotion = false;\n\n Interact.destroy();\n });\n });\n\n describe('add interaction', () => {\n beforeEach(() => {\n mockConfig = getMockConfig();\n Interact.create(mockConfig);\n });\n afterEach(() => {\n Interact.destroy();\n jest.clearAllMocks();\n });\n\n describe('hover', () => {\n it('should add handler for hover trigger with alternate type', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n expect(getWebAnimation).toHaveBeenCalledTimes(0);\n\n add(element, 'logo-hover');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(4);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseleave',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n div,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'ArcIn',\n direction: 'left',\n power: 'hard',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('click', () => {\n it('should add handler for click trigger', () => {\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'logo-click');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(2);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n });\n });\n\n describe('viewEnter', () => {\n it('should add handler for viewEnter trigger', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-entrance');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should add handler for viewEnter trigger when target is added before source', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n div.id = 'logo-entrance';\n element.dataset.interactKey = 'logo-entrance';\n element.append(div);\n\n const elementClick = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const divClick = document.createElement('div');\n divClick.id = 'logo-click';\n elementClick.dataset.interactKey = 'logo-click';\n elementClick.append(divClick);\n\n add(elementClick, 'logo-click');\n add(element, 'logo-entrance');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(3);\n expect(getWebAnimation.mock.calls[0][0]).toBe(divClick);\n expect(getWebAnimation.mock.calls[1][0]).toBe(divClick);\n expect(getWebAnimation.mock.calls[2][0]).toBe(div);\n expect(getWebAnimation.mock.calls[0][3]).toMatchObject({\n reducedMotion: false,\n });\n expect(getWebAnimation.mock.calls[1][3]).toMatchObject({\n reducedMotion: false,\n });\n expect(getWebAnimation.mock.calls[2][3]).toMatchObject({\n reducedMotion: false,\n });\n });\n });\n\n describe('pageVisible', () => {\n it('should add handler for pageVisible trigger', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-loop');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('animationEnd', () => {\n it('should add handler for animationEnd trigger', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-animation-end');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('null animation handling', () => {\n it('should not add click handler when getAnimation returns null', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'click',\n key: 'null-click-test',\n effects: [{ effectId: 'null-test-effect' }],\n },\n ],\n effects: {\n 'null-test-effect': {\n namedEffect: { type: 'FadeIn' } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'null-click-test');\n\n expect(addEventListenerSpy).not.toHaveBeenCalled();\n });\n\n it('should not add hover handler when getAnimation returns null', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'hover',\n key: 'null-hover-test',\n effects: [{ effectId: 'null-test-effect' }],\n },\n ],\n effects: {\n 'null-test-effect': {\n namedEffect: { type: 'FadeIn' } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'null-hover-test');\n\n expect(addEventListenerSpy).not.toHaveBeenCalled();\n });\n\n it('should not add animationEnd handler when getAnimation returns null', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'animationEnd',\n key: 'null-animationend-test',\n params: { effectId: 'trigger-effect' },\n effects: [{ effectId: 'null-test-effect' }],\n },\n ],\n effects: {\n 'null-test-effect': {\n namedEffect: { type: 'FadeIn' } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'null-animationend-test');\n\n expect(addEventListenerSpy).not.toHaveBeenCalled();\n });\n\n it('should not add viewProgress handler when getWebAnimation returns null (ViewTimeline)', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'viewProgress',\n key: 'null-viewprogress-test',\n effects: [{ effectId: 'null-scroll-effect' }],\n },\n ],\n effects: {\n 'null-scroll-effect': {\n namedEffect: {\n type: 'FadeScroll',\n range: 'in',\n opacity: 0,\n } as NamedEffect,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'null-viewprogress-test');\n\n // getWebAnimation should have been called\n expect(getWebAnimation).toHaveBeenCalled();\n });\n\n it('should not add viewProgress handler when getScrubScene returns null (polyfill)', () => {\n // Remove ViewTimeline support to use polyfill path\n delete (window as any).ViewTimeline;\n\n Interact.destroy();\n const { getScrubScene } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'viewProgress',\n key: 'null-viewprogress-polyfill-test',\n effects: [{ effectId: 'null-scroll-effect' }],\n },\n ],\n effects: {\n 'null-scroll-effect': {\n namedEffect: {\n type: 'FadeScroll',\n range: 'in',\n opacity: 0,\n } as NamedEffect,\n },\n },\n });\n\n getScrubScene.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'null-viewprogress-polyfill-test');\n\n // getScrubScene should have been called\n expect(getScrubScene).toHaveBeenCalled();\n\n // Restore ViewTimeline\n (window as any).ViewTimeline = class ViewTimeline {\n constructor(options: any) {\n return { ...options };\n }\n };\n });\n });\n\n describe('pointerMove', () => {\n it('should add handler for pointerMove trigger', () => {\n const { getScrubScene } = require('@wix/motion');\n const { Pointer } = require('kuliso');\n const pointerInstance = {\n start: jest.fn(),\n destroy: jest.fn(),\n };\n Pointer.mockImplementation(() => pointerInstance);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-mouse');\n\n expect(getScrubScene).toHaveBeenCalledTimes(1);\n expect(getScrubScene).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-track-mouse'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'pointer-move',\n }),\n );\n expect(pointerInstance.start).toHaveBeenCalled();\n });\n });\n\n describe('viewProgress', () => {\n it('should add handler for viewProgress trigger with native ViewTimeline support', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-scroll');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n });\n\n it('should add handler for viewProgress trigger with fizban polyfill', () => {\n // Remove ViewTimeline support\n delete (window as any).ViewTimeline;\n const { getScrubScene } = require('@wix/motion');\n const { Scroll } = require('fizban');\n const scrollInstance = {\n start: jest.fn(),\n destroy: jest.fn(),\n };\n Scroll.mockImplementation(() => scrollInstance);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-scroll');\n\n expect(getScrubScene).toHaveBeenCalledTimes(1);\n expect(getScrubScene).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n setTimeout(() => {\n expect(scrollInstance.start).toHaveBeenCalled();\n }, 0);\n });\n });\n\n describe('listContainer', () => {\n it('should add a handler per list item for click trigger with listContainer', () => {\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-list';\n div.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(li, 'addEventListener');\n const addEventListenerSpy2 = jest.spyOn(li2, 'addEventListener');\n\n add(element, 'logo-click-container');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy2).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n expect(addEventListenerSpy2).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n });\n\n it('should add a handler per list item for viewEnter trigger with listContainer in effect', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-list';\n div.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n\n add(element, 'logo-view-container');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(2);\n expect(getWebAnimation.mock.calls[0][0]).toBe(li);\n expect(getWebAnimation.mock.calls[1][0]).toBe(li2);\n });\n\n it('should add a handler per newly added list item for click trigger with listContainer', () => {\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-list';\n div.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(li, 'addEventListener');\n const addEventListenerSpy2 = jest.spyOn(li2, 'addEventListener');\n\n add(element, 'logo-click-container');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy2).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n expect(addEventListenerSpy2).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n const li3 = document.createElement('li');\n ul.append(li3);\n const addEventListenerSpy3 = jest.spyOn(li3, 'addEventListener');\n\n addListItems(element, 'logo-click-container', '#logo-list', [li3]);\n\n expect(addEventListenerSpy3).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy3).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n });\n\n it('should add a handler per newly added list item for viewProgress trigger but not add same interaction twice', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const divTarget = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-scroll-list';\n divTarget.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n targetElement.append(divTarget);\n\n add(element, 'logo-scroll-container');\n expect(getWebAnimation).toHaveBeenCalledTimes(0);\n\n add(targetElement, 'logo-scroll-items');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(2);\n expect(getWebAnimation).toHaveBeenCalledWith(\n li,\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n expect(getWebAnimation).toHaveBeenCalledWith(\n li2,\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n\n const li3 = document.createElement('li');\n ul.append(li3);\n\n addListItems(targetElement, 'logo-scroll-items', '#logo-scroll-list', [\n li3,\n ]);\n\n expect(getWebAnimation).toHaveBeenCalledTimes(3);\n expect(getWebAnimation).toHaveBeenCalledWith(\n li3,\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n });\n });\n });\n\n describe('remove interaction', () => {\n beforeEach(() => {\n Interact.create(getMockConfig());\n });\n afterEach(() => {\n Interact.destroy();\n });\n\n it('should remove event listeners', () => {\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const removeEventListenerSpy = jest.spyOn(div, 'removeEventListener');\n\n add(element, 'logo-click');\n remove('logo-click');\n\n expect(removeEventListenerSpy).toHaveBeenCalledTimes(2);\n expect(removeEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n );\n });\n\n it('should do nothing if key does not exist', () => {\n expect(() => remove('non-existent-key')).not.toThrow();\n });\n\n it('should cleanup pointer effects', () => {\n const { Pointer } = require('kuliso');\n const pointerInstance = {\n start: jest.fn(),\n destroy: jest.fn(),\n };\n Pointer.mockImplementation(() => pointerInstance);\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-mouse');\n remove('logo-mouse');\n\n expect(pointerInstance.destroy).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('effect cascading logic', () => {\n describe('basic cascading behavior', () => {\n it('should apply only first matching effect for same target', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['min-width: 1024px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n const addEventListenerSpy = jest.spyOn(sourceDiv, 'addEventListener');\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n // Should create animation with desktop effect (first matching condition)\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n direction: 'right',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should apply default effect when no conditions match', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, []); // No matching conditions\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Should create animation with default effect\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'FadeIn',\n power: 'medium',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should apply mobile effect when mobile condition matches', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['max-width: 767px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Should create animation with mobile effect\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'BounceIn',\n direction: 'center',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('element addition order', () => {\n it('should work when source is added before target', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['min-width: 1024px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n // Add source first\n add(sourceElement, 'cascade-source');\n // Add target second\n add(targetElement, 'cascade-target');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should work when target is added before source', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['min-width: 1024px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n // Add target first\n add(targetElement, 'cascade-target');\n // Add source second\n add(sourceElement, 'cascade-source');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('complex cascading scenarios', () => {\n it('should handle multiple targets with different conditions', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const complexConfig: InteractConfig = {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n mobile: {\n type: 'media',\n predicate: 'max-width: 767px',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'multi-source-1',\n effects: [\n {\n key: 'cascade-target-1',\n effectId: 'desktop-effect',\n conditions: ['desktop'],\n },\n {\n key: 'cascade-target-2',\n effectId: 'mobile-effect',\n conditions: ['mobile'],\n },\n ],\n },\n ],\n effects: {\n 'desktop-effect': {\n namedEffect: {\n type: 'SlideIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 800,\n },\n 'mobile-effect': {\n namedEffect: {\n type: 'BounceIn',\n direction: 'center',\n power: 'hard',\n } as NamedEffect,\n duration: 600,\n },\n },\n };\n\n mockMatchMedia(['min-width: 1024px']); // Only desktop matches\n Interact.create(complexConfig);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const target1Element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const target1Div = document.createElement('div');\n target1Element.append(target1Div);\n\n const target2Element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const target2Div = document.createElement('div');\n target2Element.append(target2Div);\n\n add(sourceElement, 'multi-source-1');\n add(target1Element, 'cascade-target-1');\n add(target2Element, 'cascade-target-2');\n\n // Only desktop effect should be applied (mobile condition doesn't match)\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n target1Element.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n\n // Should not be called for mobile effect since condition doesn't match\n expect(getWebAnimation).not.toHaveBeenCalledWith(\n target2Element.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'BounceIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should handle effects with multiple conditions', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const multiConditionConfig: InteractConfig = {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n 'high-res': {\n type: 'media',\n predicate: 'min-resolution: 2dppx',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'premium-effect',\n },\n {\n key: 'cascade-target',\n effectId: 'premium-effect',\n conditions: ['desktop', 'high-res'],\n },\n ],\n },\n ],\n effects: {\n 'premium-effect': {\n namedEffect: {\n type: 'Poke',\n direction: 'left',\n power: 'hard',\n } as NamedEffect,\n duration: 1000,\n },\n },\n };\n\n // Both conditions match\n mockMatchMedia(['min-width: 1024px', 'min-resolution: 2dppx']);\n Interact.create(multiConditionConfig);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Premium effect should be applied since both conditions match\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'Poke',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('condition matching edge cases', () => {\n it('should handle missing conditions gracefully', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const configWithMissingCondition: InteractConfig = {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n },\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n conditions: ['nonexistent-condition'],\n },\n ],\n },\n ],\n effects: {\n 'default-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n mockMatchMedia(['min-width: 1024px']);\n Interact.create(configWithMissingCondition);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Should fall back to default effect since condition doesn't exist\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'FadeIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should handle empty conditions array', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const configWithEmptyConditions: InteractConfig = {\n conditions: {},\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'always-applied-effect',\n conditions: [],\n },\n ],\n },\n ],\n effects: {\n 'always-applied-effect': {\n namedEffect: {\n type: 'Spin',\n direction: 'clockwise',\n power: 'medium',\n } as NamedEffect,\n duration: 1000,\n },\n },\n };\n\n mockMatchMedia([]);\n Interact.create(configWithEmptyConditions);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Effect should be applied since empty conditions array should always match\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'Spin',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n });\n\n describe('selector functionality', () => {\n let sourceElement: IInteractElement;\n let targetElement: IInteractElement;\n\n beforeEach(() => {\n // Create source element with multiple child elements\n sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n sourceElement.innerHTML = `\n <div class=\"first-child\">First Child</div>\n <button class=\"trigger-button\">Click Me</button>\n <div class=\"other-element\">Other</div>\n <div class=\"list-container\">\n <div class=\"list-item\">Item 1</div>\n <div class=\"list-item\">Item 2</div>\n <div class=\"list-item\">Item 3</div>\n </div>\n `;\n\n // Create target element with multiple child elements\n targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n targetElement.innerHTML = `\n <div class=\"first-child\">Target First</div>\n <div class=\"animation-target\">Animation Target</div>\n <div class=\"overlay\">Overlay</div>\n <div class=\"nested\">\n <span class=\"deep-target\">Deep Target</span>\n </div>\n `;\n });\n\n describe('basic selector functionality', () => {\n it('should use selector instead of firstElementChild for source', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'selector-source',\n selector: '.trigger-button',\n trigger: 'click',\n effects: [\n {\n key: 'selector-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const triggerButton = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n const firstChild = sourceElement.querySelector(\n '.first-child',\n ) as HTMLElement;\n\n const triggerSpy = jest.spyOn(triggerButton, 'addEventListener');\n const firstChildSpy = jest.spyOn(firstChild, 'addEventListener');\n\n add(sourceElement, 'selector-source');\n add(targetElement, 'selector-target');\n\n // Should add event listener to the selected element, not firstElementChild\n expect(triggerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(firstChildSpy).not.toHaveBeenCalled();\n });\n\n it('should use selector instead of firstElementChild for target', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'selector-source',\n trigger: 'click',\n effects: [\n {\n key: 'selector-target',\n selector: '.animation-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'selector-source');\n add(targetElement, 'selector-target');\n\n const animationTarget = targetElement.querySelector(\n '.animation-target',\n ) as HTMLElement;\n\n // Should create animation on the selected element, not firstElementChild\n expect(getWebAnimation).toHaveBeenCalledWith(\n animationTarget,\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should fall back to firstElementChild when no selector is provided', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'fallback-source',\n trigger: 'click',\n effects: [\n {\n key: 'fallback-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const firstChild = sourceElement.querySelector(\n '.first-child',\n ) as HTMLElement;\n const firstChildSpy = jest.spyOn(firstChild, 'addEventListener');\n\n add(sourceElement, 'fallback-source');\n add(targetElement, 'fallback-target');\n\n // Should fall back to firstElementChild\n expect(firstChildSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('selector with listContainer', () => {\n it('should use selector within listContainer items', () => {\n const config: InteractConfig = {\n effects: {\n 'list-effect': {\n keyframeEffect: {\n name: 'list-test',\n keyframes: [\n { transform: 'scale(1)' },\n { transform: 'scale(1.1)' },\n ],\n },\n duration: 200,\n },\n },\n interactions: [\n {\n key: 'list-source',\n listContainer: '.list-container',\n selector: '.list-item',\n trigger: 'hover',\n effects: [\n {\n listContainer: '.list-container',\n selector: '.list-item',\n effectId: 'list-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spies before adding interactions\n const listItems = Array.from(\n sourceElement.querySelectorAll('.list-item'),\n ) as HTMLElement[];\n\n const spies = listItems.map((item) =>\n jest.spyOn(item, 'addEventListener'),\n );\n\n add(sourceElement, 'list-source');\n\n // Should add event listeners to each list item\n spies.forEach((spy) => {\n expect(spy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n it('should handle listContainer without selector (all children)', () => {\n const config: InteractConfig = {\n effects: {\n 'container-effect': {\n keyframeEffect: {\n name: 'container-test',\n keyframes: [{ opacity: '0.5' }, { opacity: '1' }],\n },\n duration: 150,\n },\n },\n interactions: [\n {\n key: 'container-source',\n listContainer: '.list-container',\n trigger: 'click',\n effects: [\n {\n listContainer: '.list-container',\n effectId: 'container-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spies before adding interactions\n const containerChildren = Array.from(\n sourceElement.querySelector('.list-container')?.children || [],\n ) as HTMLElement[];\n\n const spies = containerChildren.map((child) =>\n jest.spyOn(child, 'addEventListener'),\n );\n\n add(sourceElement, 'container-source');\n\n // Should add event listeners to all children of the container\n spies.forEach((spy) => {\n expect(spy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n });\n\n describe('selector error handling', () => {\n let consoleSpy: jest.SpyInstance;\n\n beforeEach(() => {\n consoleSpy = jest.spyOn(console, 'warn').mockImplementation();\n });\n\n afterEach(() => {\n consoleSpy.mockRestore();\n });\n\n it('should warn when selector does not match any elements', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'invalid-source',\n selector: '.non-existent-element',\n trigger: 'click',\n effects: [\n {\n key: 'invalid-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'invalid-source');\n add(targetElement, 'invalid-target');\n\n expect(consoleSpy).toHaveBeenCalledWith(\n 'Interact: No element found for selector \".non-existent-element\"',\n );\n });\n\n it('should warn when listContainer selector does not match', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'invalid-container-source',\n listContainer: '.non-existent-container',\n trigger: 'click',\n effects: [\n {\n key: 'invalid-container-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'invalid-container-source');\n add(targetElement, 'invalid-container-target');\n\n expect(consoleSpy).toHaveBeenCalledWith(\n 'Interact: No container found for list container \".non-existent-container\"',\n );\n });\n\n it('should gracefully handle invalid selectors without breaking interactions', () => {\n const config: InteractConfig = {\n effects: {\n 'valid-effect': {\n keyframeEffect: {\n name: 'valid',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'mixed-source',\n selector: '.non-existent',\n trigger: 'click',\n effects: [\n {\n key: 'mixed-target',\n effectId: 'valid-effect',\n },\n ],\n },\n {\n key: 'valid-source',\n selector: '.trigger-button',\n trigger: 'click',\n effects: [\n {\n key: 'valid-target',\n effectId: 'valid-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spy before adding interactions\n const triggerButton = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n const spy = jest.spyOn(triggerButton, 'addEventListener');\n\n // This should not throw and should allow other interactions to work\n expect(() => {\n add(sourceElement, 'mixed-source');\n add(sourceElement, 'valid-source');\n add(targetElement, 'mixed-target');\n add(targetElement, 'valid-target');\n }).not.toThrow();\n\n // Valid interaction should still work\n expect(spy).toHaveBeenCalled();\n });\n });\n\n describe('complex selector scenarios', () => {\n it('should handle nested selectors', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const config: InteractConfig = {\n effects: {\n 'nested-effect': {\n keyframeEffect: {\n name: 'nested',\n keyframes: [{ color: 'black' }, { color: 'blue' }],\n },\n duration: 200,\n },\n },\n interactions: [\n {\n key: 'nested-source',\n selector: '.other-element',\n trigger: 'click',\n effects: [\n {\n key: 'nested-target',\n selector: '.nested .deep-target',\n effectId: 'nested-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const addEventListenerSpy = jest.spyOn(\n sourceElement.querySelector('.other-element') as HTMLElement,\n 'addEventListener',\n );\n\n add(sourceElement, 'nested-source');\n add(targetElement, 'nested-target');\n\n const deepTarget = targetElement.querySelector(\n '.nested .deep-target',\n ) as HTMLElement;\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n\n expect(getWebAnimation).toHaveBeenCalledWith(\n deepTarget,\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should handle attribute selectors', () => {\n // Add data attributes to test elements\n const buttonWithData = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n buttonWithData.setAttribute('data-interactive', 'true');\n buttonWithData.setAttribute('data-category', 'primary');\n\n const config: InteractConfig = {\n effects: {\n 'attr-effect': {\n keyframeEffect: {\n name: 'attr',\n keyframes: [\n { backgroundColor: 'white' },\n { backgroundColor: 'lightblue' },\n ],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'attr-source',\n selector: '[data-interactive=\"true\"][data-category=\"primary\"]',\n trigger: 'click',\n effects: [\n {\n key: 'attr-target',\n selector: '[class*=\"animation\"]',\n effectId: 'attr-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spy before adding interactions\n const spy = jest.spyOn(buttonWithData, 'addEventListener');\n\n add(sourceElement, 'attr-source');\n add(targetElement, 'attr-target');\n\n expect(spy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('selector inheritance and priority', () => {\n it('should not inherit selector from interaction to effect', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const config: InteractConfig = {\n effects: {\n 'inherit-effect': {\n keyframeEffect: {\n name: 'inherit',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'inherit-source',\n selector: '.trigger-button', // Interaction has selector\n trigger: 'click',\n effects: [\n {\n key: 'inherit-target',\n // Effect has no selector - should use firstElementChild, not inherit\n effectId: 'inherit-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'inherit-source');\n add(targetElement, 'inherit-target');\n\n // Effect should target firstElementChild, not the interaction's selector\n const targetFirstChild = targetElement.firstElementChild as HTMLElement;\n\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetFirstChild,\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('selector cleanup', () => {\n it('should clean up selector-based interactions on remove', () => {\n const config: InteractConfig = {\n effects: {\n 'cleanup-effect': {\n keyframeEffect: {\n name: 'cleanup',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'cleanup-source',\n selector: '.trigger-button',\n trigger: 'click',\n effects: [\n {\n key: 'cleanup-target',\n selector: '.animation-target',\n effectId: 'cleanup-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const triggerButton = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n const removeEventListenerSpy = jest.spyOn(\n triggerButton,\n 'removeEventListener',\n );\n\n add(sourceElement, 'cleanup-source');\n add(targetElement, 'cleanup-target');\n\n remove('cleanup-source');\n\n // Should remove event listeners from the selected element\n expect(removeEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n );\n });\n });\n });\n\n describe('element caching', () => {\n it('should cache element in elementCache even when no instance was found for it', () => {\n const keyWithoutInstance = 'key-without-instance';\n add(element, keyWithoutInstance);\n\n expect(Interact.elementCache.has(keyWithoutInstance)).toBe(true);\n expect(Interact.elementCache.get(keyWithoutInstance)).toBe(element);\n });\n });\n\n describe('setup', () => {\n afterEach(() => {\n Interact.setup({\n scrollOptionsGetter: () => ({}),\n pointerOptionsGetter: () => ({}),\n });\n });\n\n it('should register scroll options getter', () => {\n const scrollOptionsGetter = jest.fn().mockReturnValue({});\n const spy = jest.spyOn(\n TRIGGER_TO_HANDLER_MODULE_MAP.viewProgress,\n 'registerOptionsGetter',\n );\n\n Interact.setup({ scrollOptionsGetter });\n\n expect(spy).toHaveBeenCalledWith(scrollOptionsGetter);\n });\n\n it('should register pointer options getter', () => {\n const pointerOptionsGetter = jest.fn().mockReturnValue({});\n const spy = jest.spyOn(\n TRIGGER_TO_HANDLER_MODULE_MAP.pointerMove,\n 'registerOptionsGetter',\n );\n\n Interact.setup({ pointerOptionsGetter });\n\n expect(spy).toHaveBeenCalledWith(pointerOptionsGetter);\n });\n });\n\n describe('a11y - accessible triggers', () => {\n let a11yElement: IInteractElement;\n\n function getA11yConfig(trigger: TriggerType, key: string): InteractConfig {\n return {\n interactions: [\n {\n trigger,\n key,\n effects: [{ effectId: 'test-effect' }],\n },\n ],\n effects: {\n 'test-effect': {\n namedEffect: { type: 'BounceIn', power: 'medium' } as NamedEffect,\n duration: 500,\n },\n },\n };\n }\n\n afterEach(() => {\n Interact.destroy();\n });\n\n describe('activate trigger', () => {\n it('should add both click and keydown listeners', () => {\n Interact.create(getA11yConfig('activate', 'activate-div'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'activate-div');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'keydown',\n expect.any(Function),\n expect.any(Object),\n );\n });\n\n it('should not double-invoke handler when Enter triggers both keydown and click', () => {\n const { getWebAnimation } = require('@wix/motion');\n const mockPlay = getWebAnimation().play;\n mockPlay.mockClear();\n\n Interact.create(getA11yConfig('activate', 'activate-handler-test'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const button = document.createElement('button');\n a11yElement.append(button);\n\n add(a11yElement, 'activate-handler-test');\n\n // Simulate browser behavior: Enter key triggers keydown AND synthesized click with no pointerType\n button.dispatchEvent(\n new KeyboardEvent('keydown', { code: 'Enter', bubbles: true }),\n );\n button.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n\n expect(mockPlay).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('interest trigger', () => {\n it('should add focusin listener alongside mouseenter', () => {\n Interact.create(getA11yConfig('interest', 'interest-test'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'interest-test');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'focusin',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('click trigger with allowA11yTriggers flag', () => {\n it('should NOT add keydown listener when flag is false', () => {\n Interact.create(getA11yConfig('click', 'click-no-flag'));\n Interact.setup({ allowA11yTriggers: false });\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'click-no-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).not.toHaveBeenCalledWith(\n 'keydown',\n expect.any(Function),\n expect.any(Object),\n );\n });\n\n it('should add keydown listener when flag is true', () => {\n Interact.setup({ allowA11yTriggers: true });\n Interact.create(getA11yConfig('click', 'click-with-flag'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'click-with-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'keydown',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('hover trigger with allowA11yTriggers flag', () => {\n it('should NOT add focusin listener when flag is false', () => {\n Interact.setup({ allowA11yTriggers: false });\n Interact.create(getA11yConfig('hover', 'hover-no-flag'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'hover-no-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).not.toHaveBeenCalledWith(\n 'focusin',\n expect.any(Function),\n expect.any(Object),\n );\n });\n\n it('should add focusin listener when flag is true', () => {\n Interact.setup({ allowA11yTriggers: true });\n Interact.create(getA11yConfig('hover', 'hover-with-flag'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'hover-with-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'focusin',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n });\n describe('selector condition type', () => {\n it('should pass selectorCondition to handler when condition type is selector', async () => {\n const config: InteractConfig = {\n conditions: {\n active: {\n type: 'selector',\n predicate: '.active',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'selector-test',\n effects: [\n {\n key: 'selector-test',\n effectId: 'test-effect',\n conditions: ['active'],\n },\n ],\n },\n ],\n effects: {\n 'test-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n Interact.create(config);\n\n const testElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n testElement.append(div);\n\n add(testElement, 'selector-test');\n\n // The handler should have received selectorCondition\n // We verify by checking the animation is created (condition doesn't block setup)\n const { getWebAnimation } = await import('@wix/motion');\n expect(getWebAnimation).toHaveBeenCalled();\n });\n\n it('should skip handler execution when element does not match selector condition', async () => {\n const { getWebAnimation } = await import('@wix/motion');\n const mockAnimation = {\n play: jest.fn(),\n cancel: jest.fn(),\n onFinish: jest.fn(),\n reverse: jest.fn(),\n progress: jest.fn(),\n playState: 'idle',\n isCSS: false,\n };\n (getWebAnimation as any).mockReturnValue(mockAnimation);\n\n const config: InteractConfig = {\n conditions: {\n active: {\n type: 'selector',\n predicate: '.active',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'selector-skip-test',\n effects: [\n {\n key: 'selector-skip-test',\n effectId: 'skip-effect',\n conditions: ['active'],\n },\n ],\n },\n ],\n effects: {\n 'skip-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n Interact.create(config);\n\n const testElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n // div does NOT have .active class\n testElement.append(div);\n\n add(testElement, 'selector-skip-test');\n\n // Simulate click - animation should NOT play because element doesn't match .active\n // Must use PointerEvent with pointerType because click handler filters by pointerType\n div.dispatchEvent(\n new PointerEvent('click', { bubbles: true, pointerType: 'mouse' }),\n );\n\n expect(mockAnimation.play).not.toHaveBeenCalled();\n });\n\n it('should execute handler when element matches selector condition', async () => {\n const { getWebAnimation } = await import('@wix/motion');\n const mockAnimation = {\n play: jest.fn(),\n cancel: jest.fn(),\n onFinish: jest.fn(),\n reverse: jest.fn(),\n progress: jest.fn(),\n playState: 'idle',\n isCSS: false,\n };\n (getWebAnimation as any).mockReturnValue(mockAnimation);\n\n const config: InteractConfig = {\n conditions: {\n active: {\n type: 'selector',\n predicate: '.active',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'selector-match-test',\n effects: [\n {\n key: 'selector-match-test',\n effectId: 'match-effect',\n conditions: ['active'],\n },\n ],\n },\n ],\n effects: {\n 'match-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n Interact.create(config);\n\n const testElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n div.classList.add('active'); // div HAS .active class\n testElement.append(div);\n\n add(testElement, 'selector-match-test');\n\n // Simulate click - animation SHOULD play because element matches .active\n // Must use PointerEvent with pointerType because click handler filters by pointerType\n div.dispatchEvent(\n new PointerEvent('click', { bubbles: true, pointerType: 'mouse' }),\n );\n\n expect(mockAnimation.play).toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Interact","require","_add","_remove","_utilities","_handlers","_interopRequireDefault","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","jest","mock","getWebAnimation","fn","mockReturnValue","play","cancel","onFinish","getScrubScene","getEasing","mockImplementation","v","getAnimation","target","options","trigger","reducedMotion","Pointer","start","destroy","Scroll","end","describe","element","mockConfig","getMockConfig","interactions","key","params","threshold","effects","effectId","hitArea","type","method","namedEffect","direction","power","listContainer","duration","distance","value","axis","transitionDuration","transitionEasing","centeredToTarget","distanceFactor","range","opacity","rangeStart","name","offset","rangeEnd","transition","styleProperties","beforeEach","document","createElement","div","append","window","KeyframeEffect","constructor","keyframes","ViewTimeline","Animation","effect","timeline","IntersectionObserver","callback","observe","unobserve","CSSStyleSheet","_","replace","insertRule","PointerEvent","MouseEvent","_defineProperty2","pointerType","adoptedStyleSheets","mockMatchMedia","matchingQueries","queryRule","join","mockMQL","query","matches","media","onchange","addEventListener","removeEventListener","dispatchEvent","writable","createCascadingTestConfig","conditions","matchingConditions","desktop","predicate","mobile","tablet","afterEach","clearAllMocks","Interact","forceReducedMotion","allowA11yTriggers","it","create","expect","customElements","toBeDefined","instance","dataset","interactKey","add","keys","dataCache","length","toBe","elements","size","instances","elementCache","toBeGreaterThan","element1","div1","element2","div2","disconnectSpy1","spyOn","disconnectSpy2","toHaveBeenCalled","getInstance","toBeUndefined","newElement","newDiv","newAddEventListenerSpy","toHaveBeenCalledWith","any","undefined","addEventListenerSpy","toHaveBeenCalledTimes","Function","objectContaining","passive","HTMLElement","id","elementClick","divClick","calls","toMatchObject","mockReturnValueOnce","not","pointerInstance","effectToAnimationOptions","scrollInstance","setTimeout","ul","li","li2","cloneNode","addEventListenerSpy2","li3","addEventListenerSpy3","addListItems","targetElement","divTarget","removeEventListenerSpy","remove","toThrow","config","sourceElement","sourceDiv","targetDiv","firstElementChild","complexConfig","target1Element","target1Div","target2Element","target2Div","multiConditionConfig","configWithMissingCondition","configWithEmptyConditions","innerHTML","keyframeEffect","selector","triggerButton","querySelector","firstChild","triggerSpy","firstChildSpy","animationTarget","transform","listItems","Array","from","querySelectorAll","spies","map","item","forEach","spy","_sourceElement$queryS","containerChildren","children","child","consoleSpy","console","mockRestore","color","deepTarget","buttonWithData","setAttribute","backgroundColor","targetFirstChild","keyWithoutInstance","setup","scrollOptionsGetter","pointerOptionsGetter","TRIGGER_TO_HANDLER_MODULE_MAP","viewProgress","pointerMove","a11yElement","getA11yConfig","mockPlay","mockClear","button","KeyboardEvent","code","bubbles","active","testElement","Promise","resolve","then","mockAnimation","reverse","progress","playState","isCSS","classList"],"sources":["../../../src/__tests__/interact.spec.ts"],"sourcesContent":["import { Interact } from '../core/Interact';\nimport { add, addListItems } from '../core/add';\nimport { remove } from '../core/remove';\nimport type {\n InteractConfig,\n ScrubEffect,\n IInteractElement,\n TriggerType,\n} from '../types';\nimport type { NamedEffect } from '@wix/motion';\nimport { effectToAnimationOptions } from '../handlers/utilities';\nimport TRIGGER_TO_HANDLER_MODULE_MAP from '../handlers';\n\n// Mock @wix/motion module\njest.mock('@wix/motion', () => {\n const mock: any = {\n getWebAnimation: jest.fn().mockReturnValue({\n play: jest.fn(),\n cancel: jest.fn(),\n onFinish: jest.fn(),\n }),\n getScrubScene: jest.fn().mockReturnValue({}),\n getEasing: jest.fn().mockImplementation((v) => v),\n getAnimation: jest\n .fn()\n .mockImplementation((target, options, trigger, reducedMotion) => {\n return mock.getWebAnimation(target, options, trigger, {\n reducedMotion,\n });\n }),\n };\n\n return mock;\n});\n\n// Mock kuliso module\njest.mock('kuliso', () => ({\n Pointer: jest.fn().mockImplementation(() => ({\n start: jest.fn(),\n destroy: jest.fn(),\n })),\n}));\n\n// Mock fizban module\njest.mock('fizban', () => ({\n Scroll: jest.fn().mockImplementation(() => ({\n start: jest.fn(),\n end: jest.fn(),\n })),\n}));\n\ndescribe('interact', () => {\n let element: IInteractElement;\n let mockConfig: InteractConfig;\n const getMockConfig: () => InteractConfig = () => ({\n interactions: [\n {\n trigger: 'viewEnter',\n key: 'logo-entrance',\n params: {\n threshold: 0.2,\n },\n effects: [\n {\n key: 'logo-entrance',\n effectId: 'logo-arc-in',\n },\n {\n key: 'logo-click',\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'pageVisible',\n key: 'logo-loop',\n effects: [\n {\n key: 'logo-loop',\n effectId: 'logo-poke',\n },\n ],\n },\n {\n trigger: 'animationEnd',\n key: 'logo-animation-end',\n params: {\n effectId: 'logo-arc-in',\n },\n effects: [\n {\n key: 'logo-animation-end',\n effectId: 'logo-poke',\n },\n ],\n },\n {\n trigger: 'pointerMove',\n key: 'logo-mouse',\n params: {\n hitArea: 'root',\n },\n effects: [\n {\n key: 'logo-mouse',\n effectId: 'logo-track-mouse',\n },\n ],\n },\n {\n trigger: 'click',\n key: 'logo-click',\n params: {\n type: 'alternate',\n },\n effects: [\n {\n key: 'logo-click',\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'click',\n key: 'logo-click',\n params: {\n method: 'toggle',\n },\n effects: [\n {\n key: 'logo-click',\n effectId: 'logo-transition-hover',\n },\n ],\n },\n {\n trigger: 'hover',\n key: 'logo-hover',\n params: {\n type: 'alternate',\n },\n effects: [\n {\n key: 'logo-hover',\n effectId: 'logo-arc-in',\n },\n {\n key: 'logo-hover',\n effectId: 'logo-arc-in',\n namedEffect: {\n type: 'ArcIn',\n direction: 'left',\n power: 'hard',\n } as NamedEffect,\n },\n ],\n },\n {\n trigger: 'hover',\n key: 'logo-hover',\n params: {\n method: 'toggle',\n },\n effects: [\n {\n key: 'logo-hover',\n effectId: 'logo-transition-hover',\n },\n ],\n },\n {\n trigger: 'viewProgress',\n key: 'logo-scroll',\n effects: [\n {\n key: 'logo-scroll',\n effectId: 'logo-fade-scroll',\n },\n ],\n },\n {\n trigger: 'click',\n key: 'logo-click-container',\n listContainer: '#logo-list',\n effects: [\n {\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'viewEnter',\n key: 'logo-view-container',\n effects: [\n {\n listContainer: '#logo-list',\n effectId: 'logo-bounce',\n },\n ],\n },\n {\n trigger: 'viewProgress',\n key: 'logo-scroll-container',\n listContainer: '#logo-scroll-list',\n effects: [\n {\n listContainer: '#logo-scroll-list',\n effectId: 'logo-fade-scroll',\n },\n ],\n },\n {\n trigger: 'viewProgress',\n key: 'logo-scroll-container',\n effects: [\n {\n key: 'logo-scroll-items',\n listContainer: '#logo-scroll-list',\n effectId: 'logo-fade-scroll',\n },\n ],\n },\n ],\n effects: {\n 'logo-arc-in': {\n namedEffect: {\n type: 'ArcIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 1200,\n },\n 'logo-arc-in-with-target': {\n key: 'logo-hover',\n namedEffect: {\n type: 'ArcIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 1200,\n },\n 'logo-track-mouse': {\n namedEffect: {\n type: 'TrackMouse',\n distance: { value: 20, type: 'px' },\n axis: 'both',\n power: 'medium',\n } as NamedEffect,\n transitionDuration: 300,\n transitionEasing: 'easeOut',\n centeredToTarget: true,\n },\n 'logo-bounce': {\n namedEffect: {\n type: 'BounceIn',\n power: 'hard',\n direction: 'center',\n distanceFactor: 1.2,\n } as NamedEffect,\n duration: 500,\n },\n 'logo-fade-scroll': {\n namedEffect: {\n type: 'FadeScroll',\n range: 'in',\n opacity: 0,\n } as NamedEffect,\n rangeStart: {\n name: 'contain',\n offset: { value: -10, type: 'percentage' },\n },\n rangeEnd: {\n name: 'contain',\n offset: { value: 110, type: 'percentage' },\n },\n },\n 'logo-transition-hover': {\n transition: {\n duration: 300,\n styleProperties: [{ name: 'opacity', value: '0' }],\n },\n },\n 'logo-poke': {\n namedEffect: {\n type: 'Poke',\n direction: 'left',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n beforeEach(() => {\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n // Mock Web Animations API\n (window as any).KeyframeEffect = class KeyframeEffect {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n constructor(element: Element | null, keyframes: any[], options: any) {\n return { element, keyframes, options };\n }\n };\n\n // Mock ViewTimeline\n (window as any).ViewTimeline = class ViewTimeline {\n constructor(options: any) {\n return { ...options };\n }\n };\n\n // Mock Animation\n (window as any).Animation = class Animation {\n constructor(effect: any, timeline: any) {\n return { effect, timeline, play: jest.fn() };\n }\n };\n\n // Mock IntersectionObserver\n (window as any).IntersectionObserver = class IntersectionObserver {\n constructor(callback: any, options: any) {\n return { callback, options, observe: jest.fn(), unobserve: jest.fn() };\n }\n };\n\n // Mock CSSStyleSheet\n (window as any).CSSStyleSheet = class CSSStyleSheet {\n constructor(_: string) {\n return { replace: jest.fn(), insertRule: jest.fn() };\n }\n };\n\n // Mock PointerEvent (not available in JSDOM)\n (window as any).PointerEvent = class PointerEvent extends MouseEvent {\n pointerType: string;\n constructor(type: string, params: PointerEventInit = {}) {\n super(type, params);\n this.pointerType = params.pointerType || '';\n }\n };\n\n // Mock adoptedStyleSheets\n if (!document.adoptedStyleSheets) {\n document.adoptedStyleSheets = [];\n }\n\n // Mock matchMedia for condition testing\n mockMatchMedia();\n });\n\n function mockMatchMedia(matchingQueries: string[] = []) {\n const queryRule = `(${matchingQueries.join(') and (')})`;\n const mockMQL = (query: string) => {\n return {\n matches: queryRule === query,\n media: query,\n onchange: null,\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n };\n };\n\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(mockMQL),\n });\n }\n\n function createCascadingTestConfig(\n conditions: Record<string, any> = {},\n matchingConditions: string[] = [],\n ): InteractConfig {\n mockMatchMedia(matchingConditions);\n\n return {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n mobile: {\n type: 'media',\n predicate: 'max-width: 767px',\n },\n tablet: {\n type: 'media',\n predicate: '(min-width: 768px) and (max-width: 1023px)',\n },\n ...conditions,\n },\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n },\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n conditions: ['desktop'],\n namedEffect: {\n type: 'SlideIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 800,\n },\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n conditions: ['mobile'],\n namedEffect: {\n type: 'BounceIn',\n direction: 'center',\n power: 'hard',\n } as NamedEffect,\n duration: 600,\n },\n ],\n },\n ],\n effects: {\n 'default-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n }\n\n afterEach(() => {\n jest.clearAllMocks();\n // Clear Interact instances to ensure test isolation\n Interact.destroy();\n // Reset static flags to default\n Interact.forceReducedMotion = false;\n Interact.allowA11yTriggers = false;\n });\n\n describe('init Interact instance', () => {\n it('should initialize with valid config', () => {\n Interact.create({} as InteractConfig);\n expect(customElements.get('interact-element')).toBeDefined();\n });\n });\n\n describe('destroy Interact instance', () => {\n it('should clear an instance entire cache', () => {\n const instance = Interact.create(getMockConfig());\n\n element = document.createElement('interact-element') as IInteractElement;\n element.dataset.interactKey = 'logo-entrance';\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-entrance');\n\n expect(Object.keys(instance.dataCache.interactions).length).toBe(11);\n expect(instance.elements.size).toBe(1);\n expect(Interact.instances.length).toBe(1);\n\n instance.destroy();\n\n expect(Object.keys(instance.dataCache.interactions).length).toBe(0);\n expect(instance.elements.size).toBe(0);\n expect(Interact.instances.length).toBe(0);\n expect(Interact.elementCache.size).toBe(0);\n });\n });\n\n describe('destroy Interact', () => {\n it('should clear all instances', () => {\n Interact.create(getMockConfig());\n Interact.create(getMockConfig());\n\n expect(Interact.instances.length).toBe(2);\n\n Interact.destroy();\n\n expect(Interact.instances.length).toBe(0);\n });\n\n it('should clear all elements from cache', () => {\n Interact.create(getMockConfig());\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-hover');\n\n expect(Interact.elementCache.size).toBeGreaterThan(0);\n\n Interact.destroy();\n\n expect(Interact.elementCache.size).toBe(0);\n });\n\n it('should call disconnect on all cached elements', () => {\n Interact.create(getMockConfig());\n\n const element1 = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div1 = document.createElement('div');\n element1.append(div1);\n\n const element2 = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div2 = document.createElement('div');\n element2.append(div2);\n\n add(element1, 'logo-hover');\n add(element2, 'logo-click');\n\n const disconnectSpy1 = jest.spyOn(element1, 'disconnect');\n const disconnectSpy2 = jest.spyOn(element2, 'disconnect');\n\n Interact.destroy();\n\n expect(disconnectSpy1).toHaveBeenCalled();\n expect(disconnectSpy2).toHaveBeenCalled();\n });\n\n it('should clean up interactions after destroy', () => {\n Interact.create(getMockConfig());\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-click');\n\n Interact.destroy();\n\n // After destroy, getInstance should return undefined\n expect(Interact.getInstance('logo-click')).toBeUndefined();\n\n // Re-create instance and verify it works independently\n Interact.create(getMockConfig());\n const newElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const newDiv = document.createElement('div');\n newElement.append(newDiv);\n\n const newAddEventListenerSpy = jest.spyOn(newDiv, 'addEventListener');\n add(newElement, 'logo-click');\n\n expect(newAddEventListenerSpy).toHaveBeenCalled();\n expect(Interact.getInstance('logo-click')).toBeDefined();\n });\n\n // TODO: fix this test - when adding this test it causes 2 other tests to fail\n // it('should remove event listeners and styles when disconnect is called', () => {\n // Interact.create(mockConfig);\n\n // element = document.createElement(\n // 'interact-element',\n // ) as IInteractElement;\n // element.dataset.interactKey = 'logo-click';\n // const div = document.createElement('div');\n // element.append(div);\n\n // add(element, 'logo-click');\n\n // const removeEventListenerSpy = jest.spyOn(div, 'removeEventListener');\n\n // Interact.destroy();\n\n // expect(removeEventListenerSpy).toHaveBeenCalled();\n // expect(removeEventListenerSpy).toHaveBeenCalledWith(\n // 'click',\n // expect.any(Function),\n // );\n // });\n });\n\n describe('reduced motion', () => {\n it('should pass reducedMotion=true to getWebAnimation when forceReducedMotion is true', () => {\n const { getWebAnimation } = require('@wix/motion');\n Interact.forceReducedMotion = true;\n Interact.create({\n interactions: [\n {\n trigger: 'hover',\n key: 'logo-hover',\n effects: [\n {\n key: 'logo-hover',\n effectId: 'logo-arc-in',\n },\n ],\n },\n ],\n effects: {\n 'logo-arc-in': {\n namedEffect: {\n type: 'ArcIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 1200,\n },\n },\n });\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-hover');\n\n expect(getWebAnimation).toHaveBeenCalledWith(\n div,\n expect.any(Object),\n undefined,\n { reducedMotion: true },\n );\n\n Interact.forceReducedMotion = false;\n\n Interact.destroy();\n });\n });\n\n describe('add interaction', () => {\n beforeEach(() => {\n mockConfig = getMockConfig();\n Interact.create(mockConfig);\n });\n afterEach(() => {\n Interact.destroy();\n jest.clearAllMocks();\n });\n\n describe('hover', () => {\n it('should add handler for hover trigger with alternate type', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n expect(getWebAnimation).toHaveBeenCalledTimes(0);\n\n add(element, 'logo-hover');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(4);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseleave',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n div,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'ArcIn',\n direction: 'left',\n power: 'hard',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('click', () => {\n it('should add handler for click trigger', () => {\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'logo-click');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(2);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n });\n });\n\n describe('viewEnter', () => {\n it('should add handler for viewEnter trigger', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-entrance');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should add handler for viewEnter trigger when target is added before source', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n div.id = 'logo-entrance';\n element.dataset.interactKey = 'logo-entrance';\n element.append(div);\n\n const elementClick = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const divClick = document.createElement('div');\n divClick.id = 'logo-click';\n elementClick.dataset.interactKey = 'logo-click';\n elementClick.append(divClick);\n\n add(elementClick, 'logo-click');\n add(element, 'logo-entrance');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(3);\n expect(getWebAnimation.mock.calls[0][0]).toBe(divClick);\n expect(getWebAnimation.mock.calls[1][0]).toBe(divClick);\n expect(getWebAnimation.mock.calls[2][0]).toBe(div);\n expect(getWebAnimation.mock.calls[0][3]).toMatchObject({\n reducedMotion: false,\n });\n expect(getWebAnimation.mock.calls[1][3]).toMatchObject({\n reducedMotion: false,\n });\n expect(getWebAnimation.mock.calls[2][3]).toMatchObject({\n reducedMotion: false,\n });\n });\n });\n\n describe('pageVisible', () => {\n it('should add handler for pageVisible trigger', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-loop');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('animationEnd', () => {\n it('should add handler for animationEnd trigger', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-animation-end');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('null animation handling', () => {\n it('should not add click handler when getAnimation returns null', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'click',\n key: 'null-click-test',\n effects: [{ effectId: 'null-test-effect' }],\n },\n ],\n effects: {\n 'null-test-effect': {\n namedEffect: { type: 'FadeIn' } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'null-click-test');\n\n expect(addEventListenerSpy).not.toHaveBeenCalled();\n });\n\n it('should not add hover handler when getAnimation returns null', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'hover',\n key: 'null-hover-test',\n effects: [{ effectId: 'null-test-effect' }],\n },\n ],\n effects: {\n 'null-test-effect': {\n namedEffect: { type: 'FadeIn' } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'null-hover-test');\n\n expect(addEventListenerSpy).not.toHaveBeenCalled();\n });\n\n it('should not add animationEnd handler when getAnimation returns null', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'animationEnd',\n key: 'null-animationend-test',\n params: { effectId: 'trigger-effect' },\n effects: [{ effectId: 'null-test-effect' }],\n },\n ],\n effects: {\n 'null-test-effect': {\n namedEffect: { type: 'FadeIn' } as NamedEffect,\n duration: 500,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(element, 'null-animationend-test');\n\n expect(addEventListenerSpy).not.toHaveBeenCalled();\n });\n\n it('should not add viewProgress handler when getWebAnimation returns null (ViewTimeline)', () => {\n Interact.destroy();\n const { getWebAnimation } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'viewProgress',\n key: 'null-viewprogress-test',\n effects: [{ effectId: 'null-scroll-effect' }],\n },\n ],\n effects: {\n 'null-scroll-effect': {\n namedEffect: {\n type: 'FadeScroll',\n range: 'in',\n opacity: 0,\n } as NamedEffect,\n },\n },\n });\n\n getWebAnimation.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'null-viewprogress-test');\n\n // getWebAnimation should have been called\n expect(getWebAnimation).toHaveBeenCalled();\n });\n\n it('should not add viewProgress handler when getScrubScene returns null (polyfill)', () => {\n // Remove ViewTimeline support to use polyfill path\n delete (window as any).ViewTimeline;\n\n Interact.destroy();\n const { getScrubScene } = require('@wix/motion');\n\n Interact.create({\n interactions: [\n {\n trigger: 'viewProgress',\n key: 'null-viewprogress-polyfill-test',\n effects: [{ effectId: 'null-scroll-effect' }],\n },\n ],\n effects: {\n 'null-scroll-effect': {\n namedEffect: {\n type: 'FadeScroll',\n range: 'in',\n opacity: 0,\n } as NamedEffect,\n },\n },\n });\n\n getScrubScene.mockReturnValueOnce(null);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'null-viewprogress-polyfill-test');\n\n // getScrubScene should have been called\n expect(getScrubScene).toHaveBeenCalled();\n\n // Restore ViewTimeline\n (window as any).ViewTimeline = class ViewTimeline {\n constructor(options: any) {\n return { ...options };\n }\n };\n });\n });\n\n describe('pointerMove', () => {\n it('should add handler for pointerMove trigger', () => {\n const { getScrubScene } = require('@wix/motion');\n const { Pointer } = require('kuliso');\n const pointerInstance = {\n start: jest.fn(),\n destroy: jest.fn(),\n };\n Pointer.mockImplementation(() => pointerInstance);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-mouse');\n\n expect(getScrubScene).toHaveBeenCalledTimes(1);\n expect(getScrubScene).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-track-mouse'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'pointer-move',\n }),\n );\n expect(pointerInstance.start).toHaveBeenCalled();\n });\n });\n\n describe('viewProgress', () => {\n it('should add handler for viewProgress trigger with native ViewTimeline support', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-scroll');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n });\n\n it('should add handler for viewProgress trigger with fizban polyfill', () => {\n // Remove ViewTimeline support\n delete (window as any).ViewTimeline;\n const { getScrubScene } = require('@wix/motion');\n const { Scroll } = require('fizban');\n const scrollInstance = {\n start: jest.fn(),\n destroy: jest.fn(),\n };\n Scroll.mockImplementation(() => scrollInstance);\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-scroll');\n\n expect(getScrubScene).toHaveBeenCalledTimes(1);\n expect(getScrubScene).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n setTimeout(() => {\n expect(scrollInstance.start).toHaveBeenCalled();\n }, 0);\n });\n });\n\n describe('listContainer', () => {\n it('should add a handler per list item for click trigger with listContainer', () => {\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-list';\n div.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(li, 'addEventListener');\n const addEventListenerSpy2 = jest.spyOn(li2, 'addEventListener');\n\n add(element, 'logo-click-container');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy2).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n expect(addEventListenerSpy2).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n });\n\n it('should add a handler per list item for viewEnter trigger with listContainer in effect', () => {\n const { getWebAnimation } = require('@wix/motion');\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-list';\n div.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n\n add(element, 'logo-view-container');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(2);\n expect(getWebAnimation.mock.calls[0][0]).toBe(li);\n expect(getWebAnimation.mock.calls[1][0]).toBe(li2);\n });\n\n it('should add a handler per newly added list item for click trigger with listContainer', () => {\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-list';\n div.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n\n const addEventListenerSpy = jest.spyOn(li, 'addEventListener');\n const addEventListenerSpy2 = jest.spyOn(li2, 'addEventListener');\n\n add(element, 'logo-click-container');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy2).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n expect(addEventListenerSpy2).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n const li3 = document.createElement('li');\n ul.append(li3);\n const addEventListenerSpy3 = jest.spyOn(li3, 'addEventListener');\n\n addListItems(element, 'logo-click-container', '#logo-list', [li3]);\n\n expect(addEventListenerSpy3).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy3).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n });\n\n it('should add a handler per newly added list item for viewProgress trigger but not add same interaction twice', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const divTarget = document.createElement('div');\n const ul = document.createElement('ul');\n ul.id = 'logo-scroll-list';\n divTarget.append(ul);\n const li = document.createElement('li');\n const li2 = li.cloneNode(true);\n ul.append(li);\n ul.append(li2);\n element.append(div);\n targetElement.append(divTarget);\n\n add(element, 'logo-scroll-container');\n expect(getWebAnimation).toHaveBeenCalledTimes(0);\n\n add(targetElement, 'logo-scroll-items');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(2);\n expect(getWebAnimation).toHaveBeenCalledWith(\n li,\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n expect(getWebAnimation).toHaveBeenCalledWith(\n li2,\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n\n const li3 = document.createElement('li');\n ul.append(li3);\n\n addListItems(targetElement, 'logo-scroll-items', '#logo-scroll-list', [\n li3,\n ]);\n\n expect(getWebAnimation).toHaveBeenCalledTimes(3);\n expect(getWebAnimation).toHaveBeenCalledWith(\n li3,\n expect.objectContaining(\n effectToAnimationOptions(\n getMockConfig().effects['logo-fade-scroll'] as ScrubEffect,\n ),\n ),\n expect.objectContaining({\n trigger: 'view-progress',\n }),\n );\n });\n });\n });\n\n describe('remove interaction', () => {\n beforeEach(() => {\n Interact.create(getMockConfig());\n });\n afterEach(() => {\n Interact.destroy();\n });\n\n it('should remove event listeners', () => {\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n const removeEventListenerSpy = jest.spyOn(div, 'removeEventListener');\n\n add(element, 'logo-click');\n remove('logo-click');\n\n expect(removeEventListenerSpy).toHaveBeenCalledTimes(2);\n expect(removeEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n );\n });\n\n it('should do nothing if key does not exist', () => {\n expect(() => remove('non-existent-key')).not.toThrow();\n });\n\n it('should cleanup pointer effects', () => {\n const { Pointer } = require('kuliso');\n const pointerInstance = {\n start: jest.fn(),\n destroy: jest.fn(),\n };\n Pointer.mockImplementation(() => pointerInstance);\n\n element = document.createElement('interact-element') as IInteractElement;\n const div = document.createElement('div');\n element.append(div);\n\n add(element, 'logo-mouse');\n remove('logo-mouse');\n\n expect(pointerInstance.destroy).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('effect cascading logic', () => {\n describe('basic cascading behavior', () => {\n it('should apply only first matching effect for same target', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['min-width: 1024px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n const addEventListenerSpy = jest.spyOn(sourceDiv, 'addEventListener');\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n expect(addEventListenerSpy).toHaveBeenCalledTimes(1);\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.objectContaining({\n passive: true,\n }),\n );\n\n // Should create animation with desktop effect (first matching condition)\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n direction: 'right',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should apply default effect when no conditions match', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, []); // No matching conditions\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Should create animation with default effect\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'FadeIn',\n power: 'medium',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should apply mobile effect when mobile condition matches', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['max-width: 767px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Should create animation with mobile effect\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'BounceIn',\n direction: 'center',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('element addition order', () => {\n it('should work when source is added before target', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['min-width: 1024px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n // Add source first\n add(sourceElement, 'cascade-source');\n // Add target second\n add(targetElement, 'cascade-target');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should work when target is added before source', () => {\n const { getWebAnimation } = require('@wix/motion');\n const config = createCascadingTestConfig({}, ['min-width: 1024px']);\n\n Interact.create(config);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n // Add target first\n add(targetElement, 'cascade-target');\n // Add source second\n add(sourceElement, 'cascade-source');\n\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('complex cascading scenarios', () => {\n it('should handle multiple targets with different conditions', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const complexConfig: InteractConfig = {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n mobile: {\n type: 'media',\n predicate: 'max-width: 767px',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'multi-source-1',\n effects: [\n {\n key: 'cascade-target-1',\n effectId: 'desktop-effect',\n conditions: ['desktop'],\n },\n {\n key: 'cascade-target-2',\n effectId: 'mobile-effect',\n conditions: ['mobile'],\n },\n ],\n },\n ],\n effects: {\n 'desktop-effect': {\n namedEffect: {\n type: 'SlideIn',\n direction: 'right',\n power: 'medium',\n } as NamedEffect,\n duration: 800,\n },\n 'mobile-effect': {\n namedEffect: {\n type: 'BounceIn',\n direction: 'center',\n power: 'hard',\n } as NamedEffect,\n duration: 600,\n },\n },\n };\n\n mockMatchMedia(['min-width: 1024px']); // Only desktop matches\n Interact.create(complexConfig);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const target1Element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const target1Div = document.createElement('div');\n target1Element.append(target1Div);\n\n const target2Element = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const target2Div = document.createElement('div');\n target2Element.append(target2Div);\n\n add(sourceElement, 'multi-source-1');\n add(target1Element, 'cascade-target-1');\n add(target2Element, 'cascade-target-2');\n\n // Only desktop effect should be applied (mobile condition doesn't match)\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n target1Element.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'SlideIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n\n // Should not be called for mobile effect since condition doesn't match\n expect(getWebAnimation).not.toHaveBeenCalledWith(\n target2Element.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'BounceIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should handle effects with multiple conditions', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const multiConditionConfig: InteractConfig = {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n 'high-res': {\n type: 'media',\n predicate: 'min-resolution: 2dppx',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'premium-effect',\n },\n {\n key: 'cascade-target',\n effectId: 'premium-effect',\n conditions: ['desktop', 'high-res'],\n },\n ],\n },\n ],\n effects: {\n 'premium-effect': {\n namedEffect: {\n type: 'Poke',\n direction: 'left',\n power: 'hard',\n } as NamedEffect,\n duration: 1000,\n },\n },\n };\n\n // Both conditions match\n mockMatchMedia(['min-width: 1024px', 'min-resolution: 2dppx']);\n Interact.create(multiConditionConfig);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Premium effect should be applied since both conditions match\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'Poke',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('condition matching edge cases', () => {\n it('should handle missing conditions gracefully', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const configWithMissingCondition: InteractConfig = {\n conditions: {\n desktop: {\n type: 'media',\n predicate: 'min-width: 1024px',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n },\n {\n key: 'cascade-target',\n effectId: 'default-effect',\n conditions: ['nonexistent-condition'],\n },\n ],\n },\n ],\n effects: {\n 'default-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n mockMatchMedia(['min-width: 1024px']);\n Interact.create(configWithMissingCondition);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Should fall back to default effect since condition doesn't exist\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetElement.firstElementChild,\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'FadeIn',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should handle empty conditions array', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const configWithEmptyConditions: InteractConfig = {\n conditions: {},\n interactions: [\n {\n trigger: 'click',\n key: 'cascade-source',\n effects: [\n {\n key: 'cascade-target',\n effectId: 'always-applied-effect',\n conditions: [],\n },\n ],\n },\n ],\n effects: {\n 'always-applied-effect': {\n namedEffect: {\n type: 'Spin',\n direction: 'clockwise',\n power: 'medium',\n } as NamedEffect,\n duration: 1000,\n },\n },\n };\n\n mockMatchMedia([]);\n Interact.create(configWithEmptyConditions);\n\n const sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const sourceDiv = document.createElement('div');\n sourceElement.append(sourceDiv);\n\n const targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const targetDiv = document.createElement('div');\n targetElement.append(targetDiv);\n\n add(sourceElement, 'cascade-source');\n add(targetElement, 'cascade-target');\n\n // Effect should be applied since empty conditions array should always match\n expect(getWebAnimation).toHaveBeenCalledTimes(1);\n expect(getWebAnimation).toHaveBeenCalledWith(\n expect.any(HTMLElement),\n expect.objectContaining({\n namedEffect: expect.objectContaining({\n type: 'Spin',\n }),\n }),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n });\n\n describe('selector functionality', () => {\n let sourceElement: IInteractElement;\n let targetElement: IInteractElement;\n\n beforeEach(() => {\n // Create source element with multiple child elements\n sourceElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n sourceElement.innerHTML = `\n <div class=\"first-child\">First Child</div>\n <button class=\"trigger-button\">Click Me</button>\n <div class=\"other-element\">Other</div>\n <div class=\"list-container\">\n <div class=\"list-item\">Item 1</div>\n <div class=\"list-item\">Item 2</div>\n <div class=\"list-item\">Item 3</div>\n </div>\n `;\n\n // Create target element with multiple child elements\n targetElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n targetElement.innerHTML = `\n <div class=\"first-child\">Target First</div>\n <div class=\"animation-target\">Animation Target</div>\n <div class=\"overlay\">Overlay</div>\n <div class=\"nested\">\n <span class=\"deep-target\">Deep Target</span>\n </div>\n `;\n });\n\n describe('basic selector functionality', () => {\n it('should use selector instead of firstElementChild for source', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'selector-source',\n selector: '.trigger-button',\n trigger: 'click',\n effects: [\n {\n key: 'selector-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const triggerButton = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n const firstChild = sourceElement.querySelector(\n '.first-child',\n ) as HTMLElement;\n\n const triggerSpy = jest.spyOn(triggerButton, 'addEventListener');\n const firstChildSpy = jest.spyOn(firstChild, 'addEventListener');\n\n add(sourceElement, 'selector-source');\n add(targetElement, 'selector-target');\n\n // Should add event listener to the selected element, not firstElementChild\n expect(triggerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(firstChildSpy).not.toHaveBeenCalled();\n });\n\n it('should use selector instead of firstElementChild for target', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'selector-source',\n trigger: 'click',\n effects: [\n {\n key: 'selector-target',\n selector: '.animation-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'selector-source');\n add(targetElement, 'selector-target');\n\n const animationTarget = targetElement.querySelector(\n '.animation-target',\n ) as HTMLElement;\n\n // Should create animation on the selected element, not firstElementChild\n expect(getWebAnimation).toHaveBeenCalledWith(\n animationTarget,\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should fall back to firstElementChild when no selector is provided', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'fallback-source',\n trigger: 'click',\n effects: [\n {\n key: 'fallback-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const firstChild = sourceElement.querySelector(\n '.first-child',\n ) as HTMLElement;\n const firstChildSpy = jest.spyOn(firstChild, 'addEventListener');\n\n add(sourceElement, 'fallback-source');\n add(targetElement, 'fallback-target');\n\n // Should fall back to firstElementChild\n expect(firstChildSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('selector with listContainer', () => {\n it('should use selector within listContainer items', () => {\n const config: InteractConfig = {\n effects: {\n 'list-effect': {\n keyframeEffect: {\n name: 'list-test',\n keyframes: [\n { transform: 'scale(1)' },\n { transform: 'scale(1.1)' },\n ],\n },\n duration: 200,\n },\n },\n interactions: [\n {\n key: 'list-source',\n listContainer: '.list-container',\n selector: '.list-item',\n trigger: 'hover',\n effects: [\n {\n listContainer: '.list-container',\n selector: '.list-item',\n effectId: 'list-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spies before adding interactions\n const listItems = Array.from(\n sourceElement.querySelectorAll('.list-item'),\n ) as HTMLElement[];\n\n const spies = listItems.map((item) =>\n jest.spyOn(item, 'addEventListener'),\n );\n\n add(sourceElement, 'list-source');\n\n // Should add event listeners to each list item\n spies.forEach((spy) => {\n expect(spy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n it('should handle listContainer without selector (all children)', () => {\n const config: InteractConfig = {\n effects: {\n 'container-effect': {\n keyframeEffect: {\n name: 'container-test',\n keyframes: [{ opacity: '0.5' }, { opacity: '1' }],\n },\n duration: 150,\n },\n },\n interactions: [\n {\n key: 'container-source',\n listContainer: '.list-container',\n trigger: 'click',\n effects: [\n {\n listContainer: '.list-container',\n effectId: 'container-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spies before adding interactions\n const containerChildren = Array.from(\n sourceElement.querySelector('.list-container')?.children || [],\n ) as HTMLElement[];\n\n const spies = containerChildren.map((child) =>\n jest.spyOn(child, 'addEventListener'),\n );\n\n add(sourceElement, 'container-source');\n\n // Should add event listeners to all children of the container\n spies.forEach((spy) => {\n expect(spy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n });\n\n describe('selector error handling', () => {\n let consoleSpy: jest.SpyInstance;\n\n beforeEach(() => {\n consoleSpy = jest.spyOn(console, 'warn').mockImplementation();\n });\n\n afterEach(() => {\n consoleSpy.mockRestore();\n });\n\n it('should warn when selector does not match any elements', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'invalid-source',\n selector: '.non-existent-element',\n trigger: 'click',\n effects: [\n {\n key: 'invalid-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'invalid-source');\n add(targetElement, 'invalid-target');\n\n expect(consoleSpy).toHaveBeenCalledWith(\n 'Interact: No element found for selector \".non-existent-element\"',\n );\n });\n\n it('should warn when listContainer selector does not match', () => {\n const config: InteractConfig = {\n effects: {\n 'test-effect': {\n keyframeEffect: {\n name: 'test',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'invalid-container-source',\n listContainer: '.non-existent-container',\n trigger: 'click',\n effects: [\n {\n key: 'invalid-container-target',\n effectId: 'test-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'invalid-container-source');\n add(targetElement, 'invalid-container-target');\n\n expect(consoleSpy).toHaveBeenCalledWith(\n 'Interact: No container found for list container \".non-existent-container\"',\n );\n });\n\n it('should gracefully handle invalid selectors without breaking interactions', () => {\n const config: InteractConfig = {\n effects: {\n 'valid-effect': {\n keyframeEffect: {\n name: 'valid',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'mixed-source',\n selector: '.non-existent',\n trigger: 'click',\n effects: [\n {\n key: 'mixed-target',\n effectId: 'valid-effect',\n },\n ],\n },\n {\n key: 'valid-source',\n selector: '.trigger-button',\n trigger: 'click',\n effects: [\n {\n key: 'valid-target',\n effectId: 'valid-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spy before adding interactions\n const triggerButton = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n const spy = jest.spyOn(triggerButton, 'addEventListener');\n\n // This should not throw and should allow other interactions to work\n expect(() => {\n add(sourceElement, 'mixed-source');\n add(sourceElement, 'valid-source');\n add(targetElement, 'mixed-target');\n add(targetElement, 'valid-target');\n }).not.toThrow();\n\n // Valid interaction should still work\n expect(spy).toHaveBeenCalled();\n });\n });\n\n describe('complex selector scenarios', () => {\n it('should handle nested selectors', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const config: InteractConfig = {\n effects: {\n 'nested-effect': {\n keyframeEffect: {\n name: 'nested',\n keyframes: [{ color: 'black' }, { color: 'blue' }],\n },\n duration: 200,\n },\n },\n interactions: [\n {\n key: 'nested-source',\n selector: '.other-element',\n trigger: 'click',\n effects: [\n {\n key: 'nested-target',\n selector: '.nested .deep-target',\n effectId: 'nested-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const addEventListenerSpy = jest.spyOn(\n sourceElement.querySelector('.other-element') as HTMLElement,\n 'addEventListener',\n );\n\n add(sourceElement, 'nested-source');\n add(targetElement, 'nested-target');\n\n const deepTarget = targetElement.querySelector(\n '.nested .deep-target',\n ) as HTMLElement;\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n\n expect(getWebAnimation).toHaveBeenCalledWith(\n deepTarget,\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n\n it('should handle attribute selectors', () => {\n // Add data attributes to test elements\n const buttonWithData = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n buttonWithData.setAttribute('data-interactive', 'true');\n buttonWithData.setAttribute('data-category', 'primary');\n\n const config: InteractConfig = {\n effects: {\n 'attr-effect': {\n keyframeEffect: {\n name: 'attr',\n keyframes: [\n { backgroundColor: 'white' },\n { backgroundColor: 'lightblue' },\n ],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'attr-source',\n selector: '[data-interactive=\"true\"][data-category=\"primary\"]',\n trigger: 'click',\n effects: [\n {\n key: 'attr-target',\n selector: '[class*=\"animation\"]',\n effectId: 'attr-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n // Set up spy before adding interactions\n const spy = jest.spyOn(buttonWithData, 'addEventListener');\n\n add(sourceElement, 'attr-source');\n add(targetElement, 'attr-target');\n\n expect(spy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('selector inheritance and priority', () => {\n it('should not inherit selector from interaction to effect', () => {\n const { getWebAnimation } = require('@wix/motion');\n\n const config: InteractConfig = {\n effects: {\n 'inherit-effect': {\n keyframeEffect: {\n name: 'inherit',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'inherit-source',\n selector: '.trigger-button', // Interaction has selector\n trigger: 'click',\n effects: [\n {\n key: 'inherit-target',\n // Effect has no selector - should use firstElementChild, not inherit\n effectId: 'inherit-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n add(sourceElement, 'inherit-source');\n add(targetElement, 'inherit-target');\n\n // Effect should target firstElementChild, not the interaction's selector\n const targetFirstChild = targetElement.firstElementChild as HTMLElement;\n\n expect(getWebAnimation).toHaveBeenCalledWith(\n targetFirstChild,\n expect.any(Object),\n undefined,\n { reducedMotion: false },\n );\n });\n });\n\n describe('selector cleanup', () => {\n it('should clean up selector-based interactions on remove', () => {\n const config: InteractConfig = {\n effects: {\n 'cleanup-effect': {\n keyframeEffect: {\n name: 'cleanup',\n keyframes: [{ opacity: '0' }, { opacity: '1' }],\n },\n duration: 300,\n },\n },\n interactions: [\n {\n key: 'cleanup-source',\n selector: '.trigger-button',\n trigger: 'click',\n effects: [\n {\n key: 'cleanup-target',\n selector: '.animation-target',\n effectId: 'cleanup-effect',\n },\n ],\n },\n ],\n };\n\n Interact.create(config);\n\n const triggerButton = sourceElement.querySelector(\n '.trigger-button',\n ) as HTMLElement;\n const removeEventListenerSpy = jest.spyOn(\n triggerButton,\n 'removeEventListener',\n );\n\n add(sourceElement, 'cleanup-source');\n add(targetElement, 'cleanup-target');\n\n remove('cleanup-source');\n\n // Should remove event listeners from the selected element\n expect(removeEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n );\n });\n });\n });\n\n describe('element caching', () => {\n it('should cache element in elementCache even when no instance was found for it', () => {\n const keyWithoutInstance = 'key-without-instance';\n add(element, keyWithoutInstance);\n\n expect(Interact.elementCache.has(keyWithoutInstance)).toBe(true);\n expect(Interact.elementCache.get(keyWithoutInstance)).toBe(element);\n });\n });\n\n describe('setup', () => {\n afterEach(() => {\n Interact.setup({\n scrollOptionsGetter: () => ({}),\n pointerOptionsGetter: () => ({}),\n });\n });\n\n it('should register scroll options getter', () => {\n const scrollOptionsGetter = jest.fn().mockReturnValue({});\n const spy = jest.spyOn(\n TRIGGER_TO_HANDLER_MODULE_MAP.viewProgress,\n 'registerOptionsGetter',\n );\n\n Interact.setup({ scrollOptionsGetter });\n\n expect(spy).toHaveBeenCalledWith(scrollOptionsGetter);\n });\n\n it('should register pointer options getter', () => {\n const pointerOptionsGetter = jest.fn().mockReturnValue({});\n const spy = jest.spyOn(\n TRIGGER_TO_HANDLER_MODULE_MAP.pointerMove,\n 'registerOptionsGetter',\n );\n\n Interact.setup({ pointerOptionsGetter });\n\n expect(spy).toHaveBeenCalledWith(pointerOptionsGetter);\n });\n });\n\n describe('a11y - accessible triggers', () => {\n let a11yElement: IInteractElement;\n\n function getA11yConfig(trigger: TriggerType, key: string): InteractConfig {\n return {\n interactions: [\n {\n trigger,\n key,\n effects: [{ effectId: 'test-effect' }],\n },\n ],\n effects: {\n 'test-effect': {\n namedEffect: { type: 'BounceIn', power: 'medium' } as NamedEffect,\n duration: 500,\n },\n },\n };\n }\n\n afterEach(() => {\n Interact.destroy();\n });\n\n describe('activate trigger', () => {\n it('should add both click and keydown listeners', () => {\n Interact.create(getA11yConfig('activate', 'activate-div'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'activate-div');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'keydown',\n expect.any(Function),\n expect.any(Object),\n );\n });\n\n it('should not double-invoke handler when Enter triggers both keydown and click', () => {\n const { getWebAnimation } = require('@wix/motion');\n const mockPlay = getWebAnimation().play;\n mockPlay.mockClear();\n\n Interact.create(getA11yConfig('activate', 'activate-handler-test'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const button = document.createElement('button');\n a11yElement.append(button);\n\n add(a11yElement, 'activate-handler-test');\n\n // Simulate browser behavior: Enter key triggers keydown AND synthesized click with no pointerType\n button.dispatchEvent(\n new KeyboardEvent('keydown', { code: 'Enter', bubbles: true }),\n );\n button.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n\n expect(mockPlay).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('interest trigger', () => {\n it('should add focusin listener alongside mouseenter', () => {\n Interact.create(getA11yConfig('interest', 'interest-test'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'interest-test');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'focusin',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('click trigger with allowA11yTriggers flag', () => {\n it('should NOT add keydown listener when flag is false', () => {\n Interact.create(getA11yConfig('click', 'click-no-flag'));\n Interact.setup({ allowA11yTriggers: false });\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'click-no-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).not.toHaveBeenCalledWith(\n 'keydown',\n expect.any(Function),\n expect.any(Object),\n );\n });\n\n it('should add keydown listener when flag is true', () => {\n Interact.setup({ allowA11yTriggers: true });\n Interact.create(getA11yConfig('click', 'click-with-flag'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'click-with-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'click',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'keydown',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n\n describe('hover trigger with allowA11yTriggers flag', () => {\n it('should NOT add focusin listener when flag is false', () => {\n Interact.setup({ allowA11yTriggers: false });\n Interact.create(getA11yConfig('hover', 'hover-no-flag'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'hover-no-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).not.toHaveBeenCalledWith(\n 'focusin',\n expect.any(Function),\n expect.any(Object),\n );\n });\n\n it('should add focusin listener when flag is true', () => {\n Interact.setup({ allowA11yTriggers: true });\n Interact.create(getA11yConfig('hover', 'hover-with-flag'));\n a11yElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n\n const div = document.createElement('div');\n a11yElement.append(div);\n\n const addEventListenerSpy = jest.spyOn(div, 'addEventListener');\n\n add(a11yElement, 'hover-with-flag');\n\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'mouseenter',\n expect.any(Function),\n expect.any(Object),\n );\n expect(addEventListenerSpy).toHaveBeenCalledWith(\n 'focusin',\n expect.any(Function),\n expect.any(Object),\n );\n });\n });\n });\n describe('selector condition type', () => {\n it('should pass selectorCondition to handler when condition type is selector', async () => {\n const config: InteractConfig = {\n conditions: {\n active: {\n type: 'selector',\n predicate: '.active',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'selector-test',\n effects: [\n {\n key: 'selector-test',\n effectId: 'test-effect',\n conditions: ['active'],\n },\n ],\n },\n ],\n effects: {\n 'test-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n Interact.create(config);\n\n const testElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n testElement.append(div);\n\n add(testElement, 'selector-test');\n\n // The handler should have received selectorCondition\n // We verify by checking the animation is created (condition doesn't block setup)\n const { getWebAnimation } = await import('@wix/motion');\n expect(getWebAnimation).toHaveBeenCalled();\n });\n\n it('should skip handler execution when element does not match selector condition', async () => {\n const { getWebAnimation } = await import('@wix/motion');\n const mockAnimation = {\n play: jest.fn(),\n cancel: jest.fn(),\n onFinish: jest.fn(),\n reverse: jest.fn(),\n progress: jest.fn(),\n playState: 'idle',\n isCSS: false,\n };\n (getWebAnimation as any).mockReturnValue(mockAnimation);\n\n const config: InteractConfig = {\n conditions: {\n active: {\n type: 'selector',\n predicate: '.active',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'selector-skip-test',\n effects: [\n {\n key: 'selector-skip-test',\n effectId: 'skip-effect',\n conditions: ['active'],\n },\n ],\n },\n ],\n effects: {\n 'skip-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n Interact.create(config);\n\n const testElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n // div does NOT have .active class\n testElement.append(div);\n\n add(testElement, 'selector-skip-test');\n\n // Simulate click - animation should NOT play because element doesn't match .active\n // Must use PointerEvent with pointerType because click handler filters by pointerType\n div.dispatchEvent(\n new PointerEvent('click', { bubbles: true, pointerType: 'mouse' }),\n );\n\n expect(mockAnimation.play).not.toHaveBeenCalled();\n });\n\n it('should execute handler when element matches selector condition', async () => {\n const { getWebAnimation } = await import('@wix/motion');\n const mockAnimation = {\n play: jest.fn(),\n cancel: jest.fn(),\n onFinish: jest.fn(),\n reverse: jest.fn(),\n progress: jest.fn(),\n playState: 'idle',\n isCSS: false,\n };\n (getWebAnimation as any).mockReturnValue(mockAnimation);\n\n const config: InteractConfig = {\n conditions: {\n active: {\n type: 'selector',\n predicate: '.active',\n },\n },\n interactions: [\n {\n trigger: 'click',\n key: 'selector-match-test',\n effects: [\n {\n key: 'selector-match-test',\n effectId: 'match-effect',\n conditions: ['active'],\n },\n ],\n },\n ],\n effects: {\n 'match-effect': {\n namedEffect: {\n type: 'FadeIn',\n power: 'medium',\n } as NamedEffect,\n duration: 500,\n },\n },\n };\n\n Interact.create(config);\n\n const testElement = document.createElement(\n 'interact-element',\n ) as IInteractElement;\n const div = document.createElement('div');\n div.classList.add('active'); // div HAS .active class\n testElement.append(div);\n\n add(testElement, 'selector-match-test');\n\n // Simulate click - animation SHOULD play because element matches .active\n // Must use PointerEvent with pointerType because click handler filters by pointerType\n div.dispatchEvent(\n new PointerEvent('click', { bubbles: true, pointerType: 'mouse' }),\n );\n\n expect(mockAnimation.play).toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/types.js
CHANGED
package/dist/esm/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/interact",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.96.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "wow!Team",
|
|
6
6
|
"email": "wow-dev@wix.com"
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@babel/runtime": "^7.26.0",
|
|
35
|
-
"@wix/motion": "1.
|
|
35
|
+
"@wix/motion": "1.662.0",
|
|
36
36
|
"fastdom": "^1.0.12",
|
|
37
37
|
"fizban": "^0.7.0",
|
|
38
38
|
"kuliso": "^0.4.13"
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"wallaby": {
|
|
70
70
|
"autoDetect": true
|
|
71
71
|
},
|
|
72
|
-
"falconPackageHash": "
|
|
72
|
+
"falconPackageHash": "c6cf587477df954403e36d6e61bc9ed215c9621e7dcfd7b5d954e4a0"
|
|
73
73
|
}
|