motionary 6.8.0 → 7.0.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 +39 -0
- package/README.md +2 -2
- package/README_ja.md +2 -2
- package/README_zh.md +2 -2
- package/bin/usa-codemod-7.mjs +91 -0
- package/dist/chunks/{gpu-CsP2ZB3x.js → gpu-Bkw605Ds.js} +183 -5
- package/dist/chunks/gpu-Bkw605Ds.js.map +1 -0
- package/dist/chunks/{gpu-BBRLgEzM.cjs → gpu-Dx0H875w.cjs} +187 -4
- package/dist/chunks/gpu-Dx0H875w.cjs.map +1 -0
- package/dist/chunks/{index-tags-wv0R_vkO.cjs → index-tags-BTMwrfgV.cjs} +3 -3
- package/dist/chunks/index-tags-BTMwrfgV.cjs.map +1 -0
- package/dist/chunks/{index-tags-DucKMQr_.js → index-tags-C04JP8g4.js} +3 -3
- package/dist/chunks/index-tags-C04JP8g4.js.map +1 -0
- package/dist/chunks/player-C-TwEEy6.js +516 -0
- package/dist/chunks/player-C-TwEEy6.js.map +1 -0
- package/dist/chunks/player-PS6_FzNw.cjs +525 -0
- package/dist/chunks/player-PS6_FzNw.cjs.map +1 -0
- package/dist/components/a11y.cjs +1 -1
- package/dist/components/a11y.d.cts +2 -2
- package/dist/components/a11y.d.ts +2 -2
- package/dist/components/a11y.js +1 -1
- package/dist/components/angular.cjs +2 -2
- package/dist/components/angular.cjs.map +1 -1
- package/dist/components/angular.d.cts +5 -36
- package/dist/components/angular.d.ts +5 -36
- package/dist/components/angular.js +2 -2
- package/dist/components/angular.js.map +1 -1
- package/dist/components/effects.cjs +13 -522
- package/dist/components/effects.cjs.map +1 -1
- package/dist/components/effects.js +5 -513
- package/dist/components/effects.js.map +1 -1
- package/dist/components/fx-3d.cjs +2 -2
- package/dist/components/fx-3d.cjs.map +1 -1
- package/dist/components/fx-3d.d.cts +2 -2
- package/dist/components/fx-3d.d.ts +2 -2
- package/dist/components/fx-3d.js +2 -2
- package/dist/components/fx-3d.js.map +1 -1
- package/dist/components/fx-focus.cjs +125 -0
- package/dist/components/fx-focus.cjs.map +1 -0
- package/dist/components/fx-focus.d.cts +65 -0
- package/dist/components/fx-focus.d.ts +65 -0
- package/dist/components/fx-focus.js +122 -0
- package/dist/components/fx-focus.js.map +1 -0
- package/dist/components/fx-gpu.cjs +2 -2
- package/dist/components/fx-gpu.d.cts +2 -2
- package/dist/components/fx-gpu.d.ts +2 -2
- package/dist/components/fx-gpu.js +1 -1
- package/dist/components/fx-light.cjs +2 -2
- package/dist/components/fx-light.cjs.map +1 -1
- package/dist/components/fx-light.d.cts +2 -2
- package/dist/components/fx-light.d.ts +2 -2
- package/dist/components/fx-light.js +2 -2
- package/dist/components/fx-light.js.map +1 -1
- package/dist/components/fx-morph.cjs +2 -2
- package/dist/components/fx-morph.cjs.map +1 -1
- package/dist/components/fx-morph.d.cts +2 -2
- package/dist/components/fx-morph.d.ts +2 -2
- package/dist/components/fx-morph.js +2 -2
- package/dist/components/fx-morph.js.map +1 -1
- package/dist/components/fx-physics.cjs +2 -2
- package/dist/components/fx-physics.cjs.map +1 -1
- package/dist/components/fx-physics.d.cts +2 -2
- package/dist/components/fx-physics.d.ts +2 -2
- package/dist/components/fx-physics.js +2 -2
- package/dist/components/fx-physics.js.map +1 -1
- package/dist/components/fx-text.cjs +2 -2
- package/dist/components/fx-text.cjs.map +1 -1
- package/dist/components/fx-text.d.cts +2 -2
- package/dist/components/fx-text.d.ts +2 -2
- package/dist/components/fx-text.js +2 -2
- package/dist/components/fx-text.js.map +1 -1
- package/dist/components/fx-transitions.cjs +2 -2
- package/dist/components/fx-transitions.cjs.map +1 -1
- package/dist/components/fx-transitions.d.cts +2 -2
- package/dist/components/fx-transitions.d.ts +2 -2
- package/dist/components/fx-transitions.js +2 -2
- package/dist/components/fx-transitions.js.map +1 -1
- package/dist/components/fx-weather.cjs +2 -2
- package/dist/components/fx-weather.cjs.map +1 -1
- package/dist/components/fx-weather.d.cts +2 -2
- package/dist/components/fx-weather.d.ts +2 -2
- package/dist/components/fx-weather.js +2 -2
- package/dist/components/fx-weather.js.map +1 -1
- package/dist/components/fx2.cjs +37 -22
- package/dist/components/fx2.cjs.map +1 -1
- package/dist/components/fx2.d.cts +135 -14
- package/dist/components/fx2.d.ts +135 -14
- package/dist/components/fx2.js +25 -21
- package/dist/components/fx2.js.map +1 -1
- package/dist/components/interaction.cjs +11 -94
- package/dist/components/interaction.cjs.map +1 -1
- package/dist/components/interaction.css +0 -1
- package/dist/components/interaction.d.cts +3 -21
- package/dist/components/interaction.d.ts +3 -21
- package/dist/components/interaction.js +12 -94
- package/dist/components/interaction.js.map +1 -1
- package/dist/components/jsx.d.cts +2 -2
- package/dist/components/jsx.d.ts +2 -2
- package/dist/components/lazy.cjs +1 -1
- package/dist/components/lazy.d.cts +2 -2
- package/dist/components/lazy.d.ts +2 -2
- package/dist/components/lazy.js +1 -1
- package/dist/components/lite.cjs +115 -256
- package/dist/components/lite.cjs.map +1 -1
- package/dist/components/lite.js +116 -255
- package/dist/components/lite.js.map +1 -1
- package/dist/components/marketplace.cjs +82 -0
- package/dist/components/marketplace.cjs.map +1 -0
- package/dist/components/marketplace.d.cts +108 -0
- package/dist/components/marketplace.d.ts +108 -0
- package/dist/components/marketplace.js +77 -0
- package/dist/components/marketplace.js.map +1 -0
- package/dist/components/perf.cjs +1 -1
- package/dist/components/perf.d.cts +2 -2
- package/dist/components/perf.d.ts +2 -2
- package/dist/components/perf.js +1 -1
- package/dist/components/react.cjs +2 -2
- package/dist/components/react.cjs.map +1 -1
- package/dist/components/react.js +2 -2
- package/dist/components/react.js.map +1 -1
- package/dist/components/solid.cjs +2 -2
- package/dist/components/solid.cjs.map +1 -1
- package/dist/components/solid.d.cts +4 -35
- package/dist/components/solid.d.ts +4 -35
- package/dist/components/solid.js +2 -2
- package/dist/components/solid.js.map +1 -1
- package/dist/components/svelte.cjs +2 -2
- package/dist/components/svelte.cjs.map +1 -1
- package/dist/components/svelte.d.cts +5 -36
- package/dist/components/svelte.d.ts +5 -36
- package/dist/components/svelte.js +2 -2
- package/dist/components/svelte.js.map +1 -1
- package/dist/components/ui.cjs +16 -74
- package/dist/components/ui.cjs.map +1 -1
- package/dist/components/ui.css +0 -1
- package/dist/components/ui.d.cts +3 -18
- package/dist/components/ui.d.ts +3 -18
- package/dist/components/ui.js +17 -74
- package/dist/components/ui.js.map +1 -1
- package/dist/components/vue.cjs +2 -2
- package/dist/components/vue.cjs.map +1 -1
- package/dist/components/vue.d.cts +5 -36
- package/dist/components/vue.d.ts +5 -36
- package/dist/components/vue.js +2 -2
- package/dist/components/vue.js.map +1 -1
- package/dist/components/widgets.cjs +622 -53
- package/dist/components/widgets.cjs.map +1 -1
- package/dist/components/widgets.d.cts +106 -2
- package/dist/components/widgets.d.ts +106 -2
- package/dist/components/widgets.js +615 -54
- package/dist/components/widgets.js.map +1 -1
- package/dist/components.cjs +1 -3
- package/dist/components.cjs.map +1 -1
- package/dist/components.css +0 -2
- package/dist/components.d.cts +6 -39
- package/dist/components.d.ts +6 -39
- package/dist/components.js +3 -3
- package/dist/components.umd.js +2 -2
- package/dist/components.umd.js.map +1 -1
- package/dist/widgets.umd.js +1 -1
- package/dist/widgets.umd.js.map +1 -1
- package/docs/ROADMAP.md +12 -12
- package/docs/accessibility.md +2 -2
- package/docs/components.md +41 -2
- package/docs/deprecations.md +4 -0
- package/docs/frameworks-ssr.md +4 -4
- package/docs/hybrid-apps.md +2 -2
- package/docs/upgrading-7.md +43 -0
- package/docs/windows-apps.md +1 -1
- package/package.json +133 -2
- package/dist/chunks/gpu-BBRLgEzM.cjs.map +0 -1
- package/dist/chunks/gpu-CsP2ZB3x.js.map +0 -1
- package/dist/chunks/index-tags-DucKMQr_.js.map +0 -1
- package/dist/chunks/index-tags-wv0R_vkO.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx-physics.js","sources":["../../src/components/fx2/physics2.ts"],"sourcesContent":["/**\n * 6.8 — Interactive physics 2.0 (`motionary/components/fx-physics`) on a tiny\n * Verlet integrator (`VerletWorld`), registered through `registerEffect()`:\n *\n * - `soft-body` (kind `hover`) — the element wobbles like jelly: pointer\n * motion pushes a damped spring that squashes and skews it.\n * - `magnet` (kind `hover`) — the element's children are pulled toward the\n * pointer on springs and settle back when it leaves.\n * - `cloth` (kind `background`) — a cloth hangs from the top edge and ripples\n * when the pointer moves through it.\n * - `rope` (kind `background`) — a rope with a weight swings from the top;\n * the pointer pushes it.\n * - `pinball` (kind `background`) — balls fall through round bumpers that\n * light up on a hit; click to drop another ball.\n *\n * Canvas effects render only while visible; reduced motion draws one static\n * frame and the hover effects do nothing.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { canvasBackground, type GenerativeSpec } from '../effects/generative';\n\nexport interface VerletPoint {\n x: number;\n y: number;\n px: number;\n py: number;\n pinned: boolean;\n}\n\n/** A minimal Verlet world: points, distance sticks, gravity, damping. */\nexport class VerletWorld {\n points: VerletPoint[] = [];\n sticks: [number, number, number][] = [];\n constructor(public gravity = 900, public damping = 0.99, public iterations = 4) {}\n add(x: number, y: number, pinned = false): number {\n this.points.push({ x, y, px: x, py: y, pinned });\n return this.points.length - 1;\n }\n link(a: number, b: number, len?: number): void {\n const p = this.points[a];\n const q = this.points[b];\n this.sticks.push([a, b, len ?? Math.hypot(p.x - q.x, p.y - q.y)]);\n }\n step(dt: number, bounds?: { w: number; h: number }): void {\n const g = this.gravity * dt * dt;\n for (const p of this.points) {\n if (p.pinned) continue;\n const vx = (p.x - p.px) * this.damping;\n const vy = (p.y - p.py) * this.damping;\n p.px = p.x;\n p.py = p.y;\n p.x += vx;\n p.y += vy + g;\n }\n for (let k = 0; k < this.iterations; k++) {\n for (const [a, b, len] of this.sticks) {\n const p = this.points[a];\n const q = this.points[b];\n const dx = q.x - p.x;\n const dy = q.y - p.y;\n const d = Math.hypot(dx, dy) || 1e-6;\n const diff = (d - len) / d / (p.pinned || q.pinned ? 1 : 2);\n if (!p.pinned) (p.x += dx * diff), (p.y += dy * diff);\n if (!q.pinned) (q.x -= dx * diff), (q.y -= dy * diff);\n }\n if (bounds) for (const p of this.points) (p.x = Math.min(bounds.w, Math.max(0, p.x))), (p.y = Math.min(bounds.h, Math.max(0, p.y)));\n }\n }\n /** Push points within `r` px of (x, y) by (dx, dy). */\n push(x: number, y: number, dx: number, dy: number, r = 40): void {\n for (const p of this.points) if (!p.pinned && Math.hypot(p.x - x, p.y - y) < r) (p.x += dx), (p.y += dy);\n }\n}\n\nconst bg = (name: string, description: string, defaults: Record<string, unknown>, spec: (el: HTMLElement) => GenerativeSpec): EffectDefinition => ({\n name,\n kind: 'background',\n description,\n reduced: 'run',\n defaults: { speed: 1, quality: 1, ...defaults },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const stop = canvasBackground(el, ctx, spec(el), o);\n ctx.onCleanup(stop);\n return stop;\n },\n});\n\n/** Pointer position relative to `el` plus the movement since the last read. */\nfunction pointer(el: HTMLElement) {\n const s = { x: -999, y: -999, dx: 0, dy: 0, down: false, clicks: 0 };\n const move = (e: PointerEvent) => {\n const r = el.getBoundingClientRect();\n const x = e.clientX - r.left;\n const y = e.clientY - r.top;\n if (s.x > -999) (s.dx += x - s.x), (s.dy += y - s.y);\n s.x = x;\n s.y = y;\n };\n const click = () => s.clicks++;\n const leave = () => (s.x = s.y = -999);\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerdown', click);\n el.addEventListener('pointerleave', leave);\n return { s, off: () => (el.removeEventListener('pointermove', move), el.removeEventListener('pointerdown', click), el.removeEventListener('pointerleave', leave)) };\n}\n\nconst tick = (state: any, t: number) => {\n const dt = state.last ? Math.min(1 / 30, t - state.last) : 1 / 60;\n state.last = t;\n return dt;\n};\n\nexport const PHYSICS2_FX: EffectDefinition[] = [\n {\n name: 'soft-body',\n kind: 'hover',\n description: 'The element wobbles like jelly: pointer motion pushes a damped spring that squashes and skews it (`stiffness`, `damping`, `amount`).',\n defaults: { stiffness: 220, damping: 9, amount: 1 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n let vx = 0;\n let x = 0;\n let vy = 0;\n let y = 0;\n let raf = 0;\n let lx = NaN;\n let ly = NaN;\n let last = 0;\n const prev = el.style.transform;\n const loop = (now: number) => {\n const dt = last ? Math.min(0.033, (now - last) / 1000) : 1 / 60;\n last = now;\n vx += (-o.stiffness * x - o.damping * vx) * dt;\n vy += (-o.stiffness * y - o.damping * vy) * dt;\n x += vx * dt;\n y += vy * dt;\n const a = o.amount;\n el.style.transform = `skew(${(x * 0.6 * a).toFixed(2)}deg,${(y * 0.25 * a).toFixed(2)}deg) scale(${(1 + y * 0.004 * a).toFixed(4)},${(1 - y * 0.004 * a).toFixed(4)})`;\n if (Math.abs(x) + Math.abs(vx) + Math.abs(y) + Math.abs(vy) > 0.02) raf = requestAnimationFrame(loop);\n else ((raf = 0), (last = 0), (el.style.transform = prev));\n };\n const move = (e: PointerEvent) => {\n if (!Number.isNaN(lx)) (vx += Math.max(-60, Math.min(60, (e.clientX - lx) * 4))), (vy += Math.max(-60, Math.min(60, (e.clientY - ly) * 4)));\n lx = e.clientX;\n ly = e.clientY;\n if (!raf && typeof requestAnimationFrame === 'function') raf = requestAnimationFrame(loop);\n };\n const leave = () => (lx = ly = NaN);\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerleave', leave);\n const stop = () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n if (raf) cancelAnimationFrame(raf);\n el.style.transform = prev;\n };\n ctx.onCleanup(stop);\n return stop;\n },\n },\n {\n name: 'magnet',\n kind: 'hover',\n description: \"The element's children are pulled toward the pointer on springs and settle back when it leaves (`strength`, `radius`).\",\n defaults: { strength: 0.35, radius: 160 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const kids = Array.from(el.children) as HTMLElement[];\n const prev = kids.map((k) => k.style.transform);\n kids.forEach((k) => (k.style.transition = 'transform .45s cubic-bezier(.3,1.5,.5,1)'));\n const move = (e: PointerEvent) => {\n for (const k of kids) {\n const r = k.getBoundingClientRect();\n const dx = e.clientX - (r.left + r.width / 2);\n const dy = e.clientY - (r.top + r.height / 2);\n const d = Math.hypot(dx, dy);\n const f = d < o.radius ? o.strength * (1 - d / o.radius) : 0;\n k.style.transform = `translate(${(dx * f).toFixed(1)}px,${(dy * f).toFixed(1)}px)`;\n }\n };\n const leave = () => kids.forEach((k, i) => (k.style.transform = prev[i]));\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerleave', leave);\n const stop = () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n kids.forEach((k, i) => ((k.style.transform = prev[i]), (k.style.transition = '')));\n };\n ctx.onCleanup(stop);\n return stop;\n },\n },\n bg('cloth', 'A cloth hangs from the top edge and ripples when the pointer moves through it (Verlet, Canvas 2D).', { cols: 16, rows: 10, color: '#7c5cff' }, (el) => {\n const p = pointer(el);\n return {\n init: (w, h, o) => {\n const world = new VerletWorld(600, 0.985, 3);\n const sx = (w * 0.86) / (o.cols - 1);\n const sy = (h * 0.75) / (o.rows - 1);\n for (let r = 0; r < o.rows; r++) for (let c = 0; c < o.cols; c++) world.add(w * 0.07 + c * sx, 6 + r * sy, r === 0 && c % 3 === 0);\n for (let r = 0; r < o.rows; r++)\n for (let c = 0; c < o.cols; c++) {\n const i = r * o.cols + c;\n if (c) world.link(i - 1, i);\n if (r) world.link(i - o.cols, i);\n }\n return { world, off: p.off };\n },\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = tick(state, t);\n const world: VerletWorld = state.world;\n if (t > 0) {\n if (p.s.x > -999) world.push(p.s.x, p.s.y, p.s.dx * 0.6, p.s.dy * 0.6, 50);\n p.s.dx = p.s.dy = 0;\n world.step(dt * o.speed, { w, h });\n }\n ctx.clearRect(0, 0, w, h);\n for (let r = 0; r < o.rows - 1; r++)\n for (let c = 0; c < o.cols - 1; c++) {\n const i = r * o.cols + c;\n const a = world.points[i];\n const b = world.points[i + 1];\n const d = world.points[i + o.cols + 1];\n const e = world.points[i + o.cols];\n const shade = 0.55 + 0.45 * Math.max(0, Math.min(1, (b.x - a.x) / ((w * 0.86) / (o.cols - 1))));\n ctx.globalAlpha = shade;\n ctx.fillStyle = (r + c) % 2 ? o.color : '#22d3ee';\n ctx.beginPath();\n ctx.moveTo(a.x, a.y);\n ctx.lineTo(b.x, b.y);\n ctx.lineTo(d.x, d.y);\n ctx.lineTo(e.x, e.y);\n ctx.fill();\n }\n ctx.globalAlpha = 1;\n },\n };\n }),\n bg('rope', 'A rope with a weight swings from the top; the pointer pushes it (Verlet, Canvas 2D).', { links: 14, color: '#f59e0b' }, (el) => {\n const p = pointer(el);\n return {\n init: (w, h, o) => {\n const world = new VerletWorld(900, 0.995, 6);\n const len = (h * 0.7) / o.links;\n for (let i = 0; i <= o.links; i++) world.add(w / 2 + i * len * 0.6, 4 + i * len * 0.8, i === 0);\n for (let i = 1; i <= o.links; i++) world.link(i - 1, i, len);\n return { world, off: p.off };\n },\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = tick(state, t);\n const world: VerletWorld = state.world;\n if (t > 0) {\n if (p.s.x > -999) world.push(p.s.x, p.s.y, p.s.dx, p.s.dy, 36);\n p.s.dx = p.s.dy = 0;\n world.step(dt * o.speed, { w, h });\n }\n ctx.clearRect(0, 0, w, h);\n ctx.strokeStyle = o.color;\n ctx.lineWidth = 3;\n ctx.lineCap = 'round';\n ctx.beginPath();\n world.points.forEach((q, i) => (i ? ctx.lineTo(q.x, q.y) : ctx.moveTo(q.x, q.y)));\n ctx.stroke();\n const end = world.points[world.points.length - 1];\n ctx.fillStyle = o.color;\n ctx.beginPath();\n ctx.arc(end.x, end.y, 11, 0, Math.PI * 2);\n ctx.fill();\n },\n };\n }),\n bg('pinball', 'Balls fall through round bumpers that light up on a hit; click to drop another ball (Canvas 2D).', { balls: 5, bumpers: 7, colors: ['#f43f5e', '#f59e0b', '#22d3ee', '#a3e635'] }, (el) => {\n const p = pointer(el);\n return {\n init: (w, h, o) => {\n const ball = () => ({ x: w * (0.3 + Math.random() * 0.4), y: -10 - Math.random() * h * 0.5, vx: (Math.random() - 0.5) * 80, vy: 0 });\n const bumpers = Array.from({ length: o.bumpers }, (_, i) => ({ x: w * (0.15 + ((i * 0.37) % 0.7)), y: h * (0.25 + ((i * 0.53) % 0.6)), r: Math.min(w, h) * 0.06, hit: 0 }));\n return { balls: Array.from({ length: o.balls }, ball), bumpers, ball, clicks: 0, off: p.off };\n },\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = tick(state, t) * o.speed;\n if (p.s.clicks !== state.clicks) {\n state.clicks = p.s.clicks;\n const b = state.ball();\n if (p.s.x > -999) b.x = p.s.x;\n b.y = 0;\n state.balls.push(b);\n if (state.balls.length > 24) state.balls.shift();\n }\n ctx.clearRect(0, 0, w, h);\n for (const bu of state.bumpers) {\n bu.hit = Math.max(0, bu.hit - dt * 2.5);\n ctx.fillStyle = `rgba(124,92,255,${0.35 + bu.hit * 0.65})`;\n ctx.shadowColor = '#a78bfa';\n ctx.shadowBlur = bu.hit * 20;\n ctx.beginPath();\n ctx.arc(bu.x, bu.y, bu.r * (1 + bu.hit * 0.15), 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.shadowBlur = 0;\n state.balls.forEach((b: any, i: number) => {\n if (t > 0) {\n b.vy += 600 * dt;\n b.x += b.vx * dt;\n b.y += b.vy * dt;\n for (const bu of state.bumpers) {\n const dx = b.x - bu.x;\n const dy = b.y - bu.y;\n const d = Math.hypot(dx, dy);\n if (d < bu.r + 6 && d > 0) {\n const nx = dx / d;\n const ny = dy / d;\n const dot = b.vx * nx + b.vy * ny;\n b.vx = (b.vx - 2 * dot * nx) * 0.92;\n b.vy = (b.vy - 2 * dot * ny) * 0.92;\n b.x = bu.x + nx * (bu.r + 6);\n b.y = bu.y + ny * (bu.r + 6);\n bu.hit = 1;\n }\n }\n if (b.x < 6 || b.x > w - 6) (b.vx *= -0.8), (b.x = Math.min(w - 6, Math.max(6, b.x)));\n if (b.y > h + 12) Object.assign(b, state.ball());\n }\n ctx.fillStyle = o.colors[i % o.colors.length];\n ctx.beginPath();\n ctx.arc(b.x, b.y, 6, 0, Math.PI * 2);\n ctx.fill();\n });\n },\n };\n }),\n];\n\n/** Register the 6.8 physics 2.0 pack (idempotent). */\nexport function registerPhysicsEffects2(): void {\n registerEffects(PHYSICS2_FX);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fx-physics.js","sources":["../../src/components/fx2/physics2.ts"],"sourcesContent":["/**\n * 6.8 — Interactive physics 2.0 (`motionary/components/fx-physics`) on a tiny\n * Verlet integrator (`VerletWorld`), registered through `registerEffect()`:\n *\n * - `soft-body` (kind `hover`) — the element wobbles like jelly: pointer\n * motion pushes a damped spring that squashes and skews it.\n * - `magnet` (kind `hover`) — the element's children are pulled toward the\n * pointer on springs and settle back when it leaves.\n * - `cloth` (kind `background`) — a cloth hangs from the top edge and ripples\n * when the pointer moves through it.\n * - `rope` (kind `background`) — a rope with a weight swings from the top;\n * the pointer pushes it.\n * - `pinball` (kind `background`) — balls fall through round bumpers that\n * light up on a hit; click to drop another ball.\n *\n * Canvas effects render only while visible; reduced motion draws one static\n * frame and the hover effects do nothing.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { canvasBackground, type GenerativeSpec } from '../effects/generative';\n\nexport interface VerletPoint {\n x: number;\n y: number;\n px: number;\n py: number;\n pinned: boolean;\n}\n\n/** A minimal Verlet world: points, distance sticks, gravity, damping. */\nexport class VerletWorld {\n points: VerletPoint[] = [];\n sticks: [number, number, number][] = [];\n constructor(public gravity = 900, public damping = 0.99, public iterations = 4) {}\n add(x: number, y: number, pinned = false): number {\n this.points.push({ x, y, px: x, py: y, pinned });\n return this.points.length - 1;\n }\n link(a: number, b: number, len?: number): void {\n const p = this.points[a];\n const q = this.points[b];\n this.sticks.push([a, b, len ?? Math.hypot(p.x - q.x, p.y - q.y)]);\n }\n step(dt: number, bounds?: { w: number; h: number }): void {\n const g = this.gravity * dt * dt;\n for (const p of this.points) {\n if (p.pinned) continue;\n const vx = (p.x - p.px) * this.damping;\n const vy = (p.y - p.py) * this.damping;\n p.px = p.x;\n p.py = p.y;\n p.x += vx;\n p.y += vy + g;\n }\n for (let k = 0; k < this.iterations; k++) {\n for (const [a, b, len] of this.sticks) {\n const p = this.points[a];\n const q = this.points[b];\n const dx = q.x - p.x;\n const dy = q.y - p.y;\n const d = Math.hypot(dx, dy) || 1e-6;\n const diff = (d - len) / d / (p.pinned || q.pinned ? 1 : 2);\n if (!p.pinned) (p.x += dx * diff), (p.y += dy * diff);\n if (!q.pinned) (q.x -= dx * diff), (q.y -= dy * diff);\n }\n if (bounds) for (const p of this.points) (p.x = Math.min(bounds.w, Math.max(0, p.x))), (p.y = Math.min(bounds.h, Math.max(0, p.y)));\n }\n }\n /** Push points within `r` px of (x, y) by (dx, dy). */\n push(x: number, y: number, dx: number, dy: number, r = 40): void {\n for (const p of this.points) if (!p.pinned && Math.hypot(p.x - x, p.y - y) < r) (p.x += dx), (p.y += dy);\n }\n}\n\nconst bg = (name: string, description: string, defaults: Record<string, unknown>, spec: (el: HTMLElement) => GenerativeSpec): EffectDefinition => ({\n name,\n kind: 'background',\n description,\n reduced: 'run',\n defaults: { speed: 1, quality: 1, ...defaults },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const stop = canvasBackground(el, ctx, spec(el), o);\n ctx.onCleanup(stop);\n return stop;\n },\n});\n\n/** Pointer position relative to `el` plus the movement since the last read. */\nfunction pointer(el: HTMLElement) {\n const s = { x: -999, y: -999, dx: 0, dy: 0, down: false, clicks: 0 };\n const move = (e: PointerEvent) => {\n const r = el.getBoundingClientRect();\n const x = e.clientX - r.left;\n const y = e.clientY - r.top;\n if (s.x > -999) (s.dx += x - s.x), (s.dy += y - s.y);\n s.x = x;\n s.y = y;\n };\n const click = () => s.clicks++;\n const leave = () => (s.x = s.y = -999);\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerdown', click);\n el.addEventListener('pointerleave', leave);\n return { s, off: () => (el.removeEventListener('pointermove', move), el.removeEventListener('pointerdown', click), el.removeEventListener('pointerleave', leave)) };\n}\n\nconst tick = (state: any, t: number) => {\n const dt = state.last ? Math.min(1 / 30, t - state.last) : 1 / 60;\n state.last = t;\n return dt;\n};\n\nexport const PHYSICS2_FX: EffectDefinition[] = [\n {\n name: 'soft-body',\n kind: 'hover',\n description: 'The element wobbles like jelly: pointer motion pushes a damped spring that squashes and skews it (`stiffness`, `damping`, `amount`).',\n defaults: { stiffness: 220, damping: 9, amount: 1 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n let vx = 0;\n let x = 0;\n let vy = 0;\n let y = 0;\n let raf = 0;\n let lx = NaN;\n let ly = NaN;\n let last = 0;\n const prev = el.style.transform;\n const loop = (now: number) => {\n const dt = last ? Math.min(0.033, (now - last) / 1000) : 1 / 60;\n last = now;\n vx += (-o.stiffness * x - o.damping * vx) * dt;\n vy += (-o.stiffness * y - o.damping * vy) * dt;\n x += vx * dt;\n y += vy * dt;\n const a = o.amount;\n el.style.transform = `skew(${(x * 0.6 * a).toFixed(2)}deg,${(y * 0.25 * a).toFixed(2)}deg) scale(${(1 + y * 0.004 * a).toFixed(4)},${(1 - y * 0.004 * a).toFixed(4)})`;\n if (Math.abs(x) + Math.abs(vx) + Math.abs(y) + Math.abs(vy) > 0.02) raf = requestAnimationFrame(loop);\n else ((raf = 0), (last = 0), (el.style.transform = prev));\n };\n const move = (e: PointerEvent) => {\n if (!Number.isNaN(lx)) (vx += Math.max(-60, Math.min(60, (e.clientX - lx) * 4))), (vy += Math.max(-60, Math.min(60, (e.clientY - ly) * 4)));\n lx = e.clientX;\n ly = e.clientY;\n if (!raf && typeof requestAnimationFrame === 'function') raf = requestAnimationFrame(loop);\n };\n const leave = () => (lx = ly = NaN);\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerleave', leave);\n const stop = () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n if (raf) cancelAnimationFrame(raf);\n el.style.transform = prev;\n };\n ctx.onCleanup(stop);\n return stop;\n },\n },\n {\n name: 'magnet',\n kind: 'hover',\n description: \"The element's children are pulled toward the pointer on springs and settle back when it leaves (`strength`, `radius`).\",\n defaults: { strength: 0.35, radius: 160 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const kids = Array.from(el.children) as HTMLElement[];\n const prev = kids.map((k) => k.style.transform);\n kids.forEach((k) => (k.style.transition = 'transform .45s cubic-bezier(.3,1.5,.5,1)'));\n const move = (e: PointerEvent) => {\n for (const k of kids) {\n const r = k.getBoundingClientRect();\n const dx = e.clientX - (r.left + r.width / 2);\n const dy = e.clientY - (r.top + r.height / 2);\n const d = Math.hypot(dx, dy);\n const f = d < o.radius ? o.strength * (1 - d / o.radius) : 0;\n k.style.transform = `translate(${(dx * f).toFixed(1)}px,${(dy * f).toFixed(1)}px)`;\n }\n };\n const leave = () => kids.forEach((k, i) => (k.style.transform = prev[i]));\n el.addEventListener('pointermove', move);\n el.addEventListener('pointerleave', leave);\n const stop = () => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n kids.forEach((k, i) => ((k.style.transform = prev[i]), (k.style.transition = '')));\n };\n ctx.onCleanup(stop);\n return stop;\n },\n },\n bg('cloth', 'A cloth hangs from the top edge and ripples when the pointer moves through it (Verlet, Canvas 2D).', { cols: 16, rows: 10, color: '#7c5cff' }, (el) => {\n const p = pointer(el);\n return {\n init: (w, h, o) => {\n const world = new VerletWorld(600, 0.985, 3);\n const sx = (w * 0.86) / (o.cols - 1);\n const sy = (h * 0.75) / (o.rows - 1);\n for (let r = 0; r < o.rows; r++) for (let c = 0; c < o.cols; c++) world.add(w * 0.07 + c * sx, 6 + r * sy, r === 0 && c % 3 === 0);\n for (let r = 0; r < o.rows; r++)\n for (let c = 0; c < o.cols; c++) {\n const i = r * o.cols + c;\n if (c) world.link(i - 1, i);\n if (r) world.link(i - o.cols, i);\n }\n return { world, off: p.off };\n },\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = tick(state, t);\n const world: VerletWorld = state.world;\n if (t > 0) {\n if (p.s.x > -999) world.push(p.s.x, p.s.y, p.s.dx * 0.6, p.s.dy * 0.6, 50);\n p.s.dx = p.s.dy = 0;\n world.step(dt * o.speed, { w, h });\n }\n ctx.clearRect(0, 0, w, h);\n for (let r = 0; r < o.rows - 1; r++)\n for (let c = 0; c < o.cols - 1; c++) {\n const i = r * o.cols + c;\n const a = world.points[i];\n const b = world.points[i + 1];\n const d = world.points[i + o.cols + 1];\n const e = world.points[i + o.cols];\n const shade = 0.55 + 0.45 * Math.max(0, Math.min(1, (b.x - a.x) / ((w * 0.86) / (o.cols - 1))));\n ctx.globalAlpha = shade;\n ctx.fillStyle = (r + c) % 2 ? o.color : '#22d3ee';\n ctx.beginPath();\n ctx.moveTo(a.x, a.y);\n ctx.lineTo(b.x, b.y);\n ctx.lineTo(d.x, d.y);\n ctx.lineTo(e.x, e.y);\n ctx.fill();\n }\n ctx.globalAlpha = 1;\n },\n };\n }),\n bg('rope', 'A rope with a weight swings from the top; the pointer pushes it (Verlet, Canvas 2D).', { links: 14, color: '#f59e0b' }, (el) => {\n const p = pointer(el);\n return {\n init: (w, h, o) => {\n const world = new VerletWorld(900, 0.995, 6);\n const len = (h * 0.7) / o.links;\n for (let i = 0; i <= o.links; i++) world.add(w / 2 + i * len * 0.6, 4 + i * len * 0.8, i === 0);\n for (let i = 1; i <= o.links; i++) world.link(i - 1, i, len);\n return { world, off: p.off };\n },\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = tick(state, t);\n const world: VerletWorld = state.world;\n if (t > 0) {\n if (p.s.x > -999) world.push(p.s.x, p.s.y, p.s.dx, p.s.dy, 36);\n p.s.dx = p.s.dy = 0;\n world.step(dt * o.speed, { w, h });\n }\n ctx.clearRect(0, 0, w, h);\n ctx.strokeStyle = o.color;\n ctx.lineWidth = 3;\n ctx.lineCap = 'round';\n ctx.beginPath();\n world.points.forEach((q, i) => (i ? ctx.lineTo(q.x, q.y) : ctx.moveTo(q.x, q.y)));\n ctx.stroke();\n const end = world.points[world.points.length - 1];\n ctx.fillStyle = o.color;\n ctx.beginPath();\n ctx.arc(end.x, end.y, 11, 0, Math.PI * 2);\n ctx.fill();\n },\n };\n }),\n bg('pinball', 'Balls fall through round bumpers that light up on a hit; click to drop another ball (Canvas 2D).', { balls: 5, bumpers: 7, colors: ['#f43f5e', '#f59e0b', '#22d3ee', '#a3e635'] }, (el) => {\n const p = pointer(el);\n return {\n init: (w, h, o) => {\n const ball = () => ({ x: w * (0.3 + Math.random() * 0.4), y: -10 - Math.random() * h * 0.5, vx: (Math.random() - 0.5) * 80, vy: 0 });\n const bumpers = Array.from({ length: o.bumpers }, (_, i) => ({ x: w * (0.15 + ((i * 0.37) % 0.7)), y: h * (0.25 + ((i * 0.53) % 0.6)), r: Math.min(w, h) * 0.06, hit: 0 }));\n return { balls: Array.from({ length: o.balls }, ball), bumpers, ball, clicks: 0, off: p.off };\n },\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = tick(state, t) * o.speed;\n if (p.s.clicks !== state.clicks) {\n state.clicks = p.s.clicks;\n const b = state.ball();\n if (p.s.x > -999) b.x = p.s.x;\n b.y = 0;\n state.balls.push(b);\n if (state.balls.length > 24) state.balls.shift();\n }\n ctx.clearRect(0, 0, w, h);\n for (const bu of state.bumpers) {\n bu.hit = Math.max(0, bu.hit - dt * 2.5);\n ctx.fillStyle = `rgba(124,92,255,${0.35 + bu.hit * 0.65})`;\n ctx.shadowColor = '#a78bfa';\n ctx.shadowBlur = bu.hit * 20;\n ctx.beginPath();\n ctx.arc(bu.x, bu.y, bu.r * (1 + bu.hit * 0.15), 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.shadowBlur = 0;\n state.balls.forEach((b: any, i: number) => {\n if (t > 0) {\n b.vy += 600 * dt;\n b.x += b.vx * dt;\n b.y += b.vy * dt;\n for (const bu of state.bumpers) {\n const dx = b.x - bu.x;\n const dy = b.y - bu.y;\n const d = Math.hypot(dx, dy);\n if (d < bu.r + 6 && d > 0) {\n const nx = dx / d;\n const ny = dy / d;\n const dot = b.vx * nx + b.vy * ny;\n b.vx = (b.vx - 2 * dot * nx) * 0.92;\n b.vy = (b.vy - 2 * dot * ny) * 0.92;\n b.x = bu.x + nx * (bu.r + 6);\n b.y = bu.y + ny * (bu.r + 6);\n bu.hit = 1;\n }\n }\n if (b.x < 6 || b.x > w - 6) (b.vx *= -0.8), (b.x = Math.min(w - 6, Math.max(6, b.x)));\n if (b.y > h + 12) Object.assign(b, state.ball());\n }\n ctx.fillStyle = o.colors[i % o.colors.length];\n ctx.beginPath();\n ctx.arc(b.x, b.y, 6, 0, Math.PI * 2);\n ctx.fill();\n });\n },\n };\n }),\n];\n\n/** Register the 6.8 physics 2.0 pack (idempotent). */\nexport function registerPhysicsPack(): void {\n registerEffects(PHYSICS2_FX);\n}\n\n"],"names":[],"mappings":";;;;;AA8BA;MACa,WAAW,CAAA;AAGtB,IAAA,WAAA,CAAmB,UAAU,GAAG,EAAS,UAAU,IAAI,EAAS,aAAa,CAAC,EAAA;QAA3D,IAAA,CAAA,OAAO,GAAP,OAAO;QAAe,IAAA,CAAA,OAAO,GAAP,OAAO;QAAgB,IAAA,CAAA,UAAU,GAAV,UAAU;QAF1E,IAAA,CAAA,MAAM,GAAkB,EAAE;QAC1B,IAAA,CAAA,MAAM,GAA+B,EAAE;IAC0C;AACjF,IAAA,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,MAAM,GAAG,KAAK,EAAA;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;IAC/B;AACA,IAAA,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,GAAY,EAAA;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE;IACA,IAAI,CAAC,EAAU,EAAE,MAAiC,EAAA;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE;AAChC,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,CAAC,MAAM;gBAAE;AACd,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO;AACtC,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO;AACtC,YAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACV,YAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACV,YAAA,CAAC,CAAC,CAAC,IAAI,EAAE;AACT,YAAA,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;QACf;AACA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACrC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI;gBACpC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,CAAC,CAAC,CAAC,MAAM;AAAE,oBAAA,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;gBACrD,IAAI,CAAC,CAAC,CAAC,MAAM;AAAE,oBAAA,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;YACvD;AACA,YAAA,IAAI,MAAM;AAAE,gBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrI;IACF;;IAEA,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,CAAC,GAAG,EAAE,EAAA;AACvD,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAAE,gBAAA,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1G;AACD;AAED,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,WAAmB,EAAE,QAAiC,EAAE,IAAyC,MAAwB;IACjJ,IAAI;AACJ,IAAA,IAAI,EAAE,YAAY;IAClB,WAAW;AACX,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE;IAC/C,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;AACnD,QAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnD,QAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACnB,QAAA,OAAO,IAAI;IACb,CAAC;AACF,CAAA,CAAC;AAEF;AACA,SAAS,OAAO,CAAC,EAAe,EAAA;AAC9B,IAAA,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;AACpE,IAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,QAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE;QACpC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG;AAC3B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;YAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,QAAA,CAAC,CAAC,CAAC,GAAG,CAAC;AACP,QAAA,CAAC,CAAC,CAAC,GAAG,CAAC;AACT,IAAA,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE;AAC9B,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACtC,IAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AACxC,IAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC;AACzC,IAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1C,IAAA,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,EAAE;AACrK;AAEA,MAAM,IAAI,GAAG,CAAC,KAAU,EAAE,CAAS,KAAI;AACrC,IAAA,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACjE,IAAA,KAAK,CAAC,IAAI,GAAG,CAAC;AACd,IAAA,OAAO,EAAE;AACX,CAAC;AAEM,MAAM,WAAW,GAAuB;AAC7C,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,sIAAsI;AACnJ,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AACnD,QAAA,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;YACnD,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,GAAG,GAAG,CAAC;YACX,IAAI,EAAE,GAAG,GAAG;YACZ,IAAI,EAAE,GAAG,GAAG;YACZ,IAAI,IAAI,GAAG,CAAC;AACZ,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS;AAC/B,YAAA,MAAM,IAAI,GAAG,CAAC,GAAW,KAAI;gBAC3B,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC/D,IAAI,GAAG,GAAG;AACV,gBAAA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE;AAC9C,gBAAA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE;AAC9C,gBAAA,CAAC,IAAI,EAAE,GAAG,EAAE;AACZ,gBAAA,CAAC,IAAI,EAAE,GAAG,EAAE;AACZ,gBAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM;AAClB,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,KAAA,EAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,EAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,WAAA,EAAc,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;AACtK,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;AAAE,oBAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;;oBAChG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1D,YAAA,CAAC;AACD,YAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAE,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3I,gBAAA,EAAE,GAAG,CAAC,CAAC,OAAO;AACd,gBAAA,EAAE,GAAG,CAAC,CAAC,OAAO;AACd,gBAAA,IAAI,CAAC,GAAG,IAAI,OAAO,qBAAqB,KAAK,UAAU;AAAE,oBAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAC5F,YAAA,CAAC;AACD,YAAA,MAAM,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AACnC,YAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AACxC,YAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAK;AAChB,gBAAA,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC3C,gBAAA,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC7C,gBAAA,IAAI,GAAG;oBAAE,oBAAoB,CAAC,GAAG,CAAC;AAClC,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI;AAC3B,YAAA,CAAC;AACD,YAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACnB,YAAA,OAAO,IAAI;QACb,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,wHAAwH;QACrI,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AACzC,QAAA,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;YACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAkB;AACrD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAC/C,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,0CAA0C,CAAC,CAAC;AACtF,YAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,gBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACpB,oBAAA,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE;AACnC,oBAAA,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7C,oBAAA,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;oBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AAC5D,oBAAA,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,UAAA,EAAa,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,CAAK;gBACpF;AACF,YAAA,CAAC;AACD,YAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,YAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AACxC,YAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAK;AAChB,gBAAA,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC3C,gBAAA,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;AAC7C,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AACpF,YAAA,CAAC;AACD,YAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACnB,YAAA,OAAO,IAAI;QACb,CAAC;AACF,KAAA;IACD,EAAE,CAAC,OAAO,EAAE,oGAAoG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,KAAI;AACjK,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAI;gBAChB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5C,gBAAA,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACpC,gBAAA,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACpC,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AAAE,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClI,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AAC7B,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,wBAAA,IAAI,CAAC;4BAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3B,wBAAA,IAAI,CAAC;4BAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClC;gBACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;YAC9B,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;gBACnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACzB,gBAAA,MAAM,KAAK,GAAgB,KAAK,CAAC,KAAK;AACtC,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,oBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AAAE,wBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC;AAC1E,oBAAA,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACnB,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC;gBACA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACjC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;wBACxB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;wBACzB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,wBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACtC,wBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAClC,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,wBAAA,GAAG,CAAC,WAAW,GAAG,KAAK;wBACvB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,SAAS;wBACjD,GAAG,CAAC,SAAS,EAAE;wBACf,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpB,GAAG,CAAC,IAAI,EAAE;oBACZ;AACF,gBAAA,GAAG,CAAC,WAAW,GAAG,CAAC;YACrB,CAAC;SACF;AACH,IAAA,CAAC,CAAC;AACF,IAAA,EAAE,CAAC,MAAM,EAAE,sFAAsF,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,KAAI;AACzI,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAI;gBAChB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK;AAC/B,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/F,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;gBAC5D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;YAC9B,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;gBACnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACzB,gBAAA,MAAM,KAAK,GAAgB,KAAK,CAAC,KAAK;AACtC,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,oBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AAAE,wBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;AAC9D,oBAAA,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACnB,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC;gBACA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,gBAAA,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK;AACzB,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAC;AACjB,gBAAA,GAAG,CAAC,OAAO,GAAG,OAAO;gBACrB,GAAG,CAAC,SAAS,EAAE;gBACf,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,GAAG,CAAC,MAAM,EAAE;AACZ,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK;gBACvB,GAAG,CAAC,SAAS,EAAE;gBACf,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzC,GAAG,CAAC,IAAI,EAAE;YACZ,CAAC;SACF;AACH,IAAA,CAAC,CAAC;AACF,IAAA,EAAE,CAAC,SAAS,EAAE,kGAAkG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,KAAI;AACvM,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAI;gBAChB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACpI,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3K,gBAAA,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;YAC/F,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;AACnC,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;gBACnC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;oBAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;AACzB,oBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;AACtB,oBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;wBAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,oBAAA,CAAC,CAAC,CAAC,GAAG,CAAC;AACP,oBAAA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,oBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;AAAE,wBAAA,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;gBAClD;gBACA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,gBAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;AAC9B,oBAAA,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACvC,oBAAA,GAAG,CAAC,SAAS,GAAG,CAAA,gBAAA,EAAmB,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CAAA,CAAA,CAAG;AAC1D,oBAAA,GAAG,CAAC,WAAW,GAAG,SAAS;oBAC3B,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;oBAC5B,GAAG,CAAC,SAAS,EAAE;AACf,oBAAA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC/D,GAAG,CAAC,IAAI,EAAE;gBACZ;AACA,gBAAA,GAAG,CAAC,UAAU,GAAG,CAAC;gBAClB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAS,KAAI;AACxC,oBAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE;wBAChB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;wBAChB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;AAChB,wBAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;4BAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;4BACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;4BACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5B,4BAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACzB,gCAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;AACjB,gCAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;AACjB,gCAAA,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE;AACjC,gCAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI;AACnC,gCAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI;AACnC,gCAAA,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,gCAAA,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,gCAAA,EAAE,CAAC,GAAG,GAAG,CAAC;4BACZ;wBACF;AACA,wBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,4BAAA,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,wBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;4BAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;oBAClD;AACA,oBAAA,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC7C,GAAG,CAAC,SAAS,EAAE;oBACf,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;oBACpC,GAAG,CAAC,IAAI,EAAE;AACZ,gBAAA,CAAC,CAAC;YACJ,CAAC;SACF;AACH,IAAA,CAAC,CAAC;;AAGJ;SACgB,mBAAmB,GAAA;IACjC,eAAe,CAAC,WAAW,CAAC;AAC9B;;;;"}
|
|
@@ -257,11 +257,11 @@ const TEXT3_FX = [
|
|
|
257
257
|
},
|
|
258
258
|
];
|
|
259
259
|
/** Register the 6.3 text pack (idempotent). */
|
|
260
|
-
function
|
|
260
|
+
function registerTextPack() {
|
|
261
261
|
registry.registerEffects(TEXT3_FX);
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
exports.TEXT3_FX = TEXT3_FX;
|
|
265
|
-
exports.
|
|
265
|
+
exports.registerTextPack = registerTextPack;
|
|
266
266
|
exports.splitChars = splitChars;
|
|
267
267
|
//# sourceMappingURL=fx-text.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx-text.cjs","sources":["../../src/components/fx2/text3.ts"],"sourcesContent":["/**\n * 6.3 — Text effects 3.0 (`motionary/components/fx-text`), registered through\n * `registerEffect()`:\n *\n * - `liquid-text` (loop) — the text ripples like liquid (animated SVG\n * turbulence + displacement filter).\n * - `neon-write` (text) — letters flicker on one by one like a neon sign\n * being switched on, then keep a soft glow.\n * - `particle-text` (text) — particles fly in from around the element and\n * assemble into the glyphs, then hand over to the real text.\n * - `glitch-text` (text) — RGB-split slices jump sideways for a moment.\n * - `text-trail` (cursor) — the letters of a word fall off the pointer.\n * - `font-breathe` (loop) — a variable-font weight wave breathes through the text.\n * - `flip-chars` (text) — every character flips up in 3D, staggered.\n *\n * Splitting keeps a visually hidden copy for screen readers (the animated\n * characters are `aria-hidden`). Reduced motion: loops and the trail are\n * skipped, one-shot effects show the final state without movement.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { srText } from '../base';\nimport { fxLayer, spawn, rand, all } from '../effects/shared';\n\n/** Split `el`'s text into `aria-hidden` inline-block characters (idempotent). Returns them. */\nexport function splitChars(el: HTMLElement): HTMLElement[] {\n if (el.dataset.usaChars) return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n const text = el.textContent || '';\n el.textContent = '';\n for (const ch of Array.from(text)) {\n const s = document.createElement('span');\n s.className = 'usa-ch';\n s.setAttribute('aria-hidden', 'true');\n s.style.cssText = 'display:inline-block;white-space:pre';\n s.textContent = ch;\n el.appendChild(s);\n }\n el.appendChild(srText(text.trim()));\n el.dataset.usaChars = '1';\n return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n}\n\nconst raf = (fn: FrameRequestCallback): number => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(fn) : 0);\nconst caf = (h: number): void => {\n if (h && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(h);\n};\nlet fid = 0;\n\nexport const TEXT3_FX: EffectDefinition[] = [\n {\n name: 'liquid-text',\n kind: 'loop',\n description: 'The text ripples like liquid: an animated SVG turbulence + displacement filter (`strength`, `speed`).',\n defaults: { strength: 7, speed: 1 },\n run: (el: HTMLElement, o: any) => {\n const id = `usa-liquid-${++fid}`;\n const ns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('width', '0');\n svg.setAttribute('height', '0');\n svg.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden';\n svg.innerHTML = `<filter id=\"${id}\" x=\"-10%\" y=\"-20%\" width=\"120%\" height=\"140%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.012 0.06\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap in=\"SourceGraphic\" in2=\"n\" scale=\"${Number(o.strength) || 7}\" xChannelSelector=\"R\" yChannelSelector=\"G\"/></filter>`;\n document.body.appendChild(svg);\n const turb = svg.querySelector('feTurbulence');\n const prev = el.style.filter;\n el.style.filter = `url(#${id})`;\n let h = 0;\n const t0 = performance.now();\n const tick = (now: number) => {\n const t = ((now - t0) / 1000) * (Number(o.speed) || 1);\n turb?.setAttribute('baseFrequency', `${(0.012 + 0.004 * Math.sin(t * 1.3)).toFixed(4)} ${(0.06 + 0.02 * Math.cos(t)).toFixed(4)}`);\n h = raf(tick);\n };\n h = raf(tick);\n return () => {\n caf(h);\n el.style.filter = prev;\n svg.remove();\n };\n },\n },\n {\n name: 'neon-write',\n kind: 'text',\n description: 'Letters flicker on one by one like a neon sign being switched on, then keep a soft glow (`color`, `stagger`).',\n defaults: { color: '#ff4fd8', stagger: 70, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const glow = `0 0 4px #fff,0 0 10px ${o.color},0 0 22px ${o.color},0 0 42px ${o.color}`;\n el.style.textShadow = glow;\n el.style.color ||= '#fff';\n if (ctx.reduced) return;\n const cs = splitChars(el);\n return all(cs.map((c, i) => ctx.animate(c, [\n { opacity: 0.08, textShadow: 'none' },\n { opacity: 1, textShadow: glow, offset: 0.2 },\n { opacity: 0.2, textShadow: 'none', offset: 0.32 },\n { opacity: 1, textShadow: glow, offset: 0.46 },\n { opacity: 0.55, offset: 0.6 },\n { opacity: 1, textShadow: glow },\n ], { duration: o.duration, delay: i * o.stagger + rand(0, 60), easing: 'steps(6, end)', fill: 'backwards' })));\n },\n },\n {\n name: 'particle-text',\n kind: 'text',\n description: 'Particles fly in from around the element and assemble into the glyphs, then hand over to the real text (`gap` px between samples, `duration`, `colors`).',\n defaults: { gap: 3, duration: 1300, colors: ['#7c5cff', '#22d3ee', '#ff5c8a'], spread: 120 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any) => {\n const cs = splitChars(el);\n const r = el.getBoundingClientRect();\n if (!r.width || !r.height) return;\n const pad = Number(o.spread) || 120;\n const W = Math.ceil(r.width + pad * 2);\n const H = Math.ceil(r.height + pad * 2);\n const canvas = document.createElement('canvas');\n canvas.setAttribute('aria-hidden', 'true');\n canvas.width = W;\n canvas.height = H;\n canvas.style.cssText = `position:absolute;left:${r.left - pad}px;top:${r.top - pad}px;width:${W}px;height:${H}px`;\n const g = canvas.getContext('2d');\n if (!g) return;\n // rasterise each character where the browser laid it out\n const cs0 = getComputedStyle(el);\n g.font = `${cs0.fontStyle} ${cs0.fontWeight} ${cs0.fontSize} ${cs0.fontFamily}`;\n g.textBaseline = 'middle';\n g.fillStyle = '#000';\n for (const c of cs) {\n const b = c.getBoundingClientRect();\n g.fillText(c.textContent || '', b.left - r.left + pad, b.top - r.top + pad + b.height / 2);\n }\n const img = g.getImageData(0, 0, W, H);\n const gap = Math.max(2, Math.round(Number(o.gap) || 3));\n const pts: { x: number; y: number; sx: number; sy: number; c: string; d: number }[] = [];\n for (let y = 0; y < H; y += gap) for (let x = 0; x < W; x += gap) if (img.data[(y * W + x) * 4 + 3] > 128) {\n const a = rand(0, Math.PI * 2);\n const rr = rand(pad * 0.6, pad * 1.4);\n pts.push({ x, y, sx: W / 2 + Math.cos(a) * (W / 2 + rr * 0.3), sy: H / 2 + Math.sin(a) * (H / 2 + rr * 0.3), c: o.colors[pts.length % o.colors.length], d: rand(0, 0.35) });\n }\n fxLayer().appendChild(canvas);\n cs.forEach((c) => (c.style.opacity = '0'));\n const t0 = performance.now();\n const dur = Number(o.duration) || 1300;\n return new Promise<void>((done) => {\n const finish = () => {\n canvas.remove();\n cs.forEach((c) => (c.style.opacity = ''));\n done();\n };\n const tick = (now: number) => {\n const k = (now - t0) / dur;\n g.clearRect(0, 0, W, H);\n for (const p of pts) {\n const e = Math.min(1, Math.max(0, (k - p.d) / (1 - p.d)));\n const q = 1 - Math.pow(1 - e, 3);\n g.globalAlpha = k > 1 ? Math.max(0, 1 - (k - 1) * 4) : 0.25 + 0.75 * q;\n g.fillStyle = p.c;\n g.fillRect(p.sx + (p.x - p.sx) * q, p.sy + (p.y - p.sy) * q, gap - 0.5, gap - 0.5);\n }\n if (k > 1) cs.forEach((c) => (c.style.opacity = String(Math.min(1, (k - 1) * 4))));\n if (k < 1.25) raf(tick);\n else finish();\n };\n if (!raf(tick)) finish();\n });\n },\n },\n {\n name: 'glitch-text',\n kind: 'text',\n description: 'RGB-split slices of the text jump sideways for a moment (`duration`, `colors` of the two channels).',\n defaults: { duration: 650, colors: ['#22d3ee', '#ff3d81'] },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return ctx.animate(el, [{ opacity: 1 }, { opacity: 0.6 }, { opacity: 1 }], { duration: 200 });\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const text = el.textContent || '';\n const steps = 8;\n const mk = (color: string, dir: number) => {\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.textContent = text;\n s.style.cssText = `position:absolute;inset:0;color:${color};mix-blend-mode:screen;pointer-events:none;white-space:inherit`;\n el.appendChild(s);\n const frames: Keyframe[] = [];\n for (let i = 0; i <= steps; i++) {\n const top = Math.round(rand(0, 80));\n frames.push({ clipPath: `inset(${top}% 0 ${Math.max(0, 100 - top - rand(8, 30)).toFixed(0)}% 0)`, transform: `translateX(${(dir * rand(2, 9)).toFixed(1)}px)` });\n }\n frames.push({ clipPath: 'inset(50% 0 50% 0)', transform: 'none' });\n const a = ctx.animate(s, frames, { duration: o.duration, easing: `steps(${steps}, end)` });\n const rm = () => s.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n return a;\n };\n return all([\n mk(o.colors[0], -1),\n mk(o.colors[1], 1),\n ctx.animate(el, [{ transform: 'none' }, { transform: 'translate(-2px,1px) skewX(-4deg)' }, { transform: 'translate(2px,-1px)' }, { transform: 'skewX(3deg)' }, { transform: 'none' }], { duration: o.duration, easing: 'steps(5, end)' }),\n ]);\n },\n },\n {\n name: 'text-trail',\n kind: 'cursor',\n description: 'The letters of a word fall off the pointer as it moves over the element (persistent; `text`, `color`, `spacing` px).',\n defaults: { text: 'MOTIONARY', color: '#7c5cff', spacing: 22, size: 18 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const word = Array.from(String(o.text || '✦'));\n let i = 0;\n let lx = -1e4;\n let ly = -1e4;\n const move = (e: PointerEvent) => {\n if (Math.hypot(e.clientX - lx, e.clientY - ly) < o.spacing) return;\n lx = e.clientX;\n ly = e.clientY;\n const ch = word[i++ % word.length];\n spawn(e.clientX - o.size / 2, e.clientY - o.size / 2, `font:800 ${o.size}px/1 system-ui,sans-serif;color:${o.color};text-shadow:0 2px 8px rgba(0,0,0,.25)`, ctx, [\n { transform: 'translateY(0) rotate(0) scale(1)', opacity: 1 },\n { transform: `translateY(${rand(30, 60).toFixed(0)}px) rotate(${rand(-60, 60).toFixed(0)}deg) scale(.6)`, opacity: 0 },\n ], { duration: rand(700, 1000), easing: 'cubic-bezier(.3,.1,.7,1)' }, ch);\n };\n el.addEventListener('pointermove', move);\n return () => el.removeEventListener('pointermove', move);\n },\n },\n {\n name: 'font-breathe',\n kind: 'loop',\n description: 'A variable-font weight wave breathes through the text (`min` / `max` weight, `period` ms, `stagger`). Best with a variable font.',\n defaults: { min: 200, max: 900, period: 2400, stagger: 90 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n const anims = cs.map((c, i) => ctx.animate(c, [\n { fontWeight: o.min, fontVariationSettings: `'wght' ${o.min}` },\n { fontWeight: o.max, fontVariationSettings: `'wght' ${o.max}` },\n ], { duration: o.period / 2, delay: i * o.stagger, iterations: Infinity, direction: 'alternate', easing: 'ease-in-out' }));\n return () => anims.forEach((a) => a?.cancel());\n },\n },\n {\n name: 'flip-chars',\n kind: 'text',\n description: 'Every character flips up in 3D around its baseline, staggered (`stagger`, `duration`, `axis` x | y).',\n defaults: { stagger: 45, duration: 700, axis: 'x' },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n el.style.perspective ||= '600px';\n const rot = o.axis === 'y' ? 'rotateY' : 'rotateX';\n return all(cs.map((c, i) => {\n c.style.transformOrigin = '50% 70% -0.4em';\n c.style.backfaceVisibility = 'hidden';\n return ctx.reduced\n ? ctx.animate(c, [{ opacity: 0 }, { opacity: 1 }], { duration: 200, delay: i * 10, fill: 'backwards' })\n : ctx.animate(c, [{ transform: `${rot}(-100deg)`, opacity: 0 }, { transform: `${rot}(12deg)`, opacity: 1, offset: 0.7 }, { transform: `${rot}(0)`, opacity: 1 }], { duration: o.duration, delay: i * o.stagger, easing: 'cubic-bezier(.2,.8,.3,1)', fill: 'backwards' });\n }));\n },\n },\n];\n\n/** Register the 6.3 text pack (idempotent). */\nexport function registerTextEffects3(): void {\n registerEffects(TEXT3_FX);\n}\n\n"],"names":["srText","all","rand","fxLayer","spawn","registerEffects"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fx-text.cjs","sources":["../../src/components/fx2/text3.ts"],"sourcesContent":["/**\n * 6.3 — Text effects 3.0 (`motionary/components/fx-text`), registered through\n * `registerEffect()`:\n *\n * - `liquid-text` (loop) — the text ripples like liquid (animated SVG\n * turbulence + displacement filter).\n * - `neon-write` (text) — letters flicker on one by one like a neon sign\n * being switched on, then keep a soft glow.\n * - `particle-text` (text) — particles fly in from around the element and\n * assemble into the glyphs, then hand over to the real text.\n * - `glitch-text` (text) — RGB-split slices jump sideways for a moment.\n * - `text-trail` (cursor) — the letters of a word fall off the pointer.\n * - `font-breathe` (loop) — a variable-font weight wave breathes through the text.\n * - `flip-chars` (text) — every character flips up in 3D, staggered.\n *\n * Splitting keeps a visually hidden copy for screen readers (the animated\n * characters are `aria-hidden`). Reduced motion: loops and the trail are\n * skipped, one-shot effects show the final state without movement.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { srText } from '../base';\nimport { fxLayer, spawn, rand, all } from '../effects/shared';\n\n/** Split `el`'s text into `aria-hidden` inline-block characters (idempotent). Returns them. */\nexport function splitChars(el: HTMLElement): HTMLElement[] {\n if (el.dataset.usaChars) return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n const text = el.textContent || '';\n el.textContent = '';\n for (const ch of Array.from(text)) {\n const s = document.createElement('span');\n s.className = 'usa-ch';\n s.setAttribute('aria-hidden', 'true');\n s.style.cssText = 'display:inline-block;white-space:pre';\n s.textContent = ch;\n el.appendChild(s);\n }\n el.appendChild(srText(text.trim()));\n el.dataset.usaChars = '1';\n return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n}\n\nconst raf = (fn: FrameRequestCallback): number => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(fn) : 0);\nconst caf = (h: number): void => {\n if (h && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(h);\n};\nlet fid = 0;\n\nexport const TEXT3_FX: EffectDefinition[] = [\n {\n name: 'liquid-text',\n kind: 'loop',\n description: 'The text ripples like liquid: an animated SVG turbulence + displacement filter (`strength`, `speed`).',\n defaults: { strength: 7, speed: 1 },\n run: (el: HTMLElement, o: any) => {\n const id = `usa-liquid-${++fid}`;\n const ns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('width', '0');\n svg.setAttribute('height', '0');\n svg.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden';\n svg.innerHTML = `<filter id=\"${id}\" x=\"-10%\" y=\"-20%\" width=\"120%\" height=\"140%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.012 0.06\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap in=\"SourceGraphic\" in2=\"n\" scale=\"${Number(o.strength) || 7}\" xChannelSelector=\"R\" yChannelSelector=\"G\"/></filter>`;\n document.body.appendChild(svg);\n const turb = svg.querySelector('feTurbulence');\n const prev = el.style.filter;\n el.style.filter = `url(#${id})`;\n let h = 0;\n const t0 = performance.now();\n const tick = (now: number) => {\n const t = ((now - t0) / 1000) * (Number(o.speed) || 1);\n turb?.setAttribute('baseFrequency', `${(0.012 + 0.004 * Math.sin(t * 1.3)).toFixed(4)} ${(0.06 + 0.02 * Math.cos(t)).toFixed(4)}`);\n h = raf(tick);\n };\n h = raf(tick);\n return () => {\n caf(h);\n el.style.filter = prev;\n svg.remove();\n };\n },\n },\n {\n name: 'neon-write',\n kind: 'text',\n description: 'Letters flicker on one by one like a neon sign being switched on, then keep a soft glow (`color`, `stagger`).',\n defaults: { color: '#ff4fd8', stagger: 70, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const glow = `0 0 4px #fff,0 0 10px ${o.color},0 0 22px ${o.color},0 0 42px ${o.color}`;\n el.style.textShadow = glow;\n el.style.color ||= '#fff';\n if (ctx.reduced) return;\n const cs = splitChars(el);\n return all(cs.map((c, i) => ctx.animate(c, [\n { opacity: 0.08, textShadow: 'none' },\n { opacity: 1, textShadow: glow, offset: 0.2 },\n { opacity: 0.2, textShadow: 'none', offset: 0.32 },\n { opacity: 1, textShadow: glow, offset: 0.46 },\n { opacity: 0.55, offset: 0.6 },\n { opacity: 1, textShadow: glow },\n ], { duration: o.duration, delay: i * o.stagger + rand(0, 60), easing: 'steps(6, end)', fill: 'backwards' })));\n },\n },\n {\n name: 'particle-text',\n kind: 'text',\n description: 'Particles fly in from around the element and assemble into the glyphs, then hand over to the real text (`gap` px between samples, `duration`, `colors`).',\n defaults: { gap: 3, duration: 1300, colors: ['#7c5cff', '#22d3ee', '#ff5c8a'], spread: 120 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any) => {\n const cs = splitChars(el);\n const r = el.getBoundingClientRect();\n if (!r.width || !r.height) return;\n const pad = Number(o.spread) || 120;\n const W = Math.ceil(r.width + pad * 2);\n const H = Math.ceil(r.height + pad * 2);\n const canvas = document.createElement('canvas');\n canvas.setAttribute('aria-hidden', 'true');\n canvas.width = W;\n canvas.height = H;\n canvas.style.cssText = `position:absolute;left:${r.left - pad}px;top:${r.top - pad}px;width:${W}px;height:${H}px`;\n const g = canvas.getContext('2d');\n if (!g) return;\n // rasterise each character where the browser laid it out\n const cs0 = getComputedStyle(el);\n g.font = `${cs0.fontStyle} ${cs0.fontWeight} ${cs0.fontSize} ${cs0.fontFamily}`;\n g.textBaseline = 'middle';\n g.fillStyle = '#000';\n for (const c of cs) {\n const b = c.getBoundingClientRect();\n g.fillText(c.textContent || '', b.left - r.left + pad, b.top - r.top + pad + b.height / 2);\n }\n const img = g.getImageData(0, 0, W, H);\n const gap = Math.max(2, Math.round(Number(o.gap) || 3));\n const pts: { x: number; y: number; sx: number; sy: number; c: string; d: number }[] = [];\n for (let y = 0; y < H; y += gap) for (let x = 0; x < W; x += gap) if (img.data[(y * W + x) * 4 + 3] > 128) {\n const a = rand(0, Math.PI * 2);\n const rr = rand(pad * 0.6, pad * 1.4);\n pts.push({ x, y, sx: W / 2 + Math.cos(a) * (W / 2 + rr * 0.3), sy: H / 2 + Math.sin(a) * (H / 2 + rr * 0.3), c: o.colors[pts.length % o.colors.length], d: rand(0, 0.35) });\n }\n fxLayer().appendChild(canvas);\n cs.forEach((c) => (c.style.opacity = '0'));\n const t0 = performance.now();\n const dur = Number(o.duration) || 1300;\n return new Promise<void>((done) => {\n const finish = () => {\n canvas.remove();\n cs.forEach((c) => (c.style.opacity = ''));\n done();\n };\n const tick = (now: number) => {\n const k = (now - t0) / dur;\n g.clearRect(0, 0, W, H);\n for (const p of pts) {\n const e = Math.min(1, Math.max(0, (k - p.d) / (1 - p.d)));\n const q = 1 - Math.pow(1 - e, 3);\n g.globalAlpha = k > 1 ? Math.max(0, 1 - (k - 1) * 4) : 0.25 + 0.75 * q;\n g.fillStyle = p.c;\n g.fillRect(p.sx + (p.x - p.sx) * q, p.sy + (p.y - p.sy) * q, gap - 0.5, gap - 0.5);\n }\n if (k > 1) cs.forEach((c) => (c.style.opacity = String(Math.min(1, (k - 1) * 4))));\n if (k < 1.25) raf(tick);\n else finish();\n };\n if (!raf(tick)) finish();\n });\n },\n },\n {\n name: 'glitch-text',\n kind: 'text',\n description: 'RGB-split slices of the text jump sideways for a moment (`duration`, `colors` of the two channels).',\n defaults: { duration: 650, colors: ['#22d3ee', '#ff3d81'] },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return ctx.animate(el, [{ opacity: 1 }, { opacity: 0.6 }, { opacity: 1 }], { duration: 200 });\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const text = el.textContent || '';\n const steps = 8;\n const mk = (color: string, dir: number) => {\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.textContent = text;\n s.style.cssText = `position:absolute;inset:0;color:${color};mix-blend-mode:screen;pointer-events:none;white-space:inherit`;\n el.appendChild(s);\n const frames: Keyframe[] = [];\n for (let i = 0; i <= steps; i++) {\n const top = Math.round(rand(0, 80));\n frames.push({ clipPath: `inset(${top}% 0 ${Math.max(0, 100 - top - rand(8, 30)).toFixed(0)}% 0)`, transform: `translateX(${(dir * rand(2, 9)).toFixed(1)}px)` });\n }\n frames.push({ clipPath: 'inset(50% 0 50% 0)', transform: 'none' });\n const a = ctx.animate(s, frames, { duration: o.duration, easing: `steps(${steps}, end)` });\n const rm = () => s.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n return a;\n };\n return all([\n mk(o.colors[0], -1),\n mk(o.colors[1], 1),\n ctx.animate(el, [{ transform: 'none' }, { transform: 'translate(-2px,1px) skewX(-4deg)' }, { transform: 'translate(2px,-1px)' }, { transform: 'skewX(3deg)' }, { transform: 'none' }], { duration: o.duration, easing: 'steps(5, end)' }),\n ]);\n },\n },\n {\n name: 'text-trail',\n kind: 'cursor',\n description: 'The letters of a word fall off the pointer as it moves over the element (persistent; `text`, `color`, `spacing` px).',\n defaults: { text: 'MOTIONARY', color: '#7c5cff', spacing: 22, size: 18 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const word = Array.from(String(o.text || '✦'));\n let i = 0;\n let lx = -1e4;\n let ly = -1e4;\n const move = (e: PointerEvent) => {\n if (Math.hypot(e.clientX - lx, e.clientY - ly) < o.spacing) return;\n lx = e.clientX;\n ly = e.clientY;\n const ch = word[i++ % word.length];\n spawn(e.clientX - o.size / 2, e.clientY - o.size / 2, `font:800 ${o.size}px/1 system-ui,sans-serif;color:${o.color};text-shadow:0 2px 8px rgba(0,0,0,.25)`, ctx, [\n { transform: 'translateY(0) rotate(0) scale(1)', opacity: 1 },\n { transform: `translateY(${rand(30, 60).toFixed(0)}px) rotate(${rand(-60, 60).toFixed(0)}deg) scale(.6)`, opacity: 0 },\n ], { duration: rand(700, 1000), easing: 'cubic-bezier(.3,.1,.7,1)' }, ch);\n };\n el.addEventListener('pointermove', move);\n return () => el.removeEventListener('pointermove', move);\n },\n },\n {\n name: 'font-breathe',\n kind: 'loop',\n description: 'A variable-font weight wave breathes through the text (`min` / `max` weight, `period` ms, `stagger`). Best with a variable font.',\n defaults: { min: 200, max: 900, period: 2400, stagger: 90 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n const anims = cs.map((c, i) => ctx.animate(c, [\n { fontWeight: o.min, fontVariationSettings: `'wght' ${o.min}` },\n { fontWeight: o.max, fontVariationSettings: `'wght' ${o.max}` },\n ], { duration: o.period / 2, delay: i * o.stagger, iterations: Infinity, direction: 'alternate', easing: 'ease-in-out' }));\n return () => anims.forEach((a) => a?.cancel());\n },\n },\n {\n name: 'flip-chars',\n kind: 'text',\n description: 'Every character flips up in 3D around its baseline, staggered (`stagger`, `duration`, `axis` x | y).',\n defaults: { stagger: 45, duration: 700, axis: 'x' },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n el.style.perspective ||= '600px';\n const rot = o.axis === 'y' ? 'rotateY' : 'rotateX';\n return all(cs.map((c, i) => {\n c.style.transformOrigin = '50% 70% -0.4em';\n c.style.backfaceVisibility = 'hidden';\n return ctx.reduced\n ? ctx.animate(c, [{ opacity: 0 }, { opacity: 1 }], { duration: 200, delay: i * 10, fill: 'backwards' })\n : ctx.animate(c, [{ transform: `${rot}(-100deg)`, opacity: 0 }, { transform: `${rot}(12deg)`, opacity: 1, offset: 0.7 }, { transform: `${rot}(0)`, opacity: 1 }], { duration: o.duration, delay: i * o.stagger, easing: 'cubic-bezier(.2,.8,.3,1)', fill: 'backwards' });\n }));\n },\n },\n];\n\n/** Register the 6.3 text pack (idempotent). */\nexport function registerTextPack(): void {\n registerEffects(TEXT3_FX);\n}\n\n\n"],"names":["srText","all","rand","fxLayer","spawn","registerEffects"],"mappings":"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"}
|
|
@@ -65,6 +65,6 @@ interface EffectDefinition<O extends Record<string, unknown> = Record<string, an
|
|
|
65
65
|
declare function splitChars(el: HTMLElement): HTMLElement[];
|
|
66
66
|
declare const TEXT3_FX: EffectDefinition[];
|
|
67
67
|
/** Register the 6.3 text pack (idempotent). */
|
|
68
|
-
declare function
|
|
68
|
+
declare function registerTextPack(): void;
|
|
69
69
|
|
|
70
|
-
export { TEXT3_FX,
|
|
70
|
+
export { TEXT3_FX, registerTextPack, splitChars };
|
|
@@ -65,6 +65,6 @@ interface EffectDefinition<O extends Record<string, unknown> = Record<string, an
|
|
|
65
65
|
declare function splitChars(el: HTMLElement): HTMLElement[];
|
|
66
66
|
declare const TEXT3_FX: EffectDefinition[];
|
|
67
67
|
/** Register the 6.3 text pack (idempotent). */
|
|
68
|
-
declare function
|
|
68
|
+
declare function registerTextPack(): void;
|
|
69
69
|
|
|
70
|
-
export { TEXT3_FX,
|
|
70
|
+
export { TEXT3_FX, registerTextPack, splitChars };
|
|
@@ -255,9 +255,9 @@ const TEXT3_FX = [
|
|
|
255
255
|
},
|
|
256
256
|
];
|
|
257
257
|
/** Register the 6.3 text pack (idempotent). */
|
|
258
|
-
function
|
|
258
|
+
function registerTextPack() {
|
|
259
259
|
registerEffects(TEXT3_FX);
|
|
260
260
|
}
|
|
261
261
|
|
|
262
|
-
export { TEXT3_FX,
|
|
262
|
+
export { TEXT3_FX, registerTextPack, splitChars };
|
|
263
263
|
//# sourceMappingURL=fx-text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx-text.js","sources":["../../src/components/fx2/text3.ts"],"sourcesContent":["/**\n * 6.3 — Text effects 3.0 (`motionary/components/fx-text`), registered through\n * `registerEffect()`:\n *\n * - `liquid-text` (loop) — the text ripples like liquid (animated SVG\n * turbulence + displacement filter).\n * - `neon-write` (text) — letters flicker on one by one like a neon sign\n * being switched on, then keep a soft glow.\n * - `particle-text` (text) — particles fly in from around the element and\n * assemble into the glyphs, then hand over to the real text.\n * - `glitch-text` (text) — RGB-split slices jump sideways for a moment.\n * - `text-trail` (cursor) — the letters of a word fall off the pointer.\n * - `font-breathe` (loop) — a variable-font weight wave breathes through the text.\n * - `flip-chars` (text) — every character flips up in 3D, staggered.\n *\n * Splitting keeps a visually hidden copy for screen readers (the animated\n * characters are `aria-hidden`). Reduced motion: loops and the trail are\n * skipped, one-shot effects show the final state without movement.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { srText } from '../base';\nimport { fxLayer, spawn, rand, all } from '../effects/shared';\n\n/** Split `el`'s text into `aria-hidden` inline-block characters (idempotent). Returns them. */\nexport function splitChars(el: HTMLElement): HTMLElement[] {\n if (el.dataset.usaChars) return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n const text = el.textContent || '';\n el.textContent = '';\n for (const ch of Array.from(text)) {\n const s = document.createElement('span');\n s.className = 'usa-ch';\n s.setAttribute('aria-hidden', 'true');\n s.style.cssText = 'display:inline-block;white-space:pre';\n s.textContent = ch;\n el.appendChild(s);\n }\n el.appendChild(srText(text.trim()));\n el.dataset.usaChars = '1';\n return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n}\n\nconst raf = (fn: FrameRequestCallback): number => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(fn) : 0);\nconst caf = (h: number): void => {\n if (h && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(h);\n};\nlet fid = 0;\n\nexport const TEXT3_FX: EffectDefinition[] = [\n {\n name: 'liquid-text',\n kind: 'loop',\n description: 'The text ripples like liquid: an animated SVG turbulence + displacement filter (`strength`, `speed`).',\n defaults: { strength: 7, speed: 1 },\n run: (el: HTMLElement, o: any) => {\n const id = `usa-liquid-${++fid}`;\n const ns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('width', '0');\n svg.setAttribute('height', '0');\n svg.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden';\n svg.innerHTML = `<filter id=\"${id}\" x=\"-10%\" y=\"-20%\" width=\"120%\" height=\"140%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.012 0.06\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap in=\"SourceGraphic\" in2=\"n\" scale=\"${Number(o.strength) || 7}\" xChannelSelector=\"R\" yChannelSelector=\"G\"/></filter>`;\n document.body.appendChild(svg);\n const turb = svg.querySelector('feTurbulence');\n const prev = el.style.filter;\n el.style.filter = `url(#${id})`;\n let h = 0;\n const t0 = performance.now();\n const tick = (now: number) => {\n const t = ((now - t0) / 1000) * (Number(o.speed) || 1);\n turb?.setAttribute('baseFrequency', `${(0.012 + 0.004 * Math.sin(t * 1.3)).toFixed(4)} ${(0.06 + 0.02 * Math.cos(t)).toFixed(4)}`);\n h = raf(tick);\n };\n h = raf(tick);\n return () => {\n caf(h);\n el.style.filter = prev;\n svg.remove();\n };\n },\n },\n {\n name: 'neon-write',\n kind: 'text',\n description: 'Letters flicker on one by one like a neon sign being switched on, then keep a soft glow (`color`, `stagger`).',\n defaults: { color: '#ff4fd8', stagger: 70, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const glow = `0 0 4px #fff,0 0 10px ${o.color},0 0 22px ${o.color},0 0 42px ${o.color}`;\n el.style.textShadow = glow;\n el.style.color ||= '#fff';\n if (ctx.reduced) return;\n const cs = splitChars(el);\n return all(cs.map((c, i) => ctx.animate(c, [\n { opacity: 0.08, textShadow: 'none' },\n { opacity: 1, textShadow: glow, offset: 0.2 },\n { opacity: 0.2, textShadow: 'none', offset: 0.32 },\n { opacity: 1, textShadow: glow, offset: 0.46 },\n { opacity: 0.55, offset: 0.6 },\n { opacity: 1, textShadow: glow },\n ], { duration: o.duration, delay: i * o.stagger + rand(0, 60), easing: 'steps(6, end)', fill: 'backwards' })));\n },\n },\n {\n name: 'particle-text',\n kind: 'text',\n description: 'Particles fly in from around the element and assemble into the glyphs, then hand over to the real text (`gap` px between samples, `duration`, `colors`).',\n defaults: { gap: 3, duration: 1300, colors: ['#7c5cff', '#22d3ee', '#ff5c8a'], spread: 120 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any) => {\n const cs = splitChars(el);\n const r = el.getBoundingClientRect();\n if (!r.width || !r.height) return;\n const pad = Number(o.spread) || 120;\n const W = Math.ceil(r.width + pad * 2);\n const H = Math.ceil(r.height + pad * 2);\n const canvas = document.createElement('canvas');\n canvas.setAttribute('aria-hidden', 'true');\n canvas.width = W;\n canvas.height = H;\n canvas.style.cssText = `position:absolute;left:${r.left - pad}px;top:${r.top - pad}px;width:${W}px;height:${H}px`;\n const g = canvas.getContext('2d');\n if (!g) return;\n // rasterise each character where the browser laid it out\n const cs0 = getComputedStyle(el);\n g.font = `${cs0.fontStyle} ${cs0.fontWeight} ${cs0.fontSize} ${cs0.fontFamily}`;\n g.textBaseline = 'middle';\n g.fillStyle = '#000';\n for (const c of cs) {\n const b = c.getBoundingClientRect();\n g.fillText(c.textContent || '', b.left - r.left + pad, b.top - r.top + pad + b.height / 2);\n }\n const img = g.getImageData(0, 0, W, H);\n const gap = Math.max(2, Math.round(Number(o.gap) || 3));\n const pts: { x: number; y: number; sx: number; sy: number; c: string; d: number }[] = [];\n for (let y = 0; y < H; y += gap) for (let x = 0; x < W; x += gap) if (img.data[(y * W + x) * 4 + 3] > 128) {\n const a = rand(0, Math.PI * 2);\n const rr = rand(pad * 0.6, pad * 1.4);\n pts.push({ x, y, sx: W / 2 + Math.cos(a) * (W / 2 + rr * 0.3), sy: H / 2 + Math.sin(a) * (H / 2 + rr * 0.3), c: o.colors[pts.length % o.colors.length], d: rand(0, 0.35) });\n }\n fxLayer().appendChild(canvas);\n cs.forEach((c) => (c.style.opacity = '0'));\n const t0 = performance.now();\n const dur = Number(o.duration) || 1300;\n return new Promise<void>((done) => {\n const finish = () => {\n canvas.remove();\n cs.forEach((c) => (c.style.opacity = ''));\n done();\n };\n const tick = (now: number) => {\n const k = (now - t0) / dur;\n g.clearRect(0, 0, W, H);\n for (const p of pts) {\n const e = Math.min(1, Math.max(0, (k - p.d) / (1 - p.d)));\n const q = 1 - Math.pow(1 - e, 3);\n g.globalAlpha = k > 1 ? Math.max(0, 1 - (k - 1) * 4) : 0.25 + 0.75 * q;\n g.fillStyle = p.c;\n g.fillRect(p.sx + (p.x - p.sx) * q, p.sy + (p.y - p.sy) * q, gap - 0.5, gap - 0.5);\n }\n if (k > 1) cs.forEach((c) => (c.style.opacity = String(Math.min(1, (k - 1) * 4))));\n if (k < 1.25) raf(tick);\n else finish();\n };\n if (!raf(tick)) finish();\n });\n },\n },\n {\n name: 'glitch-text',\n kind: 'text',\n description: 'RGB-split slices of the text jump sideways for a moment (`duration`, `colors` of the two channels).',\n defaults: { duration: 650, colors: ['#22d3ee', '#ff3d81'] },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return ctx.animate(el, [{ opacity: 1 }, { opacity: 0.6 }, { opacity: 1 }], { duration: 200 });\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const text = el.textContent || '';\n const steps = 8;\n const mk = (color: string, dir: number) => {\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.textContent = text;\n s.style.cssText = `position:absolute;inset:0;color:${color};mix-blend-mode:screen;pointer-events:none;white-space:inherit`;\n el.appendChild(s);\n const frames: Keyframe[] = [];\n for (let i = 0; i <= steps; i++) {\n const top = Math.round(rand(0, 80));\n frames.push({ clipPath: `inset(${top}% 0 ${Math.max(0, 100 - top - rand(8, 30)).toFixed(0)}% 0)`, transform: `translateX(${(dir * rand(2, 9)).toFixed(1)}px)` });\n }\n frames.push({ clipPath: 'inset(50% 0 50% 0)', transform: 'none' });\n const a = ctx.animate(s, frames, { duration: o.duration, easing: `steps(${steps}, end)` });\n const rm = () => s.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n return a;\n };\n return all([\n mk(o.colors[0], -1),\n mk(o.colors[1], 1),\n ctx.animate(el, [{ transform: 'none' }, { transform: 'translate(-2px,1px) skewX(-4deg)' }, { transform: 'translate(2px,-1px)' }, { transform: 'skewX(3deg)' }, { transform: 'none' }], { duration: o.duration, easing: 'steps(5, end)' }),\n ]);\n },\n },\n {\n name: 'text-trail',\n kind: 'cursor',\n description: 'The letters of a word fall off the pointer as it moves over the element (persistent; `text`, `color`, `spacing` px).',\n defaults: { text: 'MOTIONARY', color: '#7c5cff', spacing: 22, size: 18 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const word = Array.from(String(o.text || '✦'));\n let i = 0;\n let lx = -1e4;\n let ly = -1e4;\n const move = (e: PointerEvent) => {\n if (Math.hypot(e.clientX - lx, e.clientY - ly) < o.spacing) return;\n lx = e.clientX;\n ly = e.clientY;\n const ch = word[i++ % word.length];\n spawn(e.clientX - o.size / 2, e.clientY - o.size / 2, `font:800 ${o.size}px/1 system-ui,sans-serif;color:${o.color};text-shadow:0 2px 8px rgba(0,0,0,.25)`, ctx, [\n { transform: 'translateY(0) rotate(0) scale(1)', opacity: 1 },\n { transform: `translateY(${rand(30, 60).toFixed(0)}px) rotate(${rand(-60, 60).toFixed(0)}deg) scale(.6)`, opacity: 0 },\n ], { duration: rand(700, 1000), easing: 'cubic-bezier(.3,.1,.7,1)' }, ch);\n };\n el.addEventListener('pointermove', move);\n return () => el.removeEventListener('pointermove', move);\n },\n },\n {\n name: 'font-breathe',\n kind: 'loop',\n description: 'A variable-font weight wave breathes through the text (`min` / `max` weight, `period` ms, `stagger`). Best with a variable font.',\n defaults: { min: 200, max: 900, period: 2400, stagger: 90 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n const anims = cs.map((c, i) => ctx.animate(c, [\n { fontWeight: o.min, fontVariationSettings: `'wght' ${o.min}` },\n { fontWeight: o.max, fontVariationSettings: `'wght' ${o.max}` },\n ], { duration: o.period / 2, delay: i * o.stagger, iterations: Infinity, direction: 'alternate', easing: 'ease-in-out' }));\n return () => anims.forEach((a) => a?.cancel());\n },\n },\n {\n name: 'flip-chars',\n kind: 'text',\n description: 'Every character flips up in 3D around its baseline, staggered (`stagger`, `duration`, `axis` x | y).',\n defaults: { stagger: 45, duration: 700, axis: 'x' },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n el.style.perspective ||= '600px';\n const rot = o.axis === 'y' ? 'rotateY' : 'rotateX';\n return all(cs.map((c, i) => {\n c.style.transformOrigin = '50% 70% -0.4em';\n c.style.backfaceVisibility = 'hidden';\n return ctx.reduced\n ? ctx.animate(c, [{ opacity: 0 }, { opacity: 1 }], { duration: 200, delay: i * 10, fill: 'backwards' })\n : ctx.animate(c, [{ transform: `${rot}(-100deg)`, opacity: 0 }, { transform: `${rot}(12deg)`, opacity: 1, offset: 0.7 }, { transform: `${rot}(0)`, opacity: 1 }], { duration: o.duration, delay: i * o.stagger, easing: 'cubic-bezier(.2,.8,.3,1)', fill: 'backwards' });\n }));\n },\n },\n];\n\n/** Register the 6.3 text pack (idempotent). */\nexport function registerTextEffects3(): void {\n registerEffects(TEXT3_FX);\n}\n\n"],"names":[],"mappings":";;;;AAwBA;AACM,SAAU,UAAU,CAAC,EAAe,EAAA;AACxC,IAAA,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC;AAChG,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE;AACjC,IAAA,EAAE,CAAC,WAAW,GAAG,EAAE;IACnB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,QAAA,CAAC,CAAC,SAAS,GAAG,QAAQ;AACtB,QAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACrC,QAAA,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,sCAAsC;AACxD,QAAA,CAAC,CAAC,WAAW,GAAG,EAAE;AAClB,QAAA,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnB;IACA,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,IAAA,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC;AACzE;AAEA,MAAM,GAAG,GAAG,CAAC,EAAwB,MAAc,OAAO,qBAAqB,KAAK,UAAU,GAAG,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/H,MAAM,GAAG,GAAG,CAAC,CAAS,KAAU;AAC9B,IAAA,IAAI,CAAC,IAAI,OAAO,oBAAoB,KAAK,UAAU;QAAE,oBAAoB,CAAC,CAAC,CAAC;AAC9E,CAAC;AACD,IAAI,GAAG,GAAG,CAAC;AAEJ,MAAM,QAAQ,GAAuB;AAC1C,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,uGAAuG;QACpH,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AACnC,QAAA,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,KAAI;AAC/B,YAAA,MAAM,EAAE,GAAG,CAAA,WAAA,EAAc,EAAE,GAAG,EAAE;YAChC,MAAM,EAAE,GAAG,4BAA4B;YACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC;AAC/C,YAAA,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACvC,YAAA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC;AAC9B,YAAA,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC/B,YAAA,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,oDAAoD;AACxE,YAAA,GAAG,CAAC,SAAS,GAAG,CAAA,YAAA,EAAe,EAAE,CAAA,qMAAA,EAAwM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,wDAAwD;AACxT,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC;AAC9C,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM;YAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,KAAA,EAAQ,EAAE,GAAG;YAC/B,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE;AAC5B,YAAA,MAAM,IAAI,GAAG,CAAC,GAAW,KAAI;gBAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,EAAE,YAAY,CAAC,eAAe,EAAE,CAAA,EAAG,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAClI,gBAAA,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,CAAC;AACD,YAAA,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACb,YAAA,OAAO,MAAK;gBACV,GAAG,CAAC,CAAC,CAAC;AACN,gBAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;gBACtB,GAAG,CAAC,MAAM,EAAE;AACd,YAAA,CAAC;QACH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,+GAA+G;AAC5H,QAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC1D,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;;AACnD,YAAA,MAAM,IAAI,GAAG,CAAA,sBAAA,EAAyB,CAAC,CAAC,KAAK,CAAA,UAAA,EAAa,CAAC,CAAC,KAAK,CAAA,UAAA,EAAa,CAAC,CAAC,KAAK,EAAE;AACvF,YAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI;YAC1B,CAAA,EAAA,GAAA,EAAE,CAAC,KAAK,EAAC,KAAK,KAAA,EAAA,CAAL,KAAK,GAAK,MAAM,CAAA;YACzB,IAAI,GAAG,CAAC,OAAO;gBAAE;AACjB,YAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;AACzB,YAAA,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE;AACzC,gBAAA,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;gBACrC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBAC7C,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;gBAClD,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,gBAAA,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AAC9B,gBAAA,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;AACjC,aAAA,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,0JAA0J;QACvK,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;AAC5F,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,KAAI;AAC/B,YAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;AACzB,YAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG;AACnC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;AACtC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,YAAA,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AAC1C,YAAA,MAAM,CAAC,KAAK,GAAG,CAAC;AAChB,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA,uBAAA,EAA0B,CAAC,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,EAAA,CAAI;YACjH,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACjC,YAAA,IAAI,CAAC,CAAC;gBAAE;;AAER,YAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,GAAG,CAAA,EAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,CAAA,CAAA,EAAI,GAAG,CAAC,QAAQ,CAAA,CAAA,EAAI,GAAG,CAAC,UAAU,EAAE;AAC/E,YAAA,CAAC,CAAC,YAAY,GAAG,QAAQ;AACzB,YAAA,CAAC,CAAC,SAAS,GAAG,MAAM;AACpB,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;AAClB,gBAAA,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE;AACnC,gBAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5F;AACA,YAAA,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,MAAM,GAAG,GAA6E,EAAE;YACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG;gBAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG;AAAE,oBAAA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE;AACzG,wBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,wBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;AACrC,wBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC7K;AACA,YAAA,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7B,YAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;AAC1C,YAAA,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI;AACtC,YAAA,OAAO,IAAI,OAAO,CAAO,CAAC,IAAI,KAAI;gBAChC,MAAM,MAAM,GAAG,MAAK;oBAClB,MAAM,CAAC,MAAM,EAAE;AACf,oBAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AACzC,oBAAA,IAAI,EAAE;AACR,gBAAA,CAAC;AACD,gBAAA,MAAM,IAAI,GAAG,CAAC,GAAW,KAAI;oBAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG;oBAC1B,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvB,oBAAA,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACnB,wBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChC,wBAAA,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC;AACtE,wBAAA,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACjB,wBAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;oBACpF;oBACA,IAAI,CAAC,GAAG,CAAC;AAAE,wBAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClF,IAAI,CAAC,GAAG,IAAI;wBAAE,GAAG,CAAC,IAAI,CAAC;;AAClB,wBAAA,MAAM,EAAE;AACf,gBAAA,CAAC;AACD,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,oBAAA,MAAM,EAAE;AAC1B,YAAA,CAAC,CAAC;QACJ,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,qGAAqG;AAClH,QAAA,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;QAC3D,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;YACnD,IAAI,GAAG,CAAC,OAAO;AAAE,gBAAA,OAAO,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;AAC9G,YAAA,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,QAAQ;AAAE,gBAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC9E,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE;YACjC,MAAM,KAAK,GAAG,CAAC;AACf,YAAA,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,GAAW,KAAI;gBACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,gBAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACrC,gBAAA,CAAC,CAAC,WAAW,GAAG,IAAI;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA,gCAAA,EAAmC,KAAK,gEAAgE;AAC1H,gBAAA,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAe,EAAE;AAC7B,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAC/B,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA,MAAA,EAAS,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM,EAAE,SAAS,EAAE,CAAA,WAAA,EAAc,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,CAAK,EAAE,CAAC;gBAClK;AACA,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;gBAClE,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,KAAK,CAAA,MAAA,CAAQ,EAAE,CAAC;gBAC1F,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC;oBAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;;AACzB,oBAAA,EAAE,EAAE;AACT,gBAAA,OAAO,CAAC;AACV,YAAA,CAAC;AACD,YAAA,OAAO,GAAG,CAAC;gBACT,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClB,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,kCAAkC,EAAE,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AAC1O,aAAA,CAAC;QACJ,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,WAAW,EAAE,sHAAsH;AACnI,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACxE,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;AACnD,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,IAAI,EAAE,GAAG,IAAI;AACb,YAAA,IAAI,EAAE,GAAG,IAAI;AACb,YAAA,MAAM,IAAI,GAAG,CAAC,CAAe,KAAI;AAC/B,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO;oBAAE;AAC5D,gBAAA,EAAE,GAAG,CAAC,CAAC,OAAO;AACd,gBAAA,EAAE,GAAG,CAAC,CAAC,OAAO;gBACd,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAClC,gBAAA,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAA,SAAA,EAAY,CAAC,CAAC,IAAI,CAAA,gCAAA,EAAmC,CAAC,CAAC,KAAK,CAAA,sCAAA,CAAwC,EAAE,GAAG,EAAE;AAC/J,oBAAA,EAAE,SAAS,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,EAAE;AAC7D,oBAAA,EAAE,SAAS,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,cAAA,CAAgB,EAAE,OAAO,EAAE,CAAC,EAAE;AACvH,iBAAA,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC;AAC3E,YAAA,CAAC;AACD,YAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;YACxC,OAAO,MAAM,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;QAC1D,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,kIAAkI;AAC/I,QAAA,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3D,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;AACnD,YAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;AACzB,YAAA,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE;AAC5C,gBAAA,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAA,OAAA,EAAU,CAAC,CAAC,GAAG,EAAE,EAAE;AAC/D,gBAAA,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAA,OAAA,EAAU,CAAC,CAAC,GAAG,EAAE,EAAE;AAChE,aAAA,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1H,YAAA,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAChD,CAAC;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,sGAAsG;AACnH,QAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;QACnD,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;;AACnD,YAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;YACzB,CAAA,EAAA,GAAA,EAAE,CAAC,KAAK,EAAC,WAAW,KAAA,EAAA,CAAX,WAAW,GAAK,OAAO,CAAA;AAChC,YAAA,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,GAAG,SAAS,GAAG,SAAS;YAClD,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACzB,gBAAA,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB;AAC1C,gBAAA,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAQ;gBACrC,OAAO,GAAG,CAAC;AACT,sBAAE,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,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;AACtG,sBAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAA,EAAG,GAAG,CAAA,SAAA,CAAW,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA,OAAA,CAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA,EAAG,GAAG,CAAA,GAAA,CAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC5Q,CAAC,CAAC,CAAC;QACL,CAAC;AACF,KAAA;;AAGH;SACgB,oBAAoB,GAAA;IAClC,eAAe,CAAC,QAAQ,CAAC;AAC3B;;;;"}
|
|
1
|
+
{"version":3,"file":"fx-text.js","sources":["../../src/components/fx2/text3.ts"],"sourcesContent":["/**\n * 6.3 — Text effects 3.0 (`motionary/components/fx-text`), registered through\n * `registerEffect()`:\n *\n * - `liquid-text` (loop) — the text ripples like liquid (animated SVG\n * turbulence + displacement filter).\n * - `neon-write` (text) — letters flicker on one by one like a neon sign\n * being switched on, then keep a soft glow.\n * - `particle-text` (text) — particles fly in from around the element and\n * assemble into the glyphs, then hand over to the real text.\n * - `glitch-text` (text) — RGB-split slices jump sideways for a moment.\n * - `text-trail` (cursor) — the letters of a word fall off the pointer.\n * - `font-breathe` (loop) — a variable-font weight wave breathes through the text.\n * - `flip-chars` (text) — every character flips up in 3D, staggered.\n *\n * Splitting keeps a visually hidden copy for screen readers (the animated\n * characters are `aria-hidden`). Reduced motion: loops and the trail are\n * skipped, one-shot effects show the final state without movement.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { srText } from '../base';\nimport { fxLayer, spawn, rand, all } from '../effects/shared';\n\n/** Split `el`'s text into `aria-hidden` inline-block characters (idempotent). Returns them. */\nexport function splitChars(el: HTMLElement): HTMLElement[] {\n if (el.dataset.usaChars) return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n const text = el.textContent || '';\n el.textContent = '';\n for (const ch of Array.from(text)) {\n const s = document.createElement('span');\n s.className = 'usa-ch';\n s.setAttribute('aria-hidden', 'true');\n s.style.cssText = 'display:inline-block;white-space:pre';\n s.textContent = ch;\n el.appendChild(s);\n }\n el.appendChild(srText(text.trim()));\n el.dataset.usaChars = '1';\n return Array.from(el.querySelectorAll<HTMLElement>(':scope > .usa-ch'));\n}\n\nconst raf = (fn: FrameRequestCallback): number => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(fn) : 0);\nconst caf = (h: number): void => {\n if (h && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(h);\n};\nlet fid = 0;\n\nexport const TEXT3_FX: EffectDefinition[] = [\n {\n name: 'liquid-text',\n kind: 'loop',\n description: 'The text ripples like liquid: an animated SVG turbulence + displacement filter (`strength`, `speed`).',\n defaults: { strength: 7, speed: 1 },\n run: (el: HTMLElement, o: any) => {\n const id = `usa-liquid-${++fid}`;\n const ns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('width', '0');\n svg.setAttribute('height', '0');\n svg.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden';\n svg.innerHTML = `<filter id=\"${id}\" x=\"-10%\" y=\"-20%\" width=\"120%\" height=\"140%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.012 0.06\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap in=\"SourceGraphic\" in2=\"n\" scale=\"${Number(o.strength) || 7}\" xChannelSelector=\"R\" yChannelSelector=\"G\"/></filter>`;\n document.body.appendChild(svg);\n const turb = svg.querySelector('feTurbulence');\n const prev = el.style.filter;\n el.style.filter = `url(#${id})`;\n let h = 0;\n const t0 = performance.now();\n const tick = (now: number) => {\n const t = ((now - t0) / 1000) * (Number(o.speed) || 1);\n turb?.setAttribute('baseFrequency', `${(0.012 + 0.004 * Math.sin(t * 1.3)).toFixed(4)} ${(0.06 + 0.02 * Math.cos(t)).toFixed(4)}`);\n h = raf(tick);\n };\n h = raf(tick);\n return () => {\n caf(h);\n el.style.filter = prev;\n svg.remove();\n };\n },\n },\n {\n name: 'neon-write',\n kind: 'text',\n description: 'Letters flicker on one by one like a neon sign being switched on, then keep a soft glow (`color`, `stagger`).',\n defaults: { color: '#ff4fd8', stagger: 70, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const glow = `0 0 4px #fff,0 0 10px ${o.color},0 0 22px ${o.color},0 0 42px ${o.color}`;\n el.style.textShadow = glow;\n el.style.color ||= '#fff';\n if (ctx.reduced) return;\n const cs = splitChars(el);\n return all(cs.map((c, i) => ctx.animate(c, [\n { opacity: 0.08, textShadow: 'none' },\n { opacity: 1, textShadow: glow, offset: 0.2 },\n { opacity: 0.2, textShadow: 'none', offset: 0.32 },\n { opacity: 1, textShadow: glow, offset: 0.46 },\n { opacity: 0.55, offset: 0.6 },\n { opacity: 1, textShadow: glow },\n ], { duration: o.duration, delay: i * o.stagger + rand(0, 60), easing: 'steps(6, end)', fill: 'backwards' })));\n },\n },\n {\n name: 'particle-text',\n kind: 'text',\n description: 'Particles fly in from around the element and assemble into the glyphs, then hand over to the real text (`gap` px between samples, `duration`, `colors`).',\n defaults: { gap: 3, duration: 1300, colors: ['#7c5cff', '#22d3ee', '#ff5c8a'], spread: 120 },\n reduced: 'skip',\n run: (el: HTMLElement, o: any) => {\n const cs = splitChars(el);\n const r = el.getBoundingClientRect();\n if (!r.width || !r.height) return;\n const pad = Number(o.spread) || 120;\n const W = Math.ceil(r.width + pad * 2);\n const H = Math.ceil(r.height + pad * 2);\n const canvas = document.createElement('canvas');\n canvas.setAttribute('aria-hidden', 'true');\n canvas.width = W;\n canvas.height = H;\n canvas.style.cssText = `position:absolute;left:${r.left - pad}px;top:${r.top - pad}px;width:${W}px;height:${H}px`;\n const g = canvas.getContext('2d');\n if (!g) return;\n // rasterise each character where the browser laid it out\n const cs0 = getComputedStyle(el);\n g.font = `${cs0.fontStyle} ${cs0.fontWeight} ${cs0.fontSize} ${cs0.fontFamily}`;\n g.textBaseline = 'middle';\n g.fillStyle = '#000';\n for (const c of cs) {\n const b = c.getBoundingClientRect();\n g.fillText(c.textContent || '', b.left - r.left + pad, b.top - r.top + pad + b.height / 2);\n }\n const img = g.getImageData(0, 0, W, H);\n const gap = Math.max(2, Math.round(Number(o.gap) || 3));\n const pts: { x: number; y: number; sx: number; sy: number; c: string; d: number }[] = [];\n for (let y = 0; y < H; y += gap) for (let x = 0; x < W; x += gap) if (img.data[(y * W + x) * 4 + 3] > 128) {\n const a = rand(0, Math.PI * 2);\n const rr = rand(pad * 0.6, pad * 1.4);\n pts.push({ x, y, sx: W / 2 + Math.cos(a) * (W / 2 + rr * 0.3), sy: H / 2 + Math.sin(a) * (H / 2 + rr * 0.3), c: o.colors[pts.length % o.colors.length], d: rand(0, 0.35) });\n }\n fxLayer().appendChild(canvas);\n cs.forEach((c) => (c.style.opacity = '0'));\n const t0 = performance.now();\n const dur = Number(o.duration) || 1300;\n return new Promise<void>((done) => {\n const finish = () => {\n canvas.remove();\n cs.forEach((c) => (c.style.opacity = ''));\n done();\n };\n const tick = (now: number) => {\n const k = (now - t0) / dur;\n g.clearRect(0, 0, W, H);\n for (const p of pts) {\n const e = Math.min(1, Math.max(0, (k - p.d) / (1 - p.d)));\n const q = 1 - Math.pow(1 - e, 3);\n g.globalAlpha = k > 1 ? Math.max(0, 1 - (k - 1) * 4) : 0.25 + 0.75 * q;\n g.fillStyle = p.c;\n g.fillRect(p.sx + (p.x - p.sx) * q, p.sy + (p.y - p.sy) * q, gap - 0.5, gap - 0.5);\n }\n if (k > 1) cs.forEach((c) => (c.style.opacity = String(Math.min(1, (k - 1) * 4))));\n if (k < 1.25) raf(tick);\n else finish();\n };\n if (!raf(tick)) finish();\n });\n },\n },\n {\n name: 'glitch-text',\n kind: 'text',\n description: 'RGB-split slices of the text jump sideways for a moment (`duration`, `colors` of the two channels).',\n defaults: { duration: 650, colors: ['#22d3ee', '#ff3d81'] },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return ctx.animate(el, [{ opacity: 1 }, { opacity: 0.6 }, { opacity: 1 }], { duration: 200 });\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const text = el.textContent || '';\n const steps = 8;\n const mk = (color: string, dir: number) => {\n const s = document.createElement('span');\n s.setAttribute('aria-hidden', 'true');\n s.textContent = text;\n s.style.cssText = `position:absolute;inset:0;color:${color};mix-blend-mode:screen;pointer-events:none;white-space:inherit`;\n el.appendChild(s);\n const frames: Keyframe[] = [];\n for (let i = 0; i <= steps; i++) {\n const top = Math.round(rand(0, 80));\n frames.push({ clipPath: `inset(${top}% 0 ${Math.max(0, 100 - top - rand(8, 30)).toFixed(0)}% 0)`, transform: `translateX(${(dir * rand(2, 9)).toFixed(1)}px)` });\n }\n frames.push({ clipPath: 'inset(50% 0 50% 0)', transform: 'none' });\n const a = ctx.animate(s, frames, { duration: o.duration, easing: `steps(${steps}, end)` });\n const rm = () => s.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n return a;\n };\n return all([\n mk(o.colors[0], -1),\n mk(o.colors[1], 1),\n ctx.animate(el, [{ transform: 'none' }, { transform: 'translate(-2px,1px) skewX(-4deg)' }, { transform: 'translate(2px,-1px)' }, { transform: 'skewX(3deg)' }, { transform: 'none' }], { duration: o.duration, easing: 'steps(5, end)' }),\n ]);\n },\n },\n {\n name: 'text-trail',\n kind: 'cursor',\n description: 'The letters of a word fall off the pointer as it moves over the element (persistent; `text`, `color`, `spacing` px).',\n defaults: { text: 'MOTIONARY', color: '#7c5cff', spacing: 22, size: 18 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const word = Array.from(String(o.text || '✦'));\n let i = 0;\n let lx = -1e4;\n let ly = -1e4;\n const move = (e: PointerEvent) => {\n if (Math.hypot(e.clientX - lx, e.clientY - ly) < o.spacing) return;\n lx = e.clientX;\n ly = e.clientY;\n const ch = word[i++ % word.length];\n spawn(e.clientX - o.size / 2, e.clientY - o.size / 2, `font:800 ${o.size}px/1 system-ui,sans-serif;color:${o.color};text-shadow:0 2px 8px rgba(0,0,0,.25)`, ctx, [\n { transform: 'translateY(0) rotate(0) scale(1)', opacity: 1 },\n { transform: `translateY(${rand(30, 60).toFixed(0)}px) rotate(${rand(-60, 60).toFixed(0)}deg) scale(.6)`, opacity: 0 },\n ], { duration: rand(700, 1000), easing: 'cubic-bezier(.3,.1,.7,1)' }, ch);\n };\n el.addEventListener('pointermove', move);\n return () => el.removeEventListener('pointermove', move);\n },\n },\n {\n name: 'font-breathe',\n kind: 'loop',\n description: 'A variable-font weight wave breathes through the text (`min` / `max` weight, `period` ms, `stagger`). Best with a variable font.',\n defaults: { min: 200, max: 900, period: 2400, stagger: 90 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n const anims = cs.map((c, i) => ctx.animate(c, [\n { fontWeight: o.min, fontVariationSettings: `'wght' ${o.min}` },\n { fontWeight: o.max, fontVariationSettings: `'wght' ${o.max}` },\n ], { duration: o.period / 2, delay: i * o.stagger, iterations: Infinity, direction: 'alternate', easing: 'ease-in-out' }));\n return () => anims.forEach((a) => a?.cancel());\n },\n },\n {\n name: 'flip-chars',\n kind: 'text',\n description: 'Every character flips up in 3D around its baseline, staggered (`stagger`, `duration`, `axis` x | y).',\n defaults: { stagger: 45, duration: 700, axis: 'x' },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const cs = splitChars(el);\n el.style.perspective ||= '600px';\n const rot = o.axis === 'y' ? 'rotateY' : 'rotateX';\n return all(cs.map((c, i) => {\n c.style.transformOrigin = '50% 70% -0.4em';\n c.style.backfaceVisibility = 'hidden';\n return ctx.reduced\n ? ctx.animate(c, [{ opacity: 0 }, { opacity: 1 }], { duration: 200, delay: i * 10, fill: 'backwards' })\n : ctx.animate(c, [{ transform: `${rot}(-100deg)`, opacity: 0 }, { transform: `${rot}(12deg)`, opacity: 1, offset: 0.7 }, { transform: `${rot}(0)`, opacity: 1 }], { duration: o.duration, delay: i * o.stagger, easing: 'cubic-bezier(.2,.8,.3,1)', fill: 'backwards' });\n }));\n },\n },\n];\n\n/** Register the 6.3 text pack (idempotent). */\nexport function registerTextPack(): void {\n registerEffects(TEXT3_FX);\n}\n\n\n"],"names":[],"mappings":"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"}
|
|
@@ -238,12 +238,12 @@ function crossDocumentTransitions(effect = 'ripple-dissolve', duration = 700) {
|
|
|
238
238
|
return () => style.remove();
|
|
239
239
|
}
|
|
240
240
|
/** Register the 6.7 transitions pack (idempotent). */
|
|
241
|
-
function
|
|
241
|
+
function registerTransitionsPack() {
|
|
242
242
|
registry.registerEffects(TRANSITIONS2_FX);
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
exports.TRANSITIONS2_FX = TRANSITIONS2_FX;
|
|
246
246
|
exports.crossDocumentTransitions = crossDocumentTransitions;
|
|
247
247
|
exports.pageTransition = pageTransition;
|
|
248
|
-
exports.
|
|
248
|
+
exports.registerTransitionsPack = registerTransitionsPack;
|
|
249
249
|
//# sourceMappingURL=fx-transitions.cjs.map
|