use-scroll-animate 8.7.0 → 8.9.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.
- package/CHANGELOG.md +31 -0
- package/bin/usa-codemod-9.mjs +71 -0
- package/dist/components/effects.cjs +25 -2
- package/dist/components/effects.cjs.map +1 -1
- package/dist/components/effects.d.cts +13 -2
- package/dist/components/effects.d.ts +13 -2
- package/dist/components/effects.js +23 -4
- package/dist/components/effects.js.map +1 -1
- package/dist/components/fx-spatial.cjs +100 -0
- package/dist/components/fx-spatial.cjs.map +1 -0
- package/dist/components/fx-spatial.d.cts +68 -0
- package/dist/components/fx-spatial.d.ts +68 -0
- package/dist/components/fx-spatial.js +95 -0
- package/dist/components/fx-spatial.js.map +1 -0
- package/dist/components/fx2.cjs +7 -0
- package/dist/components/fx2.cjs.map +1 -1
- package/dist/components/fx2.d.cts +25 -1
- package/dist/components/fx2.d.ts +25 -1
- package/dist/components/fx2.js +5 -1
- package/dist/components/fx2.js.map +1 -1
- package/dist/components/widgets.cjs +642 -182
- package/dist/components/widgets.cjs.map +1 -1
- package/dist/components/widgets.d.cts +90 -2
- package/dist/components/widgets.d.ts +90 -2
- package/dist/components/widgets.js +636 -183
- package/dist/components/widgets.js.map +1 -1
- package/dist/components.umd.js +2 -2
- package/dist/components.umd.js.map +1 -1
- package/dist/widgets.umd.js +1 -1
- package/dist/widgets.umd.js.map +1 -1
- package/docs/ROADMAP.md +2 -2
- package/docs/components.md +39 -0
- package/docs/deprecations.md +4 -0
- package/docs/upgrading-9.md +27 -0
- package/package.json +23 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.cjs","sources":["../../src/components/effects/cards-click.ts","../../src/components/effects/physics.ts","../../src/components/effects/page.ts","../../src/components/effects/cursor.ts","../../src/components/effects/micro.ts","../../src/components/effects/themes.ts","../../src/components/effects/index.ts"],"sourcesContent":["/**\n * 5.1 — card & click effects 2.0, registered through `registerEffect()`.\n * Card: `holo` (holographic foil following the pointer), `glare-sweep`,\n * `book-open`, `card-fan`, `topple`, `float-tilt`. Click: `shockwave`,\n * `ink-splash`, `star-burst`, `jelly-press`, `ring-ripple`, `emoji-rain`.\n */\nimport type { EffectDefinition } from '../fx/registry';\nimport { origin, spawn, overlay, PALETTE, rand, all } from './shared';\n\nexport const CARD_FX: EffectDefinition[] = [\n {\n name: 'holo',\n kind: 'card',\n description: 'Holographic foil: a rainbow sheen and sparkle that follow the pointer (persistent; bind with trigger=\"load\").',\n reduced: 'run',\n defaults: { strength: 0.55 },\n run: (el, o: any, ctx) => {\n const [layer, remove] = overlay(el, `mix-blend-mode:color-dodge;opacity:${o.strength};background:linear-gradient(115deg,transparent 20%,#ff8bd855 35%,#8bf3ff55 45%,#fff58b55 55%,transparent 70%),repeating-linear-gradient(55deg,#ffffff10 0 2px,transparent 2px 6px);background-size:250% 250%,100% 100%;background-position:50% 50%;transition:background-position .2s ease-out`);\n if (ctx.reduced) return remove;\n const move = (e: PointerEvent) => {\n const r = el.getBoundingClientRect();\n const x = ((e.clientX - r.left) / (r.width || 1)) * 100;\n const y = ((e.clientY - r.top) / (r.height || 1)) * 100;\n layer.style.backgroundPosition = `${x}% ${y}%, 0 0`;\n el.style.transform = `perspective(700px) rotateY(${(x - 50) / 8}deg) rotateX(${(50 - y) / 8}deg)`;\n };\n const leave = () => {\n layer.style.backgroundPosition = '50% 50%, 0 0';\n el.style.transform = '';\n };\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerleave', leave);\n return () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n leave();\n remove();\n };\n },\n },\n {\n name: 'glare-sweep',\n kind: 'card',\n description: 'A diagonal light streak sweeps across the card once.',\n defaults: { duration: 900, color: 'rgba(255,255,255,.55)' },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const [g, remove] = overlay(el, `overflow:hidden;background:linear-gradient(105deg,transparent 35%,${o.color} 50%,transparent 65%);background-size:250% 100%`);\n const a = ctx.animate(g, [{ backgroundPosition: '150% 0' }, { backgroundPosition: '-50% 0' }], { duration: o.duration, easing: 'ease-in-out' });\n if (a) a.finished.then(remove, remove);\n else remove();\n return a;\n },\n },\n {\n name: 'book-open',\n kind: 'card',\n description: 'The card opens like a book cover around its left edge, peeks and closes.',\n defaults: { angle: 35, duration: 1100 },\n run: (el, o: any, ctx) => {\n el.style.transformOrigin = 'left center';\n return ctx.animate(el, [{ transform: 'perspective(900px) rotateY(0)' }, { transform: `perspective(900px) rotateY(-${o.angle}deg)`, offset: 0.45 }, { transform: 'perspective(900px) rotateY(0)' }], { duration: o.duration, easing: 'cubic-bezier(0.34, 1.3, 0.64, 1)' });\n },\n },\n {\n name: 'card-fan',\n kind: 'card',\n description: 'The element’s children fan out like a hand of cards, then gather.',\n defaults: { spread: 14, duration: 900 },\n run: (el, o: any, ctx) => {\n const kids = Array.from(el.children) as HTMLElement[];\n const mid = (kids.length - 1) / 2;\n return all(kids.map((k, i) => ctx.animate(k, [{ transform: 'none' }, { transform: `translateX(${(i - mid) * o.spread}px) rotate(${(i - mid) * (o.spread / 2)}deg)`, offset: 0.5 }, { transform: 'none' }], { duration: o.duration, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)' })));\n },\n },\n {\n name: 'topple',\n kind: 'card',\n description: 'Tips backwards on its bottom edge and springs upright.',\n defaults: { duration: 1000 },\n run: (el, o: any, ctx) => {\n el.style.transformOrigin = 'bottom center';\n return ctx.animate(el, [{ transform: 'perspective(800px) rotateX(0)' }, { transform: 'perspective(800px) rotateX(55deg)', offset: 0.35 }, { transform: 'perspective(800px) rotateX(-12deg)', offset: 0.6 }, { transform: 'perspective(800px) rotateX(5deg)', offset: 0.8 }, { transform: 'perspective(800px) rotateX(0)' }], { duration: o.duration, easing: 'ease-out' });\n },\n },\n {\n name: 'float-tilt',\n kind: 'loop',\n description: 'Idle floating with a slow 3D sway (loop; stops under reduced motion).',\n defaults: { duration: 4200, distance: 8 },\n run: (el, o: any, ctx) => {\n const a = ctx.animate(el, [{ transform: 'translateY(0) rotateX(0) rotateY(0)' }, { transform: `translateY(-${o.distance}px) rotateX(4deg) rotateY(-5deg)` }, { transform: 'translateY(0) rotateX(0) rotateY(0)' }], { duration: o.duration, iterations: Infinity, easing: 'ease-in-out' });\n return () => a?.cancel();\n },\n },\n];\n\nexport const CLICK_FX: EffectDefinition[] = [\n {\n name: 'shockwave',\n kind: 'click',\n description: 'Two expanding rings from the click point.',\n defaults: { color: '#7c5cff', size: 160, duration: 700 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all([0, 120].map((delay) => spawn(x, y, `width:${o.size}px;height:${o.size}px;margin:${-o.size / 2}px 0 0 ${-o.size / 2}px;border:3px solid ${o.color};border-radius:50%`, ctx, [{ transform: 'scale(0)', opacity: 0.9 }, { transform: 'scale(1)', opacity: 0 }], { duration: o.duration, delay, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' })));\n },\n },\n {\n name: 'ink-splash',\n kind: 'click',\n description: 'Ink blobs splatter from the click point and fade.',\n defaults: { count: 9, colors: PALETTE, duration: 800 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all(Array.from({ length: o.count }, (_, i) => {\n const s = rand(6, 22);\n const ang = rand(0, Math.PI * 2);\n const d = rand(20, 70);\n return spawn(x, y, `width:${s}px;height:${s}px;margin:${-s / 2}px 0 0 ${-s / 2}px;background:${o.colors[i % o.colors.length]};border-radius:${rand(40, 50)}% ${rand(50, 60)}% ${rand(40, 60)}% ${rand(45, 55)}%`, ctx, [{ transform: 'translate(0,0) scale(.3)', opacity: 1 }, { transform: `translate(${Math.cos(ang) * d}px,${Math.sin(ang) * d}px) scale(1)`, opacity: 0.9, offset: 0.5 }, { transform: `translate(${Math.cos(ang) * d}px,${Math.sin(ang) * d + 8}px) scale(1.1)`, opacity: 0 }], { duration: o.duration, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' });\n }));\n },\n },\n {\n name: 'star-burst',\n kind: 'click',\n description: 'Spinning stars burst outward.',\n defaults: { count: 10, colors: ['#facc15', '#fb923c', '#f472b6'], duration: 900 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all(Array.from({ length: o.count }, (_, i) => {\n const ang = (i / o.count) * Math.PI * 2;\n const d = rand(40, 80);\n const s = rand(12, 22);\n return spawn(x, y, `font-size:${s}px;line-height:1;margin:${-s / 2}px 0 0 ${-s / 2}px;color:${o.colors[i % o.colors.length]}`, ctx, [{ transform: 'translate(0,0) rotate(0) scale(.2)', opacity: 1 }, { transform: `translate(${Math.cos(ang) * d}px,${Math.sin(ang) * d}px) rotate(${rand(180, 360)}deg) scale(1)`, opacity: 0 }], { duration: o.duration, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' }, '★');\n }));\n },\n },\n {\n name: 'jelly-press',\n kind: 'click',\n description: 'The pressed element squishes like jelly and wobbles back.',\n defaults: { duration: 650 },\n run: (el, o: any, ctx) =>\n ctx.reduced ? ctx.animate(el, [{ opacity: 1 }, { opacity: 0.7 }, { opacity: 1 }], { duration: 250 }) : ctx.animate(el, [{ transform: 'scale(1,1)' }, { transform: 'scale(1.15,.85)', offset: 0.2 }, { transform: 'scale(.9,1.1)', offset: 0.4 }, { transform: 'scale(1.05,.95)', offset: 0.6 }, { transform: 'scale(.98,1.02)', offset: 0.8 }, { transform: 'scale(1,1)' }], { duration: o.duration, easing: 'ease-out' }),\n },\n {\n name: 'ring-ripple',\n kind: 'click',\n description: 'Concentric outlined rings ripple out like water.',\n defaults: { rings: 3, color: '#22d3ee', size: 120, duration: 1000 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all(Array.from({ length: o.rings }, (_, i) => spawn(x, y, `width:${o.size}px;height:${o.size}px;margin:${-o.size / 2}px 0 0 ${-o.size / 2}px;border:2px solid ${o.color};border-radius:50%`, ctx, [{ transform: 'scale(.1)', opacity: 0.8 }, { transform: 'scale(1)', opacity: 0 }], { duration: o.duration, delay: i * 160, easing: 'ease-out' })));\n },\n },\n {\n name: 'emoji-rain',\n kind: 'click',\n description: 'Emoji pop up and fall around the click (pass `emoji: \"🎉✨💜\"`).',\n defaults: { emoji: '🎉✨💜🔥', count: 14, duration: 1300 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n const chars = Array.from(String(o.emoji));\n return all(Array.from({ length: o.count }, (_, i) => {\n const dx = rand(-90, 90);\n return spawn(x, y, `font-size:${rand(16, 28)}px;line-height:1`, ctx, [{ transform: 'translate(0,0) scale(.4)', opacity: 0 }, { transform: `translate(${dx * 0.6}px,${rand(-90, -50)}px) scale(1)`, opacity: 1, offset: 0.35 }, { transform: `translate(${dx}px,${rand(40, 90)}px) rotate(${rand(-60, 60)}deg) scale(.9)`, opacity: 0 }], { duration: o.duration, delay: i * 25, easing: 'cubic-bezier(0.33, 0, 0.67, 1)' }, chars[i % chars.length]);\n }));\n },\n },\n];\n","/**\n * 5.2 — bounce & physics micro-interactions, registered through\n * `registerEffect()`. Keyframes come from a damped-spring / gravity solver\n * (`springKeyframes()`, `bounceKeyframes()`), so the motion is physical but\n * still runs on the Web Animations API (compositor, reduced-motion aware).\n * Effects: `bounce-in`, `rubber-band`, `elastic-hover`, `drop-bounce`,\n * `gravity-text`, `spring-follow`, `bell-swing`.\n */\nimport type { EffectDefinition } from '../fx/registry';\nimport { all } from './shared';\n\nexport interface SpringOptions {\n stiffness?: number;\n damping?: number;\n mass?: number;\n /** Samples (keyframes). */\n steps?: number;\n}\n\n/**\n * Sample a damped spring from 0 → 1 and return the progress values plus the\n * time (ms) it takes to settle. Pure, deterministic.\n */\nexport function solveSpring({ stiffness = 180, damping = 12, mass = 1, steps = 40 }: SpringOptions = {}): { values: number[]; duration: number } {\n const dt = 1 / 120;\n let x = 0;\n let v = 0;\n const trace: number[] = [];\n let t = 0;\n for (; t < 4; t += dt) {\n const a = (-stiffness * (x - 1) - damping * v) / mass;\n v += a * dt;\n x += v * dt;\n trace.push(x);\n if (t > 0.1 && Math.abs(x - 1) < 0.001 && Math.abs(v) < 0.01) break;\n }\n const values = Array.from({ length: steps + 1 }, (_, i) => +trace[Math.min(trace.length - 1, Math.round((i / steps) * (trace.length - 1)))].toFixed(4));\n values[0] = 0;\n values[steps] = 1;\n return { values, duration: Math.round(trace.length * dt * 1000) };\n}\n\n/** Keyframes for a property driven by a spring: `map(progress)` → keyframe. */\nexport function springKeyframes(map: (p: number) => Keyframe, spring?: SpringOptions): { frames: Keyframe[]; duration: number } {\n const { values, duration } = solveSpring(spring);\n return { frames: values.map(map), duration };\n}\n\n/** Height (0 = floor, 1 = drop height) of a ball dropped with restitution `bounce`, sampled `steps` times. */\nexport function bounceKeyframes(bounce = 0.5, steps = 48): number[] {\n // segment durations scale with sqrt(height); heights scale with bounce^2 per hop\n const hops: number[] = [1];\n let h = 1;\n while (hops.length < 6 && h > 0.01) {\n h *= bounce * bounce;\n hops.push(h);\n }\n const segT = hops.map((hh, i) => (i === 0 ? Math.sqrt(hh) : 2 * Math.sqrt(hh)));\n const total = segT.reduce((a, b) => a + b, 0);\n return Array.from({ length: steps + 1 }, (_, i) => {\n let t = (i / steps) * total;\n for (let k = 0; k < hops.length; k++) {\n if (t <= segT[k] || k === hops.length - 1) {\n const tt = Math.min(t, segT[k]);\n if (k === 0) return +(1 - (tt / segT[0]) ** 2).toFixed(4);\n const half = segT[k] / 2;\n return +(hops[k] * (1 - ((tt - half) / half) ** 2)).toFixed(4);\n }\n t -= segT[k];\n }\n return 0;\n });\n}\n\nconst fade = (el: HTMLElement, ctx: Parameters<EffectDefinition['run']>[2]) => ctx.animate(el, [{ opacity: 0 }, { opacity: 1 }], { duration: 200 });\n\nexport const PHYSICS_FX: EffectDefinition[] = [\n {\n name: 'bounce-in',\n kind: 'enter',\n description: 'Springs in from small with an overshoot (spring solver; stiffness / damping options).',\n defaults: { stiffness: 220, damping: 11, from: 0.3 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return fade(el, ctx);\n const { frames, duration } = springKeyframes((p) => ({ transform: `scale(${(o.from + (1 - o.from) * p).toFixed(4)})`, opacity: Math.min(1, p * 3) }), o);\n return ctx.animate(el, frames, { duration, easing: 'linear' });\n },\n },\n {\n name: 'rubber-band',\n kind: 'attention',\n description: 'Stretches wide, snaps back thin and settles like a rubber band.',\n defaults: { duration: 900, amount: 0.25 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const a = o.amount;\n return ctx.animate(el, [{ transform: 'scale(1,1)' }, { transform: `scale(${1 + a},${1 - a})`, offset: 0.3 }, { transform: `scale(${1 - a},${1 + a})`, offset: 0.4 }, { transform: `scale(${1 + a / 2},${1 - a / 2})`, offset: 0.5 }, { transform: `scale(${1 - a / 5},${1 + a / 5})`, offset: 0.65 }, { transform: `scale(${1 + a / 10},${1 - a / 10})`, offset: 0.75 }, { transform: 'scale(1,1)' }], { duration: o.duration });\n },\n },\n {\n name: 'elastic-hover',\n kind: 'hover',\n description: 'Hover lifts with a springy overshoot; leaving springs back (persistent; trigger=\"load\").',\n defaults: { lift: 6, scale: 1.04, stiffness: 260, damping: 10 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const to = (on: boolean) => {\n const from = on ? 0 : 1;\n const { frames, duration } = springKeyframes((p) => {\n const k = from + (on ? p : -p);\n return { transform: `translateY(${(-o.lift * k).toFixed(2)}px) scale(${(1 + (o.scale - 1) * k).toFixed(4)})` };\n }, o);\n ctx.animate(el, frames, { duration, fill: 'forwards', easing: 'linear' });\n };\n const enter = () => to(true);\n const leave = () => to(false);\n el.addEventListener('pointerenter', enter);\n el.addEventListener('pointerleave', leave);\n return () => {\n el.removeEventListener('pointerenter', enter);\n el.removeEventListener('pointerleave', leave);\n };\n },\n },\n {\n name: 'drop-bounce',\n kind: 'enter',\n description: 'Falls in under gravity and bounces to rest (`height`, `bounce` restitution 0–0.9).',\n defaults: { height: 120, bounce: 0.5, duration: 1100 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return fade(el, ctx);\n const hs = bounceKeyframes(Math.min(0.9, Math.max(0, o.bounce)));\n return ctx.animate(el, hs.map((h, i) => ({ transform: `translateY(${(-h * o.height).toFixed(1)}px)`, opacity: i === 0 ? 0 : 1 })), { duration: o.duration, easing: 'linear' });\n },\n },\n {\n name: 'gravity-text',\n kind: 'text',\n description: 'Each character drops in under gravity with a bounce, staggered (splits the text into aria-hidden spans; the label stays readable).',\n defaults: { height: 60, bounce: 0.45, duration: 900, stagger: 45 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n if (!el.dataset.usaSplit) {\n const text = el.textContent || '';\n el.setAttribute('aria-label', text);\n el.textContent = '';\n for (const ch of Array.from(text)) {\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.style.display = 'inline-block';\n s.style.whiteSpace = 'pre';\n s.textContent = ch;\n el.appendChild(s);\n }\n el.dataset.usaSplit = '1';\n }\n const hs = bounceKeyframes(o.bounce, 32);\n return all((Array.from(el.children) as HTMLElement[]).map((s, i) => ctx.animate(s, hs.map((h) => ({ transform: `translateY(${(-h * o.height).toFixed(1)}px)` })), { duration: o.duration, delay: i * o.stagger, easing: 'linear', fill: 'backwards' })));\n },\n },\n {\n name: 'spring-follow',\n kind: 'cursor',\n description: 'The element springs toward the pointer while it moves over its parent, and back home on leave (persistent).',\n defaults: { stiffness: 0.12, damping: 0.75, range: 40 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const host = el.parentElement || el;\n let tx = 0;\n let ty = 0;\n let x = 0;\n let y = 0;\n let vx = 0;\n let vy = 0;\n let raf = 0;\n const tick = () => {\n vx = (vx + (tx - x) * o.stiffness) * o.damping;\n vy = (vy + (ty - y) * o.stiffness) * o.damping;\n x += vx;\n y += vy;\n el.style.translate = `${x.toFixed(2)}px ${y.toFixed(2)}px`;\n raf = Math.abs(vx) + Math.abs(vy) + Math.abs(tx - x) + Math.abs(ty - y) > 0.05 ? requestAnimationFrame(tick) : 0;\n };\n const kick = () => {\n if (!raf) raf = requestAnimationFrame(tick);\n };\n const move = (e: PointerEvent) => {\n const r = host.getBoundingClientRect();\n const nx = (e.clientX - r.left) / (r.width || 1) - 0.5;\n const ny = (e.clientY - r.top) / (r.height || 1) - 0.5;\n tx = nx * 2 * o.range;\n ty = ny * 2 * o.range;\n kick();\n };\n const leave = () => {\n tx = ty = 0;\n kick();\n };\n host.addEventListener('pointermove', move);\n host.addEventListener('pointerleave', leave);\n return () => {\n host.removeEventListener('pointermove', move);\n host.removeEventListener('pointerleave', leave);\n cancelAnimationFrame(raf);\n el.style.translate = '';\n };\n },\n },\n {\n name: 'bell-swing',\n kind: 'attention',\n description: 'Swings from its top like a ringing bell with damped oscillation.',\n defaults: { angle: 22, stiffness: 120, damping: 4 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n el.style.transformOrigin = 'top center';\n const { frames, duration } = springKeyframes((p) => ({ transform: `rotate(${(o.angle * (1 - p)).toFixed(2)}deg)` }), { stiffness: o.stiffness, damping: o.damping, steps: 48 });\n frames[0] = { transform: 'rotate(0deg)' };\n return ctx.animate(el, frames, { duration: Math.min(duration, 2400), easing: 'linear' });\n },\n },\n];\n","/**\n * 5.3 — page-wide effects, registered through `registerEffect()`.\n * Transitions (cover → `onCovered()` → reveal): `curtain`, `iris`,\n * `pixel-dissolve`, `blinds`. Persistent page effects: `velocity-skew`,\n * `spotlight`, `edge-glow`.\n *\n * ```ts\n * await playEffect(document.body, 'iris', { onCovered: () => router.go('/next') });\n * ```\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { origin } from './shared';\n\n/** A full-viewport, aria-hidden, pointer-blocking (while covering) transition layer. */\nfunction screen(css = ''): HTMLElement {\n const s = document.createElement('div');\n s.setAttribute('aria-hidden', 'true');\n s.setAttribute('data-usa-page-fx', '');\n s.style.cssText = `position:fixed;inset:0;z-index:2147483001;pointer-events:auto;${css}`;\n document.body.appendChild(s);\n return s;\n}\n\nconst wait = (a: Animation | null) => (a ? a.finished.catch(() => undefined) : Promise.resolve());\nconst call = async (fn: unknown) => {\n if (typeof fn === 'function') await fn();\n};\n\n/** Reduced-motion version of every transition: a quick cross-fade through the cover colour. */\nasync function crossFade(o: any, ctx: EffectContext): Promise<void> {\n const s = screen(`background:${o.color};opacity:0`);\n await wait(ctx.animate(s, [{ opacity: 0 }, { opacity: 1 }], { duration: 150, fill: 'forwards' }));\n await call(o.onCovered);\n await wait(ctx.animate(s, [{ opacity: 1 }, { opacity: 0 }], { duration: 150, fill: 'forwards' }));\n s.remove();\n}\n\n/** Build a transition from a cover layer and cover / reveal animations of its parts. */\nfunction transition(build: (s: HTMLElement, o: any, ctx: EffectContext, el: HTMLElement) => { parts: HTMLElement[]; cover: Keyframe[] | ((i: number) => Keyframe[]); delay?: (i: number) => number }): EffectDefinition['run'] {\n return async (el, o: any, ctx) => {\n if (ctx.reduced) return crossFade(o, ctx);\n const s = screen('pointer-events:auto');\n const { parts, cover, delay } = build(s, o, ctx, el);\n const frames = (i: number) => (typeof cover === 'function' ? cover(i) : cover);\n const half = o.duration / 2;\n await Promise.all(parts.map((p, i) => wait(ctx.animate(p, frames(i), { duration: half, delay: delay?.(i) ?? 0, easing: 'cubic-bezier(0.65, 0, 0.35, 1)', fill: 'both' }))));\n await call(o.onCovered);\n if (o.hold) await new Promise((r) => setTimeout(r, o.hold));\n await Promise.all(parts.map((p, i) => wait(ctx.animate(p, [...frames(i)].reverse(), { duration: half, delay: delay?.(i) ?? 0, easing: 'cubic-bezier(0.65, 0, 0.35, 1)', fill: 'both' }))));\n s.remove();\n };\n}\n\nconst part = (s: HTMLElement, css: string) => {\n const p = document.createElement('div');\n p.style.cssText = `position:absolute;${css}`;\n s.appendChild(p);\n return p;\n};\n\nconst TRANSITION_DEFAULTS = { color: '#0f0f1a', duration: 1000, hold: 0, onCovered: undefined as undefined | (() => unknown) };\n\nexport const PAGE_FX: EffectDefinition[] = [\n {\n name: 'curtain',\n kind: 'page',\n description: 'Two curtain panels close from the sides, call onCovered(), then open.',\n reduced: 'run',\n defaults: TRANSITION_DEFAULTS,\n run: transition((s, o) => ({\n parts: [part(s, `top:0;bottom:0;left:0;width:50.5%;background:${o.color}`), part(s, `top:0;bottom:0;right:0;width:50.5%;background:${o.color}`)],\n cover: (i) => [{ transform: `translateX(${i ? 100 : -100}%)` }, { transform: 'translateX(0)' }],\n })),\n },\n {\n name: 'iris',\n kind: 'page',\n description: 'A circle closes on the click point (or the element’s center), calls onCovered(), then opens.',\n reduced: 'run',\n defaults: TRANSITION_DEFAULTS,\n run: transition((s, o, ctx, el) => {\n const { x, y } = origin(el, ctx);\n const r = Math.hypot(Math.max(x, innerWidth - x), Math.max(y, innerHeight - y)) + 2;\n // a huge box-shadow ring around a hole: the hole shrinks to 0 to cover\n const p = part(s, `left:${x}px;top:${y}px;width:0;height:0;border-radius:50%;box-shadow:0 0 0 ${Math.ceil(r)}px ${o.color}`);\n s.style.background = 'transparent';\n return { parts: [p], cover: [{ width: `${r * 2}px`, height: `${r * 2}px`, margin: `${-r}px 0 0 ${-r}px` }, { width: '0px', height: '0px', margin: '0px 0 0 0px' }] };\n }),\n },\n {\n name: 'pixel-dissolve',\n kind: 'page',\n description: 'The screen fills with pixels in random order, calls onCovered(), then dissolves (`cols` × `rows`).',\n reduced: 'run',\n defaults: { ...TRANSITION_DEFAULTS, cols: 16, rows: 10 },\n run: transition((s, o) => {\n const n = o.cols * o.rows;\n const order = Array.from({ length: n }, (_, i) => i).sort(() => Math.random() - 0.5);\n const parts = Array.from({ length: n }, (_, i) => part(s, `left:${((i % o.cols) * 100) / o.cols}%;top:${(Math.floor(i / o.cols) * 100) / o.rows}%;width:${100 / o.cols + 0.2}%;height:${100 / o.rows + 0.2}%;background:${o.color};opacity:0`));\n return { parts, cover: [{ opacity: 0 }, { opacity: 1 }], delay: (i) => (order[i] / n) * (o.duration / 2) * 0.6 };\n }),\n },\n {\n name: 'blinds',\n kind: 'page',\n description: 'Horizontal slats rotate shut like venetian blinds, call onCovered(), then open (`slats`).',\n reduced: 'run',\n defaults: { ...TRANSITION_DEFAULTS, slats: 8 },\n run: transition((s, o) => ({\n parts: Array.from({ length: o.slats }, (_, i) => part(s, `left:0;right:0;top:${(i * 100) / o.slats}%;height:${100 / o.slats + 0.3}%;background:${o.color};transform-origin:top`)),\n cover: [{ transform: 'scaleY(0)' }, { transform: 'scaleY(1)' }],\n delay: (i) => i * 30,\n })),\n },\n {\n name: 'velocity-skew',\n kind: 'scroll',\n description: 'Skews the element with scroll velocity and eases back when scrolling stops (persistent).',\n defaults: { max: 8, factor: 0.25 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n let last = scrollY;\n let skew = 0;\n let raf = 0;\n const tick = () => {\n const y = scrollY;\n const target = Math.max(-o.max, Math.min(o.max, (y - last) * o.factor));\n last = y;\n skew += (target - skew) * 0.2;\n el.style.transform = `skewY(${skew.toFixed(3)}deg)`;\n raf = Math.abs(skew) > 0.01 || Math.abs(target) > 0.01 ? requestAnimationFrame(tick) : 0;\n if (!raf) el.style.transform = '';\n };\n const onScroll = () => {\n if (!raf) raf = requestAnimationFrame(tick);\n };\n addEventListener('scroll', onScroll, { passive: true });\n return () => {\n removeEventListener('scroll', onScroll);\n cancelAnimationFrame(raf);\n el.style.transform = '';\n };\n },\n },\n {\n name: 'spotlight',\n kind: 'cursor',\n description: 'Dims the page except a soft circle that follows the pointer (persistent; `radius`, `dim`).',\n defaults: { radius: 180, dim: 0.72 },\n run: (_el, o: any, ctx) => {\n if (ctx.reduced) return;\n const s = screen(`pointer-events:none;background:radial-gradient(circle ${o.radius}px at var(--x,50%) var(--y,50%),transparent 0,transparent 60%,rgba(0,0,0,${o.dim}) 100%)`);\n const move = (e: PointerEvent) => {\n s.style.setProperty('--x', `${e.clientX}px`);\n s.style.setProperty('--y', `${e.clientY}px`);\n };\n addEventListener('pointermove', move, { passive: true });\n return () => {\n removeEventListener('pointermove', move);\n s.remove();\n };\n },\n },\n {\n name: 'edge-glow',\n kind: 'scroll',\n description: 'A soft glow lights the top / bottom edge of the viewport while scrolling in that direction (persistent).',\n defaults: { color: '#7c5cff', size: 90 },\n run: (_el, o: any, ctx) => {\n if (ctx.reduced) return;\n const s = screen('pointer-events:none;opacity:0;transition:opacity .35s ease-out');\n let last = scrollY;\n let t = 0;\n const onScroll = () => {\n const down = scrollY >= last;\n last = scrollY;\n s.style.background = `linear-gradient(${down ? 'to top' : 'to bottom'},${o.color}55,transparent ${o.size}px)`;\n s.style.opacity = '1';\n clearTimeout(t);\n t = setTimeout(() => (s.style.opacity = '0'), 160) as unknown as number;\n };\n addEventListener('scroll', onScroll, { passive: true });\n return () => {\n removeEventListener('scroll', onScroll);\n clearTimeout(t);\n s.remove();\n };\n },\n },\n];\n","/**\n * 5.7 — cursor & gesture packs.\n *\n * Cursor effects (kind `cursor`, persistent, scoped to the element they are\n * bound to; skipped under reduced motion and — unless `touch: true` — for\n * touch pointers): `comet-trail`, `sparkle-trail`, `ribbon-trail`,\n * `magnetic-dots`, `spotlight-cursor`.\n *\n * Gestures → effects: `bindGesture(el, 'fling' | 'twist' | 'long-press',\n * effectOrCallback, options)` and `<usa-gesture-fx gesture effect>`. A fling\n * is a fast release, a twist a two-finger rotation past `angle` degrees, a\n * long press \"charges\" `--usa-charge` 0 → 1 and fires when full. Every fire\n * dispatches `usa-gesture` (`detail: { gesture, … }`). The effect itself goes\n * through `playEffect()`, so reduced motion is honoured there.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { playEffect } from '../fx/registry';\nimport { defineElement, type UsaElement } from '../base';\nimport { fxLayer, PALETTE, rand, spawn } from './shared';\nimport { canvasBackground, hexRgb } from './generative';\n\ntype Pt = { x: number; y: number; t: number };\n\nconst touchOk = (e: PointerEvent, o: any) => o.touch || e.pointerType !== 'touch';\n\n/** A fixed, viewport-sized canvas in the fx layer, redrawn while `draw` returns true. */\nfunction overlayCanvas(draw: (g: CanvasRenderingContext2D, w: number, h: number, now: number) => boolean): { kick: () => void; stop: () => void } {\n const c = document.createElement('canvas');\n c.style.cssText = 'position:absolute;inset:0;width:100%;height:100%';\n fxLayer().appendChild(c);\n const g = c.getContext('2d');\n let raf = 0;\n const frame = (now: number) => {\n raf = 0;\n if (!g) return;\n const w = innerWidth;\n const h = innerHeight;\n const dpr = Math.min(2, devicePixelRatio || 1);\n if (c.width !== Math.round(w * dpr) || c.height !== Math.round(h * dpr)) {\n c.width = Math.round(w * dpr);\n c.height = Math.round(h * dpr);\n }\n g.setTransform(dpr, 0, 0, dpr, 0, 0);\n g.clearRect(0, 0, w, h);\n if (draw(g, w, h, now)) raf = requestAnimationFrame(frame);\n };\n return {\n kick: () => {\n if (!raf && g) raf = requestAnimationFrame(frame);\n },\n stop: () => {\n cancelAnimationFrame(raf);\n raf = 0;\n c.remove();\n },\n };\n}\n\n/** Pointer trail on `el`: keeps the last `life` ms of points and redraws them. */\nfunction trail(el: HTMLElement, o: any, paint: (g: CanvasRenderingContext2D, pts: Pt[], now: number) => void): () => void {\n const pts: Pt[] = [];\n const oc = overlayCanvas((g, _w, _h, now) => {\n while (pts.length && now - pts[0].t > o.life) pts.shift();\n if (pts.length > 1) paint(g, pts, now);\n return pts.length > 0;\n });\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o)) return;\n pts.push({ x: e.clientX, y: e.clientY, t: performance.now() });\n if (pts.length > 64) pts.shift();\n oc.kick();\n };\n el.addEventListener('pointermove', move, { passive: true });\n return () => {\n el.removeEventListener('pointermove', move);\n oc.stop();\n };\n}\n\nexport const CURSOR_FX: EffectDefinition[] = [\n {\n name: 'comet-trail',\n kind: 'cursor',\n description: 'A glowing comet tail follows the pointer over the element (persistent; `color`, `width`, `life`).',\n defaults: { color: '#7c5cff', width: 10, life: 320, touch: false },\n run: (el, o: any) =>\n trail(el, o, (g, pts, now) => {\n const [r, gg, b] = hexRgb(o.color);\n g.lineCap = 'round';\n for (let i = 1; i < pts.length; i++) {\n const k = 1 - (now - pts[i].t) / o.life;\n g.strokeStyle = `rgba(${r},${gg},${b},${(k * 0.9).toFixed(3)})`;\n g.lineWidth = Math.max(0.5, o.width * k);\n g.beginPath();\n g.moveTo(pts[i - 1].x, pts[i - 1].y);\n g.lineTo(pts[i].x, pts[i].y);\n g.stroke();\n }\n }),\n },\n {\n name: 'ribbon-trail',\n kind: 'cursor',\n description: 'A smooth rainbow ribbon flows behind the pointer (persistent; `width`, `life`).',\n defaults: { width: 18, life: 600, touch: false },\n run: (el, o: any) =>\n trail(el, o, (g, pts, now) => {\n for (let i = 2; i < pts.length; i++) {\n const k = 1 - (now - pts[i].t) / o.life;\n const a = pts[i - 2];\n const m = pts[i - 1];\n const b = pts[i];\n g.strokeStyle = `hsla(${(pts[i].t / 6) % 360},90%,62%,${(k * 0.85).toFixed(3)})`;\n g.lineWidth = Math.max(0.5, o.width * k * Math.sin(Math.PI * Math.min(1, (i / pts.length) * 1.1)));\n g.lineCap = 'round';\n g.beginPath();\n g.moveTo((a.x + m.x) / 2, (a.y + m.y) / 2);\n g.quadraticCurveTo(m.x, m.y, (m.x + b.x) / 2, (m.y + b.y) / 2);\n g.stroke();\n }\n }),\n },\n {\n name: 'sparkle-trail',\n kind: 'cursor',\n description: 'Little stars twinkle off the pointer as it moves (persistent; `colors`, `spacing` px between stars).',\n defaults: { colors: PALETTE, spacing: 14, size: 14, touch: false },\n run: (el, o: any, ctx: EffectContext) => {\n let lx = -1e4;\n let ly = -1e4;\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o) || Math.hypot(e.clientX - lx, e.clientY - ly) < o.spacing) return;\n lx = e.clientX;\n ly = e.clientY;\n const s = o.size * rand(0.6, 1.2);\n spawn(e.clientX - s / 2, e.clientY - s / 2, `font-size:${s}px;line-height:1;color:${o.colors[Math.floor(rand(0, o.colors.length))]}`, ctx,\n [{ transform: 'translate(0,0) scale(0) rotate(0deg)', opacity: 1 }, { transform: `translate(${rand(-14, 14)}px,${rand(4, 26)}px) scale(1) rotate(${rand(-90, 90)}deg)`, opacity: 0 }],\n { duration: rand(500, 800), easing: 'ease-out' }, '✦');\n };\n el.addEventListener('pointermove', move, { passive: true });\n return () => el.removeEventListener('pointermove', move);\n },\n },\n {\n name: 'magnetic-dots',\n kind: 'cursor',\n description: 'A grid of dots behind the content leans toward the pointer like iron filings to a magnet (persistent; `gap`, `radius`, `color`).',\n defaults: { gap: 22, radius: 120, color: '#7c5cff', background: 'transparent', touch: false },\n reduced: 'skip',\n run: (el, o: any, ctx) => {\n const p = { x: -1e4, y: -1e4 };\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o)) return;\n const r = el.getBoundingClientRect();\n p.x = e.clientX - r.left;\n p.y = e.clientY - r.top;\n };\n const leave = () => ((p.x = -1e4), (p.y = -1e4));\n el.addEventListener('pointermove', move, { passive: true });\n el.addEventListener('pointerleave', leave);\n const off = canvasBackground(el, ctx, {\n draw: ({ ctx: g, w, h }) => {\n g.clearRect(0, 0, w, h);\n if (o.background !== 'transparent') {\n g.fillStyle = o.background;\n g.fillRect(0, 0, w, h);\n }\n g.fillStyle = o.color;\n for (let y = o.gap / 2; y < h; y += o.gap)\n for (let x = o.gap / 2; x < w; x += o.gap) {\n const dx = p.x - x;\n const dy = p.y - y;\n const d = Math.hypot(dx, dy);\n const k = d < o.radius ? (1 - d / o.radius) ** 2 : 0;\n const s = 1.5 + k * 3;\n g.globalAlpha = 0.35 + k * 0.65;\n g.fillRect(x + dx * k * 0.35 - s / 2, y + dy * k * 0.35 - s / 2, s, s);\n }\n g.globalAlpha = 1;\n },\n }, o);\n return () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n off();\n };\n },\n },\n {\n name: 'spotlight-cursor',\n kind: 'cursor',\n description: 'A soft light follows the pointer across the element, easing behind it (persistent; `color`, `size`).',\n defaults: { color: '#ffffff', size: 260, ease: 0.18, touch: false },\n run: (el, o: any) => {\n const [r, g, b] = hexRgb(o.color);\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.style.cssText = `position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .25s;mix-blend-mode:soft-light;background:radial-gradient(circle ${o.size / 2}px at var(--sx,50%) var(--sy,50%),rgba(${r},${g},${b},.75),transparent)`;\n const restore = el.style.position;\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n el.appendChild(s);\n let tx = 0;\n let ty = 0;\n let x = 0;\n let y = 0;\n let raf = 0;\n const tick = () => {\n x += (tx - x) * o.ease;\n y += (ty - y) * o.ease;\n s.style.setProperty('--sx', `${x.toFixed(1)}px`);\n s.style.setProperty('--sy', `${y.toFixed(1)}px`);\n raf = Math.abs(tx - x) + Math.abs(ty - y) > 0.3 ? requestAnimationFrame(tick) : 0;\n };\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o)) return;\n const rc = el.getBoundingClientRect();\n tx = e.clientX - rc.left;\n ty = e.clientY - rc.top;\n if (s.style.opacity !== '1') ((x = tx), (y = ty), (s.style.opacity = '1'));\n if (!raf) raf = requestAnimationFrame(tick);\n };\n const leave = () => (s.style.opacity = '0');\n el.addEventListener('pointermove', move, { passive: true });\n el.addEventListener('pointerleave', leave);\n return () => {\n cancelAnimationFrame(raf);\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n s.remove();\n el.style.position = restore;\n };\n },\n },\n];\n\n// --- gestures → effects ------------------------------------------------------\n\nexport const GESTURES = ['fling', 'twist', 'long-press'] as const;\nexport type GestureName = (typeof GESTURES)[number];\n\nexport interface GestureFxOptions {\n /** fling: minimum release speed in px/ms (default 0.8). */\n velocity?: number;\n /** twist: degrees of rotation that fire (default 30). */\n angle?: number;\n /** long-press: ms to fully charge (default 650). */\n duration?: number;\n /** long-press: px the pointer may move before the press is cancelled (default 10). */\n tolerance?: number;\n /** Options passed to the effect. */\n effectOptions?: Record<string, unknown>;\n}\n\nexport interface GestureDetail {\n gesture: GestureName;\n /** fling */\n vx?: number;\n vy?: number;\n speed?: number;\n direction?: 'left' | 'right' | 'up' | 'down' | 'cw' | 'ccw';\n /** twist: signed degrees since the last fire. */\n angle?: number;\n /** long-press: 1 when fired. */\n charge?: number;\n}\n\n/** Release velocity (px/ms) from recent pointer samples: uses the last `window` ms (pure). */\nexport function flingVelocity(pts: Pt[], window = 90): { vx: number; vy: number; speed: number } {\n if (pts.length < 2) return { vx: 0, vy: 0, speed: 0 };\n const last = pts[pts.length - 1];\n let first = pts[0];\n for (let i = pts.length - 2; i >= 0; i--) {\n first = pts[i];\n if (last.t - pts[i].t >= window) break;\n }\n const dt = Math.max(1, last.t - first.t);\n const vx = (last.x - first.x) / dt;\n const vy = (last.y - first.y) / dt;\n return { vx, vy, speed: Math.hypot(vx, vy) };\n}\n\n/** Signed smallest difference between two angles in degrees, in (-180, 180] (pure). */\nexport function angleDelta(a: number, b: number): number {\n let d = (b - a) % 360;\n if (d > 180) d -= 360;\n if (d <= -180) d += 360;\n return d;\n}\n\n/**\n * Fire `effect` (a registered effect name, or a callback) when `gesture`\n * happens on `el`. Returns an unbind.\n */\nexport function bindGesture(el: HTMLElement, gesture: GestureName, effect: string | ((d: GestureDetail, e: Event) => void), o: GestureFxOptions = {}): () => void {\n const { velocity = 0.8, angle = 30, duration = 650, tolerance = 10, effectOptions = {} } = o;\n const pts = new Map<number, { x: number; y: number }>();\n let path: Pt[] = [];\n let base: number | null = null;\n let press: { x: number; y: number; t0: number; raf: number } | null = null;\n const fire = (d: GestureDetail, e: Event) => {\n el.dispatchEvent(new CustomEvent('usa-gesture', { detail: d, bubbles: true }));\n if (typeof effect === 'function') effect(d, e);\n else playEffect(el, effect, effectOptions, e).catch(() => undefined);\n };\n const twistAngle = () => {\n const [a, b] = [...pts.values()];\n return (Math.atan2(b.y - a.y, b.x - a.x) * 180) / Math.PI;\n };\n const charge = (k: number) => {\n el.style.setProperty('--usa-charge', k.toFixed(3));\n el.toggleAttribute('data-charging', k > 0 && k < 1);\n };\n const endPress = () => {\n if (!press) return;\n cancelAnimationFrame(press.raf);\n press = null;\n charge(0);\n };\n const down = (e: PointerEvent) => {\n pts.set(e.pointerId ?? 1, { x: e.clientX, y: e.clientY });\n if (gesture === 'fling') path = [{ x: e.clientX, y: e.clientY, t: e.timeStamp || performance.now() }];\n if (gesture === 'twist' && pts.size === 2) base = twistAngle();\n if (gesture === 'long-press' && pts.size === 1) {\n press = { x: e.clientX, y: e.clientY, t0: performance.now(), raf: 0 };\n const step = (now: number) => {\n if (!press) return;\n const k = Math.min(1, (now - press.t0) / duration);\n charge(k);\n if (k >= 1) {\n endPress();\n el.style.setProperty('--usa-charge', '1');\n fire({ gesture, charge: 1 }, e);\n } else press.raf = requestAnimationFrame(step);\n };\n press.raf = requestAnimationFrame(step);\n }\n };\n const move = (e: PointerEvent) => {\n if (!pts.has(e.pointerId ?? 1)) return;\n pts.set(e.pointerId ?? 1, { x: e.clientX, y: e.clientY });\n if (gesture === 'fling') {\n path.push({ x: e.clientX, y: e.clientY, t: e.timeStamp || performance.now() });\n if (path.length > 20) path.shift();\n } else if (gesture === 'twist' && pts.size >= 2 && base !== null) {\n const now = twistAngle();\n const d = angleDelta(base, now);\n if (Math.abs(d) >= angle) {\n base = now;\n fire({ gesture, angle: d, direction: d > 0 ? 'cw' : 'ccw' }, e);\n }\n } else if (gesture === 'long-press' && press && Math.hypot(e.clientX - press.x, e.clientY - press.y) > tolerance) endPress();\n };\n const up = (e: PointerEvent) => {\n pts.delete(e.pointerId ?? 1);\n if (gesture === 'fling' && path.length) {\n path.push({ x: e.clientX, y: e.clientY, t: e.timeStamp || performance.now() });\n const v = flingVelocity(path);\n path = [];\n if (v.speed >= velocity) {\n const direction = Math.abs(v.vx) > Math.abs(v.vy) ? (v.vx > 0 ? 'right' : 'left') : v.vy > 0 ? 'down' : 'up';\n fire({ gesture, ...v, direction }, e);\n }\n }\n if (pts.size < 2) base = null;\n endPress();\n };\n el.addEventListener('pointerdown', down);\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerup', up);\n el.addEventListener('pointercancel', up);\n if (gesture === 'twist' && !el.style.touchAction) el.style.touchAction = 'none';\n return () => {\n endPress();\n el.removeEventListener('pointerdown', down);\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerup', up);\n el.removeEventListener('pointercancel', up);\n };\n}\n\nexport interface UsaGestureFxElement extends UsaElement {\n readonly gesture: GestureName;\n}\n\n/**\n * `<usa-gesture-fx gesture=\"fling | twist | long-press\" effect=\"tada\"\n * options='{\"…\"}' velocity angle duration>` — plays `effect` on its first\n * child (or itself with `self`) when the gesture happens.\n */\nexport function defineGestureFx(tag = 'usa-gesture-fx'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaGestureFx extends Base {\n static get observedAttributes(): string[] {\n return ['gesture', 'effect', 'options'];\n }\n get gesture(): GestureName {\n const g = this.str('gesture', 'fling') as GestureName;\n return GESTURES.includes(g) ? g : 'fling';\n }\n mount(): void {\n let effectOptions = {};\n try {\n effectOptions = JSON.parse(this.str('options', '{}')) || {};\n } catch {\n /* ignore bad JSON */\n }\n const target = this.flag('self') ? this : (this.firstElementChild as HTMLElement) || this;\n const effect = this.str('effect', 'pulse');\n this.onCleanup(\n bindGesture(this, this.gesture, (_d, e) => void playEffect(target, effect, effectOptions, e).catch(() => undefined), {\n velocity: this.num('velocity', 0.8),\n angle: this.num('angle', 30),\n duration: this.num('duration', 650),\n })\n );\n }\n },\n { id: 'usa-gesture-fx', text: 'usa-gesture-fx{display:inline-block;touch-action:none;user-select:none}' }\n );\n}\n","/**\n * 5.8 — micro-interaction library (23 effects, registered through\n * `registerEffect()`). Each one does the small piece of UI work as well as the\n * motion — toggling `aria-pressed`, swapping a label, bumping a count, copying\n * to the clipboard — so the state change still happens under reduced motion;\n * only the animation is dropped (`ctx.animate` returns `null` there).\n *\n * Click: `copy-success`, `toggle-morph`, `password-reveal`, `favorite-star`,\n * `like-heart`, `bookmark-flip`, `download-progress`, `submit-loading`,\n * `send-plane`, `add-to-cart`, `counter-bump`, `upvote`, `clap`,\n * `emoji-react`, `refresh-spin`, `trash-shake`, `check-toggle`.\n * Attention: `input-shake`, `error-flash`, `success-check`, `nudge-hint`,\n * `focus-pulse`, `notify-badge`.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { origin, spawn, overlay, rand, all } from './shared';\n\nconst saved = new WeakMap<HTMLElement, string>();\n\n/** Toggle `aria-pressed` (or set it) and return the new state. */\nexport function togglePressed(el: HTMLElement, force?: boolean): boolean {\n const on = force ?? el.getAttribute('aria-pressed') !== 'true';\n el.setAttribute('aria-pressed', String(on));\n return on;\n}\n\n/** Swap `el`'s label for `ms` (polite live region), then restore it. */\nexport function swapLabel(el: HTMLElement, text: string, ms: number): Promise<void> {\n if (!saved.has(el)) saved.set(el, el.innerHTML);\n el.setAttribute('aria-live', 'polite');\n el.textContent = text;\n return new Promise((r) =>\n setTimeout(() => {\n el.innerHTML = saved.get(el)!;\n saved.delete(el);\n el.removeAttribute('aria-live');\n r();\n }, ms)\n );\n}\n\n/** Add `delta` to the number in `[data-count]` (or `el`), keeping it in `data-count`. Returns the new value. */\nexport function bumpCount(el: HTMLElement, delta: number, ctx?: EffectContext): number {\n const t = el.querySelector<HTMLElement>('[data-count]') || el;\n const n = (Number(t.dataset.count ?? (t.textContent || '').replace(/[^\\d.-]/g, '')) || 0) + delta;\n t.dataset.count = String(n);\n t.textContent = String(n);\n ctx?.animate(t, [{ transform: `translateY(${delta > 0 ? 60 : -60}%)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 260, easing: 'cubic-bezier(.2,1.4,.4,1)' });\n return n;\n}\n\nconst pop = (el: HTMLElement, ctx: EffectContext, s = 1.25, d = 380) =>\n ctx.animate(el, [{ transform: 'scale(1)' }, { transform: `scale(${s})`, offset: 0.4 }, { transform: 'scale(1)' }], { duration: d, easing: 'cubic-bezier(.2,1.4,.4,1)' });\n\n/** A few glyphs flying out of the pointer / centre. */\nfunction burst(el: HTMLElement, ctx: EffectContext, glyph: string, color: string, n = 6, rise = false): Promise<unknown> {\n const { x, y } = origin(el, ctx);\n return all(\n Array.from({ length: n }, (_, i) => {\n const a = rise ? -Math.PI / 2 + rand(-0.6, 0.6) : (i / n) * Math.PI * 2;\n const d = rand(28, 56);\n return spawn(x - 7, y - 7, `font-size:14px;line-height:1;color:${color}`, ctx,\n [{ transform: 'translate(0,0) scale(.4)', opacity: 1 }, { transform: `translate(${Math.cos(a) * d}px,${Math.sin(a) * d}px) scale(1)`, opacity: 0 }],\n { duration: rand(500, 750), easing: 'cubic-bezier(.2,.8,.3,1)' }, glyph);\n })\n );\n}\n\nconst click = (name: string, description: string, defaults: Record<string, unknown>, run: EffectDefinition['run']): EffectDefinition => ({ name, kind: 'click', description, defaults, run });\nconst attn = (name: string, description: string, defaults: Record<string, unknown>, run: EffectDefinition['run']): EffectDefinition => ({ name, kind: 'attention', description, defaults, run });\n\nexport const MICRO_FX: EffectDefinition[] = [\n click('copy-success', 'Copies `text` (or `data-copy` / the target of `for`) to the clipboard and swaps the label to \"Copied ✓\".', { text: '', label: 'Copied ✓', ms: 1500 }, (el, o: any, ctx) => {\n const src = el.getAttribute('for') ? document.getElementById(el.getAttribute('for')!) : null;\n const text = o.text || el.dataset.copy || (src as HTMLInputElement | null)?.value || src?.textContent || '';\n navigator.clipboard?.writeText(text).catch(() => undefined);\n pop(el, ctx, 1.08);\n return swapLabel(el, o.label, o.ms);\n }),\n click('toggle-morph', 'Toggles `aria-pressed` with a squash-and-stretch morph.', {}, (el, _o, ctx) => {\n const on = togglePressed(el);\n return ctx.animate(el, [{ transform: 'scale(1,1)' }, { transform: `scale(${on ? 1.15 : 0.85},${on ? 0.85 : 1.15})`, offset: 0.35 }, { transform: 'scale(1,1)' }], { duration: 360, easing: 'ease-out' });\n }),\n click('password-reveal', 'Shows / hides the password input (`for` id, or the previous input) with an eye blink.', { show: 'Hide password', hide: 'Show password' }, (el, o: any, ctx) => {\n const input = (el.getAttribute('for') ? document.getElementById(el.getAttribute('for')!) : el.previousElementSibling) as HTMLInputElement | null;\n if (!input || !('type' in input)) return;\n const show = input.type === 'password';\n input.type = show ? 'text' : 'password';\n togglePressed(el, show);\n el.setAttribute('aria-label', show ? o.show : o.hide);\n return ctx.animate(el, [{ transform: 'scaleY(1)' }, { transform: 'scaleY(.1)', offset: 0.5 }, { transform: 'scaleY(1)' }], { duration: 240, easing: 'ease-in-out' });\n }),\n click('favorite-star', 'Toggles a favourite: the star pops and throws little stars (`color`).', { color: '#facc15' }, (el, o: any, ctx) => {\n const on = togglePressed(el);\n return Promise.all([pop(el, ctx, on ? 1.35 : 0.85)?.finished, on ? burst(el, ctx, '★', o.color) : null]);\n }),\n click('like-heart', 'Toggles a like: the heart beats and hearts float up (`color`).', { color: '#ff5c8a' }, (el, o: any, ctx) => {\n const on = togglePressed(el);\n return Promise.all([pop(el, ctx, on ? 1.3 : 0.9)?.finished, on ? burst(el, ctx, '♥', o.color, 5, true) : null]);\n }),\n click('bookmark-flip', 'Toggles a bookmark with a 3D flip.', {}, (el, _o, ctx) => {\n togglePressed(el);\n return ctx.animate(el, [{ transform: 'perspective(400px) rotateY(0)' }, { transform: 'perspective(400px) rotateY(180deg)' }, { transform: 'perspective(400px) rotateY(360deg)' }], { duration: 520, easing: 'ease-in-out' });\n }),\n click('download-progress', 'Fills a progress bar over `duration` ms, then shows \"Done ✓\" (`aria-busy` while running; fires `usa-done`).', { duration: 1600, label: 'Done ✓', color: '#34d399' }, (el, o: any, ctx) => {\n if (el.getAttribute('aria-busy') === 'true') return;\n el.setAttribute('aria-busy', 'true');\n const [bar, remove] = overlay(el, `background:${o.color}55;transform-origin:left;transform:scaleX(0)`);\n const a = ctx.animate(bar, [{ transform: 'scaleX(0)' }, { transform: 'scaleX(1)' }], { duration: o.duration, easing: 'linear', fill: 'forwards' });\n const done = a ? a.finished.catch(() => undefined) : Promise.resolve();\n return done.then(() => {\n remove();\n el.removeAttribute('aria-busy');\n el.dispatchEvent(new CustomEvent('usa-done', { bubbles: true }));\n return swapLabel(el, o.label, 1400);\n });\n }),\n click('submit-loading', 'Shows \"Sending…\" with pulsing dots for `duration` ms, then \"Sent ✓\" (`aria-busy`, `usa-done`).', { duration: 1200, loading: 'Sending…', label: 'Sent ✓' }, (el, o: any, ctx) => {\n if (el.getAttribute('aria-busy') === 'true') return;\n el.setAttribute('aria-busy', 'true');\n const t = swapLabel(el, o.loading, o.duration);\n const a = ctx.animate(el, [{ opacity: 1 }, { opacity: 0.55 }, { opacity: 1 }], { duration: 600, iterations: Math.max(1, Math.round(o.duration / 600)) });\n return t.then(() => {\n a?.cancel();\n el.removeAttribute('aria-busy');\n el.dispatchEvent(new CustomEvent('usa-done', { bubbles: true }));\n return swapLabel(el, o.label, 1400);\n });\n }),\n click('send-plane', 'A paper plane ✈ takes off from the button.', { color: '#22d3ee' }, (el, o: any, ctx) => {\n const r = el.getBoundingClientRect();\n pop(el, ctx, 0.92, 200);\n return spawn(r.left + r.width / 2 - 8, r.top + r.height / 2 - 8, `font-size:16px;color:${o.color}`, ctx,\n [{ transform: 'translate(0,0) rotate(0)', opacity: 1 }, { transform: 'translate(40px,-10px) rotate(-10deg)', opacity: 1, offset: 0.4 }, { transform: 'translate(160px,-90px) rotate(-25deg)', opacity: 0 }],\n { duration: 800, easing: 'ease-in' }, '✈')?.finished;\n }),\n click('add-to-cart', 'Bumps `[data-count]` by one and floats a \"+1\" (`text`).', { text: '+1', color: '#34d399' }, (el, o: any, ctx) => {\n bumpCount(el, 1, ctx);\n const { x, y } = origin(el, ctx);\n return spawn(x - 10, y - 10, `font:700 14px system-ui;color:${o.color}`, ctx, [{ transform: 'translateY(0)', opacity: 1 }, { transform: 'translateY(-40px)', opacity: 0 }], { duration: 700, easing: 'ease-out' }, o.text)?.finished;\n }),\n click('counter-bump', 'Adds `step` to `[data-count]` with a rolling number.', { step: 1 }, (el, o: any, ctx) => void bumpCount(el, Number(o.step) || 1, ctx)),\n click('upvote', 'Toggles an upvote: the arrow nudges up and `[data-count]` ±1.', {}, (el, _o, ctx) => {\n const on = togglePressed(el);\n bumpCount(el, on ? 1 : -1, ctx);\n return ctx.animate(el, [{ transform: 'translateY(0)' }, { transform: `translateY(${on ? -6 : 4}px)`, offset: 0.4 }, { transform: 'translateY(0)' }], { duration: 320, easing: 'cubic-bezier(.2,1.4,.4,1)' });\n }),\n click('clap', 'Counts claps in `[data-count]` with a 👏 burst on every press.', {}, (el, _o, ctx) => {\n bumpCount(el, 1, ctx);\n return Promise.all([pop(el, ctx, 1.15, 240)?.finished, burst(el, ctx, '👏', 'inherit', 3, true)]);\n }),\n click('emoji-react', 'Pops one `emoji` up from the pointer (reaction button).', { emoji: '🎉' }, (el, o: any, ctx) => burst(el, ctx, o.emoji, 'inherit', 1, true)),\n click('refresh-spin', 'Spins the icon one turn (`turns`).', { turns: 1 }, (el, o: any, ctx) => ctx.animate(el, [{ transform: 'rotate(0)' }, { transform: `rotate(${360 * o.turns}deg)` }], { duration: 600 * o.turns, easing: 'cubic-bezier(.4,0,.2,1)' })),\n click('trash-shake', 'Shakes, then drops and fades (`remove: true` removes the element afterwards).', { remove: false }, (el, o: any, ctx) => {\n const a = ctx.animate(el, [{ transform: 'none', opacity: 1 }, { transform: 'rotate(-6deg)', offset: 0.15 }, { transform: 'rotate(6deg)', offset: 0.3 }, { transform: 'rotate(0)', offset: 0.45, opacity: 1 }, { transform: 'translateY(30px) scale(.8)', opacity: 0 }], { duration: 650, easing: 'ease-in', fill: 'forwards' });\n const end = () => (o.remove ? el.remove() : a?.cancel());\n return a ? a.finished.then(end, end) : void end();\n }),\n click('check-toggle', 'Toggles a check mark (`aria-checked` for role=checkbox, else `aria-pressed`) that scales in.', {}, (el, _o, ctx) => {\n const attr = el.getAttribute('role') === 'checkbox' ? 'aria-checked' : 'aria-pressed';\n const on = el.getAttribute(attr) !== 'true';\n el.setAttribute(attr, String(on));\n return ctx.animate(el, on ? [{ transform: 'scale(.6)' }, { transform: 'scale(1.15)', offset: 0.6 }, { transform: 'scale(1)' }] : [{ transform: 'scale(1)' }, { transform: 'scale(.85)' }, { transform: 'scale(1)' }], { duration: 280, easing: 'ease-out' });\n }),\n attn('input-shake', 'Shakes an invalid field side to side and sets `aria-invalid` (`color` outline flash).', { color: '#ff5c8a' }, (el, o: any, ctx) => {\n el.setAttribute('aria-invalid', 'true');\n const prev = el.style.outline;\n el.style.outline = `2px solid ${o.color}`;\n setTimeout(() => (el.style.outline = prev), 900);\n return ctx.animate(el, [0, -8, 8, -6, 6, -3, 0].map((x) => ({ transform: `translateX(${x}px)` })), { duration: 420, easing: 'ease-out' });\n }),\n attn('error-flash', 'Flashes the element red once (no more than one flash per call).', { color: '#ff5c8a' }, (el, o: any, ctx) => ctx.animate(el, [{ boxShadow: `0 0 0 0 ${o.color}00` }, { boxShadow: `0 0 0 4px ${o.color}`, offset: 0.3 }, { boxShadow: `0 0 0 0 ${o.color}00` }], { duration: 700 })),\n attn('success-check', 'A green ✓ badge pops over the element and fades.', { color: '#34d399' }, (el, o: any, ctx) => {\n const [b, remove] = overlay(el, `display:grid;place-items:center;font:700 22px system-ui;color:#fff;background:${o.color}d0`);\n b.textContent = '✓';\n const a = ctx.animate(b, [{ opacity: 0, transform: 'scale(.6)' }, { opacity: 1, transform: 'scale(1)', offset: 0.3 }, { opacity: 1, offset: 0.75 }, { opacity: 0 }], { duration: 1100, easing: 'ease-out' });\n return a ? a.finished.then(remove, remove) : void setTimeout(remove, 900);\n }),\n attn('nudge-hint', 'A small sideways nudge that says \"try me\" (`distance`).', { distance: 6 }, (el, o: any, ctx) => ctx.animate(el, [0, o.distance, 0, o.distance / 2, 0].map((x) => ({ transform: `translateX(${x}px)` })), { duration: 700, easing: 'ease-in-out' })),\n attn('focus-pulse', 'A ring pulses around the element to draw focus to it (`color`).', { color: '#7c5cff' }, (el, o: any, ctx) => ctx.animate(el, [{ boxShadow: `0 0 0 0 ${o.color}aa` }, { boxShadow: `0 0 0 12px ${o.color}00` }], { duration: 900, iterations: 2, easing: 'ease-out' })),\n attn('notify-badge', 'Bumps the badge count (`[data-count]`, `step`) with a pop — for new notifications.', { step: 1 }, (el, o: any, ctx) => {\n bumpCount(el, Number(o.step) || 1, ctx);\n return pop(el, ctx, 1.3, 320);\n }),\n];\n","/**\n * 5.8 — theme packs: `neon`, `paper`, `glass`, `retro`, `brutalist`.\n *\n * A theme pack is design tokens (`--usa-theme-*` custom properties), motion\n * tokens (merged over the 3.x motion scale) and effect presets per role\n * (`enter`, `hover`, `click`, `attention`, `background`). Five theme effects\n * ship with them: `neon-flicker`, `paper-fold`, `glass-shine`,\n * `retro-scanlines`, `brutal-shift`.\n *\n * - `applyTheme(name, root?)` — on `<html>` (default) it also makes the motion\n * tokens active for `motionToken()`; on any other element the tokens are\n * only written as variables there. Returns an undo.\n * - `themePreset(name, role)`, `playThemeEffect(el, role)` (theme of the\n * closest `[data-usa-theme]`).\n * - `<usa-theme name=\"neon\">` — scopes a theme to its subtree and binds the\n * presets to children with `data-theme-fx=\"click | hover | enter | attention\"`.\n */\nimport type { EffectDefinition, EffectTrigger } from '../fx/registry';\nimport { bindEffect, playEffect } from '../fx/registry';\nimport { adoptStyles, defineElement, type UsaElement } from '../base';\nimport { applyMotionTokens, mergeMotionTokens, motionTokensToVars, type DeepPartialTokens } from '../tokens/index';\nimport { overlay } from './shared';\n\nexport const THEME_ROLES = ['enter', 'hover', 'click', 'attention', 'background'] as const;\nexport type ThemeRole = (typeof THEME_ROLES)[number];\n\nexport interface ThemePack {\n name: string;\n /** Design tokens, written as `--usa-theme-<key>`. */\n vars: Record<'bg' | 'fg' | 'accent' | 'accent-2' | 'surface' | 'border' | 'radius' | 'shadow' | 'font', string>;\n /** Motion tokens merged over the defaults. */\n motion: DeepPartialTokens;\n /** Effect preset per role. */\n presets: Record<ThemeRole, { effect: string; options?: Record<string, unknown> }>;\n}\n\nconst P = (enter: string, hover: string, click: string, attention: string, background: string): ThemePack['presets'] => ({\n enter: { effect: enter },\n hover: { effect: hover },\n click: { effect: click },\n attention: { effect: attention },\n background: { effect: background },\n});\n\nexport const THEMES: Record<string, ThemePack> = {\n neon: {\n name: 'neon',\n vars: { bg: '#07070c', fg: '#e8e8ff', accent: '#22d3ee', 'accent-2': '#ff2bd6', surface: '#11111c', border: '1px solid #22d3ee', radius: '10px', shadow: '0 0 18px #22d3ee66, inset 0 0 12px #ff2bd622', font: 'ui-monospace, SFMono-Regular, Menlo, monospace' },\n motion: { duration: { fast: 120, normal: 220 }, easing: { standard: 'cubic-bezier(0.2, 0, 0, 1)' } },\n presets: P('fade-up', 'neon-flicker', 'shockwave', 'neon-flicker', 'starfield'),\n },\n paper: {\n name: 'paper',\n vars: { bg: '#f6f1e7', fg: '#2b2721', accent: '#c2410c', 'accent-2': '#0f766e', surface: '#fffdf8', border: '1px solid #e3dccd', radius: '4px', shadow: '0 1px 0 #0000000d, 0 10px 24px -14px #00000040', font: 'Georgia, \"Times New Roman\", serif' },\n motion: { duration: { fast: 200, normal: 380, slow: 700 }, easing: { standard: 'cubic-bezier(0, 0, 0, 1)' } },\n presets: P('paper-fold', 'wiggle', 'ink-splash', 'nudge-hint', 'contours'),\n },\n glass: {\n name: 'glass',\n vars: { bg: 'linear-gradient(135deg, #1e1b4b, #0e7490)', fg: '#f8fafc', accent: '#a5f3fc', 'accent-2': '#c4b5fd', surface: '#ffffff1f', border: '1px solid #ffffff40', radius: '18px', shadow: '0 8px 32px #0000003d', font: 'system-ui, -apple-system, \"Segoe UI\", sans-serif' },\n motion: { duration: { normal: 320 }, easing: { standard: 'cubic-bezier(0.22, 1, 0.36, 1)' } },\n presets: P('blur', 'glass-shine', 'ripple', 'focus-pulse', 'mesh-gradient'),\n },\n retro: {\n name: 'retro',\n vars: { bg: '#1d1135', fg: '#ffe9a8', accent: '#ff6b35', 'accent-2': '#2ec4b6', surface: '#2a1b4d', border: '3px solid #ffe9a8', radius: '0', shadow: '4px 4px 0 #ff6b35', font: '\"Courier New\", ui-monospace, monospace' },\n motion: { duration: { normal: 300 }, easing: { standard: 'steps(6, end)' } },\n presets: P('clip-up', 'rubber-band', 'star-burst', 'tada', 'retro-scanlines'),\n },\n brutalist: {\n name: 'brutalist',\n vars: { bg: '#ffffff', fg: '#000000', accent: '#ff3b00', 'accent-2': '#0047ff', surface: '#fff200', border: '3px solid #000000', radius: '0', shadow: '6px 6px 0 #000000', font: '\"Arial Black\", Arial, sans-serif' },\n motion: { duration: { fast: 80, normal: 160 }, easing: { standard: 'linear' } },\n presets: P('drop-bounce', 'jelly', 'brutal-shift', 'shake', 'voronoi'),\n },\n};\n\nexport const THEME_NAMES = Object.keys(THEMES);\n\nconst BASE_CSS = `[data-usa-theme]{background:var(--usa-theme-bg);color:var(--usa-theme-fg);font-family:var(--usa-theme-font)}\n[data-usa-theme] .usa-surface{background:var(--usa-theme-surface);border:var(--usa-theme-border);border-radius:var(--usa-theme-radius);box-shadow:var(--usa-theme-shadow)}\n[data-usa-theme] .usa-accent{color:var(--usa-theme-accent)}\n[data-usa-theme=glass] .usa-surface{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}`;\n\nconst pack = (t: string | ThemePack): ThemePack => {\n const p = typeof t === 'string' ? THEMES[t] : t;\n if (!p) throw new Error(`[motionary] unknown theme \"${String(t)}\" — ${THEME_NAMES.join(', ')}`);\n return p;\n};\n\n/** The CSS custom properties of a theme (design + motion tokens). */\nexport function themeVars(t: string | ThemePack): Record<string, string> {\n const p = pack(t);\n const out: Record<string, string> = {};\n for (const [k, v] of Object.entries(p.vars)) out[`--usa-theme-${k}`] = v;\n return { ...out, ...motionTokensToVars(mergeMotionTokens(p.motion)) };\n}\n\n/** A theme as a CSS rule (`selector` default `[data-usa-theme=<name>]`) — for SSR / static CSS. */\nexport function themeCss(t: string | ThemePack, selector?: string): string {\n const p = pack(t);\n return `${selector || `[data-usa-theme=${p.name}]`}{${Object.entries(themeVars(p)).map(([k, v]) => `${k}:${v}`).join(';')}}`;\n}\n\n/** Apply a theme to `root` (default `<html>`). Returns an undo. */\nexport function applyTheme(t: string | ThemePack, root?: HTMLElement): () => void {\n const p = pack(t);\n const el = root || document.documentElement;\n adoptStyles('usa-theme', BASE_CSS);\n const prevAttr = el.getAttribute('data-usa-theme');\n el.setAttribute('data-usa-theme', p.name);\n const vars = Object.entries(p.vars).map(([k, v]) => [`--usa-theme-${k}`, v] as const);\n const old = vars.map(([k]) => [k, el.style.getPropertyValue(k)] as const);\n for (const [k, v] of vars) el.style.setProperty(k, v);\n let undoMotion: () => void;\n if (el === document.documentElement) undoMotion = applyMotionTokens(p.motion, el);\n else {\n const mv = Object.entries(motionTokensToVars(mergeMotionTokens(p.motion)));\n const mold = mv.map(([k]) => [k, el.style.getPropertyValue(k)] as const);\n for (const [k, v] of mv) el.style.setProperty(k, v);\n undoMotion = () => mold.forEach(([k, v]) => (v ? el.style.setProperty(k, v) : el.style.removeProperty(k)));\n }\n return () => {\n undoMotion();\n old.forEach(([k, v]) => (v ? el.style.setProperty(k, v) : el.style.removeProperty(k)));\n if (prevAttr === null) el.removeAttribute('data-usa-theme');\n else el.setAttribute('data-usa-theme', prevAttr);\n };\n}\n\n/** The effect preset of a theme for a role. */\nexport function themePreset(t: string | ThemePack, role: ThemeRole): { effect: string; options?: Record<string, unknown> } {\n return pack(t).presets[role];\n}\n\n/** Play the preset for `role` of the theme on the closest `[data-usa-theme]` (or `theme`). */\nexport function playThemeEffect(el: HTMLElement, role: ThemeRole, theme?: string): Promise<void> {\n const name = theme || el.closest('[data-usa-theme]')?.getAttribute('data-usa-theme') || 'neon';\n const pr = themePreset(name, role);\n return playEffect(el, pr.effect, pr.options);\n}\n\nexport const THEME_FX: EffectDefinition[] = [\n {\n name: 'neon-flicker',\n kind: 'attention',\n description: 'A neon tube flickering on — dims (never blacks out) twice, well under 3 flashes per second.',\n defaults: { color: '#22d3ee' },\n run: (el, o: any, ctx) =>\n ctx.animate(el, [{ opacity: 1, filter: 'none' }, { opacity: 0.55, offset: 0.2 }, { opacity: 1, filter: `drop-shadow(0 0 6px ${o.color})`, offset: 0.35 }, { opacity: 0.7, offset: 0.6 }, { opacity: 1, filter: `drop-shadow(0 0 10px ${o.color})` }], { duration: 900, easing: 'linear' }),\n },\n {\n name: 'paper-fold',\n kind: 'enter',\n description: 'Unfolds like a sheet of paper hinged at the top.',\n defaults: { duration: 600 },\n run: (el, o: any, ctx) =>\n ctx.animate(el, [{ transform: 'perspective(800px) rotateX(-85deg)', transformOrigin: 'top', opacity: 0 }, { transform: 'perspective(800px) rotateX(12deg)', transformOrigin: 'top', opacity: 1, offset: 0.7 }, { transform: 'perspective(800px) rotateX(0)', transformOrigin: 'top', opacity: 1 }], { duration: o.duration, easing: 'ease-out', fill: 'backwards' }),\n },\n {\n name: 'glass-shine',\n kind: 'hover',\n description: 'A bright diagonal shine sweeps across frosted glass.',\n defaults: { duration: 700 },\n run: (el, o: any, ctx) => {\n const [s, remove] = overlay(el, 'overflow:hidden;background:linear-gradient(105deg,transparent 35%,#ffffff8c 50%,transparent 65%);background-size:250% 100%;background-position:120% 0');\n const a = ctx.animate(s, [{ backgroundPosition: '120% 0' }, { backgroundPosition: '-20% 0' }], { duration: o.duration, easing: 'ease-in-out' });\n return a ? a.finished.then(remove, remove) : void remove();\n },\n },\n {\n name: 'retro-scanlines',\n kind: 'background',\n description: 'CRT scanlines with a slow roll (static lines under reduced motion; persistent).',\n reduced: 'run',\n defaults: { opacity: 0.18 },\n run: (el, o: any, ctx) => {\n const [s, remove] = overlay(el, `opacity:${o.opacity};background:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 3px);mix-blend-mode:multiply`);\n const a = ctx.reduced ? null : ctx.animate(s, [{ backgroundPosition: '0 0' }, { backgroundPosition: '0 30px' }], { duration: 2400, iterations: Infinity, easing: 'linear' });\n return () => {\n a?.cancel();\n remove();\n };\n },\n },\n {\n name: 'brutal-shift',\n kind: 'click',\n description: 'Presses into its hard drop shadow and springs back (brutalist buttons).',\n defaults: { offset: 6 },\n run: (el, o: any, ctx) =>\n ctx.animate(el, [{ transform: 'translate(0,0)' }, { transform: `translate(${o.offset}px,${o.offset}px)`, boxShadow: '0 0 0 #000', offset: 0.3 }, { transform: 'translate(0,0)' }], { duration: 260, easing: 'ease-out' }),\n },\n];\n\nexport interface UsaThemeElement extends UsaElement {\n readonly theme: string;\n}\n\n/** `<usa-theme name=\"neon | paper | glass | retro | brutalist\">` — a themed subtree. */\nexport function defineTheme(tag = 'usa-theme'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaTheme extends Base {\n static get observedAttributes(): string[] {\n return ['name'];\n }\n get theme(): string {\n const n = this.str('name', 'neon');\n return THEMES[n] ? n : 'neon';\n }\n mount(): void {\n this.onCleanup(applyTheme(this.theme, this));\n this.querySelectorAll<HTMLElement>('[data-theme-fx]').forEach((el) => {\n const role = (el.dataset.themeFx || 'click') as ThemeRole;\n if (!THEME_ROLES.includes(role)) return;\n const pr = themePreset(this.theme, role);\n const trigger: EffectTrigger = role === 'attention' ? 'click' : role === 'background' ? 'load' : role;\n try {\n this.onCleanup(bindEffect(el, pr.effect, { ...(pr.options || {}), trigger }));\n } catch {\n /* effect not registered: call registerAllEffects() */\n }\n });\n }\n },\n { id: 'usa-theme-el', text: 'usa-theme{display:block}' }\n );\n}\n","/**\n * motionary/components/effects — the 5.x effect packs, all\n * registered through `registerEffect()` (5.0) and playable with\n * `playEffect()`, `bindEffect()` or `<usa-fx>`. Kept out of\n * `motionary/components` / `components/lite` so their size budgets\n * hold; the UMD bundle registers everything.\n *\n * ```ts\n * import { registerAllEffects } from 'motionary/components/effects';\n * registerAllEffects();\n * ```\n */\nimport { registerEffects, registerBuiltinEffects } from '../fx/index';\nimport type { EffectDefinition } from '../fx/registry';\nimport { CARD_FX, CLICK_FX } from './cards-click';\nimport { PHYSICS_FX } from './physics';\nimport { PAGE_FX } from './page';\nimport { defineStory } from './story';\nimport { GENERATIVE_FX } from './generative';\nimport { AUDIO_FX, defineAudio } from './audio';\nimport { CURSOR_FX, defineGestureFx } from './cursor';\nimport { MICRO_FX } from './micro';\nimport { THEME_FX, defineTheme } from './themes';\nimport { definePlayer } from './player';\n\nexport { CARD_FX, CLICK_FX, PHYSICS_FX, PAGE_FX, GENERATIVE_FX, AUDIO_FX, CURSOR_FX, MICRO_FX, THEME_FX };\nexport { togglePressed, swapLabel, bumpCount } from './micro';\nexport { THEMES, THEME_NAMES, THEME_ROLES, themeVars, themeCss, applyTheme, themePreset, playThemeEffect, defineTheme } from './themes';\nexport type { ThemePack, ThemeRole, UsaThemeElement } from './themes';\nexport { createPlayer, normalizeAnimation, definePlayer, ANIMATION_FORMAT } from './player';\nexport type { AnimationJSON, AnimationTrack, Player, UsaPlayerElement } from './player';\nexport { bindGesture, flingVelocity, angleDelta, GESTURES, defineGestureFx } from './cursor';\nexport type { GestureName, GestureFxOptions, GestureDetail, UsaGestureFxElement } from './cursor';\nexport { enableAudio, disableAudio, getAudio, createBeatDetector, onBeat, bindBeat, defineAudio } from './audio';\nexport type { AudioInput, AudioSample, AudioReactive, BeatOptions, UsaAudioElement } from './audio';\nexport { canvasBackground, noise2, hexRgb } from './generative';\nexport type { GenFrame, GenerativeSpec } from './generative';\nexport { solveSpring, springKeyframes, bounceKeyframes } from './physics';\nexport type { SpringOptions } from './physics';\nexport { defineStory, STORY_TEMPLATES, storyProgress, formatCount } from './story';\nexport type { StoryTemplate, UsaStoryElement } from './story';\nexport { fxLayer } from './shared';\n\n/** The effect packs by version, in release order. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n 'cards-click': [...CARD_FX, ...CLICK_FX],\n physics: PHYSICS_FX,\n page: PAGE_FX,\n generative: GENERATIVE_FX,\n audio: AUDIO_FX,\n cursor: CURSOR_FX,\n micro: MICRO_FX,\n themes: THEME_FX,\n};\n\n/** 5.1: card & click effects 2.0. */\nexport function registerCardClickEffects(): void {\n registerEffects(EFFECT_PACKS['cards-click']);\n}\n\n/** 5.2: bounce & physics micro-interactions. */\nexport function registerPhysicsEffects(): void {\n registerEffects(EFFECT_PACKS.physics);\n}\n\n/** 5.3: page-wide transitions and effects. */\nexport function registerPageEffects(): void {\n registerEffects(EFFECT_PACKS.page);\n}\n\n/** 5.5: generative Canvas 2D backgrounds. */\nexport function registerGenerativeEffects(): void {\n registerEffects(EFFECT_PACKS.generative);\n}\n\n/** 5.6: sound-reactive (Web Audio) backgrounds. */\nexport function registerAudioEffects(): void {\n registerEffects(EFFECT_PACKS.audio);\n}\n\n/** 5.7: cursor trails, magnetic dots, spotlight cursor. */\nexport function registerCursorEffects(): void {\n registerEffects(EFFECT_PACKS.cursor);\n}\n\n/** 5.8: micro-interactions + theme-pack effects. */\nexport function registerMicroEffects(): void {\n registerEffects(EFFECT_PACKS.micro);\n registerEffects(EFFECT_PACKS.themes);\n}\n\n/** Define the 5.x elements of this entry (`<usa-story>`, …) under their default tags. */\nexport function defineEffectElements(): void {\n defineStory();\n defineAudio();\n defineGestureFx();\n defineTheme();\n definePlayer();\n}\n\n/** Register the built-ins and every pack (idempotent). */\nexport function registerAllEffects(): void {\n registerBuiltinEffects();\n for (const defs of Object.values(EFFECT_PACKS)) registerEffects(defs);\n}\n"],"names":["overlay","all","origin","spawn","PALETTE","rand","fxLayer","hexRgb","canvasBackground","playEffect","defineElement","motionTokensToVars","mergeMotionTokens","adoptStyles","applyMotionTokens","bindEffect","GENERATIVE_FX","AUDIO_FX","registerEffects","defineStory","defineAudio","definePlayer","registerBuiltinEffects"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"effects.cjs","sources":["../../src/components/effects/cards-click.ts","../../src/components/effects/physics.ts","../../src/components/effects/page.ts","../../src/components/effects/cursor.ts","../../src/components/effects/micro.ts","../../src/components/effects/themes.ts","../../src/components/effects/index.ts"],"sourcesContent":["/**\n * 5.1 — card & click effects 2.0, registered through `registerEffect()`.\n * Card: `holo` (holographic foil following the pointer), `glare-sweep`,\n * `book-open`, `card-fan`, `topple`, `float-tilt`. Click: `shockwave`,\n * `ink-splash`, `star-burst`, `jelly-press`, `ring-ripple`, `emoji-rain`.\n */\nimport type { EffectDefinition } from '../fx/registry';\nimport { origin, spawn, overlay, PALETTE, rand, all } from './shared';\n\nexport const CARD_FX: EffectDefinition[] = [\n {\n name: 'holo',\n kind: 'card',\n description: 'Holographic foil: a rainbow sheen and sparkle that follow the pointer (persistent; bind with trigger=\"load\").',\n reduced: 'run',\n defaults: { strength: 0.55 },\n run: (el, o: any, ctx) => {\n const [layer, remove] = overlay(el, `mix-blend-mode:color-dodge;opacity:${o.strength};background:linear-gradient(115deg,transparent 20%,#ff8bd855 35%,#8bf3ff55 45%,#fff58b55 55%,transparent 70%),repeating-linear-gradient(55deg,#ffffff10 0 2px,transparent 2px 6px);background-size:250% 250%,100% 100%;background-position:50% 50%;transition:background-position .2s ease-out`);\n if (ctx.reduced) return remove;\n const move = (e: PointerEvent) => {\n const r = el.getBoundingClientRect();\n const x = ((e.clientX - r.left) / (r.width || 1)) * 100;\n const y = ((e.clientY - r.top) / (r.height || 1)) * 100;\n layer.style.backgroundPosition = `${x}% ${y}%, 0 0`;\n el.style.transform = `perspective(700px) rotateY(${(x - 50) / 8}deg) rotateX(${(50 - y) / 8}deg)`;\n };\n const leave = () => {\n layer.style.backgroundPosition = '50% 50%, 0 0';\n el.style.transform = '';\n };\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerleave', leave);\n return () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n leave();\n remove();\n };\n },\n },\n {\n name: 'glare-sweep',\n kind: 'card',\n description: 'A diagonal light streak sweeps across the card once.',\n defaults: { duration: 900, color: 'rgba(255,255,255,.55)' },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const [g, remove] = overlay(el, `overflow:hidden;background:linear-gradient(105deg,transparent 35%,${o.color} 50%,transparent 65%);background-size:250% 100%`);\n const a = ctx.animate(g, [{ backgroundPosition: '150% 0' }, { backgroundPosition: '-50% 0' }], { duration: o.duration, easing: 'ease-in-out' });\n if (a) a.finished.then(remove, remove);\n else remove();\n return a;\n },\n },\n {\n name: 'book-open',\n kind: 'card',\n description: 'The card opens like a book cover around its left edge, peeks and closes.',\n defaults: { angle: 35, duration: 1100 },\n run: (el, o: any, ctx) => {\n el.style.transformOrigin = 'left center';\n return ctx.animate(el, [{ transform: 'perspective(900px) rotateY(0)' }, { transform: `perspective(900px) rotateY(-${o.angle}deg)`, offset: 0.45 }, { transform: 'perspective(900px) rotateY(0)' }], { duration: o.duration, easing: 'cubic-bezier(0.34, 1.3, 0.64, 1)' });\n },\n },\n {\n name: 'card-fan',\n kind: 'card',\n description: 'The element’s children fan out like a hand of cards, then gather.',\n defaults: { spread: 14, duration: 900 },\n run: (el, o: any, ctx) => {\n const kids = Array.from(el.children) as HTMLElement[];\n const mid = (kids.length - 1) / 2;\n return all(kids.map((k, i) => ctx.animate(k, [{ transform: 'none' }, { transform: `translateX(${(i - mid) * o.spread}px) rotate(${(i - mid) * (o.spread / 2)}deg)`, offset: 0.5 }, { transform: 'none' }], { duration: o.duration, easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)' })));\n },\n },\n {\n name: 'topple',\n kind: 'card',\n description: 'Tips backwards on its bottom edge and springs upright.',\n defaults: { duration: 1000 },\n run: (el, o: any, ctx) => {\n el.style.transformOrigin = 'bottom center';\n return ctx.animate(el, [{ transform: 'perspective(800px) rotateX(0)' }, { transform: 'perspective(800px) rotateX(55deg)', offset: 0.35 }, { transform: 'perspective(800px) rotateX(-12deg)', offset: 0.6 }, { transform: 'perspective(800px) rotateX(5deg)', offset: 0.8 }, { transform: 'perspective(800px) rotateX(0)' }], { duration: o.duration, easing: 'ease-out' });\n },\n },\n {\n name: 'float-tilt',\n kind: 'loop',\n description: 'Idle floating with a slow 3D sway (loop; stops under reduced motion).',\n defaults: { duration: 4200, distance: 8 },\n run: (el, o: any, ctx) => {\n const a = ctx.animate(el, [{ transform: 'translateY(0) rotateX(0) rotateY(0)' }, { transform: `translateY(-${o.distance}px) rotateX(4deg) rotateY(-5deg)` }, { transform: 'translateY(0) rotateX(0) rotateY(0)' }], { duration: o.duration, iterations: Infinity, easing: 'ease-in-out' });\n return () => a?.cancel();\n },\n },\n];\n\nexport const CLICK_FX: EffectDefinition[] = [\n {\n name: 'shockwave',\n kind: 'click',\n description: 'Two expanding rings from the click point.',\n defaults: { color: '#7c5cff', size: 160, duration: 700 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all([0, 120].map((delay) => spawn(x, y, `width:${o.size}px;height:${o.size}px;margin:${-o.size / 2}px 0 0 ${-o.size / 2}px;border:3px solid ${o.color};border-radius:50%`, ctx, [{ transform: 'scale(0)', opacity: 0.9 }, { transform: 'scale(1)', opacity: 0 }], { duration: o.duration, delay, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' })));\n },\n },\n {\n name: 'ink-splash',\n kind: 'click',\n description: 'Ink blobs splatter from the click point and fade.',\n defaults: { count: 9, colors: PALETTE, duration: 800 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all(Array.from({ length: o.count }, (_, i) => {\n const s = rand(6, 22);\n const ang = rand(0, Math.PI * 2);\n const d = rand(20, 70);\n return spawn(x, y, `width:${s}px;height:${s}px;margin:${-s / 2}px 0 0 ${-s / 2}px;background:${o.colors[i % o.colors.length]};border-radius:${rand(40, 50)}% ${rand(50, 60)}% ${rand(40, 60)}% ${rand(45, 55)}%`, ctx, [{ transform: 'translate(0,0) scale(.3)', opacity: 1 }, { transform: `translate(${Math.cos(ang) * d}px,${Math.sin(ang) * d}px) scale(1)`, opacity: 0.9, offset: 0.5 }, { transform: `translate(${Math.cos(ang) * d}px,${Math.sin(ang) * d + 8}px) scale(1.1)`, opacity: 0 }], { duration: o.duration, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' });\n }));\n },\n },\n {\n name: 'star-burst',\n kind: 'click',\n description: 'Spinning stars burst outward.',\n defaults: { count: 10, colors: ['#facc15', '#fb923c', '#f472b6'], duration: 900 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all(Array.from({ length: o.count }, (_, i) => {\n const ang = (i / o.count) * Math.PI * 2;\n const d = rand(40, 80);\n const s = rand(12, 22);\n return spawn(x, y, `font-size:${s}px;line-height:1;margin:${-s / 2}px 0 0 ${-s / 2}px;color:${o.colors[i % o.colors.length]}`, ctx, [{ transform: 'translate(0,0) rotate(0) scale(.2)', opacity: 1 }, { transform: `translate(${Math.cos(ang) * d}px,${Math.sin(ang) * d}px) rotate(${rand(180, 360)}deg) scale(1)`, opacity: 0 }], { duration: o.duration, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' }, '★');\n }));\n },\n },\n {\n name: 'jelly-press',\n kind: 'click',\n description: 'The pressed element squishes like jelly and wobbles back.',\n defaults: { duration: 650 },\n run: (el, o: any, ctx) =>\n ctx.reduced ? ctx.animate(el, [{ opacity: 1 }, { opacity: 0.7 }, { opacity: 1 }], { duration: 250 }) : ctx.animate(el, [{ transform: 'scale(1,1)' }, { transform: 'scale(1.15,.85)', offset: 0.2 }, { transform: 'scale(.9,1.1)', offset: 0.4 }, { transform: 'scale(1.05,.95)', offset: 0.6 }, { transform: 'scale(.98,1.02)', offset: 0.8 }, { transform: 'scale(1,1)' }], { duration: o.duration, easing: 'ease-out' }),\n },\n {\n name: 'ring-ripple',\n kind: 'click',\n description: 'Concentric outlined rings ripple out like water.',\n defaults: { rings: 3, color: '#22d3ee', size: 120, duration: 1000 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n return all(Array.from({ length: o.rings }, (_, i) => spawn(x, y, `width:${o.size}px;height:${o.size}px;margin:${-o.size / 2}px 0 0 ${-o.size / 2}px;border:2px solid ${o.color};border-radius:50%`, ctx, [{ transform: 'scale(.1)', opacity: 0.8 }, { transform: 'scale(1)', opacity: 0 }], { duration: o.duration, delay: i * 160, easing: 'ease-out' })));\n },\n },\n {\n name: 'emoji-rain',\n kind: 'click',\n description: 'Emoji pop up and fall around the click (pass `emoji: \"🎉✨💜\"`).',\n defaults: { emoji: '🎉✨💜🔥', count: 14, duration: 1300 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const { x, y } = origin(el, ctx);\n const chars = Array.from(String(o.emoji));\n return all(Array.from({ length: o.count }, (_, i) => {\n const dx = rand(-90, 90);\n return spawn(x, y, `font-size:${rand(16, 28)}px;line-height:1`, ctx, [{ transform: 'translate(0,0) scale(.4)', opacity: 0 }, { transform: `translate(${dx * 0.6}px,${rand(-90, -50)}px) scale(1)`, opacity: 1, offset: 0.35 }, { transform: `translate(${dx}px,${rand(40, 90)}px) rotate(${rand(-60, 60)}deg) scale(.9)`, opacity: 0 }], { duration: o.duration, delay: i * 25, easing: 'cubic-bezier(0.33, 0, 0.67, 1)' }, chars[i % chars.length]);\n }));\n },\n },\n];\n","/**\n * 5.2 — bounce & physics micro-interactions, registered through\n * `registerEffect()`. Keyframes come from a damped-spring / gravity solver\n * (`springKeyframes()`, `bounceKeyframes()`), so the motion is physical but\n * still runs on the Web Animations API (compositor, reduced-motion aware).\n * Effects: `bounce-in`, `rubber-band`, `elastic-hover`, `drop-bounce`,\n * `gravity-text`, `spring-follow`, `bell-swing`.\n */\nimport type { EffectDefinition } from '../fx/registry';\nimport { all } from './shared';\n\nexport interface SpringOptions {\n stiffness?: number;\n damping?: number;\n mass?: number;\n /** Samples (keyframes). */\n steps?: number;\n}\n\n/**\n * Sample a damped spring from 0 → 1 and return the progress values plus the\n * time (ms) it takes to settle. Pure, deterministic.\n */\nexport function solveSpring({ stiffness = 180, damping = 12, mass = 1, steps = 40 }: SpringOptions = {}): { values: number[]; duration: number } {\n const dt = 1 / 120;\n let x = 0;\n let v = 0;\n const trace: number[] = [];\n let t = 0;\n for (; t < 4; t += dt) {\n const a = (-stiffness * (x - 1) - damping * v) / mass;\n v += a * dt;\n x += v * dt;\n trace.push(x);\n if (t > 0.1 && Math.abs(x - 1) < 0.001 && Math.abs(v) < 0.01) break;\n }\n const values = Array.from({ length: steps + 1 }, (_, i) => +trace[Math.min(trace.length - 1, Math.round((i / steps) * (trace.length - 1)))].toFixed(4));\n values[0] = 0;\n values[steps] = 1;\n return { values, duration: Math.round(trace.length * dt * 1000) };\n}\n\n/** Keyframes for a property driven by a spring: `map(progress)` → keyframe. */\nexport function springKeyframes(map: (p: number) => Keyframe, spring?: SpringOptions): { frames: Keyframe[]; duration: number } {\n const { values, duration } = solveSpring(spring);\n return { frames: values.map(map), duration };\n}\n\n/** Height (0 = floor, 1 = drop height) of a ball dropped with restitution `bounce`, sampled `steps` times. */\nexport function bounceKeyframes(bounce = 0.5, steps = 48): number[] {\n // segment durations scale with sqrt(height); heights scale with bounce^2 per hop\n const hops: number[] = [1];\n let h = 1;\n while (hops.length < 6 && h > 0.01) {\n h *= bounce * bounce;\n hops.push(h);\n }\n const segT = hops.map((hh, i) => (i === 0 ? Math.sqrt(hh) : 2 * Math.sqrt(hh)));\n const total = segT.reduce((a, b) => a + b, 0);\n return Array.from({ length: steps + 1 }, (_, i) => {\n let t = (i / steps) * total;\n for (let k = 0; k < hops.length; k++) {\n if (t <= segT[k] || k === hops.length - 1) {\n const tt = Math.min(t, segT[k]);\n if (k === 0) return +(1 - (tt / segT[0]) ** 2).toFixed(4);\n const half = segT[k] / 2;\n return +(hops[k] * (1 - ((tt - half) / half) ** 2)).toFixed(4);\n }\n t -= segT[k];\n }\n return 0;\n });\n}\n\nconst fade = (el: HTMLElement, ctx: Parameters<EffectDefinition['run']>[2]) => ctx.animate(el, [{ opacity: 0 }, { opacity: 1 }], { duration: 200 });\n\nexport const PHYSICS_FX: EffectDefinition[] = [\n {\n name: 'bounce-in',\n kind: 'enter',\n description: 'Springs in from small with an overshoot (spring solver; stiffness / damping options).',\n defaults: { stiffness: 220, damping: 11, from: 0.3 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return fade(el, ctx);\n const { frames, duration } = springKeyframes((p) => ({ transform: `scale(${(o.from + (1 - o.from) * p).toFixed(4)})`, opacity: Math.min(1, p * 3) }), o);\n return ctx.animate(el, frames, { duration, easing: 'linear' });\n },\n },\n {\n name: 'rubber-band',\n kind: 'attention',\n description: 'Stretches wide, snaps back thin and settles like a rubber band.',\n defaults: { duration: 900, amount: 0.25 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const a = o.amount;\n return ctx.animate(el, [{ transform: 'scale(1,1)' }, { transform: `scale(${1 + a},${1 - a})`, offset: 0.3 }, { transform: `scale(${1 - a},${1 + a})`, offset: 0.4 }, { transform: `scale(${1 + a / 2},${1 - a / 2})`, offset: 0.5 }, { transform: `scale(${1 - a / 5},${1 + a / 5})`, offset: 0.65 }, { transform: `scale(${1 + a / 10},${1 - a / 10})`, offset: 0.75 }, { transform: 'scale(1,1)' }], { duration: o.duration });\n },\n },\n {\n name: 'elastic-hover',\n kind: 'hover',\n description: 'Hover lifts with a springy overshoot; leaving springs back (persistent; trigger=\"load\").',\n defaults: { lift: 6, scale: 1.04, stiffness: 260, damping: 10 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const to = (on: boolean) => {\n const from = on ? 0 : 1;\n const { frames, duration } = springKeyframes((p) => {\n const k = from + (on ? p : -p);\n return { transform: `translateY(${(-o.lift * k).toFixed(2)}px) scale(${(1 + (o.scale - 1) * k).toFixed(4)})` };\n }, o);\n ctx.animate(el, frames, { duration, fill: 'forwards', easing: 'linear' });\n };\n const enter = () => to(true);\n const leave = () => to(false);\n el.addEventListener('pointerenter', enter);\n el.addEventListener('pointerleave', leave);\n return () => {\n el.removeEventListener('pointerenter', enter);\n el.removeEventListener('pointerleave', leave);\n };\n },\n },\n {\n name: 'drop-bounce',\n kind: 'enter',\n description: 'Falls in under gravity and bounces to rest (`height`, `bounce` restitution 0–0.9).',\n defaults: { height: 120, bounce: 0.5, duration: 1100 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return fade(el, ctx);\n const hs = bounceKeyframes(Math.min(0.9, Math.max(0, o.bounce)));\n return ctx.animate(el, hs.map((h, i) => ({ transform: `translateY(${(-h * o.height).toFixed(1)}px)`, opacity: i === 0 ? 0 : 1 })), { duration: o.duration, easing: 'linear' });\n },\n },\n {\n name: 'gravity-text',\n kind: 'text',\n description: 'Each character drops in under gravity with a bounce, staggered (splits the text into aria-hidden spans; the label stays readable).',\n defaults: { height: 60, bounce: 0.45, duration: 900, stagger: 45 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n if (!el.dataset.usaSplit) {\n const text = el.textContent || '';\n el.setAttribute('aria-label', text);\n el.textContent = '';\n for (const ch of Array.from(text)) {\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.style.display = 'inline-block';\n s.style.whiteSpace = 'pre';\n s.textContent = ch;\n el.appendChild(s);\n }\n el.dataset.usaSplit = '1';\n }\n const hs = bounceKeyframes(o.bounce, 32);\n return all((Array.from(el.children) as HTMLElement[]).map((s, i) => ctx.animate(s, hs.map((h) => ({ transform: `translateY(${(-h * o.height).toFixed(1)}px)` })), { duration: o.duration, delay: i * o.stagger, easing: 'linear', fill: 'backwards' })));\n },\n },\n {\n name: 'spring-follow',\n kind: 'cursor',\n description: 'The element springs toward the pointer while it moves over its parent, and back home on leave (persistent).',\n defaults: { stiffness: 0.12, damping: 0.75, range: 40 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n const host = el.parentElement || el;\n let tx = 0;\n let ty = 0;\n let x = 0;\n let y = 0;\n let vx = 0;\n let vy = 0;\n let raf = 0;\n const tick = () => {\n vx = (vx + (tx - x) * o.stiffness) * o.damping;\n vy = (vy + (ty - y) * o.stiffness) * o.damping;\n x += vx;\n y += vy;\n el.style.translate = `${x.toFixed(2)}px ${y.toFixed(2)}px`;\n raf = Math.abs(vx) + Math.abs(vy) + Math.abs(tx - x) + Math.abs(ty - y) > 0.05 ? requestAnimationFrame(tick) : 0;\n };\n const kick = () => {\n if (!raf) raf = requestAnimationFrame(tick);\n };\n const move = (e: PointerEvent) => {\n const r = host.getBoundingClientRect();\n const nx = (e.clientX - r.left) / (r.width || 1) - 0.5;\n const ny = (e.clientY - r.top) / (r.height || 1) - 0.5;\n tx = nx * 2 * o.range;\n ty = ny * 2 * o.range;\n kick();\n };\n const leave = () => {\n tx = ty = 0;\n kick();\n };\n host.addEventListener('pointermove', move);\n host.addEventListener('pointerleave', leave);\n return () => {\n host.removeEventListener('pointermove', move);\n host.removeEventListener('pointerleave', leave);\n cancelAnimationFrame(raf);\n el.style.translate = '';\n };\n },\n },\n {\n name: 'bell-swing',\n kind: 'attention',\n description: 'Swings from its top like a ringing bell with damped oscillation.',\n defaults: { angle: 22, stiffness: 120, damping: 4 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n el.style.transformOrigin = 'top center';\n const { frames, duration } = springKeyframes((p) => ({ transform: `rotate(${(o.angle * (1 - p)).toFixed(2)}deg)` }), { stiffness: o.stiffness, damping: o.damping, steps: 48 });\n frames[0] = { transform: 'rotate(0deg)' };\n return ctx.animate(el, frames, { duration: Math.min(duration, 2400), easing: 'linear' });\n },\n },\n];\n","/**\n * 5.3 — page-wide effects, registered through `registerEffect()`.\n * Transitions (cover → `onCovered()` → reveal): `curtain`, `iris`,\n * `pixel-dissolve`, `blinds`. Persistent page effects: `velocity-skew`,\n * `spotlight`, `edge-glow`.\n *\n * ```ts\n * await playEffect(document.body, 'iris', { onCovered: () => router.go('/next') });\n * ```\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { origin } from './shared';\n\n/** A full-viewport, aria-hidden, pointer-blocking (while covering) transition layer. */\nfunction screen(css = ''): HTMLElement {\n const s = document.createElement('div');\n s.setAttribute('aria-hidden', 'true');\n s.setAttribute('data-usa-page-fx', '');\n s.style.cssText = `position:fixed;inset:0;z-index:2147483001;pointer-events:auto;${css}`;\n document.body.appendChild(s);\n return s;\n}\n\nconst wait = (a: Animation | null) => (a ? a.finished.catch(() => undefined) : Promise.resolve());\nconst call = async (fn: unknown) => {\n if (typeof fn === 'function') await fn();\n};\n\n/** Reduced-motion version of every transition: a quick cross-fade through the cover colour. */\nasync function crossFade(o: any, ctx: EffectContext): Promise<void> {\n const s = screen(`background:${o.color};opacity:0`);\n await wait(ctx.animate(s, [{ opacity: 0 }, { opacity: 1 }], { duration: 150, fill: 'forwards' }));\n await call(o.onCovered);\n await wait(ctx.animate(s, [{ opacity: 1 }, { opacity: 0 }], { duration: 150, fill: 'forwards' }));\n s.remove();\n}\n\n/** Build a transition from a cover layer and cover / reveal animations of its parts. */\nfunction transition(build: (s: HTMLElement, o: any, ctx: EffectContext, el: HTMLElement) => { parts: HTMLElement[]; cover: Keyframe[] | ((i: number) => Keyframe[]); delay?: (i: number) => number }): EffectDefinition['run'] {\n return async (el, o: any, ctx) => {\n if (ctx.reduced) return crossFade(o, ctx);\n const s = screen('pointer-events:auto');\n const { parts, cover, delay } = build(s, o, ctx, el);\n const frames = (i: number) => (typeof cover === 'function' ? cover(i) : cover);\n const half = o.duration / 2;\n await Promise.all(parts.map((p, i) => wait(ctx.animate(p, frames(i), { duration: half, delay: delay?.(i) ?? 0, easing: 'cubic-bezier(0.65, 0, 0.35, 1)', fill: 'both' }))));\n await call(o.onCovered);\n if (o.hold) await new Promise((r) => setTimeout(r, o.hold));\n await Promise.all(parts.map((p, i) => wait(ctx.animate(p, [...frames(i)].reverse(), { duration: half, delay: delay?.(i) ?? 0, easing: 'cubic-bezier(0.65, 0, 0.35, 1)', fill: 'both' }))));\n s.remove();\n };\n}\n\nconst part = (s: HTMLElement, css: string) => {\n const p = document.createElement('div');\n p.style.cssText = `position:absolute;${css}`;\n s.appendChild(p);\n return p;\n};\n\nconst TRANSITION_DEFAULTS = { color: '#0f0f1a', duration: 1000, hold: 0, onCovered: undefined as undefined | (() => unknown) };\n\nexport const PAGE_FX: EffectDefinition[] = [\n {\n name: 'curtain',\n kind: 'page',\n description: 'Two curtain panels close from the sides, call onCovered(), then open.',\n reduced: 'run',\n defaults: TRANSITION_DEFAULTS,\n run: transition((s, o) => ({\n parts: [part(s, `top:0;bottom:0;left:0;width:50.5%;background:${o.color}`), part(s, `top:0;bottom:0;right:0;width:50.5%;background:${o.color}`)],\n cover: (i) => [{ transform: `translateX(${i ? 100 : -100}%)` }, { transform: 'translateX(0)' }],\n })),\n },\n {\n name: 'iris',\n kind: 'page',\n description: 'A circle closes on the click point (or the element’s center), calls onCovered(), then opens.',\n reduced: 'run',\n defaults: TRANSITION_DEFAULTS,\n run: transition((s, o, ctx, el) => {\n const { x, y } = origin(el, ctx);\n const r = Math.hypot(Math.max(x, innerWidth - x), Math.max(y, innerHeight - y)) + 2;\n // a huge box-shadow ring around a hole: the hole shrinks to 0 to cover\n const p = part(s, `left:${x}px;top:${y}px;width:0;height:0;border-radius:50%;box-shadow:0 0 0 ${Math.ceil(r)}px ${o.color}`);\n s.style.background = 'transparent';\n return { parts: [p], cover: [{ width: `${r * 2}px`, height: `${r * 2}px`, margin: `${-r}px 0 0 ${-r}px` }, { width: '0px', height: '0px', margin: '0px 0 0 0px' }] };\n }),\n },\n {\n name: 'pixel-dissolve',\n kind: 'page',\n description: 'The screen fills with pixels in random order, calls onCovered(), then dissolves (`cols` × `rows`).',\n reduced: 'run',\n defaults: { ...TRANSITION_DEFAULTS, cols: 16, rows: 10 },\n run: transition((s, o) => {\n const n = o.cols * o.rows;\n const order = Array.from({ length: n }, (_, i) => i).sort(() => Math.random() - 0.5);\n const parts = Array.from({ length: n }, (_, i) => part(s, `left:${((i % o.cols) * 100) / o.cols}%;top:${(Math.floor(i / o.cols) * 100) / o.rows}%;width:${100 / o.cols + 0.2}%;height:${100 / o.rows + 0.2}%;background:${o.color};opacity:0`));\n return { parts, cover: [{ opacity: 0 }, { opacity: 1 }], delay: (i) => (order[i] / n) * (o.duration / 2) * 0.6 };\n }),\n },\n {\n name: 'blinds',\n kind: 'page',\n description: 'Horizontal slats rotate shut like venetian blinds, call onCovered(), then open (`slats`).',\n reduced: 'run',\n defaults: { ...TRANSITION_DEFAULTS, slats: 8 },\n run: transition((s, o) => ({\n parts: Array.from({ length: o.slats }, (_, i) => part(s, `left:0;right:0;top:${(i * 100) / o.slats}%;height:${100 / o.slats + 0.3}%;background:${o.color};transform-origin:top`)),\n cover: [{ transform: 'scaleY(0)' }, { transform: 'scaleY(1)' }],\n delay: (i) => i * 30,\n })),\n },\n {\n name: 'velocity-skew',\n kind: 'scroll',\n description: 'Skews the element with scroll velocity and eases back when scrolling stops (persistent).',\n defaults: { max: 8, factor: 0.25 },\n run: (el, o: any, ctx) => {\n if (ctx.reduced) return;\n let last = scrollY;\n let skew = 0;\n let raf = 0;\n const tick = () => {\n const y = scrollY;\n const target = Math.max(-o.max, Math.min(o.max, (y - last) * o.factor));\n last = y;\n skew += (target - skew) * 0.2;\n el.style.transform = `skewY(${skew.toFixed(3)}deg)`;\n raf = Math.abs(skew) > 0.01 || Math.abs(target) > 0.01 ? requestAnimationFrame(tick) : 0;\n if (!raf) el.style.transform = '';\n };\n const onScroll = () => {\n if (!raf) raf = requestAnimationFrame(tick);\n };\n addEventListener('scroll', onScroll, { passive: true });\n return () => {\n removeEventListener('scroll', onScroll);\n cancelAnimationFrame(raf);\n el.style.transform = '';\n };\n },\n },\n {\n name: 'spotlight',\n kind: 'cursor',\n description: 'Dims the page except a soft circle that follows the pointer (persistent; `radius`, `dim`).',\n defaults: { radius: 180, dim: 0.72 },\n run: (_el, o: any, ctx) => {\n if (ctx.reduced) return;\n const s = screen(`pointer-events:none;background:radial-gradient(circle ${o.radius}px at var(--x,50%) var(--y,50%),transparent 0,transparent 60%,rgba(0,0,0,${o.dim}) 100%)`);\n const move = (e: PointerEvent) => {\n s.style.setProperty('--x', `${e.clientX}px`);\n s.style.setProperty('--y', `${e.clientY}px`);\n };\n addEventListener('pointermove', move, { passive: true });\n return () => {\n removeEventListener('pointermove', move);\n s.remove();\n };\n },\n },\n {\n name: 'edge-glow',\n kind: 'scroll',\n description: 'A soft glow lights the top / bottom edge of the viewport while scrolling in that direction (persistent).',\n defaults: { color: '#7c5cff', size: 90 },\n run: (_el, o: any, ctx) => {\n if (ctx.reduced) return;\n const s = screen('pointer-events:none;opacity:0;transition:opacity .35s ease-out');\n let last = scrollY;\n let t = 0;\n const onScroll = () => {\n const down = scrollY >= last;\n last = scrollY;\n s.style.background = `linear-gradient(${down ? 'to top' : 'to bottom'},${o.color}55,transparent ${o.size}px)`;\n s.style.opacity = '1';\n clearTimeout(t);\n t = setTimeout(() => (s.style.opacity = '0'), 160) as unknown as number;\n };\n addEventListener('scroll', onScroll, { passive: true });\n return () => {\n removeEventListener('scroll', onScroll);\n clearTimeout(t);\n s.remove();\n };\n },\n },\n];\n","/**\n * 5.7 — cursor & gesture packs.\n *\n * Cursor effects (kind `cursor`, persistent, scoped to the element they are\n * bound to; skipped under reduced motion and — unless `touch: true` — for\n * touch pointers): `comet-trail`, `sparkle-trail`, `ribbon-trail`,\n * `magnetic-dots`, `spotlight-cursor`.\n *\n * Gestures → effects: `bindGesture(el, 'fling' | 'twist' | 'long-press',\n * effectOrCallback, options)` and `<usa-gesture-fx gesture effect>`. A fling\n * is a fast release, a twist a two-finger rotation past `angle` degrees, a\n * long press \"charges\" `--usa-charge` 0 → 1 and fires when full. Every fire\n * dispatches `usa-gesture` (`detail: { gesture, … }`). The effect itself goes\n * through `playEffect()`, so reduced motion is honoured there.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { playEffect } from '../fx/registry';\nimport { defineElement, type UsaElement } from '../base';\nimport { fxLayer, PALETTE, rand, spawn } from './shared';\nimport { canvasBackground, hexRgb } from './generative';\n\ntype Pt = { x: number; y: number; t: number };\n\nconst touchOk = (e: PointerEvent, o: any) => o.touch || e.pointerType !== 'touch';\n\n/** A fixed, viewport-sized canvas in the fx layer, redrawn while `draw` returns true. */\nfunction overlayCanvas(draw: (g: CanvasRenderingContext2D, w: number, h: number, now: number) => boolean): { kick: () => void; stop: () => void } {\n const c = document.createElement('canvas');\n c.style.cssText = 'position:absolute;inset:0;width:100%;height:100%';\n fxLayer().appendChild(c);\n const g = c.getContext('2d');\n let raf = 0;\n const frame = (now: number) => {\n raf = 0;\n if (!g) return;\n const w = innerWidth;\n const h = innerHeight;\n const dpr = Math.min(2, devicePixelRatio || 1);\n if (c.width !== Math.round(w * dpr) || c.height !== Math.round(h * dpr)) {\n c.width = Math.round(w * dpr);\n c.height = Math.round(h * dpr);\n }\n g.setTransform(dpr, 0, 0, dpr, 0, 0);\n g.clearRect(0, 0, w, h);\n if (draw(g, w, h, now)) raf = requestAnimationFrame(frame);\n };\n return {\n kick: () => {\n if (!raf && g) raf = requestAnimationFrame(frame);\n },\n stop: () => {\n cancelAnimationFrame(raf);\n raf = 0;\n c.remove();\n },\n };\n}\n\n/** Pointer trail on `el`: keeps the last `life` ms of points and redraws them. */\nfunction trail(el: HTMLElement, o: any, paint: (g: CanvasRenderingContext2D, pts: Pt[], now: number) => void): () => void {\n const pts: Pt[] = [];\n const oc = overlayCanvas((g, _w, _h, now) => {\n while (pts.length && now - pts[0].t > o.life) pts.shift();\n if (pts.length > 1) paint(g, pts, now);\n return pts.length > 0;\n });\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o)) return;\n pts.push({ x: e.clientX, y: e.clientY, t: performance.now() });\n if (pts.length > 64) pts.shift();\n oc.kick();\n };\n el.addEventListener('pointermove', move, { passive: true });\n return () => {\n el.removeEventListener('pointermove', move);\n oc.stop();\n };\n}\n\nexport const CURSOR_FX: EffectDefinition[] = [\n {\n name: 'comet-trail',\n kind: 'cursor',\n description: 'A glowing comet tail follows the pointer over the element (persistent; `color`, `width`, `life`).',\n defaults: { color: '#7c5cff', width: 10, life: 320, touch: false },\n run: (el, o: any) =>\n trail(el, o, (g, pts, now) => {\n const [r, gg, b] = hexRgb(o.color);\n g.lineCap = 'round';\n for (let i = 1; i < pts.length; i++) {\n const k = 1 - (now - pts[i].t) / o.life;\n g.strokeStyle = `rgba(${r},${gg},${b},${(k * 0.9).toFixed(3)})`;\n g.lineWidth = Math.max(0.5, o.width * k);\n g.beginPath();\n g.moveTo(pts[i - 1].x, pts[i - 1].y);\n g.lineTo(pts[i].x, pts[i].y);\n g.stroke();\n }\n }),\n },\n {\n name: 'ribbon-trail',\n kind: 'cursor',\n description: 'A smooth rainbow ribbon flows behind the pointer (persistent; `width`, `life`).',\n defaults: { width: 18, life: 600, touch: false },\n run: (el, o: any) =>\n trail(el, o, (g, pts, now) => {\n for (let i = 2; i < pts.length; i++) {\n const k = 1 - (now - pts[i].t) / o.life;\n const a = pts[i - 2];\n const m = pts[i - 1];\n const b = pts[i];\n g.strokeStyle = `hsla(${(pts[i].t / 6) % 360},90%,62%,${(k * 0.85).toFixed(3)})`;\n g.lineWidth = Math.max(0.5, o.width * k * Math.sin(Math.PI * Math.min(1, (i / pts.length) * 1.1)));\n g.lineCap = 'round';\n g.beginPath();\n g.moveTo((a.x + m.x) / 2, (a.y + m.y) / 2);\n g.quadraticCurveTo(m.x, m.y, (m.x + b.x) / 2, (m.y + b.y) / 2);\n g.stroke();\n }\n }),\n },\n {\n name: 'sparkle-trail',\n kind: 'cursor',\n description: 'Little stars twinkle off the pointer as it moves (persistent; `colors`, `spacing` px between stars).',\n defaults: { colors: PALETTE, spacing: 14, size: 14, touch: false },\n run: (el, o: any, ctx: EffectContext) => {\n let lx = -1e4;\n let ly = -1e4;\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o) || Math.hypot(e.clientX - lx, e.clientY - ly) < o.spacing) return;\n lx = e.clientX;\n ly = e.clientY;\n const s = o.size * rand(0.6, 1.2);\n spawn(e.clientX - s / 2, e.clientY - s / 2, `font-size:${s}px;line-height:1;color:${o.colors[Math.floor(rand(0, o.colors.length))]}`, ctx,\n [{ transform: 'translate(0,0) scale(0) rotate(0deg)', opacity: 1 }, { transform: `translate(${rand(-14, 14)}px,${rand(4, 26)}px) scale(1) rotate(${rand(-90, 90)}deg)`, opacity: 0 }],\n { duration: rand(500, 800), easing: 'ease-out' }, '✦');\n };\n el.addEventListener('pointermove', move, { passive: true });\n return () => el.removeEventListener('pointermove', move);\n },\n },\n {\n name: 'magnetic-dots',\n kind: 'cursor',\n description: 'A grid of dots behind the content leans toward the pointer like iron filings to a magnet (persistent; `gap`, `radius`, `color`).',\n defaults: { gap: 22, radius: 120, color: '#7c5cff', background: 'transparent', touch: false },\n reduced: 'skip',\n run: (el, o: any, ctx) => {\n const p = { x: -1e4, y: -1e4 };\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o)) return;\n const r = el.getBoundingClientRect();\n p.x = e.clientX - r.left;\n p.y = e.clientY - r.top;\n };\n const leave = () => ((p.x = -1e4), (p.y = -1e4));\n el.addEventListener('pointermove', move, { passive: true });\n el.addEventListener('pointerleave', leave);\n const off = canvasBackground(el, ctx, {\n draw: ({ ctx: g, w, h }) => {\n g.clearRect(0, 0, w, h);\n if (o.background !== 'transparent') {\n g.fillStyle = o.background;\n g.fillRect(0, 0, w, h);\n }\n g.fillStyle = o.color;\n for (let y = o.gap / 2; y < h; y += o.gap)\n for (let x = o.gap / 2; x < w; x += o.gap) {\n const dx = p.x - x;\n const dy = p.y - y;\n const d = Math.hypot(dx, dy);\n const k = d < o.radius ? (1 - d / o.radius) ** 2 : 0;\n const s = 1.5 + k * 3;\n g.globalAlpha = 0.35 + k * 0.65;\n g.fillRect(x + dx * k * 0.35 - s / 2, y + dy * k * 0.35 - s / 2, s, s);\n }\n g.globalAlpha = 1;\n },\n }, o);\n return () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n off();\n };\n },\n },\n {\n name: 'spotlight-cursor',\n kind: 'cursor',\n description: 'A soft light follows the pointer across the element, easing behind it (persistent; `color`, `size`).',\n defaults: { color: '#ffffff', size: 260, ease: 0.18, touch: false },\n run: (el, o: any) => {\n const [r, g, b] = hexRgb(o.color);\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.style.cssText = `position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .25s;mix-blend-mode:soft-light;background:radial-gradient(circle ${o.size / 2}px at var(--sx,50%) var(--sy,50%),rgba(${r},${g},${b},.75),transparent)`;\n const restore = el.style.position;\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n el.appendChild(s);\n let tx = 0;\n let ty = 0;\n let x = 0;\n let y = 0;\n let raf = 0;\n const tick = () => {\n x += (tx - x) * o.ease;\n y += (ty - y) * o.ease;\n s.style.setProperty('--sx', `${x.toFixed(1)}px`);\n s.style.setProperty('--sy', `${y.toFixed(1)}px`);\n raf = Math.abs(tx - x) + Math.abs(ty - y) > 0.3 ? requestAnimationFrame(tick) : 0;\n };\n const move = (e: PointerEvent) => {\n if (!touchOk(e, o)) return;\n const rc = el.getBoundingClientRect();\n tx = e.clientX - rc.left;\n ty = e.clientY - rc.top;\n if (s.style.opacity !== '1') ((x = tx), (y = ty), (s.style.opacity = '1'));\n if (!raf) raf = requestAnimationFrame(tick);\n };\n const leave = () => (s.style.opacity = '0');\n el.addEventListener('pointermove', move, { passive: true });\n el.addEventListener('pointerleave', leave);\n return () => {\n cancelAnimationFrame(raf);\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n s.remove();\n el.style.position = restore;\n };\n },\n },\n];\n\n// --- gestures → effects ------------------------------------------------------\n\nexport const GESTURES = ['fling', 'twist', 'long-press'] as const;\nexport type GestureName = (typeof GESTURES)[number];\n\nexport interface GestureFxOptions {\n /** fling: minimum release speed in px/ms (default 0.8). */\n velocity?: number;\n /** twist: degrees of rotation that fire (default 30). */\n angle?: number;\n /** long-press: ms to fully charge (default 650). */\n duration?: number;\n /** long-press: px the pointer may move before the press is cancelled (default 10). */\n tolerance?: number;\n /** Options passed to the effect. */\n effectOptions?: Record<string, unknown>;\n}\n\nexport interface GestureDetail {\n gesture: GestureName;\n /** fling */\n vx?: number;\n vy?: number;\n speed?: number;\n direction?: 'left' | 'right' | 'up' | 'down' | 'cw' | 'ccw';\n /** twist: signed degrees since the last fire. */\n angle?: number;\n /** long-press: 1 when fired. */\n charge?: number;\n}\n\n/** Release velocity (px/ms) from recent pointer samples: uses the last `window` ms (pure). */\nexport function flingVelocity(pts: Pt[], window = 90): { vx: number; vy: number; speed: number } {\n if (pts.length < 2) return { vx: 0, vy: 0, speed: 0 };\n const last = pts[pts.length - 1];\n let first = pts[0];\n for (let i = pts.length - 2; i >= 0; i--) {\n first = pts[i];\n if (last.t - pts[i].t >= window) break;\n }\n const dt = Math.max(1, last.t - first.t);\n const vx = (last.x - first.x) / dt;\n const vy = (last.y - first.y) / dt;\n return { vx, vy, speed: Math.hypot(vx, vy) };\n}\n\n/** Signed smallest difference between two angles in degrees, in (-180, 180] (pure). */\nexport function angleDelta(a: number, b: number): number {\n let d = (b - a) % 360;\n if (d > 180) d -= 360;\n if (d <= -180) d += 360;\n return d;\n}\n\n/**\n * Fire `effect` (a registered effect name, or a callback) when `gesture`\n * happens on `el`. Returns an unbind.\n */\nexport function bindGesture(el: HTMLElement, gesture: GestureName, effect: string | ((d: GestureDetail, e: Event) => void), o: GestureFxOptions = {}): () => void {\n const { velocity = 0.8, angle = 30, duration = 650, tolerance = 10, effectOptions = {} } = o;\n const pts = new Map<number, { x: number; y: number }>();\n let path: Pt[] = [];\n let base: number | null = null;\n let press: { x: number; y: number; t0: number; raf: number } | null = null;\n const fire = (d: GestureDetail, e: Event) => {\n el.dispatchEvent(new CustomEvent('usa-gesture', { detail: d, bubbles: true }));\n if (typeof effect === 'function') effect(d, e);\n else playEffect(el, effect, effectOptions, e).catch(() => undefined);\n };\n const twistAngle = () => {\n const [a, b] = [...pts.values()];\n return (Math.atan2(b.y - a.y, b.x - a.x) * 180) / Math.PI;\n };\n const charge = (k: number) => {\n el.style.setProperty('--usa-charge', k.toFixed(3));\n el.toggleAttribute('data-charging', k > 0 && k < 1);\n };\n const endPress = () => {\n if (!press) return;\n cancelAnimationFrame(press.raf);\n press = null;\n charge(0);\n };\n const down = (e: PointerEvent) => {\n pts.set(e.pointerId ?? 1, { x: e.clientX, y: e.clientY });\n if (gesture === 'fling') path = [{ x: e.clientX, y: e.clientY, t: e.timeStamp || performance.now() }];\n if (gesture === 'twist' && pts.size === 2) base = twistAngle();\n if (gesture === 'long-press' && pts.size === 1) {\n press = { x: e.clientX, y: e.clientY, t0: performance.now(), raf: 0 };\n const step = (now: number) => {\n if (!press) return;\n const k = Math.min(1, (now - press.t0) / duration);\n charge(k);\n if (k >= 1) {\n endPress();\n el.style.setProperty('--usa-charge', '1');\n fire({ gesture, charge: 1 }, e);\n } else press.raf = requestAnimationFrame(step);\n };\n press.raf = requestAnimationFrame(step);\n }\n };\n const move = (e: PointerEvent) => {\n if (!pts.has(e.pointerId ?? 1)) return;\n pts.set(e.pointerId ?? 1, { x: e.clientX, y: e.clientY });\n if (gesture === 'fling') {\n path.push({ x: e.clientX, y: e.clientY, t: e.timeStamp || performance.now() });\n if (path.length > 20) path.shift();\n } else if (gesture === 'twist' && pts.size >= 2 && base !== null) {\n const now = twistAngle();\n const d = angleDelta(base, now);\n if (Math.abs(d) >= angle) {\n base = now;\n fire({ gesture, angle: d, direction: d > 0 ? 'cw' : 'ccw' }, e);\n }\n } else if (gesture === 'long-press' && press && Math.hypot(e.clientX - press.x, e.clientY - press.y) > tolerance) endPress();\n };\n const up = (e: PointerEvent) => {\n pts.delete(e.pointerId ?? 1);\n if (gesture === 'fling' && path.length) {\n path.push({ x: e.clientX, y: e.clientY, t: e.timeStamp || performance.now() });\n const v = flingVelocity(path);\n path = [];\n if (v.speed >= velocity) {\n const direction = Math.abs(v.vx) > Math.abs(v.vy) ? (v.vx > 0 ? 'right' : 'left') : v.vy > 0 ? 'down' : 'up';\n fire({ gesture, ...v, direction }, e);\n }\n }\n if (pts.size < 2) base = null;\n endPress();\n };\n el.addEventListener('pointerdown', down);\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerup', up);\n el.addEventListener('pointercancel', up);\n if (gesture === 'twist' && !el.style.touchAction) el.style.touchAction = 'none';\n return () => {\n endPress();\n el.removeEventListener('pointerdown', down);\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerup', up);\n el.removeEventListener('pointercancel', up);\n };\n}\n\nexport interface UsaGestureFxElement extends UsaElement {\n readonly gesture: GestureName;\n}\n\n/**\n * `<usa-gesture-fx gesture=\"fling | twist | long-press\" effect=\"tada\"\n * options='{\"…\"}' velocity angle duration>` — plays `effect` on its first\n * child (or itself with `self`) when the gesture happens.\n */\nexport function defineGestureFx(tag = 'usa-gesture-fx'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaGestureFx extends Base {\n static get observedAttributes(): string[] {\n return ['gesture', 'effect', 'options'];\n }\n get gesture(): GestureName {\n const g = this.str('gesture', 'fling') as GestureName;\n return GESTURES.includes(g) ? g : 'fling';\n }\n mount(): void {\n let effectOptions = {};\n try {\n effectOptions = JSON.parse(this.str('options', '{}')) || {};\n } catch {\n /* ignore bad JSON */\n }\n const target = this.flag('self') ? this : (this.firstElementChild as HTMLElement) || this;\n const effect = this.str('effect', 'pulse');\n this.onCleanup(\n bindGesture(this, this.gesture, (_d, e) => void playEffect(target, effect, effectOptions, e).catch(() => undefined), {\n velocity: this.num('velocity', 0.8),\n angle: this.num('angle', 30),\n duration: this.num('duration', 650),\n })\n );\n }\n },\n { id: 'usa-gesture-fx', text: 'usa-gesture-fx{display:inline-block;touch-action:none;user-select:none}' }\n );\n}\n","/**\n * 5.8 — micro-interaction library (23 effects, registered through\n * `registerEffect()`). Each one does the small piece of UI work as well as the\n * motion — toggling `aria-pressed`, swapping a label, bumping a count, copying\n * to the clipboard — so the state change still happens under reduced motion;\n * only the animation is dropped (`ctx.animate` returns `null` there).\n *\n * Click: `copy-success`, `toggle-morph`, `password-reveal`, `favorite-star`,\n * `like-heart`, `bookmark-flip`, `download-progress`, `submit-loading`,\n * `send-plane`, `add-to-cart`, `counter-bump`, `upvote`, `clap`,\n * `emoji-react`, `refresh-spin`, `trash-shake`, `check-toggle`.\n * Attention: `input-shake`, `error-flash`, `success-check`, `nudge-hint`,\n * `focus-pulse`, `notify-badge`.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { origin, spawn, overlay, rand, all } from './shared';\n\nconst saved = new WeakMap<HTMLElement, string>();\n\n/** Toggle `aria-pressed` (or set it) and return the new state. */\nexport function togglePressed(el: HTMLElement, force?: boolean): boolean {\n const on = force ?? el.getAttribute('aria-pressed') !== 'true';\n el.setAttribute('aria-pressed', String(on));\n return on;\n}\n\n/** Swap `el`'s label for `ms` (polite live region), then restore it. */\nexport function swapLabel(el: HTMLElement, text: string, ms: number): Promise<void> {\n if (!saved.has(el)) saved.set(el, el.innerHTML);\n el.setAttribute('aria-live', 'polite');\n el.textContent = text;\n return new Promise((r) =>\n setTimeout(() => {\n el.innerHTML = saved.get(el)!;\n saved.delete(el);\n el.removeAttribute('aria-live');\n r();\n }, ms)\n );\n}\n\n/** Add `delta` to the number in `[data-count]` (or `el`), keeping it in `data-count`. Returns the new value. */\nexport function bumpCount(el: HTMLElement, delta: number, ctx?: EffectContext): number {\n const t = el.querySelector<HTMLElement>('[data-count]') || el;\n const n = (Number(t.dataset.count ?? (t.textContent || '').replace(/[^\\d.-]/g, '')) || 0) + delta;\n t.dataset.count = String(n);\n t.textContent = String(n);\n ctx?.animate(t, [{ transform: `translateY(${delta > 0 ? 60 : -60}%)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 260, easing: 'cubic-bezier(.2,1.4,.4,1)' });\n return n;\n}\n\nconst pop = (el: HTMLElement, ctx: EffectContext, s = 1.25, d = 380) =>\n ctx.animate(el, [{ transform: 'scale(1)' }, { transform: `scale(${s})`, offset: 0.4 }, { transform: 'scale(1)' }], { duration: d, easing: 'cubic-bezier(.2,1.4,.4,1)' });\n\n/** A few glyphs flying out of the pointer / centre. */\nfunction burst(el: HTMLElement, ctx: EffectContext, glyph: string, color: string, n = 6, rise = false): Promise<unknown> {\n const { x, y } = origin(el, ctx);\n return all(\n Array.from({ length: n }, (_, i) => {\n const a = rise ? -Math.PI / 2 + rand(-0.6, 0.6) : (i / n) * Math.PI * 2;\n const d = rand(28, 56);\n return spawn(x - 7, y - 7, `font-size:14px;line-height:1;color:${color}`, ctx,\n [{ transform: 'translate(0,0) scale(.4)', opacity: 1 }, { transform: `translate(${Math.cos(a) * d}px,${Math.sin(a) * d}px) scale(1)`, opacity: 0 }],\n { duration: rand(500, 750), easing: 'cubic-bezier(.2,.8,.3,1)' }, glyph);\n })\n );\n}\n\nconst click = (name: string, description: string, defaults: Record<string, unknown>, run: EffectDefinition['run']): EffectDefinition => ({ name, kind: 'click', description, defaults, run });\nconst attn = (name: string, description: string, defaults: Record<string, unknown>, run: EffectDefinition['run']): EffectDefinition => ({ name, kind: 'attention', description, defaults, run });\n\nexport const MICRO_FX: EffectDefinition[] = [\n click('copy-success', 'Copies `text` (or `data-copy` / the target of `for`) to the clipboard and swaps the label to \"Copied ✓\".', { text: '', label: 'Copied ✓', ms: 1500 }, (el, o: any, ctx) => {\n const src = el.getAttribute('for') ? document.getElementById(el.getAttribute('for')!) : null;\n const text = o.text || el.dataset.copy || (src as HTMLInputElement | null)?.value || src?.textContent || '';\n navigator.clipboard?.writeText(text).catch(() => undefined);\n pop(el, ctx, 1.08);\n return swapLabel(el, o.label, o.ms);\n }),\n click('toggle-morph', 'Toggles `aria-pressed` with a squash-and-stretch morph.', {}, (el, _o, ctx) => {\n const on = togglePressed(el);\n return ctx.animate(el, [{ transform: 'scale(1,1)' }, { transform: `scale(${on ? 1.15 : 0.85},${on ? 0.85 : 1.15})`, offset: 0.35 }, { transform: 'scale(1,1)' }], { duration: 360, easing: 'ease-out' });\n }),\n click('password-reveal', 'Shows / hides the password input (`for` id, or the previous input) with an eye blink.', { show: 'Hide password', hide: 'Show password' }, (el, o: any, ctx) => {\n const input = (el.getAttribute('for') ? document.getElementById(el.getAttribute('for')!) : el.previousElementSibling) as HTMLInputElement | null;\n if (!input || !('type' in input)) return;\n const show = input.type === 'password';\n input.type = show ? 'text' : 'password';\n togglePressed(el, show);\n el.setAttribute('aria-label', show ? o.show : o.hide);\n return ctx.animate(el, [{ transform: 'scaleY(1)' }, { transform: 'scaleY(.1)', offset: 0.5 }, { transform: 'scaleY(1)' }], { duration: 240, easing: 'ease-in-out' });\n }),\n click('favorite-star', 'Toggles a favourite: the star pops and throws little stars (`color`).', { color: '#facc15' }, (el, o: any, ctx) => {\n const on = togglePressed(el);\n return Promise.all([pop(el, ctx, on ? 1.35 : 0.85)?.finished, on ? burst(el, ctx, '★', o.color) : null]);\n }),\n click('like-heart', 'Toggles a like: the heart beats and hearts float up (`color`).', { color: '#ff5c8a' }, (el, o: any, ctx) => {\n const on = togglePressed(el);\n return Promise.all([pop(el, ctx, on ? 1.3 : 0.9)?.finished, on ? burst(el, ctx, '♥', o.color, 5, true) : null]);\n }),\n click('bookmark-flip', 'Toggles a bookmark with a 3D flip.', {}, (el, _o, ctx) => {\n togglePressed(el);\n return ctx.animate(el, [{ transform: 'perspective(400px) rotateY(0)' }, { transform: 'perspective(400px) rotateY(180deg)' }, { transform: 'perspective(400px) rotateY(360deg)' }], { duration: 520, easing: 'ease-in-out' });\n }),\n click('download-progress', 'Fills a progress bar over `duration` ms, then shows \"Done ✓\" (`aria-busy` while running; fires `usa-done`).', { duration: 1600, label: 'Done ✓', color: '#34d399' }, (el, o: any, ctx) => {\n if (el.getAttribute('aria-busy') === 'true') return;\n el.setAttribute('aria-busy', 'true');\n const [bar, remove] = overlay(el, `background:${o.color}55;transform-origin:left;transform:scaleX(0)`);\n const a = ctx.animate(bar, [{ transform: 'scaleX(0)' }, { transform: 'scaleX(1)' }], { duration: o.duration, easing: 'linear', fill: 'forwards' });\n const done = a ? a.finished.catch(() => undefined) : Promise.resolve();\n return done.then(() => {\n remove();\n el.removeAttribute('aria-busy');\n el.dispatchEvent(new CustomEvent('usa-done', { bubbles: true }));\n return swapLabel(el, o.label, 1400);\n });\n }),\n click('submit-loading', 'Shows \"Sending…\" with pulsing dots for `duration` ms, then \"Sent ✓\" (`aria-busy`, `usa-done`).', { duration: 1200, loading: 'Sending…', label: 'Sent ✓' }, (el, o: any, ctx) => {\n if (el.getAttribute('aria-busy') === 'true') return;\n el.setAttribute('aria-busy', 'true');\n const t = swapLabel(el, o.loading, o.duration);\n const a = ctx.animate(el, [{ opacity: 1 }, { opacity: 0.55 }, { opacity: 1 }], { duration: 600, iterations: Math.max(1, Math.round(o.duration / 600)) });\n return t.then(() => {\n a?.cancel();\n el.removeAttribute('aria-busy');\n el.dispatchEvent(new CustomEvent('usa-done', { bubbles: true }));\n return swapLabel(el, o.label, 1400);\n });\n }),\n click('send-plane', 'A paper plane ✈ takes off from the button.', { color: '#22d3ee' }, (el, o: any, ctx) => {\n const r = el.getBoundingClientRect();\n pop(el, ctx, 0.92, 200);\n return spawn(r.left + r.width / 2 - 8, r.top + r.height / 2 - 8, `font-size:16px;color:${o.color}`, ctx,\n [{ transform: 'translate(0,0) rotate(0)', opacity: 1 }, { transform: 'translate(40px,-10px) rotate(-10deg)', opacity: 1, offset: 0.4 }, { transform: 'translate(160px,-90px) rotate(-25deg)', opacity: 0 }],\n { duration: 800, easing: 'ease-in' }, '✈')?.finished;\n }),\n click('add-to-cart', 'Bumps `[data-count]` by one and floats a \"+1\" (`text`).', { text: '+1', color: '#34d399' }, (el, o: any, ctx) => {\n bumpCount(el, 1, ctx);\n const { x, y } = origin(el, ctx);\n return spawn(x - 10, y - 10, `font:700 14px system-ui;color:${o.color}`, ctx, [{ transform: 'translateY(0)', opacity: 1 }, { transform: 'translateY(-40px)', opacity: 0 }], { duration: 700, easing: 'ease-out' }, o.text)?.finished;\n }),\n click('counter-bump', 'Adds `step` to `[data-count]` with a rolling number.', { step: 1 }, (el, o: any, ctx) => void bumpCount(el, Number(o.step) || 1, ctx)),\n click('upvote', 'Toggles an upvote: the arrow nudges up and `[data-count]` ±1.', {}, (el, _o, ctx) => {\n const on = togglePressed(el);\n bumpCount(el, on ? 1 : -1, ctx);\n return ctx.animate(el, [{ transform: 'translateY(0)' }, { transform: `translateY(${on ? -6 : 4}px)`, offset: 0.4 }, { transform: 'translateY(0)' }], { duration: 320, easing: 'cubic-bezier(.2,1.4,.4,1)' });\n }),\n click('clap', 'Counts claps in `[data-count]` with a 👏 burst on every press.', {}, (el, _o, ctx) => {\n bumpCount(el, 1, ctx);\n return Promise.all([pop(el, ctx, 1.15, 240)?.finished, burst(el, ctx, '👏', 'inherit', 3, true)]);\n }),\n click('emoji-react', 'Pops one `emoji` up from the pointer (reaction button).', { emoji: '🎉' }, (el, o: any, ctx) => burst(el, ctx, o.emoji, 'inherit', 1, true)),\n click('refresh-spin', 'Spins the icon one turn (`turns`).', { turns: 1 }, (el, o: any, ctx) => ctx.animate(el, [{ transform: 'rotate(0)' }, { transform: `rotate(${360 * o.turns}deg)` }], { duration: 600 * o.turns, easing: 'cubic-bezier(.4,0,.2,1)' })),\n click('trash-shake', 'Shakes, then drops and fades (`remove: true` removes the element afterwards).', { remove: false }, (el, o: any, ctx) => {\n const a = ctx.animate(el, [{ transform: 'none', opacity: 1 }, { transform: 'rotate(-6deg)', offset: 0.15 }, { transform: 'rotate(6deg)', offset: 0.3 }, { transform: 'rotate(0)', offset: 0.45, opacity: 1 }, { transform: 'translateY(30px) scale(.8)', opacity: 0 }], { duration: 650, easing: 'ease-in', fill: 'forwards' });\n const end = () => (o.remove ? el.remove() : a?.cancel());\n return a ? a.finished.then(end, end) : void end();\n }),\n click('check-toggle', 'Toggles a check mark (`aria-checked` for role=checkbox, else `aria-pressed`) that scales in.', {}, (el, _o, ctx) => {\n const attr = el.getAttribute('role') === 'checkbox' ? 'aria-checked' : 'aria-pressed';\n const on = el.getAttribute(attr) !== 'true';\n el.setAttribute(attr, String(on));\n return ctx.animate(el, on ? [{ transform: 'scale(.6)' }, { transform: 'scale(1.15)', offset: 0.6 }, { transform: 'scale(1)' }] : [{ transform: 'scale(1)' }, { transform: 'scale(.85)' }, { transform: 'scale(1)' }], { duration: 280, easing: 'ease-out' });\n }),\n attn('input-shake', 'Shakes an invalid field side to side and sets `aria-invalid` (`color` outline flash).', { color: '#ff5c8a' }, (el, o: any, ctx) => {\n el.setAttribute('aria-invalid', 'true');\n const prev = el.style.outline;\n el.style.outline = `2px solid ${o.color}`;\n setTimeout(() => (el.style.outline = prev), 900);\n return ctx.animate(el, [0, -8, 8, -6, 6, -3, 0].map((x) => ({ transform: `translateX(${x}px)` })), { duration: 420, easing: 'ease-out' });\n }),\n attn('error-flash', 'Flashes the element red once (no more than one flash per call).', { color: '#ff5c8a' }, (el, o: any, ctx) => ctx.animate(el, [{ boxShadow: `0 0 0 0 ${o.color}00` }, { boxShadow: `0 0 0 4px ${o.color}`, offset: 0.3 }, { boxShadow: `0 0 0 0 ${o.color}00` }], { duration: 700 })),\n attn('success-check', 'A green ✓ badge pops over the element and fades.', { color: '#34d399' }, (el, o: any, ctx) => {\n const [b, remove] = overlay(el, `display:grid;place-items:center;font:700 22px system-ui;color:#fff;background:${o.color}d0`);\n b.textContent = '✓';\n const a = ctx.animate(b, [{ opacity: 0, transform: 'scale(.6)' }, { opacity: 1, transform: 'scale(1)', offset: 0.3 }, { opacity: 1, offset: 0.75 }, { opacity: 0 }], { duration: 1100, easing: 'ease-out' });\n return a ? a.finished.then(remove, remove) : void setTimeout(remove, 900);\n }),\n attn('nudge-hint', 'A small sideways nudge that says \"try me\" (`distance`).', { distance: 6 }, (el, o: any, ctx) => ctx.animate(el, [0, o.distance, 0, o.distance / 2, 0].map((x) => ({ transform: `translateX(${x}px)` })), { duration: 700, easing: 'ease-in-out' })),\n attn('focus-pulse', 'A ring pulses around the element to draw focus to it (`color`).', { color: '#7c5cff' }, (el, o: any, ctx) => ctx.animate(el, [{ boxShadow: `0 0 0 0 ${o.color}aa` }, { boxShadow: `0 0 0 12px ${o.color}00` }], { duration: 900, iterations: 2, easing: 'ease-out' })),\n attn('notify-badge', 'Bumps the badge count (`[data-count]`, `step`) with a pop — for new notifications.', { step: 1 }, (el, o: any, ctx) => {\n bumpCount(el, Number(o.step) || 1, ctx);\n return pop(el, ctx, 1.3, 320);\n }),\n];\n","/**\n * 5.8 — theme packs: `neon`, `paper`, `glass`, `retro`, `brutalist`.\n *\n * A theme pack is design tokens (`--usa-theme-*` custom properties), motion\n * tokens (merged over the 3.x motion scale) and effect presets per role\n * (`enter`, `hover`, `click`, `attention`, `background`). Five theme effects\n * ship with them: `neon-flicker`, `paper-fold`, `glass-shine`,\n * `retro-scanlines`, `brutal-shift`.\n *\n * - `applyTheme(name, root?)` — on `<html>` (default) it also makes the motion\n * tokens active for `motionToken()`; on any other element the tokens are\n * only written as variables there. Returns an undo.\n * - `themePreset(name, role)`, `playThemeEffect(el, role)` (theme of the\n * closest `[data-usa-theme]`).\n * - `<usa-theme name=\"neon\">` — scopes a theme to its subtree and binds the\n * presets to children with `data-theme-fx=\"click | hover | enter | attention\"`.\n */\nimport type { EffectDefinition, EffectTrigger } from '../fx/registry';\nimport { bindEffect, playEffect } from '../fx/registry';\nimport { adoptStyles, defineElement, deprecate, type UsaElement } from '../base';\nimport { applyMotionTokens, mergeMotionTokens, motionTokensToVars, type DeepPartialTokens } from '../tokens/index';\nimport { overlay } from './shared';\n\nexport const THEME_ROLES = ['enter', 'hover', 'click', 'attention', 'background'] as const;\nexport type ThemeRole = (typeof THEME_ROLES)[number];\n\nexport interface ThemePack {\n name: string;\n /** Design tokens, written as `--usa-theme-<key>`. */\n vars: Record<'bg' | 'fg' | 'accent' | 'accent-2' | 'surface' | 'border' | 'radius' | 'shadow' | 'font', string>;\n /** Motion tokens merged over the defaults. */\n motion: DeepPartialTokens;\n /** Effect preset per role. */\n presets: Record<ThemeRole, { effect: string; options?: Record<string, unknown> }>;\n}\n\nconst P = (enter: string, hover: string, click: string, attention: string, background: string): ThemePack['presets'] => ({\n enter: { effect: enter },\n hover: { effect: hover },\n click: { effect: click },\n attention: { effect: attention },\n background: { effect: background },\n});\n\nexport const THEMES: Record<string, ThemePack> = {\n neon: {\n name: 'neon',\n vars: { bg: '#07070c', fg: '#e8e8ff', accent: '#22d3ee', 'accent-2': '#ff2bd6', surface: '#11111c', border: '1px solid #22d3ee', radius: '10px', shadow: '0 0 18px #22d3ee66, inset 0 0 12px #ff2bd622', font: 'ui-monospace, SFMono-Regular, Menlo, monospace' },\n motion: { duration: { fast: 120, normal: 220 }, easing: { standard: 'cubic-bezier(0.2, 0, 0, 1)' } },\n presets: P('fade-up', 'neon-flicker', 'shockwave', 'neon-flicker', 'starfield'),\n },\n paper: {\n name: 'paper',\n vars: { bg: '#f6f1e7', fg: '#2b2721', accent: '#c2410c', 'accent-2': '#0f766e', surface: '#fffdf8', border: '1px solid #e3dccd', radius: '4px', shadow: '0 1px 0 #0000000d, 0 10px 24px -14px #00000040', font: 'Georgia, \"Times New Roman\", serif' },\n motion: { duration: { fast: 200, normal: 380, slow: 700 }, easing: { standard: 'cubic-bezier(0, 0, 0, 1)' } },\n presets: P('paper-fold', 'wiggle', 'ink-splash', 'nudge-hint', 'contours'),\n },\n glass: {\n name: 'glass',\n vars: { bg: 'linear-gradient(135deg, #1e1b4b, #0e7490)', fg: '#f8fafc', accent: '#a5f3fc', 'accent-2': '#c4b5fd', surface: '#ffffff1f', border: '1px solid #ffffff40', radius: '18px', shadow: '0 8px 32px #0000003d', font: 'system-ui, -apple-system, \"Segoe UI\", sans-serif' },\n motion: { duration: { normal: 320 }, easing: { standard: 'cubic-bezier(0.22, 1, 0.36, 1)' } },\n presets: P('blur', 'glass-shine', 'ripple', 'focus-pulse', 'mesh-gradient'),\n },\n retro: {\n name: 'retro',\n vars: { bg: '#1d1135', fg: '#ffe9a8', accent: '#ff6b35', 'accent-2': '#2ec4b6', surface: '#2a1b4d', border: '3px solid #ffe9a8', radius: '0', shadow: '4px 4px 0 #ff6b35', font: '\"Courier New\", ui-monospace, monospace' },\n motion: { duration: { normal: 300 }, easing: { standard: 'steps(6, end)' } },\n presets: P('clip-up', 'rubber-band', 'star-burst', 'tada', 'retro-scanlines'),\n },\n brutalist: {\n name: 'brutalist',\n vars: { bg: '#ffffff', fg: '#000000', accent: '#ff3b00', 'accent-2': '#0047ff', surface: '#fff200', border: '3px solid #000000', radius: '0', shadow: '6px 6px 0 #000000', font: '\"Arial Black\", Arial, sans-serif' },\n motion: { duration: { fast: 80, normal: 160 }, easing: { standard: 'linear' } },\n presets: P('drop-bounce', 'jelly', 'brutal-shift', 'shake', 'voronoi'),\n },\n};\n\nexport const THEME_NAMES = Object.keys(THEMES);\n/** The 5.8 motion theme packs (8.9 name of `THEMES`). */\nexport const MOTION_THEMES = THEMES;\n/** Names of the 5.8 motion theme packs (8.9 name of `THEME_NAMES`). */\nexport const MOTION_THEME_NAMES = THEME_NAMES;\n\nconst BASE_CSS = `[data-usa-theme]{background:var(--usa-theme-bg);color:var(--usa-theme-fg);font-family:var(--usa-theme-font)}\n[data-usa-theme] .usa-surface{background:var(--usa-theme-surface);border:var(--usa-theme-border);border-radius:var(--usa-theme-radius);box-shadow:var(--usa-theme-shadow)}\n[data-usa-theme] .usa-accent{color:var(--usa-theme-accent)}\n[data-usa-theme=glass] .usa-surface{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}`;\n\nconst pack = (t: string | ThemePack): ThemePack => {\n const p = typeof t === 'string' ? THEMES[t] : t;\n if (!p) throw new Error(`[motionary] unknown theme \"${String(t)}\" — ${THEME_NAMES.join(', ')}`);\n return p;\n};\n\n/** The CSS custom properties of a theme (design + motion tokens). */\nexport function themeVars(t: string | ThemePack): Record<string, string> {\n const p = pack(t);\n const out: Record<string, string> = {};\n for (const [k, v] of Object.entries(p.vars)) out[`--usa-theme-${k}`] = v;\n return { ...out, ...motionTokensToVars(mergeMotionTokens(p.motion)) };\n}\n\n/** A theme as a CSS rule (`selector` default `[data-usa-theme=<name>]`) — for SSR / static CSS. */\nexport function themeCss(t: string | ThemePack, selector?: string): string {\n const p = pack(t);\n return `${selector || `[data-usa-theme=${p.name}]`}{${Object.entries(themeVars(p)).map(([k, v]) => `${k}:${v}`).join(';')}}`;\n}\n\n/**\n * Apply a motion theme to `root` (default `<html>`). Returns an undo.\n * @deprecated 8.9 — removed in 9.0. Use `applyMotionTheme()` (same signature); `npx usa-codemod-9 --write src`.\n */\nexport function applyTheme(t: string | ThemePack, root?: HTMLElement): () => void {\n deprecate('applyTheme', 'applyTheme() is deprecated and removed in 9.0 — use applyMotionTheme() (same signature). Run `npx usa-codemod-9 --write src`.');\n return applyMotionTheme(t, root);\n}\n\n/** Apply a 5.8 motion theme to `root` (default `<html>`). Returns an undo (8.9). */\nexport function applyMotionTheme(t: string | ThemePack, root?: HTMLElement): () => void {\n const p = pack(t);\n const el = root || document.documentElement;\n adoptStyles('usa-theme', BASE_CSS);\n const prevAttr = el.getAttribute('data-usa-theme');\n el.setAttribute('data-usa-theme', p.name);\n const vars = Object.entries(p.vars).map(([k, v]) => [`--usa-theme-${k}`, v] as const);\n const old = vars.map(([k]) => [k, el.style.getPropertyValue(k)] as const);\n for (const [k, v] of vars) el.style.setProperty(k, v);\n let undoMotion: () => void;\n if (el === document.documentElement) undoMotion = applyMotionTokens(p.motion, el);\n else {\n const mv = Object.entries(motionTokensToVars(mergeMotionTokens(p.motion)));\n const mold = mv.map(([k]) => [k, el.style.getPropertyValue(k)] as const);\n for (const [k, v] of mv) el.style.setProperty(k, v);\n undoMotion = () => mold.forEach(([k, v]) => (v ? el.style.setProperty(k, v) : el.style.removeProperty(k)));\n }\n return () => {\n undoMotion();\n old.forEach(([k, v]) => (v ? el.style.setProperty(k, v) : el.style.removeProperty(k)));\n if (prevAttr === null) el.removeAttribute('data-usa-theme');\n else el.setAttribute('data-usa-theme', prevAttr);\n };\n}\n\n/** The effect preset of a theme for a role. */\nexport function themePreset(t: string | ThemePack, role: ThemeRole): { effect: string; options?: Record<string, unknown> } {\n return pack(t).presets[role];\n}\n\n/** Play the preset for `role` of the theme on the closest `[data-usa-theme]` (or `theme`). */\nexport function playThemeEffect(el: HTMLElement, role: ThemeRole, theme?: string): Promise<void> {\n const name = theme || el.closest('[data-usa-theme]')?.getAttribute('data-usa-theme') || 'neon';\n const pr = themePreset(name, role);\n return playEffect(el, pr.effect, pr.options);\n}\n\nexport const THEME_FX: EffectDefinition[] = [\n {\n name: 'neon-flicker',\n kind: 'attention',\n description: 'A neon tube flickering on — dims (never blacks out) twice, well under 3 flashes per second.',\n defaults: { color: '#22d3ee' },\n run: (el, o: any, ctx) =>\n ctx.animate(el, [{ opacity: 1, filter: 'none' }, { opacity: 0.55, offset: 0.2 }, { opacity: 1, filter: `drop-shadow(0 0 6px ${o.color})`, offset: 0.35 }, { opacity: 0.7, offset: 0.6 }, { opacity: 1, filter: `drop-shadow(0 0 10px ${o.color})` }], { duration: 900, easing: 'linear' }),\n },\n {\n name: 'paper-fold',\n kind: 'enter',\n description: 'Unfolds like a sheet of paper hinged at the top.',\n defaults: { duration: 600 },\n run: (el, o: any, ctx) =>\n ctx.animate(el, [{ transform: 'perspective(800px) rotateX(-85deg)', transformOrigin: 'top', opacity: 0 }, { transform: 'perspective(800px) rotateX(12deg)', transformOrigin: 'top', opacity: 1, offset: 0.7 }, { transform: 'perspective(800px) rotateX(0)', transformOrigin: 'top', opacity: 1 }], { duration: o.duration, easing: 'ease-out', fill: 'backwards' }),\n },\n {\n name: 'glass-shine',\n kind: 'hover',\n description: 'A bright diagonal shine sweeps across frosted glass.',\n defaults: { duration: 700 },\n run: (el, o: any, ctx) => {\n const [s, remove] = overlay(el, 'overflow:hidden;background:linear-gradient(105deg,transparent 35%,#ffffff8c 50%,transparent 65%);background-size:250% 100%;background-position:120% 0');\n const a = ctx.animate(s, [{ backgroundPosition: '120% 0' }, { backgroundPosition: '-20% 0' }], { duration: o.duration, easing: 'ease-in-out' });\n return a ? a.finished.then(remove, remove) : void remove();\n },\n },\n {\n name: 'retro-scanlines',\n kind: 'background',\n description: 'CRT scanlines with a slow roll (static lines under reduced motion; persistent).',\n reduced: 'run',\n defaults: { opacity: 0.18 },\n run: (el, o: any, ctx) => {\n const [s, remove] = overlay(el, `opacity:${o.opacity};background:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 3px);mix-blend-mode:multiply`);\n const a = ctx.reduced ? null : ctx.animate(s, [{ backgroundPosition: '0 0' }, { backgroundPosition: '0 30px' }], { duration: 2400, iterations: Infinity, easing: 'linear' });\n return () => {\n a?.cancel();\n remove();\n };\n },\n },\n {\n name: 'brutal-shift',\n kind: 'click',\n description: 'Presses into its hard drop shadow and springs back (brutalist buttons).',\n defaults: { offset: 6 },\n run: (el, o: any, ctx) =>\n ctx.animate(el, [{ transform: 'translate(0,0)' }, { transform: `translate(${o.offset}px,${o.offset}px)`, boxShadow: '0 0 0 #000', offset: 0.3 }, { transform: 'translate(0,0)' }], { duration: 260, easing: 'ease-out' }),\n },\n];\n\nexport interface UsaThemeElement extends UsaElement {\n readonly theme: string;\n}\n\n/** `<usa-theme name=\"neon | paper | glass | retro | brutalist\">` — a themed subtree. */\nexport function defineTheme(tag = 'usa-theme'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaTheme extends Base {\n static get observedAttributes(): string[] {\n return ['name'];\n }\n get theme(): string {\n const n = this.str('name', 'neon');\n return THEMES[n] ? n : 'neon';\n }\n mount(): void {\n if (this.localName === 'usa-theme') deprecate('usa-theme', '<usa-theme> is deprecated and removed in 9.0 — use <usa-motion-theme> (same name / data-theme-fx). Run `npx usa-codemod-9 --write src`.');\n this.onCleanup(applyMotionTheme(this.theme, this));\n this.querySelectorAll<HTMLElement>('[data-theme-fx]').forEach((el) => {\n const role = (el.dataset.themeFx || 'click') as ThemeRole;\n if (!THEME_ROLES.includes(role)) return;\n const pr = themePreset(this.theme, role);\n const trigger: EffectTrigger = role === 'attention' ? 'click' : role === 'background' ? 'load' : role;\n try {\n this.onCleanup(bindEffect(el, pr.effect, { ...(pr.options || {}), trigger }));\n } catch {\n /* effect not registered: call registerAllEffects() */\n }\n });\n }\n },\n { id: 'usa-theme-el', text: 'usa-theme{display:block}' }\n );\n}\n\n/** `<usa-motion-theme name=\"neon\">` — the 8.9 name of `<usa-theme>` (removed in 9.0). */\nexport function defineMotionTheme(tag = 'usa-motion-theme'): CustomElementConstructor | undefined {\n return defineTheme(tag);\n}\n","/**\n * motionary/components/effects — the 5.x effect packs, all\n * registered through `registerEffect()` (5.0) and playable with\n * `playEffect()`, `bindEffect()` or `<usa-fx>`. Kept out of\n * `motionary/components` / `components/lite` so their size budgets\n * hold; the UMD bundle registers everything.\n *\n * ```ts\n * import { registerAllEffects } from 'motionary/components/effects';\n * registerAllEffects();\n * ```\n */\nimport { registerEffects, registerBuiltinEffects } from '../fx/index';\nimport type { EffectDefinition } from '../fx/registry';\nimport { CARD_FX, CLICK_FX } from './cards-click';\nimport { PHYSICS_FX } from './physics';\nimport { PAGE_FX } from './page';\nimport { defineStory } from './story';\nimport { GENERATIVE_FX } from './generative';\nimport { AUDIO_FX, defineAudio } from './audio';\nimport { CURSOR_FX, defineGestureFx } from './cursor';\nimport { MICRO_FX } from './micro';\nimport { THEME_FX, defineTheme, defineMotionTheme } from './themes';\nimport { definePlayer } from './player';\n\nexport { CARD_FX, CLICK_FX, PHYSICS_FX, PAGE_FX, GENERATIVE_FX, AUDIO_FX, CURSOR_FX, MICRO_FX, THEME_FX };\nexport { togglePressed, swapLabel, bumpCount } from './micro';\nexport { THEMES, THEME_NAMES, THEME_ROLES, themeVars, themeCss, applyTheme, themePreset, playThemeEffect, defineTheme, MOTION_THEMES, MOTION_THEME_NAMES, applyMotionTheme, defineMotionTheme } from './themes';\nexport type { ThemePack, ThemeRole, UsaThemeElement } from './themes';\nexport { createPlayer, normalizeAnimation, definePlayer, ANIMATION_FORMAT } from './player';\nexport type { AnimationJSON, AnimationTrack, Player, UsaPlayerElement } from './player';\nexport { bindGesture, flingVelocity, angleDelta, GESTURES, defineGestureFx } from './cursor';\nexport type { GestureName, GestureFxOptions, GestureDetail, UsaGestureFxElement } from './cursor';\nexport { enableAudio, disableAudio, getAudio, createBeatDetector, onBeat, bindBeat, defineAudio } from './audio';\nexport type { AudioInput, AudioSample, AudioReactive, BeatOptions, UsaAudioElement } from './audio';\nexport { canvasBackground, noise2, hexRgb } from './generative';\nexport type { GenFrame, GenerativeSpec } from './generative';\nexport { solveSpring, springKeyframes, bounceKeyframes } from './physics';\nexport type { SpringOptions } from './physics';\nexport { defineStory, STORY_TEMPLATES, storyProgress, formatCount } from './story';\nexport type { StoryTemplate, UsaStoryElement } from './story';\nexport { fxLayer } from './shared';\n\n/** The effect packs by version, in release order. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n 'cards-click': [...CARD_FX, ...CLICK_FX],\n physics: PHYSICS_FX,\n page: PAGE_FX,\n generative: GENERATIVE_FX,\n audio: AUDIO_FX,\n cursor: CURSOR_FX,\n micro: MICRO_FX,\n themes: THEME_FX,\n};\n\n/** 5.1: card & click effects 2.0. */\nexport function registerCardClickEffects(): void {\n registerEffects(EFFECT_PACKS['cards-click']);\n}\n\n/** 5.2: bounce & physics micro-interactions. */\nexport function registerPhysicsEffects(): void {\n registerEffects(EFFECT_PACKS.physics);\n}\n\n/** 5.3: page-wide transitions and effects. */\nexport function registerPageEffects(): void {\n registerEffects(EFFECT_PACKS.page);\n}\n\n/** 5.5: generative Canvas 2D backgrounds. */\nexport function registerGenerativeEffects(): void {\n registerEffects(EFFECT_PACKS.generative);\n}\n\n/** 5.6: sound-reactive (Web Audio) backgrounds. */\nexport function registerAudioEffects(): void {\n registerEffects(EFFECT_PACKS.audio);\n}\n\n/** 5.7: cursor trails, magnetic dots, spotlight cursor. */\nexport function registerCursorEffects(): void {\n registerEffects(EFFECT_PACKS.cursor);\n}\n\n/** 5.8: micro-interactions + theme-pack effects. */\nexport function registerMicroEffects(): void {\n registerEffects(EFFECT_PACKS.micro);\n registerEffects(EFFECT_PACKS.themes);\n}\n\n/** Define the 5.x elements of this entry (`<usa-story>`, …) under their default tags. */\nexport function defineEffectElements(): void {\n defineStory();\n defineAudio();\n defineGestureFx();\n defineTheme();\n defineMotionTheme();\n definePlayer();\n}\n\n/** Register the built-ins and every pack (idempotent). */\nexport function registerAllEffects(): void {\n registerBuiltinEffects();\n for (const defs of Object.values(EFFECT_PACKS)) registerEffects(defs);\n}\n"],"names":["overlay","all","origin","spawn","PALETTE","rand","fxLayer","hexRgb","canvasBackground","playEffect","defineElement","motionTokensToVars","mergeMotionTokens","deprecate","adoptStyles","applyMotionTokens","bindEffect","GENERATIVE_FX","AUDIO_FX","registerEffects","defineStory","defineAudio","definePlayer","registerBuiltinEffects"],"mappings":"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"}
|