use-scroll-animate 5.3.0 → 5.5.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 +26 -0
- package/dist/components/effects.cjs +516 -1
- package/dist/components/effects.cjs.map +1 -1
- package/dist/components/effects.d.cts +93 -2
- package/dist/components/effects.d.ts +93 -2
- package/dist/components/effects.js +507 -2
- package/dist/components/effects.js.map +1 -1
- package/dist/components.umd.js +2 -2
- package/dist/components.umd.js.map +1 -1
- package/docs/ROADMAP.md +2 -2
- package/docs/components.md +35 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","sources":["../../src/components/effects/shared.ts","../../src/components/effects/cards-click.ts","../../src/components/effects/physics.ts","../../src/components/effects/page.ts","../../src/components/effects/index.ts"],"sourcesContent":["/** Helpers shared by the 5.x effect packs. */\nimport type { EffectContext } from '../fx/registry';\n\nlet layer: HTMLElement | null = null;\n/** A fixed, pointer-transparent, aria-hidden layer for transient particles. */\nexport function fxLayer(): HTMLElement {\n if (layer?.isConnected) return layer;\n layer = document.createElement('div');\n layer.setAttribute('aria-hidden', 'true');\n layer.setAttribute('data-usa-fx-layer', '');\n layer.style.cssText = 'position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2147483000;contain:strict';\n document.body.appendChild(layer);\n return layer;\n}\n\n/** Client point of the triggering pointer event, or the element's center. */\nexport function origin(el: Element, ctx: EffectContext): { x: number; y: number } {\n const e = ctx.event as PointerEvent | MouseEvent | undefined;\n const r = el.getBoundingClientRect();\n return e && typeof e.clientX === 'number' && (e.clientX || e.clientY) ? { x: e.clientX, y: e.clientY } : { x: r.left + r.width / 2, y: r.top + r.height / 2 };\n}\n\n/** Spawn an absolutely positioned node in the fx layer at (x, y); removed when its animation ends. */\nexport function spawn(x: number, y: number, css: string, ctx: EffectContext, frames: Keyframe[], opts: KeyframeAnimationOptions, text = ''): Animation | null {\n const n = document.createElement('span');\n n.style.cssText = `position:absolute;left:${x}px;top:${y}px;${css}`;\n if (text) n.textContent = text;\n fxLayer().appendChild(n);\n const a = ctx.animate(n, frames, { fill: 'forwards', ...opts });\n const rm = () => n.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n return a;\n}\n\n/** An overlay child covering `el` (makes `el` a positioning context). Returns it and a remover. */\nexport function overlay(el: HTMLElement, css: string): [HTMLElement, () => void] {\n const o = document.createElement('span');\n o.setAttribute('aria-hidden', 'true');\n o.style.cssText = `position:absolute;inset:0;pointer-events:none;border-radius:inherit;${css}`;\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n el.appendChild(o);\n return [o, () => o.remove()];\n}\n\nexport const PALETTE = ['#7c5cff', '#ff5c8a', '#22d3ee', '#facc15', '#34d399'];\nexport const rand = (a: number, b: number): number => a + Math.random() * (b - a);\n\n/** Wait for all animations (ignoring nulls). */\nexport const all = (anims: (Animation | null)[]): Promise<unknown> => Promise.all(anims.filter(Boolean).map((a) => a!.finished.catch(() => undefined)));\n","/**\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 * use-scroll-animate/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 * `use-scroll-animate/components` / `components/lite` so their size budgets\n * hold; the UMD bundle registers everything.\n *\n * ```ts\n * import { registerAllEffects } from 'use-scroll-animate/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';\n\nexport { CARD_FX, CLICK_FX, PHYSICS_FX, PAGE_FX };\nexport { solveSpring, springKeyframes, bounceKeyframes } from './physics';\nexport type { SpringOptions } from './physics';\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};\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/** 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":[],"mappings":";;;;;;AAGA,IAAI,KAAK,GAAuB,IAAI;AACpC;SACgB,OAAO,GAAA;IACrB,IAAI,KAAK,EAAE,WAAW;AAAE,QAAA,OAAO,KAAK;AACpC,IAAA,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACrC,IAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACzC,IAAA,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,CAAC;AAC3C,IAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,8FAA8F;AACpH,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,IAAA,OAAO,KAAK;AACd;AAEA;AACM,SAAU,MAAM,CAAC,EAAW,EAAE,GAAkB,EAAA;AACpD,IAAA,MAAM,CAAC,GAAG,GAAG,CAAC,KAA8C;AAC5D,IAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE;AACpC,IAAA,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/J;AAEA;SACgB,KAAK,CAAC,CAAS,EAAE,CAAS,EAAE,GAAW,EAAE,GAAkB,EAAE,MAAkB,EAAE,IAA8B,EAAE,IAAI,GAAG,EAAE,EAAA;IACxI,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,IAAA,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA,uBAAA,EAA0B,CAAC,CAAA,OAAA,EAAU,CAAC,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE;AACnE,IAAA,IAAI,IAAI;AAAE,QAAA,CAAC,CAAC,WAAW,GAAG,IAAI;AAC9B,IAAA,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACxB,IAAA,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;IAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE;AAC3B,IAAA,IAAI,CAAC;QAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;;AACzB,QAAA,EAAE,EAAE;AACT,IAAA,OAAO,CAAC;AACV;AAEA;AACM,SAAU,OAAO,CAAC,EAAe,EAAE,GAAW,EAAA;IAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,IAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IACrC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA,oEAAA,EAAuE,GAAG,EAAE;AAC9F,IAAA,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,QAAQ;AAAE,QAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC9E,IAAA,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9B;AAEO,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AACvE,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,KAAa,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjF;AACO,MAAM,GAAG,GAAG,CAAC,KAA2B,KAAuB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;;ACxChJ,MAAM,OAAO,GAAuB;AACzC,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,+GAA+G;AAC5H,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;AACvB,YAAA,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,sCAAsC,CAAC,CAAC,QAAQ,CAAA,8RAAA,CAAgS,CAAC;YACrX,IAAI,GAAG,CAAC,OAAO;AAAE,gBAAA,OAAO,MAAM;AAC9B,YAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,gBAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE;gBACpC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG;gBACvD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG;gBACvD,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,MAAA,CAAQ;gBACnD,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,2BAAA,EAA8B,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA,aAAA,EAAgB,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA,IAAA,CAAM;AACnG,YAAA,CAAC;YACD,MAAM,KAAK,GAAG,MAAK;AACjB,gBAAA,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,cAAc;AAC/C,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AACzB,YAAA,CAAC;AACD,YAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AACxC,YAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1C,YAAA,OAAO,MAAK;AACV,gBAAA,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC3C,gBAAA,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC7C,gBAAA,KAAK,EAAE;AACP,gBAAA,MAAM,EAAE;AACV,YAAA,CAAC;QACH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,sDAAsD;QACnE,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE;QAC3D,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,qEAAqE,CAAC,CAAC,KAAK,CAAA,+CAAA,CAAiD,CAAC;AAC9J,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAC/I,YAAA,IAAI,CAAC;gBAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;;AACjC,gBAAA,MAAM,EAAE;AACb,YAAA,OAAO,CAAC;QACV,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,0EAA0E;QACvF,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;AACvB,YAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa;YACxC,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,+BAA+B,EAAE,EAAE,EAAE,SAAS,EAAE,+BAA+B,CAAC,CAAC,KAAK,CAAA,IAAA,CAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;QAC3Q,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,mEAAmE;QAChF,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QACvC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAkB;YACrD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACjC,YAAA,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,WAAA,EAAc,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,CAAA,WAAA,EAAc,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,IAAA,CAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,CAAC,CAAC;QACrR,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,wDAAwD;AACrE,QAAA,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;AACvB,YAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe;AAC1C,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,+BAA+B,EAAE,EAAE,EAAE,SAAS,EAAE,mCAAmC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,oCAAoC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,kCAAkC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC5W,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;QACzC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,YAAA,EAAe,CAAC,CAAC,QAAQ,CAAA,gCAAA,CAAkC,EAAE,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAC1R,YAAA,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE;QAC1B,CAAC;AACF,KAAA;;AAGI,MAAM,QAAQ,GAAuB;AAC1C,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,2CAA2C;AACxD,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;QACxD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAChC,YAAA,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,MAAA,EAAS,CAAC,CAAC,IAAI,CAAA,UAAA,EAAa,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA,OAAA,EAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA,oBAAA,EAAuB,CAAC,CAAC,KAAK,CAAA,kBAAA,CAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACvV,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,mDAAmD;AAChE,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE;QACtD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAChC,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;gBAClD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;AACrB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AACtB,gBAAA,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,MAAA,EAAS,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,UAAA,EAAa,CAAC,CAAC,GAAG,CAAC,CAAA,OAAA,EAAU,CAAC,CAAC,GAAG,CAAC,CAAA,cAAA,EAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA,CAAA,CAAG,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,YAAA,CAAc,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,cAAA,CAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;YAC1iB,CAAC,CAAC,CAAC;QACL,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,+BAA+B;AAC5C,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;QACjF,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAChC,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AAClD,gBAAA,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC;gBACvC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,UAAA,EAAa,CAAC,CAAA,wBAAA,EAA2B,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,oCAAoC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,aAAA,CAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,GAAG,CAAC;YAC9Y,CAAC,CAAC,CAAC;QACL,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,2DAA2D;AACxE,QAAA,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC3B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KACnB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC7Z,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,kDAAkD;AAC/D,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;YAChC,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,MAAA,EAAS,CAAC,CAAC,IAAI,CAAA,UAAA,EAAa,CAAC,CAAC,IAAI,CAAA,UAAA,EAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAA,kBAAA,CAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC7V,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,iEAAiE;AAC9E,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAChC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzC,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;gBAClD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA,gBAAA,CAAkB,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,UAAA,EAAa,EAAE,GAAG,GAAG,CAAA,GAAA,EAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,YAAA,CAAc,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,UAAA,EAAa,EAAE,CAAA,GAAA,EAAM,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,cAAA,CAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACtb,CAAC,CAAC,CAAC;QACL,CAAC;AACF,KAAA;;;AC3JH;;;AAGG;AACG,SAAU,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,KAAoB,EAAE,EAAA;AACrG,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAClB,IAAI,CAAC,GAAG,CAAC;IACT,IAAI,CAAC,GAAG,CAAC;IACT,MAAM,KAAK,GAAa,EAAE;IAC1B,IAAI,CAAC,GAAG,CAAC;IACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;AACrB,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,IAAI;AACrD,QAAA,CAAC,IAAI,CAAC,GAAG,EAAE;AACX,QAAA,CAAC,IAAI,CAAC,GAAG,EAAE;AACX,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;YAAE;IAChE;AACA,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvJ,IAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AACb,IAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjB,IAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;AACnE;AAEA;AACM,SAAU,eAAe,CAAC,GAA4B,EAAE,MAAsB,EAAA;IAClF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;AAChD,IAAA,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE;AAC9C;AAEA;AACM,SAAU,eAAe,CAAC,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,EAAE,EAAA;;AAEtD,IAAA,MAAM,IAAI,GAAa,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,CAAC;IACT,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;AAClC,QAAA,CAAC,IAAI,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACd;AACA,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7C,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;QAChD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,gBAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE;AACA,YAAA,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACd;AACA,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,CAAC;AACJ;AAEA,MAAM,IAAI,GAAG,CAAC,EAAe,EAAE,GAA2C,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAE5I,MAAM,UAAU,GAAuB;AAC5C,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,uFAAuF;AACpG,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;QACpD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;AAAE,gBAAA,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;YACrC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAA,MAAA,EAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxJ,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChE,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM;AAClB,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,MAAA,EAAS,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,MAAA,EAAS,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,MAAA,EAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,MAAA,EAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,MAAA,EAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACla,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,0FAA0F;AACvG,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/D,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,GAAG,CAAC,EAAW,KAAI;gBACzB,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;gBACvB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,KAAI;AACjD,oBAAA,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,oBAAA,OAAO,EAAE,SAAS,EAAE,CAAA,WAAA,EAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,UAAA,EAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,EAAE;gBAChH,CAAC,EAAE,CAAC,CAAC;AACL,gBAAA,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC3E,YAAA,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC;AAC7B,YAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1C,YAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1C,YAAA,OAAO,MAAK;AACV,gBAAA,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC7C,gBAAA,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC/C,YAAA,CAAC;QACH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,oFAAoF;AACjG,QAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;AAAE,gBAAA,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;YACrC,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,CAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChL,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,oIAAoI;AACjJ,QAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QAClE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;AACxB,gBAAA,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE;AACjC,gBAAA,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;AACnC,gBAAA,EAAE,CAAC,WAAW,GAAG,EAAE;gBACnB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,oBAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACrC,oBAAA,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AAChC,oBAAA,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK;AAC1B,oBAAA,CAAC,CAAC,WAAW,GAAG,EAAE;AAClB,oBAAA,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnB;AACA,gBAAA,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG;YAC3B;YACA,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;AACxC,YAAA,OAAO,GAAG,CAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,CAAK,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1P,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,WAAW,EAAE,6GAA6G;AAC1H,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACvD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,IAAI,EAAE;YACnC,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,GAAG,GAAG,CAAC;YACX,MAAM,IAAI,GAAG,MAAK;AAChB,gBAAA,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO;AAC9C,gBAAA,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO;gBAC9C,CAAC,IAAI,EAAE;gBACP,CAAC,IAAI,EAAE;gBACP,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,EAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC1D,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;AAClH,YAAA,CAAC;YACD,MAAM,IAAI,GAAG,MAAK;AAChB,gBAAA,IAAI,CAAC,GAAG;AAAE,oBAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAC7C,YAAA,CAAC;AACD,YAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE;gBACtC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG;gBACtD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG;gBACtD,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;gBACrB,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;AACrB,gBAAA,IAAI,EAAE;AACR,YAAA,CAAC;YACD,MAAM,KAAK,GAAG,MAAK;AACjB,gBAAA,EAAE,GAAG,EAAE,GAAG,CAAC;AACX,gBAAA,IAAI,EAAE;AACR,YAAA,CAAC;AACD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC1C,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC5C,YAAA,OAAO,MAAK;AACV,gBAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC7C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;gBAC/C,oBAAoB,CAAC,GAAG,CAAC;AACzB,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AACzB,YAAA,CAAC;QACH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,WAAW,EAAE,kEAAkE;AAC/E,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE;QACnD,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY;YACvC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAA,OAAA,EAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC/K,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE;YACzC,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC1F,CAAC;AACF,KAAA;;;AC/MH;AACA,SAAS,MAAM,CAAC,GAAG,GAAG,EAAE,EAAA;IACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACvC,IAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACrC,IAAA,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACtC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA,8DAAA,EAAiE,GAAG,EAAE;AACxF,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5B,IAAA,OAAO,CAAC;AACV;AAEA,MAAM,IAAI,GAAG,CAAC,CAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACjG,MAAM,IAAI,GAAG,OAAO,EAAW,KAAI;IACjC,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,MAAM,EAAE,EAAE;AAC1C,CAAC;AAED;AACA,eAAe,SAAS,CAAC,CAAM,EAAE,GAAkB,EAAA;IACjD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA,WAAA,EAAc,CAAC,CAAC,KAAK,CAAA,UAAA,CAAY,CAAC;AACnD,IAAA,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACjG,IAAA,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACvB,IAAA,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC,MAAM,EAAE;AACZ;AAEA;AACA,SAAS,UAAU,CAAC,KAAgL,EAAA;IAClM,OAAO,OAAO,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;QAC/B,IAAI,GAAG,CAAC,OAAO;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;AACzC,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvC,QAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,CAAS,MAAM,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9E,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3K,QAAA,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI;AAAE,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1L,CAAC,CAAC,MAAM,EAAE;AACZ,IAAA,CAAC;AACH;AAEA,MAAM,IAAI,GAAG,CAAC,CAAc,EAAE,GAAW,KAAI;IAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACvC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA,kBAAA,EAAqB,GAAG,EAAE;AAC5C,IAAA,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAChB,IAAA,OAAO,CAAC;AACV,CAAC;AAED,MAAM,mBAAmB,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,SAAwC,EAAE;AAEvH,MAAM,OAAO,GAAuB;AACzC,IAAA;AACE,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,uEAAuE;AACpF,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,mBAAmB;QAC7B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM;YACzB,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA,6CAAA,EAAgD,CAAC,CAAC,KAAK,CAAA,CAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAA,8CAAA,EAAiD,CAAC,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;AAChJ,YAAA,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA,WAAA,EAAc,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA,EAAA,CAAI,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAChG,SAAA,CAAC,CAAC;AACJ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,8FAA8F;AAC3G,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,KAAI;AAChC,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAChC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;;YAEnF,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,CAAC,CAAA,OAAA,EAAU,CAAC,CAAA,uDAAA,EAA0D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,CAAC,CAAC,KAAK,CAAA,CAAE,CAAC;AAC5H,YAAA,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa;YAClC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,EAAE,MAAM,EAAE,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,EAAE,MAAM,EAAE,CAAA,EAAG,CAAC,CAAC,CAAA,OAAA,EAAU,CAAC,CAAC,CAAA,EAAA,CAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;AACtK,QAAA,CAAC,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,oGAAoG;AACjH,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;AACzB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AACpF,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAA,MAAA,EAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,WAAW,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,gBAAgB,CAAC,CAAC,KAAK,CAAA,UAAA,CAAY,CAAC,CAAC;YAC/O,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE;AAClH,QAAA,CAAC,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,2FAA2F;AACxG,QAAA,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,EAAE,GAAG,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE;QAC9C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM;YACzB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,CAAA,SAAA,EAAY,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAA,aAAA,EAAgB,CAAC,CAAC,KAAK,CAAA,qBAAA,CAAuB,CAAC,CAAC;AACjL,YAAA,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YAC/D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;AACrB,SAAA,CAAC,CAAC;AACJ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,WAAW,EAAE,0FAA0F;QACvG,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;QAClC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAM,EAAE,GAAG,KAAI;YACvB,IAAI,GAAG,CAAC,OAAO;gBAAE;YACjB,IAAI,IAAI,GAAG,OAAO;YAClB,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC;YACX,MAAM,IAAI,GAAG,MAAK;gBAChB,MAAM,CAAC,GAAG,OAAO;AACjB,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;gBACvE,IAAI,GAAG,CAAC;gBACR,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,GAAG;AAC7B,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;AACnD,gBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;AACxF,gBAAA,IAAI,CAAC,GAAG;AAAE,oBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AACnC,YAAA,CAAC;YACD,MAAM,QAAQ,GAAG,MAAK;AACpB,gBAAA,IAAI,CAAC,GAAG;AAAE,oBAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAC7C,YAAA,CAAC;YACD,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvD,YAAA,OAAO,MAAK;AACV,gBAAA,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACvC,oBAAoB,CAAC,GAAG,CAAC;AACzB,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AACzB,YAAA,CAAC;QACH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,WAAW,EAAE,4FAA4F;QACzG,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;QACpC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAM,EAAE,GAAG,KAAI;YACxB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,yDAAyD,CAAC,CAAC,MAAM,CAAA,yEAAA,EAA4E,CAAC,CAAC,GAAG,CAAA,OAAA,CAAS,CAAC;AAC7K,YAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,gBAAA,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA,EAAG,CAAC,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC;AAC5C,gBAAA,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA,EAAG,CAAC,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC;AAC9C,YAAA,CAAC;YACD,gBAAgB,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACxD,YAAA,OAAO,MAAK;AACV,gBAAA,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;gBACxC,CAAC,CAAC,MAAM,EAAE;AACZ,YAAA,CAAC;QACH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,WAAW,EAAE,0GAA0G;QACvH,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAM,EAAE,GAAG,KAAI;YACxB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,gEAAgE,CAAC;YAClF,IAAI,IAAI,GAAG,OAAO;YAClB,IAAI,CAAC,GAAG,CAAC;YACT,MAAM,QAAQ,GAAG,MAAK;AACpB,gBAAA,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI;gBAC5B,IAAI,GAAG,OAAO;gBACd,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,mBAAmB,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAA,GAAA,CAAK;AAC7G,gBAAA,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;gBACrB,YAAY,CAAC,CAAC,CAAC;AACf,gBAAA,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,CAAsB;AACzE,YAAA,CAAC;YACD,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvD,YAAA,OAAO,MAAK;AACV,gBAAA,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACvC,YAAY,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,MAAM,EAAE;AACZ,YAAA,CAAC;QACH,CAAC;AACF,KAAA;;;AC5LH;;;;;;;;;;;AAWG;AAYH;AACO,MAAM,YAAY,GAAuC;AAC9D,IAAA,aAAa,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC;AACxC,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,IAAI,EAAE,OAAO;;AAGf;SACgB,wBAAwB,GAAA;AACtC,IAAA,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AAC9C;AAEA;SACgB,sBAAsB,GAAA;AACpC,IAAA,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC;AACvC;AAEA;SACgB,mBAAmB,GAAA;AACjC,IAAA,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC;AACpC;AAEA;SACgB,kBAAkB,GAAA;AAChC,IAAA,sBAAsB,EAAE;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QAAE,eAAe,CAAC,IAAI,CAAC;AACvE;;;;"}
|
|
1
|
+
{"version":3,"file":"effects.js","sources":["../../src/components/effects/shared.ts","../../src/components/effects/cards-click.ts","../../src/components/effects/physics.ts","../../src/components/effects/page.ts","../../src/components/effects/story.ts","../../src/components/effects/generative.ts","../../src/components/effects/index.ts"],"sourcesContent":["/** Helpers shared by the 5.x effect packs. */\nimport type { EffectContext } from '../fx/registry';\n\nlet layer: HTMLElement | null = null;\n/** A fixed, pointer-transparent, aria-hidden layer for transient particles. */\nexport function fxLayer(): HTMLElement {\n if (layer?.isConnected) return layer;\n layer = document.createElement('div');\n layer.setAttribute('aria-hidden', 'true');\n layer.setAttribute('data-usa-fx-layer', '');\n layer.style.cssText = 'position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2147483000;contain:strict';\n document.body.appendChild(layer);\n return layer;\n}\n\n/** Client point of the triggering pointer event, or the element's center. */\nexport function origin(el: Element, ctx: EffectContext): { x: number; y: number } {\n const e = ctx.event as PointerEvent | MouseEvent | undefined;\n const r = el.getBoundingClientRect();\n return e && typeof e.clientX === 'number' && (e.clientX || e.clientY) ? { x: e.clientX, y: e.clientY } : { x: r.left + r.width / 2, y: r.top + r.height / 2 };\n}\n\n/** Spawn an absolutely positioned node in the fx layer at (x, y); removed when its animation ends. */\nexport function spawn(x: number, y: number, css: string, ctx: EffectContext, frames: Keyframe[], opts: KeyframeAnimationOptions, text = ''): Animation | null {\n const n = document.createElement('span');\n n.style.cssText = `position:absolute;left:${x}px;top:${y}px;${css}`;\n if (text) n.textContent = text;\n fxLayer().appendChild(n);\n const a = ctx.animate(n, frames, { fill: 'forwards', ...opts });\n const rm = () => n.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n return a;\n}\n\n/** An overlay child covering `el` (makes `el` a positioning context). Returns it and a remover. */\nexport function overlay(el: HTMLElement, css: string): [HTMLElement, () => void] {\n const o = document.createElement('span');\n o.setAttribute('aria-hidden', 'true');\n o.style.cssText = `position:absolute;inset:0;pointer-events:none;border-radius:inherit;${css}`;\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n el.appendChild(o);\n return [o, () => o.remove()];\n}\n\nexport const PALETTE = ['#7c5cff', '#ff5c8a', '#22d3ee', '#facc15', '#34d399'];\nexport const rand = (a: number, b: number): number => a + Math.random() * (b - a);\n\n/** Wait for all animations (ignoring nulls). */\nexport const all = (anims: (Animation | null)[]): Promise<unknown> => Promise.all(anims.filter(Boolean).map((a) => a!.finished.catch(() => undefined)));\n","/**\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.4 — `<usa-story template=\"…\">` scroll-storytelling templates.\n *\n * - `pin` — a sticky `[data-stage]` while `[data-step]` sections scroll past; the\n * step in view gets `data-active`, the stage gets `data-active-step=\"<index>\"`.\n * - `gallery` — a horizontal `[data-track]` slides sideways as you scroll down.\n * - `zoom` — the `[data-stage]` zooms toward the viewer (`zoom=\"6\"`) and fades.\n * - `compare` — before / after (`[data-before]`, `[data-after]`) wipe driven by\n * scroll, plus a draggable, keyboard-accessible handle (`role=\"slider\"`).\n * - `counter` — `[data-count=\"1234\"]` numbers count up when they enter view.\n * - `highlight` — paragraphs dim except the one crossing the viewport center.\n *\n * Every template sets `--usa-story-progress` (0–1) on the host and dispatches\n * `usa-story-step` (`detail: { index }`). Reduced motion: no sliding / zooming\n * (the gallery stacks vertically), counters show final values, the rest is\n * class changes only.\n */\nimport { defineElement, type UsaElement } from '../base';\n\nexport const STORY_TEMPLATES = ['pin', 'gallery', 'zoom', 'compare', 'counter', 'highlight'] as const;\nexport type StoryTemplate = (typeof STORY_TEMPLATES)[number];\n\nexport interface UsaStoryElement extends UsaElement {\n /** Scroll progress through the story, 0–1. */\n readonly progress: number;\n /** Index of the active step (pin / highlight), or -1. */\n readonly step: number;\n}\n\nconst CSS = `usa-story{display:block;position:relative}\nusa-story[template=pin] [data-stage],usa-story[template=gallery] [data-sticky],usa-story[template=zoom] [data-stage],usa-story[template=compare] [data-sticky]{position:sticky;top:0}\nusa-story[template=pin] [data-stage]{align-self:start}\nusa-story[template=pin] [data-step]{min-height:80vh;opacity:.35;transition:opacity .3s}\nusa-story[template=pin] [data-step][data-active]{opacity:1}\nusa-story[template=gallery] [data-sticky]{height:100vh;overflow:hidden;display:flex;align-items:center}\nusa-story[template=gallery] [data-track]{display:flex;gap:24px;will-change:transform}\nusa-story[template=gallery][data-static] [data-sticky]{position:static;height:auto;overflow:visible}\nusa-story[template=gallery][data-static] [data-track]{flex-direction:column;transform:none!important}\nusa-story[template=zoom] [data-stage]{height:100vh;overflow:hidden;display:grid;place-items:center}\nusa-story[template=compare] [data-sticky]{height:var(--usa-story-h,70vh);overflow:hidden}\nusa-story[template=compare] [data-before],usa-story[template=compare] [data-after]{position:absolute;inset:0}\nusa-story[template=compare] [data-after]{clip-path:inset(0 0 0 var(--usa-split,50%))}\nusa-story [data-handle]{position:absolute;top:0;bottom:0;left:var(--usa-split,50%);width:4px;margin-left:-2px;background:#fff;box-shadow:0 0 0 1px #0003;cursor:ew-resize;touch-action:none}\nusa-story [data-handle]:focus-visible{outline:3px solid #7c5cff;outline-offset:2px}\nusa-story[template=highlight] p,usa-story[template=highlight] [data-step]{opacity:.3;transition:opacity .25s}\nusa-story[template=highlight] [data-active]{opacity:1}`;\n\nconst clamp = (v: number, a = 0, b = 1) => Math.min(b, Math.max(a, v));\n\n/** Progress of `el` through the viewport: 0 when its top hits the viewport top, 1 when its bottom hits the viewport bottom. */\nexport function storyProgress(el: Element, vh = typeof innerHeight === 'number' ? innerHeight : 800): number {\n const r = el.getBoundingClientRect();\n const span = r.height - vh;\n return span > 0 ? clamp(-r.top / span) : clamp((vh - r.top) / (vh + r.height));\n}\n\n/** Format a counted value like the target (`1,234`, `12.5`, prefix / suffix kept). */\nexport function formatCount(target: string, t: number): string {\n const m = target.match(/^(\\D*)([\\d,]*\\.?\\d+)(.*)$/);\n if (!m) return target;\n const [, pre, num, post] = m;\n const n = parseFloat(num.replace(/,/g, ''));\n const dec = (num.split('.')[1] || '').length;\n let s = (n * t).toFixed(dec);\n if (num.includes(',')) s = Number(s).toLocaleString('en-US', { minimumFractionDigits: dec, maximumFractionDigits: dec });\n return pre + s + post;\n}\n\nexport function defineStory(tag = 'usa-story'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaStory extends Base {\n static get observedAttributes(): string[] {\n return ['template', 'zoom'];\n }\n progress = 0;\n step = -1;\n private frame = 0;\n get template(): StoryTemplate {\n const t = this.str('template', 'pin') as StoryTemplate;\n return STORY_TEMPLATES.includes(t) ? t : 'pin';\n }\n private steps(): HTMLElement[] {\n const own = Array.from(this.querySelectorAll<HTMLElement>('[data-step]:not([data-stage])'));\n return own.length || this.template !== 'highlight' ? own : Array.from(this.querySelectorAll<HTMLElement>('p'));\n }\n private setStep(i: number): void {\n if (i === this.step) return;\n this.step = i;\n this.steps().forEach((s, k) => s.toggleAttribute('data-active', k === i));\n const stage = this.querySelector<HTMLElement>('[data-stage]');\n if (stage) stage.dataset.activeStep = String(i);\n this.dispatchEvent(new CustomEvent('usa-story-step', { detail: { index: i }, bubbles: true }));\n }\n /** Recompute from the current scroll position (called on scroll / resize). */\n update(): void {\n this.frame = 0;\n const p = (this.progress = storyProgress(this));\n this.style.setProperty('--usa-story-progress', p.toFixed(4));\n const t = this.template;\n const vh = innerHeight || 800;\n if (t === 'pin' || t === 'highlight') {\n const mid = vh / 2;\n let best = -1;\n let bestD = Infinity;\n this.steps().forEach((s, i) => {\n const r = s.getBoundingClientRect();\n const d = r.top <= mid && r.bottom >= mid ? 0 : Math.min(Math.abs(r.top - mid), Math.abs(r.bottom - mid));\n if (d < bestD) (bestD = d), (best = i);\n });\n this.setStep(best);\n } else if (t === 'gallery' && !this.reduced) {\n const track = this.querySelector<HTMLElement>('[data-track]');\n const box = this.querySelector<HTMLElement>('[data-sticky]');\n if (track && box) track.style.transform = `translateX(${(-p * Math.max(0, track.scrollWidth - box.clientWidth)).toFixed(1)}px)`;\n } else if (t === 'zoom' && !this.reduced) {\n const inner = this.querySelector<HTMLElement>('[data-stage] > *');\n if (inner) {\n inner.style.transform = `scale(${(1 + p * (this.num('zoom', 6) - 1)).toFixed(3)})`;\n inner.style.opacity = String(clamp(1.4 - p * 1.4).toFixed(3));\n }\n } else if (t === 'compare' && !this.hasAttribute('data-dragged')) {\n this.setSplit(p * 100);\n } else if (t === 'counter') {\n this.querySelectorAll<HTMLElement>('[data-count]:not([data-counted])').forEach((el) => {\n const r = el.getBoundingClientRect();\n if (r.top < vh * 0.9 && r.bottom > 0) this.count(el);\n });\n }\n }\n private setSplit(pct: number): void {\n const v = clamp(pct, 0, 100);\n this.style.setProperty('--usa-split', `${v.toFixed(2)}%`);\n const h = this.querySelector<HTMLElement>('[data-handle]');\n if (h) h.setAttribute('aria-valuenow', String(Math.round(v)));\n }\n private count(el: HTMLElement): void {\n el.dataset.counted = '';\n const target = el.dataset.count || el.textContent || '0';\n el.setAttribute('aria-label', target);\n if (this.reduced) {\n el.textContent = target;\n return;\n }\n const dur = Number(el.dataset.duration) || 1600;\n const t0 = performance.now();\n const tick = (now: number) => {\n const k = clamp((now - t0) / dur);\n el.textContent = formatCount(target, 1 - (1 - k) ** 3);\n if (k < 1) requestAnimationFrame(tick);\n };\n requestAnimationFrame(tick);\n }\n mount(): void {\n this.toggleAttribute('data-static', this.reduced);\n if (this.template === 'compare') this.mountCompare();\n const kick = () => {\n if (!this.frame) this.frame = requestAnimationFrame(() => this.update());\n };\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(this.frame));\n this.update();\n }\n private mountCompare(): void {\n const box = this.querySelector<HTMLElement>('[data-sticky]') || this;\n let h = this.querySelector<HTMLElement>('[data-handle]');\n if (!h) {\n h = document.createElement('div');\n h.setAttribute('data-handle', '');\n box.appendChild(h);\n this.onCleanup(() => h!.remove());\n }\n h.tabIndex = 0;\n h.setAttribute('role', 'slider');\n h.setAttribute('aria-label', this.str('label', 'Before / after'));\n h.setAttribute('aria-valuemin', '0');\n h.setAttribute('aria-valuemax', '100');\n const at = (e: PointerEvent) => {\n const r = box.getBoundingClientRect();\n this.dataset.dragged = '';\n this.setSplit(((e.clientX - r.left) / (r.width || 1)) * 100);\n };\n let drag = false;\n this.listen(h, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n h!.setPointerCapture?.(e.pointerId);\n });\n this.listen(h, 'pointermove', (e: PointerEvent) => drag && at(e));\n this.listen(h, 'pointerup', () => (drag = false));\n this.listen(h, 'keydown', (e: KeyboardEvent) => {\n const cur = parseFloat(h!.getAttribute('aria-valuenow') || '50');\n const step = e.shiftKey ? 10 : 2;\n const next = e.key === 'ArrowLeft' || e.key === 'ArrowDown' ? cur - step : e.key === 'ArrowRight' || e.key === 'ArrowUp' ? cur + step : e.key === 'Home' ? 0 : e.key === 'End' ? 100 : null;\n if (next == null) return;\n e.preventDefault();\n this.dataset.dragged = '';\n this.setSplit(next);\n });\n this.setSplit(50);\n }\n unmount(): void {\n this.step = -1;\n delete this.dataset.dragged;\n }\n },\n { id: 'usa-story', text: CSS }\n );\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-story': UsaStoryElement;\n }\n}\n","/**\n * 5.5 — generative backgrounds on Canvas 2D, registered through\n * `registerEffect()` (kind `background`): `flow-field`, `voronoi`,\n * `mesh-gradient`, `starfield`, `metaballs`, `contours`.\n *\n * Shared runner (`canvasBackground()`): a canvas behind the element's content\n * (`aria-hidden`, pointer-transparent), rendering only while visible\n * (IntersectionObserver) and the tab is shown, with adaptive quality — the\n * render scale drops when frames get slow and recovers when they are fast.\n * Reduced motion: one static frame, no loop.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { PALETTE } from './shared';\n\nexport interface GenFrame {\n ctx: CanvasRenderingContext2D;\n /** CSS-pixel size of the canvas. */\n w: number;\n h: number;\n /** Seconds since start (0 for the static reduced-motion frame). */\n t: number;\n /** Render scale 0.35–1 (adaptive quality). */\n quality: number;\n /** Per-effect state, created by `init`. */\n state: any;\n /** Merged options. */\n o: any;\n}\n\nexport interface GenerativeSpec {\n init?: (w: number, h: number, o: any) => any;\n draw: (f: GenFrame) => void;\n}\n\n/** Deterministic smooth pseudo-noise in [-1, 1] (sum of sines — cheap, no tables). */\nexport function noise2(x: number, y: number, t = 0): number {\n return (Math.sin(x * 1.7 + t) * Math.cos(y * 1.3 - t * 0.7) + Math.sin((x + y) * 0.9 + t * 0.5) * 0.5 + Math.cos(x * 0.6 - y * 1.1 - t * 0.3) * 0.5) / 2;\n}\n\n/** Hex `#rrggbb` → [r, g, b]. */\nexport function hexRgb(hex: string): [number, number, number] {\n const m = /^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i.exec(hex.trim());\n return m ? [parseInt(m[1], 16), parseInt(m[2], 16), parseInt(m[3], 16)] : [124, 92, 255];\n}\n\n/**\n * Mount a generative canvas behind `el` and run `spec` on it. Returns the\n * cleanup. Exposed for custom generative effects.\n */\nexport function canvasBackground(el: HTMLElement, fx: EffectContext, spec: GenerativeSpec, o: any): () => void {\n const canvas = document.createElement('canvas');\n canvas.setAttribute('aria-hidden', 'true');\n canvas.setAttribute('data-usa-fx-canvas', '');\n canvas.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;border-radius:inherit';\n const restore: [string, string][] = [];\n const set = (k: 'position' | 'isolation', v: string) => {\n restore.push([k, el.style[k]]);\n el.style[k] = v;\n };\n if (getComputedStyle(el).position === 'static') set('position', 'relative');\n set('isolation', 'isolate');\n el.prepend(canvas);\n const ctx = canvas.getContext('2d');\n let raf = 0;\n let visible = true;\n let quality = Math.min(1, Math.max(0.35, Number(o.quality) || 1));\n let w = 0;\n let h = 0;\n let state: any = null;\n const t0 = performance.now();\n let last = t0;\n let slow = 0;\n let fast = 0;\n const resize = () => {\n const r = el.getBoundingClientRect();\n w = Math.max(1, Math.round(r.width));\n h = Math.max(1, Math.round(r.height));\n const dpr = Math.min(2, (typeof devicePixelRatio === 'number' ? devicePixelRatio : 1) || 1) * quality;\n canvas.width = Math.max(1, Math.round(w * dpr));\n canvas.height = Math.max(1, Math.round(h * dpr));\n if (ctx) ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n state = spec.init ? spec.init(w, h, o) : {};\n };\n const frame = (now: number) => {\n raf = 0;\n if (!ctx) return;\n const dt = now - last;\n last = now;\n // adaptive quality: sustained slow frames lower the render scale, fast ones raise it\n if (dt > 28) slow++;\n else if (dt < 18) fast++;\n if (slow > 20 && quality > 0.35) {\n quality = Math.max(0.35, quality - 0.15);\n slow = fast = 0;\n resize();\n } else if (fast > 240 && quality < 1) {\n quality = Math.min(1, quality + 0.15);\n slow = fast = 0;\n resize();\n }\n spec.draw({ ctx, w, h, t: (now - t0) / 1000, quality, state, o });\n if (visible && !document.hidden) raf = requestAnimationFrame(frame);\n };\n const start = () => {\n if (!raf && ctx && !fx.reduced) {\n last = performance.now();\n raf = requestAnimationFrame(frame);\n }\n };\n resize();\n if (ctx) spec.draw({ ctx, w, h, t: 0, quality, state, o }); // first / static frame\n const io = typeof IntersectionObserver === 'function' ? new IntersectionObserver((es) => {\n visible = es.some((e) => e.isIntersecting);\n if (visible) start();\n }) : null;\n io?.observe(el);\n const ro = typeof ResizeObserver === 'function' ? new ResizeObserver(() => {\n resize();\n if (ctx && fx.reduced) spec.draw({ ctx, w, h, t: 0, quality, state, o });\n }) : null;\n ro?.observe(el);\n const vis = () => !document.hidden && visible && start();\n document.addEventListener('visibilitychange', vis);\n start();\n return () => {\n cancelAnimationFrame(raf);\n raf = 0;\n io?.disconnect();\n ro?.disconnect();\n document.removeEventListener('visibilitychange', vis);\n canvas.remove();\n for (const [k, v] of restore) el.style[k as 'position'] = v;\n };\n}\n\nconst gen = (name: string, description: string, defaults: Record<string, unknown>, spec: GenerativeSpec): EffectDefinition => ({\n name,\n kind: 'background',\n description,\n reduced: 'run',\n defaults: { colors: PALETTE, background: '#0b0d12', speed: 1, quality: 1, ...defaults },\n run: (el, o: any, ctx) => canvasBackground(el, ctx, spec, o),\n});\n\n/** Low-resolution scalar field → ImageData, drawn scaled up (used by voronoi / metaballs / contours). */\nfunction field(f: GenFrame, cell: number, px: (x: number, y: number, out: Uint8ClampedArray, i: number) => void): void {\n const step = Math.max(2, Math.round(cell / f.quality));\n const cw = Math.max(1, Math.ceil(f.w / step));\n const ch = Math.max(1, Math.ceil(f.h / step));\n const st = f.state;\n if (!st.buf || st.buf.width !== cw || st.buf.height !== ch) {\n st.buf = document.createElement('canvas');\n st.buf.width = cw;\n st.buf.height = ch;\n st.bctx = st.buf.getContext('2d');\n st.img = st.bctx?.createImageData(cw, ch);\n }\n if (!st.bctx || !st.img) return;\n const d = st.img.data as Uint8ClampedArray;\n for (let y = 0; y < ch; y++) for (let x = 0; x < cw; x++) px(x * step, y * step, d, (y * cw + x) * 4);\n st.bctx.putImageData(st.img, 0, 0);\n f.ctx.imageSmoothingEnabled = true;\n f.ctx.drawImage(st.buf, 0, 0, f.w, f.h);\n}\n\nexport const GENERATIVE_FX: EffectDefinition[] = [\n gen('flow-field', 'Particles drift along a slowly changing flow field, leaving silky trails.', { count: 600, fade: 0.06 }, {\n init: (w, h, o) => ({ p: Array.from({ length: o.count }, () => [Math.random() * w, Math.random() * h]) }),\n draw: ({ ctx, w, h, t, state, o, quality }) => {\n ctx.fillStyle = o.background;\n ctx.globalAlpha = t === 0 ? 1 : o.fade;\n ctx.fillRect(0, 0, w, h);\n ctx.globalAlpha = 0.8;\n const n = Math.round(state.p.length * quality);\n const steps = t === 0 ? 40 : 1;\n for (let i = 0; i < n; i++) {\n const q = state.p[i];\n ctx.fillStyle = o.colors[i % o.colors.length];\n for (let s = 0; s < steps; s++) {\n const a = noise2(q[0] * 0.004, q[1] * 0.004, t * 0.15 * o.speed) * Math.PI * 2;\n q[0] += Math.cos(a) * 1.2 * o.speed;\n q[1] += Math.sin(a) * 1.2 * o.speed;\n if (q[0] < 0 || q[0] > w || q[1] < 0 || q[1] > h) (q[0] = Math.random() * w), (q[1] = Math.random() * h);\n ctx.fillRect(q[0], q[1], 1.4, 1.4);\n }\n }\n ctx.globalAlpha = 1;\n },\n }),\n gen('voronoi', 'Drifting Voronoi cells in the palette, with darker borders.', { seeds: 14, cell: 6 }, {\n init: (w, h, o) => ({ s: Array.from({ length: o.seeds }, (_, i) => ({ x: Math.random() * w, y: Math.random() * h, vx: Math.random() - 0.5, vy: Math.random() - 0.5, c: hexRgb(o.colors[i % o.colors.length]) })) }),\n draw: (f) => {\n const { w, h, state, o } = f;\n for (const s of state.s) {\n s.x += s.vx * o.speed;\n s.y += s.vy * o.speed;\n if (s.x < 0 || s.x > w) s.vx *= -1;\n if (s.y < 0 || s.y > h) s.vy *= -1;\n }\n field(f, o.cell, (x, y, d, i) => {\n let b = Infinity;\n let b2 = Infinity;\n let c = state.s[0].c;\n for (const s of state.s) {\n const dd = (s.x - x) ** 2 + (s.y - y) ** 2;\n if (dd < b) (b2 = b), (b = dd), (c = s.c);\n else if (dd < b2) b2 = dd;\n }\n const edge = Math.sqrt(b2) - Math.sqrt(b) < 6 ? 0.55 : 1;\n d[i] = c[0] * edge;\n d[i + 1] = c[1] * edge;\n d[i + 2] = c[2] * edge;\n d[i + 3] = 255;\n });\n },\n }),\n gen('mesh-gradient', 'Soft blobs of colour orbit and blend into a living mesh gradient.', { blobs: 4, blur: 0.65 }, {\n draw: ({ ctx, w, h, t, o }) => {\n ctx.fillStyle = o.background;\n ctx.fillRect(0, 0, w, h);\n const r = Math.max(w, h) * o.blur;\n for (let i = 0; i < o.blobs; i++) {\n const a = t * 0.25 * o.speed + (i * Math.PI * 2) / o.blobs;\n const x = w / 2 + Math.cos(a * (1 + i * 0.13)) * w * 0.32;\n const y = h / 2 + Math.sin(a * (0.8 + i * 0.11)) * h * 0.32;\n const [cr, cg, cb] = hexRgb(o.colors[i % o.colors.length]);\n const g = ctx.createRadialGradient(x, y, 0, x, y, r);\n g.addColorStop(0, `rgba(${cr},${cg},${cb},0.7)`);\n g.addColorStop(1, `rgba(${cr},${cg},${cb},0)`);\n ctx.fillStyle = g;\n ctx.fillRect(0, 0, w, h);\n }\n },\n }),\n gen('starfield', 'Stars stream toward the viewer (warp speed with `speed: 4`).', { stars: 400, color: '#ffffff' }, {\n init: (_w, _h, o) => ({ s: Array.from({ length: o.stars }, () => [Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random()]) }),\n draw: ({ ctx, w, h, t, state, o, quality }) => {\n ctx.fillStyle = o.background;\n ctx.fillRect(0, 0, w, h);\n ctx.fillStyle = o.color;\n const n = Math.round(state.s.length * quality);\n for (let i = 0; i < n; i++) {\n const s = state.s[i];\n if (t > 0) s[2] -= 0.004 * o.speed;\n if (s[2] <= 0.01) (s[0] = Math.random() * 2 - 1), (s[1] = Math.random() * 2 - 1), (s[2] = 1);\n const x = w / 2 + (s[0] / s[2]) * w * 0.5;\n const y = h / 2 + (s[1] / s[2]) * h * 0.5;\n if (x < 0 || x > w || y < 0 || y > h) continue;\n const size = (1 - s[2]) * 2.6;\n ctx.globalAlpha = Math.min(1, (1 - s[2]) * 1.6);\n ctx.fillRect(x, y, size, size);\n }\n ctx.globalAlpha = 1;\n },\n }),\n gen('metaballs', 'Gooey blobs that merge and split (low-resolution field, scaled up).', { balls: 6, cell: 5, threshold: 1 }, {\n init: (w, h, o) => ({ b: Array.from({ length: o.balls }, () => ({ x: Math.random() * w, y: Math.random() * h, vx: (Math.random() - 0.5) * 1.6, vy: (Math.random() - 0.5) * 1.6, r: Math.min(w, h) * (0.08 + Math.random() * 0.08) })) }),\n draw: (f) => {\n const { w, h, state, o } = f;\n for (const b of state.b) {\n b.x += b.vx * o.speed;\n b.y += b.vy * o.speed;\n if (b.x < 0 || b.x > w) b.vx *= -1;\n if (b.y < 0 || b.y > h) b.vy *= -1;\n }\n const [ar, ag, ab] = hexRgb(o.colors[0]);\n const [br, bg, bb] = hexRgb(o.colors[1] || o.colors[0]);\n const [kr, kg, kb] = hexRgb(o.background);\n field(f, o.cell, (x, y, d, i) => {\n let v = 0;\n for (const b of state.b) v += (b.r * b.r) / ((b.x - x) ** 2 + (b.y - y) ** 2 + 1);\n const inside = v >= o.threshold;\n const k = Math.min(1, (v - o.threshold) * 0.8);\n d[i] = inside ? ar + (br - ar) * k : kr;\n d[i + 1] = inside ? ag + (bg - ag) * k : kg;\n d[i + 2] = inside ? ab + (bb - ab) * k : kb;\n d[i + 3] = 255;\n });\n },\n }),\n gen('contours', 'Topographic contour lines over a slowly shifting height field.', { levels: 9, cell: 4, color: '#7c5cff' }, {\n draw: (f) => {\n const { t, o } = f;\n const [lr, lg, lb] = hexRgb(o.color);\n const [kr, kg, kb] = hexRgb(o.background);\n const z = (x: number, y: number) => (noise2(x * 0.006, y * 0.006, t * 0.2 * o.speed) + 1) / 2;\n const step = Math.max(2, Math.round(o.cell / f.quality));\n field(f, o.cell, (x, y, d, i) => {\n const a = Math.floor(z(x, y) * o.levels);\n const line = a !== Math.floor(z(x + step, y) * o.levels) || a !== Math.floor(z(x, y + step) * o.levels);\n const shade = 0.12 + (a / o.levels) * 0.18;\n d[i] = line ? lr : kr + (lr - kr) * shade;\n d[i + 1] = line ? lg : kg + (lg - kg) * shade;\n d[i + 2] = line ? lb : kb + (lb - kb) * shade;\n d[i + 3] = 255;\n });\n },\n }),\n];\n","/**\n * use-scroll-animate/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 * `use-scroll-animate/components` / `components/lite` so their size budgets\n * hold; the UMD bundle registers everything.\n *\n * ```ts\n * import { registerAllEffects } from 'use-scroll-animate/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';\n\nexport { CARD_FX, CLICK_FX, PHYSICS_FX, PAGE_FX, GENERATIVE_FX };\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};\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/** Define the 5.x elements of this entry (`<usa-story>`, …) under their default tags. */\nexport function defineEffectElements(): void {\n defineStory();\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":[],"mappings":"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"}
|