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-transitions.cjs","sources":["../../src/components/fx2/transitions2.ts"],"sourcesContent":["/**\n * 6.7 — Transitions 2.0 (`motionary/components/fx-transitions`), registered\n * through `registerEffect()` (kind `page`; option `mode: 'in' | 'out'`):\n *\n * - `ripple-dissolve` — a circle with a ripple ring grows from the pointer\n * (or `x` / `y` 0–1) and reveals / hides the element.\n * - `shatter` — the element breaks into shards that fly apart (out) or\n * fly together (in).\n * - `mosaic-flip` — a grid of tiles flips over in a diagonal wave.\n * - `liquid-wipe` — a wavy liquid edge sweeps across.\n * - `page-curl` — the element turns like a page around its left edge.\n * - `camera-dolly` — a dolly zoom: scale + depth blur + fade.\n *\n * `pageTransition(update, effect)` runs a DOM update inside the View\n * Transitions API (when available) and plays the effect on the new snapshot;\n * without the API it runs `update()` and plays the effect on `target`.\n * `crossDocumentTransitions(effect)` opts an MPA into cross-document view\n * transitions (`@view-transition { navigation: auto }`) with the same look.\n * Reduced motion: plain short fades.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects, getEffect } from '../fx/registry';\nimport { prefersReducedMotion } from '../base';\nimport { all, origin } from '../effects/shared';\n\nconst fade = (el: Element, ctx: EffectContext, out: boolean) => ctx.animate(el, out ? [{ opacity: 1 }, { opacity: 0 }] : [{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: out ? 'forwards' : 'none' });\nconst isOut = (o: any) => o.mode === 'out';\nconst dir = (frames: Keyframe[], out: boolean) => (out ? [...frames].reverse().map((f) => ({ ...f, offset: undefined as unknown as number })).map(({ offset, ...f }) => f) : frames);\n\n/** Clipped copies of `el` laid over it (the original is hidden meanwhile). */\nfunction pieces(el: HTMLElement, clips: string[]): { parts: HTMLElement[]; done: () => void } {\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const prevVis = el.style.visibility;\n const wrap = document.createElement('div');\n wrap.setAttribute('aria-hidden', 'true');\n wrap.style.cssText = 'position:absolute;inset:0;pointer-events:none;perspective:900px;visibility:visible;z-index:1';\n const parts = clips.map((c) => {\n const p = el.cloneNode(true) as HTMLElement;\n p.removeAttribute('id');\n p.querySelectorAll('[id]').forEach((x) => x.removeAttribute('id'));\n p.style.cssText += `;position:absolute;inset:0;margin:0;width:100%;height:100%;box-sizing:border-box;clip-path:${c};visibility:visible`;\n wrap.appendChild(p);\n return p;\n });\n el.style.visibility = 'hidden';\n el.appendChild(wrap);\n return {\n parts,\n done: () => {\n wrap.remove();\n el.style.visibility = prevVis;\n },\n };\n}\n\nexport const TRANSITIONS2_FX: EffectDefinition[] = [\n {\n name: 'ripple-dissolve',\n kind: 'page',\n description: 'A circle with a ripple ring grows from the pointer (or `x` / `y` 0–1) and reveals (`mode: \"in\"`) or hides (`\"out\"`) the element.',\n defaults: { mode: 'in', duration: 900, x: 0.5, y: 0.5 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const r = el.getBoundingClientRect();\n const p = ctx.event ? origin(el, ctx) : { x: r.left + r.width * o.x, y: r.top + r.height * o.y };\n const at = `${(p.x - r.left).toFixed(0)}px ${(p.y - r.top).toFixed(0)}px`;\n const f: Keyframe[] = [\n { clipPath: `circle(0% at ${at})`, filter: 'blur(2px)' },\n { clipPath: `circle(38% at ${at})`, filter: 'blur(0)', offset: 0.45 },\n { clipPath: `circle(150% at ${at})`, filter: 'blur(0)' },\n ];\n return ctx.animate(el, out ? [f[2], f[0]] : f, { duration: o.duration, easing: 'cubic-bezier(.6,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'shatter',\n kind: 'page',\n description: 'The element breaks into shards that fly apart (`mode: \"out\"`) or fly together (`\"in\"`) (`pieces`, `duration`).',\n defaults: { mode: 'out', duration: 900, pieces: 12 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const n = Math.max(4, Math.min(24, o.pieces | 0));\n const cols = Math.ceil(Math.sqrt(n / 2));\n const rows = Math.ceil(n / 2 / cols);\n const clips: string[] = [];\n for (let r = 0; r < rows; r++)\n for (let c = 0; c < cols; c++) {\n const x0 = (c / cols) * 100;\n const x1 = ((c + 1) / cols) * 100;\n const y0 = (r / rows) * 100;\n const y1 = ((r + 1) / rows) * 100;\n clips.push(`polygon(${x0}% ${y0}%,${x1}% ${y0}%,${x0}% ${y1}%)`, `polygon(${x1}% ${y0}%,${x1}% ${y1}%,${x0}% ${y1}%)`);\n }\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const a = (i * 2.399) % (Math.PI * 2);\n const d = 80 + (i % 5) * 30;\n const scattered = { transform: `translate(${(Math.cos(a) * d).toFixed(0)}px,${(Math.sin(a) * d + 40).toFixed(0)}px) rotate(${((i % 7) - 3) * 35}deg) rotateX(${(i % 3) * 40}deg)`, opacity: 0 };\n const whole = { transform: 'none', opacity: 1 };\n return ctx.animate(p, out ? [whole, scattered] : [scattered, whole], { duration: o.duration, delay: (i % 6) * 25, easing: out ? 'cubic-bezier(.4,0,.9,.6)' : 'cubic-bezier(.1,.6,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'mosaic-flip',\n kind: 'page',\n description: 'A grid of tiles flips over in a diagonal wave (`cols`, `rows`, `duration` per tile).',\n defaults: { mode: 'in', cols: 6, rows: 4, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const C = Math.max(2, Math.min(12, o.cols | 0));\n const R = Math.max(2, Math.min(10, o.rows | 0));\n const clips: string[] = [];\n for (let r = 0; r < R; r++) for (let c = 0; c < C; c++) clips.push(`inset(${((r / R) * 100).toFixed(2)}% ${(100 - ((c + 1) / C) * 100).toFixed(2)}% ${(100 - ((r + 1) / R) * 100).toFixed(2)}% ${((c / C) * 100).toFixed(2)}%)`);\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const r = Math.floor(i / C);\n const c = i % C;\n p.style.transformOrigin = `${((c + 0.5) / C) * 100}% ${((r + 0.5) / R) * 100}%`;\n p.style.backfaceVisibility = 'hidden';\n const f: Keyframe[] = [{ transform: 'rotateY(-90deg)', opacity: 0 }, { transform: 'rotateY(0)', opacity: 1 }];\n return ctx.animate(p, out ? [f[1], f[0]] : f, { duration: o.duration, delay: (r + c) * 45, easing: 'cubic-bezier(.3,.7,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'liquid-wipe',\n kind: 'page',\n description: 'A wavy liquid edge sweeps across the element (`direction` left | right | up | down, `waves`, `duration`).',\n defaults: { mode: 'in', direction: 'right', waves: 3, duration: 1000 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const N = 24;\n const shape = (k: number) => {\n const pts: string[] = [];\n const amp = 6 * Math.sin(Math.PI * k);\n for (let i = 0; i <= N; i++) {\n const t = (i / N) * 100;\n const edge = k * 120 - 10 + amp * Math.sin((i / N) * Math.PI * 2 * o.waves + k * 6);\n pts.push(o.direction === 'up' || o.direction === 'down' ? `${t.toFixed(1)}% ${(o.direction === 'down' ? edge : 100 - edge).toFixed(1)}%` : `${(o.direction === 'left' ? 100 - edge : edge).toFixed(1)}% ${t.toFixed(1)}%`);\n }\n const tail = o.direction === 'up' ? ['100% 100%', '0% 100%'] : o.direction === 'down' ? ['100% 0%', '0% 0%'] : o.direction === 'left' ? ['100% 100%', '100% 0%'] : ['0% 100%', '0% 0%'];\n if (o.direction === 'up' || o.direction === 'down') return `polygon(${[...pts, ...tail].join(',')})`;\n return `polygon(${[...pts, ...tail].join(',')})`;\n };\n const frames: Keyframe[] = Array.from({ length: 9 }, (_, i) => ({ clipPath: shape(i / 8) }));\n return ctx.animate(el, out ? frames.reverse() : frames, { duration: o.duration, easing: 'cubic-bezier(.65,.05,.35,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'page-curl',\n kind: 'page',\n description: 'The element turns like a page around its left edge, with a moving shade (`duration`).',\n defaults: { mode: 'in', duration: 900 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const prev = el.style.transformOrigin;\n el.style.transformOrigin = '0% 50%';\n const f: Keyframe[] = [\n { transform: 'perspective(1400px) rotateY(-100deg) skewY(-4deg)', filter: 'brightness(.55)', boxShadow: '30px 0 40px rgba(0,0,0,.35)', opacity: 0.4 },\n { transform: 'perspective(1400px) rotateY(-40deg) skewY(-2deg)', filter: 'brightness(.8)', boxShadow: '20px 0 30px rgba(0,0,0,.25)', opacity: 1, offset: 0.5 },\n { transform: 'perspective(1400px) rotateY(0) skewY(0)', filter: 'brightness(1)', boxShadow: '0 0 0 rgba(0,0,0,0)', opacity: 1 },\n ];\n const a = ctx.animate(el, dir(f, out), { duration: o.duration, easing: 'cubic-bezier(.45,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n const reset = () => (el.style.transformOrigin = prev);\n if (a) a.finished.then(reset, reset);\n else reset();\n return a;\n },\n },\n {\n name: 'camera-dolly',\n kind: 'page',\n description: 'A dolly zoom: the element moves in from (or out to) depth with a depth-of-field blur (`scale`, `duration`).',\n defaults: { mode: 'in', duration: 900, scale: 1.35 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const f: Keyframe[] = [\n { transform: `perspective(900px) translateZ(-260px) scale(${o.scale})`, filter: 'blur(10px)', opacity: 0 },\n { transform: 'perspective(900px) translateZ(0) scale(1)', filter: 'blur(0)', opacity: 1 },\n ];\n return ctx.animate(el, out ? [f[1], { ...f[0], transform: `perspective(900px) translateZ(260px) scale(${(1 / o.scale).toFixed(3)})` }] : f, { duration: o.duration, easing: 'cubic-bezier(.2,.7,.2,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n];\n\n/** CSS keyframes for the `::view-transition-new(root)` snapshot of each effect (cross-document transitions). */\nconst VT_CSS: Record<string, string> = {\n 'ripple-dissolve': 'from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(150% at 50% 50%)}',\n 'liquid-wipe': 'from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}',\n 'page-curl': 'from{transform:perspective(1400px) rotateY(-100deg);transform-origin:0 50%;filter:brightness(.6)}to{transform:none;transform-origin:0 50%}',\n 'camera-dolly': 'from{transform:scale(1.35);filter:blur(10px);opacity:0}to{transform:none;filter:none;opacity:1}',\n 'mosaic-flip': 'from{transform:perspective(900px) rotateY(-90deg);opacity:0}to{transform:none;opacity:1}',\n shatter: 'from{transform:scale(.85) rotate(-3deg);opacity:0;filter:blur(4px)}to{transform:none;opacity:1;filter:none}',\n};\n\n/**\n * Run `update` (a DOM change) as a transition: inside `document.startViewTransition`\n * when supported (the new snapshot plays `effect`), otherwise `update()` then the\n * effect on `target` (default `document.body`'s first element).\n */\nexport async function pageTransition(update: () => void | Promise<void>, effect = 'ripple-dissolve', options: Record<string, unknown> = {}, target?: HTMLElement): Promise<void> {\n const doc = document as Document & { startViewTransition?: (cb: () => unknown) => { ready: Promise<void>; finished: Promise<void> } };\n const def = getEffect(effect);\n if (typeof doc.startViewTransition === 'function' && !prefersReducedMotion()) {\n const vt = doc.startViewTransition(update);\n await vt.ready.catch(() => undefined);\n const css = VT_CSS[effect];\n if (css) {\n const dur = Number(options.duration) || Number(def?.defaults?.duration) || 800;\n const m = /from\\{([^}]*)\\}to\\{([^}]*)\\}/.exec(css);\n const toObj = (s: string) => Object.fromEntries(s.split(';').filter(Boolean).map((d) => { const i = d.indexOf(':'); return [d.slice(0, i).replace(/-([a-z])/g, (_, c) => c.toUpperCase()), d.slice(i + 1)]; }));\n if (m) document.documentElement.animate([toObj(m[1]), toObj(m[2])], { duration: dur, easing: 'cubic-bezier(.6,.05,.3,1)', pseudoElement: '::view-transition-new(root)' } as KeyframeAnimationOptions);\n }\n await vt.finished.catch(() => undefined);\n return;\n }\n await update();\n const el = target || (document.body.firstElementChild as HTMLElement | null);\n if (el && def) {\n const { playEffect } = await import('../fx/registry');\n await playEffect(el, effect, { ...options, mode: 'in' });\n }\n}\n\n/** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */\nexport function crossDocumentTransitions(effect = 'ripple-dissolve', duration = 700): () => void {\n const style = document.createElement('style');\n style.setAttribute('data-usa-vt', effect);\n const kf = VT_CSS[effect] || VT_CSS['camera-dolly'];\n style.textContent = `@view-transition{navigation:auto}@keyframes usa-vt-in{${kf}}::view-transition-new(root){animation:usa-vt-in ${duration}ms cubic-bezier(.6,.05,.3,1) both}::view-transition-old(root){animation:none}@media (prefers-reduced-motion:reduce){::view-transition-new(root){animation-duration:1ms}}`;\n document.head.appendChild(style);\n return () => style.remove();\n}\n\n/** Register the 6.7 transitions pack (idempotent). */\nexport function registerTransitionEffects2(): void {\n registerEffects(TRANSITIONS2_FX);\n}\n"],"names":["origin","all","getEffect","prefersReducedMotion","registerEffects"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fx-transitions.cjs","sources":["../../src/components/fx2/transitions2.ts"],"sourcesContent":["/**\n * 6.7 — Transitions 2.0 (`motionary/components/fx-transitions`), registered\n * through `registerEffect()` (kind `page`; option `mode: 'in' | 'out'`):\n *\n * - `ripple-dissolve` — a circle with a ripple ring grows from the pointer\n * (or `x` / `y` 0–1) and reveals / hides the element.\n * - `shatter` — the element breaks into shards that fly apart (out) or\n * fly together (in).\n * - `mosaic-flip` — a grid of tiles flips over in a diagonal wave.\n * - `liquid-wipe` — a wavy liquid edge sweeps across.\n * - `page-curl` — the element turns like a page around its left edge.\n * - `camera-dolly` — a dolly zoom: scale + depth blur + fade.\n *\n * `pageTransition(update, effect)` runs a DOM update inside the View\n * Transitions API (when available) and plays the effect on the new snapshot;\n * without the API it runs `update()` and plays the effect on `target`.\n * `crossDocumentTransitions(effect)` opts an MPA into cross-document view\n * transitions (`@view-transition { navigation: auto }`) with the same look.\n * Reduced motion: plain short fades.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects, getEffect } from '../fx/registry';\nimport { prefersReducedMotion } from '../base';\nimport { all, origin } from '../effects/shared';\n\nconst fade = (el: Element, ctx: EffectContext, out: boolean) => ctx.animate(el, out ? [{ opacity: 1 }, { opacity: 0 }] : [{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: out ? 'forwards' : 'none' });\nconst isOut = (o: any) => o.mode === 'out';\nconst dir = (frames: Keyframe[], out: boolean) => (out ? [...frames].reverse().map((f) => ({ ...f, offset: undefined as unknown as number })).map(({ offset, ...f }) => f) : frames);\n\n/** Clipped copies of `el` laid over it (the original is hidden meanwhile). */\nfunction pieces(el: HTMLElement, clips: string[]): { parts: HTMLElement[]; done: () => void } {\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const prevVis = el.style.visibility;\n const wrap = document.createElement('div');\n wrap.setAttribute('aria-hidden', 'true');\n wrap.style.cssText = 'position:absolute;inset:0;pointer-events:none;perspective:900px;visibility:visible;z-index:1';\n const parts = clips.map((c) => {\n const p = el.cloneNode(true) as HTMLElement;\n p.removeAttribute('id');\n p.querySelectorAll('[id]').forEach((x) => x.removeAttribute('id'));\n p.style.cssText += `;position:absolute;inset:0;margin:0;width:100%;height:100%;box-sizing:border-box;clip-path:${c};visibility:visible`;\n wrap.appendChild(p);\n return p;\n });\n el.style.visibility = 'hidden';\n el.appendChild(wrap);\n return {\n parts,\n done: () => {\n wrap.remove();\n el.style.visibility = prevVis;\n },\n };\n}\n\nexport const TRANSITIONS2_FX: EffectDefinition[] = [\n {\n name: 'ripple-dissolve',\n kind: 'page',\n description: 'A circle with a ripple ring grows from the pointer (or `x` / `y` 0–1) and reveals (`mode: \"in\"`) or hides (`\"out\"`) the element.',\n defaults: { mode: 'in', duration: 900, x: 0.5, y: 0.5 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const r = el.getBoundingClientRect();\n const p = ctx.event ? origin(el, ctx) : { x: r.left + r.width * o.x, y: r.top + r.height * o.y };\n const at = `${(p.x - r.left).toFixed(0)}px ${(p.y - r.top).toFixed(0)}px`;\n const f: Keyframe[] = [\n { clipPath: `circle(0% at ${at})`, filter: 'blur(2px)' },\n { clipPath: `circle(38% at ${at})`, filter: 'blur(0)', offset: 0.45 },\n { clipPath: `circle(150% at ${at})`, filter: 'blur(0)' },\n ];\n return ctx.animate(el, out ? [f[2], f[0]] : f, { duration: o.duration, easing: 'cubic-bezier(.6,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'shatter',\n kind: 'page',\n description: 'The element breaks into shards that fly apart (`mode: \"out\"`) or fly together (`\"in\"`) (`pieces`, `duration`).',\n defaults: { mode: 'out', duration: 900, pieces: 12 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const n = Math.max(4, Math.min(24, o.pieces | 0));\n const cols = Math.ceil(Math.sqrt(n / 2));\n const rows = Math.ceil(n / 2 / cols);\n const clips: string[] = [];\n for (let r = 0; r < rows; r++)\n for (let c = 0; c < cols; c++) {\n const x0 = (c / cols) * 100;\n const x1 = ((c + 1) / cols) * 100;\n const y0 = (r / rows) * 100;\n const y1 = ((r + 1) / rows) * 100;\n clips.push(`polygon(${x0}% ${y0}%,${x1}% ${y0}%,${x0}% ${y1}%)`, `polygon(${x1}% ${y0}%,${x1}% ${y1}%,${x0}% ${y1}%)`);\n }\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const a = (i * 2.399) % (Math.PI * 2);\n const d = 80 + (i % 5) * 30;\n const scattered = { transform: `translate(${(Math.cos(a) * d).toFixed(0)}px,${(Math.sin(a) * d + 40).toFixed(0)}px) rotate(${((i % 7) - 3) * 35}deg) rotateX(${(i % 3) * 40}deg)`, opacity: 0 };\n const whole = { transform: 'none', opacity: 1 };\n return ctx.animate(p, out ? [whole, scattered] : [scattered, whole], { duration: o.duration, delay: (i % 6) * 25, easing: out ? 'cubic-bezier(.4,0,.9,.6)' : 'cubic-bezier(.1,.6,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'mosaic-flip',\n kind: 'page',\n description: 'A grid of tiles flips over in a diagonal wave (`cols`, `rows`, `duration` per tile).',\n defaults: { mode: 'in', cols: 6, rows: 4, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const C = Math.max(2, Math.min(12, o.cols | 0));\n const R = Math.max(2, Math.min(10, o.rows | 0));\n const clips: string[] = [];\n for (let r = 0; r < R; r++) for (let c = 0; c < C; c++) clips.push(`inset(${((r / R) * 100).toFixed(2)}% ${(100 - ((c + 1) / C) * 100).toFixed(2)}% ${(100 - ((r + 1) / R) * 100).toFixed(2)}% ${((c / C) * 100).toFixed(2)}%)`);\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const r = Math.floor(i / C);\n const c = i % C;\n p.style.transformOrigin = `${((c + 0.5) / C) * 100}% ${((r + 0.5) / R) * 100}%`;\n p.style.backfaceVisibility = 'hidden';\n const f: Keyframe[] = [{ transform: 'rotateY(-90deg)', opacity: 0 }, { transform: 'rotateY(0)', opacity: 1 }];\n return ctx.animate(p, out ? [f[1], f[0]] : f, { duration: o.duration, delay: (r + c) * 45, easing: 'cubic-bezier(.3,.7,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'liquid-wipe',\n kind: 'page',\n description: 'A wavy liquid edge sweeps across the element (`direction` left | right | up | down, `waves`, `duration`).',\n defaults: { mode: 'in', direction: 'right', waves: 3, duration: 1000 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const N = 24;\n const shape = (k: number) => {\n const pts: string[] = [];\n const amp = 6 * Math.sin(Math.PI * k);\n for (let i = 0; i <= N; i++) {\n const t = (i / N) * 100;\n const edge = k * 120 - 10 + amp * Math.sin((i / N) * Math.PI * 2 * o.waves + k * 6);\n pts.push(o.direction === 'up' || o.direction === 'down' ? `${t.toFixed(1)}% ${(o.direction === 'down' ? edge : 100 - edge).toFixed(1)}%` : `${(o.direction === 'left' ? 100 - edge : edge).toFixed(1)}% ${t.toFixed(1)}%`);\n }\n const tail = o.direction === 'up' ? ['100% 100%', '0% 100%'] : o.direction === 'down' ? ['100% 0%', '0% 0%'] : o.direction === 'left' ? ['100% 100%', '100% 0%'] : ['0% 100%', '0% 0%'];\n if (o.direction === 'up' || o.direction === 'down') return `polygon(${[...pts, ...tail].join(',')})`;\n return `polygon(${[...pts, ...tail].join(',')})`;\n };\n const frames: Keyframe[] = Array.from({ length: 9 }, (_, i) => ({ clipPath: shape(i / 8) }));\n return ctx.animate(el, out ? frames.reverse() : frames, { duration: o.duration, easing: 'cubic-bezier(.65,.05,.35,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'page-curl',\n kind: 'page',\n description: 'The element turns like a page around its left edge, with a moving shade (`duration`).',\n defaults: { mode: 'in', duration: 900 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const prev = el.style.transformOrigin;\n el.style.transformOrigin = '0% 50%';\n const f: Keyframe[] = [\n { transform: 'perspective(1400px) rotateY(-100deg) skewY(-4deg)', filter: 'brightness(.55)', boxShadow: '30px 0 40px rgba(0,0,0,.35)', opacity: 0.4 },\n { transform: 'perspective(1400px) rotateY(-40deg) skewY(-2deg)', filter: 'brightness(.8)', boxShadow: '20px 0 30px rgba(0,0,0,.25)', opacity: 1, offset: 0.5 },\n { transform: 'perspective(1400px) rotateY(0) skewY(0)', filter: 'brightness(1)', boxShadow: '0 0 0 rgba(0,0,0,0)', opacity: 1 },\n ];\n const a = ctx.animate(el, dir(f, out), { duration: o.duration, easing: 'cubic-bezier(.45,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n const reset = () => (el.style.transformOrigin = prev);\n if (a) a.finished.then(reset, reset);\n else reset();\n return a;\n },\n },\n {\n name: 'camera-dolly',\n kind: 'page',\n description: 'A dolly zoom: the element moves in from (or out to) depth with a depth-of-field blur (`scale`, `duration`).',\n defaults: { mode: 'in', duration: 900, scale: 1.35 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const f: Keyframe[] = [\n { transform: `perspective(900px) translateZ(-260px) scale(${o.scale})`, filter: 'blur(10px)', opacity: 0 },\n { transform: 'perspective(900px) translateZ(0) scale(1)', filter: 'blur(0)', opacity: 1 },\n ];\n return ctx.animate(el, out ? [f[1], { ...f[0], transform: `perspective(900px) translateZ(260px) scale(${(1 / o.scale).toFixed(3)})` }] : f, { duration: o.duration, easing: 'cubic-bezier(.2,.7,.2,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n];\n\n/** CSS keyframes for the `::view-transition-new(root)` snapshot of each effect (cross-document transitions). */\nconst VT_CSS: Record<string, string> = {\n 'ripple-dissolve': 'from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(150% at 50% 50%)}',\n 'liquid-wipe': 'from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}',\n 'page-curl': 'from{transform:perspective(1400px) rotateY(-100deg);transform-origin:0 50%;filter:brightness(.6)}to{transform:none;transform-origin:0 50%}',\n 'camera-dolly': 'from{transform:scale(1.35);filter:blur(10px);opacity:0}to{transform:none;filter:none;opacity:1}',\n 'mosaic-flip': 'from{transform:perspective(900px) rotateY(-90deg);opacity:0}to{transform:none;opacity:1}',\n shatter: 'from{transform:scale(.85) rotate(-3deg);opacity:0;filter:blur(4px)}to{transform:none;opacity:1;filter:none}',\n};\n\n/**\n * Run `update` (a DOM change) as a transition: inside `document.startViewTransition`\n * when supported (the new snapshot plays `effect`), otherwise `update()` then the\n * effect on `target` (default `document.body`'s first element).\n */\nexport async function pageTransition(update: () => void | Promise<void>, effect = 'ripple-dissolve', options: Record<string, unknown> = {}, target?: HTMLElement): Promise<void> {\n const doc = document as Document & { startViewTransition?: (cb: () => unknown) => { ready: Promise<void>; finished: Promise<void> } };\n const def = getEffect(effect);\n if (typeof doc.startViewTransition === 'function' && !prefersReducedMotion()) {\n const vt = doc.startViewTransition(update);\n await vt.ready.catch(() => undefined);\n const css = VT_CSS[effect];\n if (css) {\n const dur = Number(options.duration) || Number(def?.defaults?.duration) || 800;\n const m = /from\\{([^}]*)\\}to\\{([^}]*)\\}/.exec(css);\n const toObj = (s: string) => Object.fromEntries(s.split(';').filter(Boolean).map((d) => { const i = d.indexOf(':'); return [d.slice(0, i).replace(/-([a-z])/g, (_, c) => c.toUpperCase()), d.slice(i + 1)]; }));\n if (m) document.documentElement.animate([toObj(m[1]), toObj(m[2])], { duration: dur, easing: 'cubic-bezier(.6,.05,.3,1)', pseudoElement: '::view-transition-new(root)' } as KeyframeAnimationOptions);\n }\n await vt.finished.catch(() => undefined);\n return;\n }\n await update();\n const el = target || (document.body.firstElementChild as HTMLElement | null);\n if (el && def) {\n const { playEffect } = await import('../fx/registry');\n await playEffect(el, effect, { ...options, mode: 'in' });\n }\n}\n\n/** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */\nexport function crossDocumentTransitions(effect = 'ripple-dissolve', duration = 700): () => void {\n const style = document.createElement('style');\n style.setAttribute('data-usa-vt', effect);\n const kf = VT_CSS[effect] || VT_CSS['camera-dolly'];\n style.textContent = `@view-transition{navigation:auto}@keyframes usa-vt-in{${kf}}::view-transition-new(root){animation:usa-vt-in ${duration}ms cubic-bezier(.6,.05,.3,1) both}::view-transition-old(root){animation:none}@media (prefers-reduced-motion:reduce){::view-transition-new(root){animation-duration:1ms}}`;\n document.head.appendChild(style);\n return () => style.remove();\n}\n\n/** Register the 6.7 transitions pack (idempotent). */\nexport function registerTransitionsPack(): void {\n registerEffects(TRANSITIONS2_FX);\n}\n\n"],"names":["origin","all","getEffect","prefersReducedMotion","registerEffects"],"mappings":"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"}
|
|
@@ -72,6 +72,6 @@ declare function pageTransition(update: () => void | Promise<void>, effect?: str
|
|
|
72
72
|
/** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */
|
|
73
73
|
declare function crossDocumentTransitions(effect?: string, duration?: number): () => void;
|
|
74
74
|
/** Register the 6.7 transitions pack (idempotent). */
|
|
75
|
-
declare function
|
|
75
|
+
declare function registerTransitionsPack(): void;
|
|
76
76
|
|
|
77
|
-
export { TRANSITIONS2_FX, crossDocumentTransitions, pageTransition,
|
|
77
|
+
export { TRANSITIONS2_FX, crossDocumentTransitions, pageTransition, registerTransitionsPack };
|
|
@@ -72,6 +72,6 @@ declare function pageTransition(update: () => void | Promise<void>, effect?: str
|
|
|
72
72
|
/** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */
|
|
73
73
|
declare function crossDocumentTransitions(effect?: string, duration?: number): () => void;
|
|
74
74
|
/** Register the 6.7 transitions pack (idempotent). */
|
|
75
|
-
declare function
|
|
75
|
+
declare function registerTransitionsPack(): void;
|
|
76
76
|
|
|
77
|
-
export { TRANSITIONS2_FX, crossDocumentTransitions, pageTransition,
|
|
77
|
+
export { TRANSITIONS2_FX, crossDocumentTransitions, pageTransition, registerTransitionsPack };
|
|
@@ -236,9 +236,9 @@ function crossDocumentTransitions(effect = 'ripple-dissolve', duration = 700) {
|
|
|
236
236
|
return () => style.remove();
|
|
237
237
|
}
|
|
238
238
|
/** Register the 6.7 transitions pack (idempotent). */
|
|
239
|
-
function
|
|
239
|
+
function registerTransitionsPack() {
|
|
240
240
|
registerEffects(TRANSITIONS2_FX);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
-
export { TRANSITIONS2_FX, crossDocumentTransitions, pageTransition,
|
|
243
|
+
export { TRANSITIONS2_FX, crossDocumentTransitions, pageTransition, registerTransitionsPack };
|
|
244
244
|
//# sourceMappingURL=fx-transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx-transitions.js","sources":["../../src/components/fx2/transitions2.ts"],"sourcesContent":["/**\n * 6.7 — Transitions 2.0 (`motionary/components/fx-transitions`), registered\n * through `registerEffect()` (kind `page`; option `mode: 'in' | 'out'`):\n *\n * - `ripple-dissolve` — a circle with a ripple ring grows from the pointer\n * (or `x` / `y` 0–1) and reveals / hides the element.\n * - `shatter` — the element breaks into shards that fly apart (out) or\n * fly together (in).\n * - `mosaic-flip` — a grid of tiles flips over in a diagonal wave.\n * - `liquid-wipe` — a wavy liquid edge sweeps across.\n * - `page-curl` — the element turns like a page around its left edge.\n * - `camera-dolly` — a dolly zoom: scale + depth blur + fade.\n *\n * `pageTransition(update, effect)` runs a DOM update inside the View\n * Transitions API (when available) and plays the effect on the new snapshot;\n * without the API it runs `update()` and plays the effect on `target`.\n * `crossDocumentTransitions(effect)` opts an MPA into cross-document view\n * transitions (`@view-transition { navigation: auto }`) with the same look.\n * Reduced motion: plain short fades.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects, getEffect } from '../fx/registry';\nimport { prefersReducedMotion } from '../base';\nimport { all, origin } from '../effects/shared';\n\nconst fade = (el: Element, ctx: EffectContext, out: boolean) => ctx.animate(el, out ? [{ opacity: 1 }, { opacity: 0 }] : [{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: out ? 'forwards' : 'none' });\nconst isOut = (o: any) => o.mode === 'out';\nconst dir = (frames: Keyframe[], out: boolean) => (out ? [...frames].reverse().map((f) => ({ ...f, offset: undefined as unknown as number })).map(({ offset, ...f }) => f) : frames);\n\n/** Clipped copies of `el` laid over it (the original is hidden meanwhile). */\nfunction pieces(el: HTMLElement, clips: string[]): { parts: HTMLElement[]; done: () => void } {\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const prevVis = el.style.visibility;\n const wrap = document.createElement('div');\n wrap.setAttribute('aria-hidden', 'true');\n wrap.style.cssText = 'position:absolute;inset:0;pointer-events:none;perspective:900px;visibility:visible;z-index:1';\n const parts = clips.map((c) => {\n const p = el.cloneNode(true) as HTMLElement;\n p.removeAttribute('id');\n p.querySelectorAll('[id]').forEach((x) => x.removeAttribute('id'));\n p.style.cssText += `;position:absolute;inset:0;margin:0;width:100%;height:100%;box-sizing:border-box;clip-path:${c};visibility:visible`;\n wrap.appendChild(p);\n return p;\n });\n el.style.visibility = 'hidden';\n el.appendChild(wrap);\n return {\n parts,\n done: () => {\n wrap.remove();\n el.style.visibility = prevVis;\n },\n };\n}\n\nexport const TRANSITIONS2_FX: EffectDefinition[] = [\n {\n name: 'ripple-dissolve',\n kind: 'page',\n description: 'A circle with a ripple ring grows from the pointer (or `x` / `y` 0–1) and reveals (`mode: \"in\"`) or hides (`\"out\"`) the element.',\n defaults: { mode: 'in', duration: 900, x: 0.5, y: 0.5 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const r = el.getBoundingClientRect();\n const p = ctx.event ? origin(el, ctx) : { x: r.left + r.width * o.x, y: r.top + r.height * o.y };\n const at = `${(p.x - r.left).toFixed(0)}px ${(p.y - r.top).toFixed(0)}px`;\n const f: Keyframe[] = [\n { clipPath: `circle(0% at ${at})`, filter: 'blur(2px)' },\n { clipPath: `circle(38% at ${at})`, filter: 'blur(0)', offset: 0.45 },\n { clipPath: `circle(150% at ${at})`, filter: 'blur(0)' },\n ];\n return ctx.animate(el, out ? [f[2], f[0]] : f, { duration: o.duration, easing: 'cubic-bezier(.6,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'shatter',\n kind: 'page',\n description: 'The element breaks into shards that fly apart (`mode: \"out\"`) or fly together (`\"in\"`) (`pieces`, `duration`).',\n defaults: { mode: 'out', duration: 900, pieces: 12 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const n = Math.max(4, Math.min(24, o.pieces | 0));\n const cols = Math.ceil(Math.sqrt(n / 2));\n const rows = Math.ceil(n / 2 / cols);\n const clips: string[] = [];\n for (let r = 0; r < rows; r++)\n for (let c = 0; c < cols; c++) {\n const x0 = (c / cols) * 100;\n const x1 = ((c + 1) / cols) * 100;\n const y0 = (r / rows) * 100;\n const y1 = ((r + 1) / rows) * 100;\n clips.push(`polygon(${x0}% ${y0}%,${x1}% ${y0}%,${x0}% ${y1}%)`, `polygon(${x1}% ${y0}%,${x1}% ${y1}%,${x0}% ${y1}%)`);\n }\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const a = (i * 2.399) % (Math.PI * 2);\n const d = 80 + (i % 5) * 30;\n const scattered = { transform: `translate(${(Math.cos(a) * d).toFixed(0)}px,${(Math.sin(a) * d + 40).toFixed(0)}px) rotate(${((i % 7) - 3) * 35}deg) rotateX(${(i % 3) * 40}deg)`, opacity: 0 };\n const whole = { transform: 'none', opacity: 1 };\n return ctx.animate(p, out ? [whole, scattered] : [scattered, whole], { duration: o.duration, delay: (i % 6) * 25, easing: out ? 'cubic-bezier(.4,0,.9,.6)' : 'cubic-bezier(.1,.6,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'mosaic-flip',\n kind: 'page',\n description: 'A grid of tiles flips over in a diagonal wave (`cols`, `rows`, `duration` per tile).',\n defaults: { mode: 'in', cols: 6, rows: 4, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const C = Math.max(2, Math.min(12, o.cols | 0));\n const R = Math.max(2, Math.min(10, o.rows | 0));\n const clips: string[] = [];\n for (let r = 0; r < R; r++) for (let c = 0; c < C; c++) clips.push(`inset(${((r / R) * 100).toFixed(2)}% ${(100 - ((c + 1) / C) * 100).toFixed(2)}% ${(100 - ((r + 1) / R) * 100).toFixed(2)}% ${((c / C) * 100).toFixed(2)}%)`);\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const r = Math.floor(i / C);\n const c = i % C;\n p.style.transformOrigin = `${((c + 0.5) / C) * 100}% ${((r + 0.5) / R) * 100}%`;\n p.style.backfaceVisibility = 'hidden';\n const f: Keyframe[] = [{ transform: 'rotateY(-90deg)', opacity: 0 }, { transform: 'rotateY(0)', opacity: 1 }];\n return ctx.animate(p, out ? [f[1], f[0]] : f, { duration: o.duration, delay: (r + c) * 45, easing: 'cubic-bezier(.3,.7,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'liquid-wipe',\n kind: 'page',\n description: 'A wavy liquid edge sweeps across the element (`direction` left | right | up | down, `waves`, `duration`).',\n defaults: { mode: 'in', direction: 'right', waves: 3, duration: 1000 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const N = 24;\n const shape = (k: number) => {\n const pts: string[] = [];\n const amp = 6 * Math.sin(Math.PI * k);\n for (let i = 0; i <= N; i++) {\n const t = (i / N) * 100;\n const edge = k * 120 - 10 + amp * Math.sin((i / N) * Math.PI * 2 * o.waves + k * 6);\n pts.push(o.direction === 'up' || o.direction === 'down' ? `${t.toFixed(1)}% ${(o.direction === 'down' ? edge : 100 - edge).toFixed(1)}%` : `${(o.direction === 'left' ? 100 - edge : edge).toFixed(1)}% ${t.toFixed(1)}%`);\n }\n const tail = o.direction === 'up' ? ['100% 100%', '0% 100%'] : o.direction === 'down' ? ['100% 0%', '0% 0%'] : o.direction === 'left' ? ['100% 100%', '100% 0%'] : ['0% 100%', '0% 0%'];\n if (o.direction === 'up' || o.direction === 'down') return `polygon(${[...pts, ...tail].join(',')})`;\n return `polygon(${[...pts, ...tail].join(',')})`;\n };\n const frames: Keyframe[] = Array.from({ length: 9 }, (_, i) => ({ clipPath: shape(i / 8) }));\n return ctx.animate(el, out ? frames.reverse() : frames, { duration: o.duration, easing: 'cubic-bezier(.65,.05,.35,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'page-curl',\n kind: 'page',\n description: 'The element turns like a page around its left edge, with a moving shade (`duration`).',\n defaults: { mode: 'in', duration: 900 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const prev = el.style.transformOrigin;\n el.style.transformOrigin = '0% 50%';\n const f: Keyframe[] = [\n { transform: 'perspective(1400px) rotateY(-100deg) skewY(-4deg)', filter: 'brightness(.55)', boxShadow: '30px 0 40px rgba(0,0,0,.35)', opacity: 0.4 },\n { transform: 'perspective(1400px) rotateY(-40deg) skewY(-2deg)', filter: 'brightness(.8)', boxShadow: '20px 0 30px rgba(0,0,0,.25)', opacity: 1, offset: 0.5 },\n { transform: 'perspective(1400px) rotateY(0) skewY(0)', filter: 'brightness(1)', boxShadow: '0 0 0 rgba(0,0,0,0)', opacity: 1 },\n ];\n const a = ctx.animate(el, dir(f, out), { duration: o.duration, easing: 'cubic-bezier(.45,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n const reset = () => (el.style.transformOrigin = prev);\n if (a) a.finished.then(reset, reset);\n else reset();\n return a;\n },\n },\n {\n name: 'camera-dolly',\n kind: 'page',\n description: 'A dolly zoom: the element moves in from (or out to) depth with a depth-of-field blur (`scale`, `duration`).',\n defaults: { mode: 'in', duration: 900, scale: 1.35 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const f: Keyframe[] = [\n { transform: `perspective(900px) translateZ(-260px) scale(${o.scale})`, filter: 'blur(10px)', opacity: 0 },\n { transform: 'perspective(900px) translateZ(0) scale(1)', filter: 'blur(0)', opacity: 1 },\n ];\n return ctx.animate(el, out ? [f[1], { ...f[0], transform: `perspective(900px) translateZ(260px) scale(${(1 / o.scale).toFixed(3)})` }] : f, { duration: o.duration, easing: 'cubic-bezier(.2,.7,.2,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n];\n\n/** CSS keyframes for the `::view-transition-new(root)` snapshot of each effect (cross-document transitions). */\nconst VT_CSS: Record<string, string> = {\n 'ripple-dissolve': 'from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(150% at 50% 50%)}',\n 'liquid-wipe': 'from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}',\n 'page-curl': 'from{transform:perspective(1400px) rotateY(-100deg);transform-origin:0 50%;filter:brightness(.6)}to{transform:none;transform-origin:0 50%}',\n 'camera-dolly': 'from{transform:scale(1.35);filter:blur(10px);opacity:0}to{transform:none;filter:none;opacity:1}',\n 'mosaic-flip': 'from{transform:perspective(900px) rotateY(-90deg);opacity:0}to{transform:none;opacity:1}',\n shatter: 'from{transform:scale(.85) rotate(-3deg);opacity:0;filter:blur(4px)}to{transform:none;opacity:1;filter:none}',\n};\n\n/**\n * Run `update` (a DOM change) as a transition: inside `document.startViewTransition`\n * when supported (the new snapshot plays `effect`), otherwise `update()` then the\n * effect on `target` (default `document.body`'s first element).\n */\nexport async function pageTransition(update: () => void | Promise<void>, effect = 'ripple-dissolve', options: Record<string, unknown> = {}, target?: HTMLElement): Promise<void> {\n const doc = document as Document & { startViewTransition?: (cb: () => unknown) => { ready: Promise<void>; finished: Promise<void> } };\n const def = getEffect(effect);\n if (typeof doc.startViewTransition === 'function' && !prefersReducedMotion()) {\n const vt = doc.startViewTransition(update);\n await vt.ready.catch(() => undefined);\n const css = VT_CSS[effect];\n if (css) {\n const dur = Number(options.duration) || Number(def?.defaults?.duration) || 800;\n const m = /from\\{([^}]*)\\}to\\{([^}]*)\\}/.exec(css);\n const toObj = (s: string) => Object.fromEntries(s.split(';').filter(Boolean).map((d) => { const i = d.indexOf(':'); return [d.slice(0, i).replace(/-([a-z])/g, (_, c) => c.toUpperCase()), d.slice(i + 1)]; }));\n if (m) document.documentElement.animate([toObj(m[1]), toObj(m[2])], { duration: dur, easing: 'cubic-bezier(.6,.05,.3,1)', pseudoElement: '::view-transition-new(root)' } as KeyframeAnimationOptions);\n }\n await vt.finished.catch(() => undefined);\n return;\n }\n await update();\n const el = target || (document.body.firstElementChild as HTMLElement | null);\n if (el && def) {\n const { playEffect } = await import('../fx/registry');\n await playEffect(el, effect, { ...options, mode: 'in' });\n }\n}\n\n/** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */\nexport function crossDocumentTransitions(effect = 'ripple-dissolve', duration = 700): () => void {\n const style = document.createElement('style');\n style.setAttribute('data-usa-vt', effect);\n const kf = VT_CSS[effect] || VT_CSS['camera-dolly'];\n style.textContent = `@view-transition{navigation:auto}@keyframes usa-vt-in{${kf}}::view-transition-new(root){animation:usa-vt-in ${duration}ms cubic-bezier(.6,.05,.3,1) both}::view-transition-old(root){animation:none}@media (prefers-reduced-motion:reduce){::view-transition-new(root){animation-duration:1ms}}`;\n document.head.appendChild(style);\n return () => style.remove();\n}\n\n/** Register the 6.7 transitions pack (idempotent). */\nexport function registerTransitionEffects2(): void {\n registerEffects(TRANSITIONS2_FX);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fx-transitions.js","sources":["../../src/components/fx2/transitions2.ts"],"sourcesContent":["/**\n * 6.7 — Transitions 2.0 (`motionary/components/fx-transitions`), registered\n * through `registerEffect()` (kind `page`; option `mode: 'in' | 'out'`):\n *\n * - `ripple-dissolve` — a circle with a ripple ring grows from the pointer\n * (or `x` / `y` 0–1) and reveals / hides the element.\n * - `shatter` — the element breaks into shards that fly apart (out) or\n * fly together (in).\n * - `mosaic-flip` — a grid of tiles flips over in a diagonal wave.\n * - `liquid-wipe` — a wavy liquid edge sweeps across.\n * - `page-curl` — the element turns like a page around its left edge.\n * - `camera-dolly` — a dolly zoom: scale + depth blur + fade.\n *\n * `pageTransition(update, effect)` runs a DOM update inside the View\n * Transitions API (when available) and plays the effect on the new snapshot;\n * without the API it runs `update()` and plays the effect on `target`.\n * `crossDocumentTransitions(effect)` opts an MPA into cross-document view\n * transitions (`@view-transition { navigation: auto }`) with the same look.\n * Reduced motion: plain short fades.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects, getEffect } from '../fx/registry';\nimport { prefersReducedMotion } from '../base';\nimport { all, origin } from '../effects/shared';\n\nconst fade = (el: Element, ctx: EffectContext, out: boolean) => ctx.animate(el, out ? [{ opacity: 1 }, { opacity: 0 }] : [{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: out ? 'forwards' : 'none' });\nconst isOut = (o: any) => o.mode === 'out';\nconst dir = (frames: Keyframe[], out: boolean) => (out ? [...frames].reverse().map((f) => ({ ...f, offset: undefined as unknown as number })).map(({ offset, ...f }) => f) : frames);\n\n/** Clipped copies of `el` laid over it (the original is hidden meanwhile). */\nfunction pieces(el: HTMLElement, clips: string[]): { parts: HTMLElement[]; done: () => void } {\n if (getComputedStyle(el).position === 'static') el.style.position = 'relative';\n const prevVis = el.style.visibility;\n const wrap = document.createElement('div');\n wrap.setAttribute('aria-hidden', 'true');\n wrap.style.cssText = 'position:absolute;inset:0;pointer-events:none;perspective:900px;visibility:visible;z-index:1';\n const parts = clips.map((c) => {\n const p = el.cloneNode(true) as HTMLElement;\n p.removeAttribute('id');\n p.querySelectorAll('[id]').forEach((x) => x.removeAttribute('id'));\n p.style.cssText += `;position:absolute;inset:0;margin:0;width:100%;height:100%;box-sizing:border-box;clip-path:${c};visibility:visible`;\n wrap.appendChild(p);\n return p;\n });\n el.style.visibility = 'hidden';\n el.appendChild(wrap);\n return {\n parts,\n done: () => {\n wrap.remove();\n el.style.visibility = prevVis;\n },\n };\n}\n\nexport const TRANSITIONS2_FX: EffectDefinition[] = [\n {\n name: 'ripple-dissolve',\n kind: 'page',\n description: 'A circle with a ripple ring grows from the pointer (or `x` / `y` 0–1) and reveals (`mode: \"in\"`) or hides (`\"out\"`) the element.',\n defaults: { mode: 'in', duration: 900, x: 0.5, y: 0.5 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const r = el.getBoundingClientRect();\n const p = ctx.event ? origin(el, ctx) : { x: r.left + r.width * o.x, y: r.top + r.height * o.y };\n const at = `${(p.x - r.left).toFixed(0)}px ${(p.y - r.top).toFixed(0)}px`;\n const f: Keyframe[] = [\n { clipPath: `circle(0% at ${at})`, filter: 'blur(2px)' },\n { clipPath: `circle(38% at ${at})`, filter: 'blur(0)', offset: 0.45 },\n { clipPath: `circle(150% at ${at})`, filter: 'blur(0)' },\n ];\n return ctx.animate(el, out ? [f[2], f[0]] : f, { duration: o.duration, easing: 'cubic-bezier(.6,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'shatter',\n kind: 'page',\n description: 'The element breaks into shards that fly apart (`mode: \"out\"`) or fly together (`\"in\"`) (`pieces`, `duration`).',\n defaults: { mode: 'out', duration: 900, pieces: 12 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const n = Math.max(4, Math.min(24, o.pieces | 0));\n const cols = Math.ceil(Math.sqrt(n / 2));\n const rows = Math.ceil(n / 2 / cols);\n const clips: string[] = [];\n for (let r = 0; r < rows; r++)\n for (let c = 0; c < cols; c++) {\n const x0 = (c / cols) * 100;\n const x1 = ((c + 1) / cols) * 100;\n const y0 = (r / rows) * 100;\n const y1 = ((r + 1) / rows) * 100;\n clips.push(`polygon(${x0}% ${y0}%,${x1}% ${y0}%,${x0}% ${y1}%)`, `polygon(${x1}% ${y0}%,${x1}% ${y1}%,${x0}% ${y1}%)`);\n }\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const a = (i * 2.399) % (Math.PI * 2);\n const d = 80 + (i % 5) * 30;\n const scattered = { transform: `translate(${(Math.cos(a) * d).toFixed(0)}px,${(Math.sin(a) * d + 40).toFixed(0)}px) rotate(${((i % 7) - 3) * 35}deg) rotateX(${(i % 3) * 40}deg)`, opacity: 0 };\n const whole = { transform: 'none', opacity: 1 };\n return ctx.animate(p, out ? [whole, scattered] : [scattered, whole], { duration: o.duration, delay: (i % 6) * 25, easing: out ? 'cubic-bezier(.4,0,.9,.6)' : 'cubic-bezier(.1,.6,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'mosaic-flip',\n kind: 'page',\n description: 'A grid of tiles flips over in a diagonal wave (`cols`, `rows`, `duration` per tile).',\n defaults: { mode: 'in', cols: 6, rows: 4, duration: 520 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const C = Math.max(2, Math.min(12, o.cols | 0));\n const R = Math.max(2, Math.min(10, o.rows | 0));\n const clips: string[] = [];\n for (let r = 0; r < R; r++) for (let c = 0; c < C; c++) clips.push(`inset(${((r / R) * 100).toFixed(2)}% ${(100 - ((c + 1) / C) * 100).toFixed(2)}% ${(100 - ((r + 1) / R) * 100).toFixed(2)}% ${((c / C) * 100).toFixed(2)}%)`);\n const { parts, done } = pieces(el, clips);\n const anims = parts.map((p, i) => {\n const r = Math.floor(i / C);\n const c = i % C;\n p.style.transformOrigin = `${((c + 0.5) / C) * 100}% ${((r + 0.5) / R) * 100}%`;\n p.style.backfaceVisibility = 'hidden';\n const f: Keyframe[] = [{ transform: 'rotateY(-90deg)', opacity: 0 }, { transform: 'rotateY(0)', opacity: 1 }];\n return ctx.animate(p, out ? [f[1], f[0]] : f, { duration: o.duration, delay: (r + c) * 45, easing: 'cubic-bezier(.3,.7,.3,1)', fill: 'both' });\n });\n return all(anims).then(() => {\n done();\n if (out) el.style.visibility = 'hidden';\n });\n },\n },\n {\n name: 'liquid-wipe',\n kind: 'page',\n description: 'A wavy liquid edge sweeps across the element (`direction` left | right | up | down, `waves`, `duration`).',\n defaults: { mode: 'in', direction: 'right', waves: 3, duration: 1000 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const N = 24;\n const shape = (k: number) => {\n const pts: string[] = [];\n const amp = 6 * Math.sin(Math.PI * k);\n for (let i = 0; i <= N; i++) {\n const t = (i / N) * 100;\n const edge = k * 120 - 10 + amp * Math.sin((i / N) * Math.PI * 2 * o.waves + k * 6);\n pts.push(o.direction === 'up' || o.direction === 'down' ? `${t.toFixed(1)}% ${(o.direction === 'down' ? edge : 100 - edge).toFixed(1)}%` : `${(o.direction === 'left' ? 100 - edge : edge).toFixed(1)}% ${t.toFixed(1)}%`);\n }\n const tail = o.direction === 'up' ? ['100% 100%', '0% 100%'] : o.direction === 'down' ? ['100% 0%', '0% 0%'] : o.direction === 'left' ? ['100% 100%', '100% 0%'] : ['0% 100%', '0% 0%'];\n if (o.direction === 'up' || o.direction === 'down') return `polygon(${[...pts, ...tail].join(',')})`;\n return `polygon(${[...pts, ...tail].join(',')})`;\n };\n const frames: Keyframe[] = Array.from({ length: 9 }, (_, i) => ({ clipPath: shape(i / 8) }));\n return ctx.animate(el, out ? frames.reverse() : frames, { duration: o.duration, easing: 'cubic-bezier(.65,.05,.35,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n {\n name: 'page-curl',\n kind: 'page',\n description: 'The element turns like a page around its left edge, with a moving shade (`duration`).',\n defaults: { mode: 'in', duration: 900 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const prev = el.style.transformOrigin;\n el.style.transformOrigin = '0% 50%';\n const f: Keyframe[] = [\n { transform: 'perspective(1400px) rotateY(-100deg) skewY(-4deg)', filter: 'brightness(.55)', boxShadow: '30px 0 40px rgba(0,0,0,.35)', opacity: 0.4 },\n { transform: 'perspective(1400px) rotateY(-40deg) skewY(-2deg)', filter: 'brightness(.8)', boxShadow: '20px 0 30px rgba(0,0,0,.25)', opacity: 1, offset: 0.5 },\n { transform: 'perspective(1400px) rotateY(0) skewY(0)', filter: 'brightness(1)', boxShadow: '0 0 0 rgba(0,0,0,0)', opacity: 1 },\n ];\n const a = ctx.animate(el, dir(f, out), { duration: o.duration, easing: 'cubic-bezier(.45,.05,.3,1)', fill: out ? 'forwards' : 'none' });\n const reset = () => (el.style.transformOrigin = prev);\n if (a) a.finished.then(reset, reset);\n else reset();\n return a;\n },\n },\n {\n name: 'camera-dolly',\n kind: 'page',\n description: 'A dolly zoom: the element moves in from (or out to) depth with a depth-of-field blur (`scale`, `duration`).',\n defaults: { mode: 'in', duration: 900, scale: 1.35 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n const out = isOut(o);\n if (ctx.reduced) return fade(el, ctx, out);\n const f: Keyframe[] = [\n { transform: `perspective(900px) translateZ(-260px) scale(${o.scale})`, filter: 'blur(10px)', opacity: 0 },\n { transform: 'perspective(900px) translateZ(0) scale(1)', filter: 'blur(0)', opacity: 1 },\n ];\n return ctx.animate(el, out ? [f[1], { ...f[0], transform: `perspective(900px) translateZ(260px) scale(${(1 / o.scale).toFixed(3)})` }] : f, { duration: o.duration, easing: 'cubic-bezier(.2,.7,.2,1)', fill: out ? 'forwards' : 'none' });\n },\n },\n];\n\n/** CSS keyframes for the `::view-transition-new(root)` snapshot of each effect (cross-document transitions). */\nconst VT_CSS: Record<string, string> = {\n 'ripple-dissolve': 'from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(150% at 50% 50%)}',\n 'liquid-wipe': 'from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}',\n 'page-curl': 'from{transform:perspective(1400px) rotateY(-100deg);transform-origin:0 50%;filter:brightness(.6)}to{transform:none;transform-origin:0 50%}',\n 'camera-dolly': 'from{transform:scale(1.35);filter:blur(10px);opacity:0}to{transform:none;filter:none;opacity:1}',\n 'mosaic-flip': 'from{transform:perspective(900px) rotateY(-90deg);opacity:0}to{transform:none;opacity:1}',\n shatter: 'from{transform:scale(.85) rotate(-3deg);opacity:0;filter:blur(4px)}to{transform:none;opacity:1;filter:none}',\n};\n\n/**\n * Run `update` (a DOM change) as a transition: inside `document.startViewTransition`\n * when supported (the new snapshot plays `effect`), otherwise `update()` then the\n * effect on `target` (default `document.body`'s first element).\n */\nexport async function pageTransition(update: () => void | Promise<void>, effect = 'ripple-dissolve', options: Record<string, unknown> = {}, target?: HTMLElement): Promise<void> {\n const doc = document as Document & { startViewTransition?: (cb: () => unknown) => { ready: Promise<void>; finished: Promise<void> } };\n const def = getEffect(effect);\n if (typeof doc.startViewTransition === 'function' && !prefersReducedMotion()) {\n const vt = doc.startViewTransition(update);\n await vt.ready.catch(() => undefined);\n const css = VT_CSS[effect];\n if (css) {\n const dur = Number(options.duration) || Number(def?.defaults?.duration) || 800;\n const m = /from\\{([^}]*)\\}to\\{([^}]*)\\}/.exec(css);\n const toObj = (s: string) => Object.fromEntries(s.split(';').filter(Boolean).map((d) => { const i = d.indexOf(':'); return [d.slice(0, i).replace(/-([a-z])/g, (_, c) => c.toUpperCase()), d.slice(i + 1)]; }));\n if (m) document.documentElement.animate([toObj(m[1]), toObj(m[2])], { duration: dur, easing: 'cubic-bezier(.6,.05,.3,1)', pseudoElement: '::view-transition-new(root)' } as KeyframeAnimationOptions);\n }\n await vt.finished.catch(() => undefined);\n return;\n }\n await update();\n const el = target || (document.body.firstElementChild as HTMLElement | null);\n if (el && def) {\n const { playEffect } = await import('../fx/registry');\n await playEffect(el, effect, { ...options, mode: 'in' });\n }\n}\n\n/** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */\nexport function crossDocumentTransitions(effect = 'ripple-dissolve', duration = 700): () => void {\n const style = document.createElement('style');\n style.setAttribute('data-usa-vt', effect);\n const kf = VT_CSS[effect] || VT_CSS['camera-dolly'];\n style.textContent = `@view-transition{navigation:auto}@keyframes usa-vt-in{${kf}}::view-transition-new(root){animation:usa-vt-in ${duration}ms cubic-bezier(.6,.05,.3,1) both}::view-transition-old(root){animation:none}@media (prefers-reduced-motion:reduce){::view-transition-new(root){animation-duration:1ms}}`;\n document.head.appendChild(style);\n return () => style.remove();\n}\n\n/** Register the 6.7 transitions pack (idempotent). */\nexport function registerTransitionsPack(): void {\n registerEffects(TRANSITIONS2_FX);\n}\n\n"],"names":[],"mappings":"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"}
|
|
@@ -255,11 +255,11 @@ const WEATHER_FX = [
|
|
|
255
255
|
}),
|
|
256
256
|
];
|
|
257
257
|
/** Register the 6.8 weather & ambience pack (idempotent). */
|
|
258
|
-
function
|
|
258
|
+
function registerWeatherPack() {
|
|
259
259
|
registry.registerEffects(WEATHER_FX);
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
exports.WEATHER_FX = WEATHER_FX;
|
|
263
|
-
exports.
|
|
263
|
+
exports.registerWeatherPack = registerWeatherPack;
|
|
264
264
|
exports.skyAt = skyAt;
|
|
265
265
|
//# sourceMappingURL=fx-weather.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx-weather.cjs","sources":["../../src/components/fx2/weather.ts"],"sourcesContent":["/**\n * 6.8 — Weather & ambience (`motionary/components/fx-weather`), registered\n * through `registerEffect()` (kind `background`, Canvas 2D):\n *\n * - `rain-glass` — droplets sit on a window pane, grow, and run down leaving\n * trails.\n * - `snowfall` — flakes drift down and pile up along the bottom edge.\n * - `lightning` — a safe storm: branching bolts at most once per `interval`\n * (≥ 2.5 s, far below the WCAG 2.3.1 limit of 3 flashes / s), the sky glow\n * is capped at 22 % brightness and there is no flash at all under reduced\n * motion.\n * - `fog` — soft layered fog banks drifting at different speeds.\n * - `aurora-veil` — curtains of northern lights waving over a night sky.\n * - `day-cycle` — the sky moves through dawn, day, dusk and night with the sun\n * and moon on an arc (`cycle` seconds, or a fixed `hour` 0–24).\n *\n * Every effect renders only while visible, adapts its quality and draws one\n * static frame under reduced motion.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { canvasBackground, type GenerativeSpec } from '../effects/generative';\nimport { rand } from '../effects/shared';\n\nconst bg = (name: string, description: string, defaults: Record<string, unknown>, spec: 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, o);\n ctx.onCleanup(stop);\n return stop;\n },\n});\n\nconst step = (state: any, t: number): number => {\n const dt = state.last ? Math.min(0.05, t - state.last) : 0;\n state.last = t;\n return dt;\n};\n\n/** Mix two `[r,g,b]` colours. */\nconst mix = (a: number[], b: number[], k: number): string => `rgb(${a.map((v, i) => Math.round(v + (b[i] - v) * k)).join(',')})`;\n\n/** Sky colours (top, bottom) for an hour 0–24. */\nexport function skyAt(hour: number): [string, string] {\n const keys: [number, number[], number[]][] = [\n [0, [8, 10, 30], [22, 26, 60]],\n [5, [30, 27, 75], [250, 140, 110]],\n [7, [90, 160, 230], [255, 210, 160]],\n [12, [40, 130, 230], [170, 215, 255]],\n [17, [70, 120, 200], [255, 190, 130]],\n [19, [60, 40, 110], [250, 110, 90]],\n [21, [12, 14, 40], [40, 36, 90]],\n [24, [8, 10, 30], [22, 26, 60]],\n ];\n const h = ((hour % 24) + 24) % 24;\n let i = 0;\n while (i < keys.length - 2 && keys[i + 1][0] <= h) i++;\n const [h0, t0, b0] = keys[i];\n const [h1, t1, b1] = keys[i + 1];\n const k = (h - h0) / (h1 - h0 || 1);\n return [mix(t0, t1, k), mix(b0, b1, k)];\n}\n\nexport const WEATHER_FX: EffectDefinition[] = [\n bg('rain-glass', 'Droplets on a window pane grow and run down, leaving trails (Canvas 2D).', { count: 70, tint: 'rgba(200,225,255,.55)' }, {\n init: (w, h, o) => ({ d: Array.from({ length: o.count }, () => ({ x: Math.random() * w, y: Math.random() * h, r: rand(1, 3.2), v: 0, trail: [] as number[][] })) }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = step(state, t) * o.speed;\n ctx.clearRect(0, 0, w, h);\n ctx.fillStyle = 'rgba(30,50,80,.12)';\n ctx.fillRect(0, 0, w, h);\n for (const d of state.d) {\n if (d.r > 2.6 && Math.random() < dt * 0.6) d.v = rand(40, 110);\n if (d.v) {\n d.y += d.v * dt;\n d.x += Math.sin(d.y * 0.05) * 0.3;\n d.trail.push([d.x, d.y]);\n if (d.trail.length > 18) d.trail.shift();\n if (d.y > h + 6) Object.assign(d, { y: -4, x: Math.random() * w, r: rand(1, 2.4), v: 0, trail: [] });\n } else d.r = Math.min(3.4, d.r + dt * 0.25);\n if (d.trail.length > 1) {\n ctx.strokeStyle = 'rgba(220,235,255,.25)';\n ctx.lineWidth = d.r * 0.7;\n ctx.beginPath();\n d.trail.forEach(([x, y]: number[], i: number) => (i ? ctx.lineTo(x, y) : ctx.moveTo(x, y)));\n ctx.stroke();\n }\n const g = ctx.createRadialGradient(d.x - d.r * 0.3, d.y - d.r * 0.4, 0, d.x, d.y, d.r * 1.4);\n g.addColorStop(0, 'rgba(255,255,255,.9)');\n g.addColorStop(1, o.tint);\n ctx.fillStyle = g;\n ctx.beginPath();\n ctx.ellipse(d.x, d.y, d.r, d.r * 1.15, 0, 0, Math.PI * 2);\n ctx.fill();\n }\n },\n }),\n bg('snowfall', 'Snowflakes drift down and pile up along the bottom edge (Canvas 2D).', { count: 90, pile: 18, color: '#ffffff' }, {\n init: (w, h, o) => ({ f: Array.from({ length: o.count }, () => ({ x: Math.random() * w, y: Math.random() * h, r: rand(1, 3.4), ph: rand(0, 6.3) })), pile: new Float32Array(Math.max(2, Math.ceil(w / 6))) }),\n draw: ({ ctx, w, h, t, state, o, quality }) => {\n const dt = step(state, t) * o.speed;\n ctx.clearRect(0, 0, w, h);\n ctx.fillStyle = o.color;\n const n = Math.max(8, Math.round(state.f.length * quality));\n for (let i = 0; i < n; i++) {\n const f = state.f[i];\n f.y += (14 + f.r * 9) * dt;\n f.x += Math.sin(t * 0.8 + f.ph) * 12 * dt;\n const col = Math.min(state.pile.length - 1, Math.max(0, Math.floor(f.x / 6)));\n if (f.y > h - state.pile[col]) {\n state.pile[col] = Math.min(o.pile, state.pile[col] + f.r * 0.12);\n f.y = -5;\n f.x = Math.random() * w;\n }\n ctx.globalAlpha = 0.55 + f.r / 8;\n ctx.beginPath();\n ctx.arc(f.x, f.y, f.r, 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.globalAlpha = 0.95;\n ctx.beginPath();\n ctx.moveTo(0, h);\n for (let c = 0; c < state.pile.length; c++) ctx.lineTo(c * 6 + 3, h - state.pile[c] - Math.sin(c * 0.7) * Math.min(2, state.pile[c] * 0.2));\n ctx.lineTo(w, h);\n ctx.fill();\n ctx.globalAlpha = 1;\n },\n }),\n bg('lightning', 'A safe storm: branching bolts at most once per `interval` (≥ 2.5 s), sky glow capped at 22 %, no flash under reduced motion (Canvas 2D).', { interval: 4, glow: 0.22, color: '#c7d2fe' }, {\n init: () => ({ next: 1.2, bolt: null as number[][][] | null, age: 0 }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = step(state, t);\n ctx.clearRect(0, 0, w, h);\n const sky = ctx.createLinearGradient(0, 0, 0, h);\n sky.addColorStop(0, '#0b1020');\n sky.addColorStop(1, '#1e293b');\n ctx.fillStyle = sky;\n ctx.fillRect(0, 0, w, h);\n if (t === 0) return;\n const every = Math.max(2.5, Number(o.interval) || 4);\n if (t > state.next) {\n state.next = t + every + Math.random() * every * 0.5;\n const segs: number[][][] = [];\n const branch = (x: number, y: number, len: number, depth: number) => {\n let cx = x;\n let cy = y;\n const path: number[][] = [[cx, cy]];\n while (cy < y + len && cy < h) {\n cx += rand(-14, 14);\n cy += rand(8, 18);\n path.push([cx, cy]);\n if (depth < 2 && Math.random() < 0.12) branch(cx, cy, len * 0.4, depth + 1);\n }\n segs.push(path);\n };\n branch(rand(w * 0.2, w * 0.8), 0, h * 0.85, 0);\n state.bolt = segs;\n state.age = 0;\n }\n if (state.bolt) {\n state.age += dt;\n const a = Math.max(0, 1 - state.age / 0.45);\n ctx.fillStyle = `rgba(200,210,255,${(Math.min(0.22, Number(o.glow) || 0.22) * a).toFixed(3)})`;\n ctx.fillRect(0, 0, w, h);\n ctx.strokeStyle = o.color;\n ctx.shadowColor = o.color;\n ctx.shadowBlur = 12;\n ctx.globalAlpha = a;\n state.bolt.forEach((p: number[][], i: number) => {\n ctx.lineWidth = i === state.bolt.length - 1 ? 2.4 : 1;\n ctx.beginPath();\n p.forEach(([x, y], j) => (j ? ctx.lineTo(x, y) : ctx.moveTo(x, y)));\n ctx.stroke();\n });\n ctx.globalAlpha = 1;\n ctx.shadowBlur = 0;\n if (a <= 0) state.bolt = null;\n }\n },\n }),\n bg('fog', 'Soft layered fog banks drifting at different speeds (Canvas 2D).', { banks: 9, color: '226,232,240', density: 0.35 }, {\n init: (w, h, o) => ({ b: Array.from({ length: o.banks }, (_, i) => ({ x: Math.random() * w, y: h * (0.35 + (i / o.banks) * 0.65), r: rand(0.35, 0.7) * Math.max(w, h), v: rand(6, 22) * (i % 2 ? 1 : -1) })) }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = step(state, t) * o.speed;\n ctx.clearRect(0, 0, w, h);\n for (const b of state.b) {\n b.x += b.v * dt;\n if (b.x > w + b.r) b.x = -b.r;\n if (b.x < -b.r) b.x = w + b.r;\n const g = ctx.createRadialGradient(b.x, b.y, 0, b.x, b.y, b.r);\n g.addColorStop(0, `rgba(${o.color},${o.density})`);\n g.addColorStop(1, `rgba(${o.color},0)`);\n ctx.fillStyle = g;\n ctx.fillRect(0, 0, w, h);\n }\n },\n }),\n bg('aurora-veil', 'Curtains of northern lights waving over a starry night sky (Canvas 2D).', { colors: ['#22d3ee', '#a3e635', '#c084fc'], stars: 60 }, {\n init: (w, h, o) => ({ s: Array.from({ length: o.stars }, () => [Math.random() * w, Math.random() * h * 0.7, Math.random()]) }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const sky = ctx.createLinearGradient(0, 0, 0, h);\n sky.addColorStop(0, '#020617');\n sky.addColorStop(1, '#0f172a');\n ctx.fillStyle = sky;\n ctx.fillRect(0, 0, w, h);\n for (const [x, y, k] of state.s) {\n ctx.fillStyle = `rgba(255,255,255,${(0.3 + 0.5 * Math.abs(Math.sin(t * 1.5 + k * 9))).toFixed(2)})`;\n ctx.fillRect(x, y, 1.4, 1.4);\n }\n ctx.globalCompositeOperation = 'lighter';\n (o.colors as string[]).forEach((c, i) => {\n const base = h * (0.25 + i * 0.12);\n for (let x = 0; x < w; x += 4) {\n const y = base + Math.sin(x * 0.012 + t * (0.5 + i * 0.2) + i) * h * 0.08 + Math.sin(x * 0.03 - t * 0.7) * h * 0.03;\n const len = h * (0.22 + 0.12 * Math.sin(x * 0.02 + t + i));\n const g = ctx.createLinearGradient(0, y - len, 0, y);\n g.addColorStop(0, 'rgba(0,0,0,0)');\n g.addColorStop(1, c);\n ctx.globalAlpha = 0.16;\n ctx.fillStyle = g;\n ctx.fillRect(x, y - len, 4, len);\n }\n });\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = 'source-over';\n },\n }),\n bg('day-cycle', 'The sky moves through dawn, day, dusk and night with the sun and moon on an arc (`cycle` seconds or a fixed `hour`) (Canvas 2D).', { cycle: 24, hour: null }, {\n draw: ({ ctx, w, h, t, o }) => {\n const hour = typeof o.hour === 'number' ? o.hour : (8 + (t / Math.max(4, Number(o.cycle) || 24)) * 24) % 24;\n const [top, bot] = skyAt(hour);\n const g = ctx.createLinearGradient(0, 0, 0, h);\n g.addColorStop(0, top);\n g.addColorStop(1, bot);\n ctx.fillStyle = g;\n ctx.fillRect(0, 0, w, h);\n const body = (k: number, color: string, r: number) => {\n if (k < 0 || k > 1) return;\n const x = w * k;\n const y = h * 0.9 - Math.sin(k * Math.PI) * h * 0.75;\n ctx.fillStyle = color;\n ctx.shadowColor = color;\n ctx.shadowBlur = 24;\n ctx.beginPath();\n ctx.arc(x, y, r, 0, Math.PI * 2);\n ctx.fill();\n ctx.shadowBlur = 0;\n };\n body((hour - 6) / 12, '#fde047', Math.min(w, h) * 0.07);\n body(((hour + 6) % 24) / 12, '#e2e8f0', Math.min(w, h) * 0.05);\n ctx.fillStyle = 'rgba(15,23,42,.55)';\n ctx.beginPath();\n ctx.moveTo(0, h);\n for (let x = 0; x <= w; x += 8) ctx.lineTo(x, h * 0.88 - Math.sin(x * 0.015) * h * 0.05 - Math.sin(x * 0.041) * h * 0.02);\n ctx.lineTo(w, h);\n ctx.fill();\n },\n }),\n];\n\n/** Register the 6.8 weather & ambience pack (idempotent). */\nexport function registerWeatherEffects(): void {\n registerEffects(WEATHER_FX);\n}\n"],"names":["canvasBackground","rand","registerEffects"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fx-weather.cjs","sources":["../../src/components/fx2/weather.ts"],"sourcesContent":["/**\n * 6.8 — Weather & ambience (`motionary/components/fx-weather`), registered\n * through `registerEffect()` (kind `background`, Canvas 2D):\n *\n * - `rain-glass` — droplets sit on a window pane, grow, and run down leaving\n * trails.\n * - `snowfall` — flakes drift down and pile up along the bottom edge.\n * - `lightning` — a safe storm: branching bolts at most once per `interval`\n * (≥ 2.5 s, far below the WCAG 2.3.1 limit of 3 flashes / s), the sky glow\n * is capped at 22 % brightness and there is no flash at all under reduced\n * motion.\n * - `fog` — soft layered fog banks drifting at different speeds.\n * - `aurora-veil` — curtains of northern lights waving over a night sky.\n * - `day-cycle` — the sky moves through dawn, day, dusk and night with the sun\n * and moon on an arc (`cycle` seconds, or a fixed `hour` 0–24).\n *\n * Every effect renders only while visible, adapts its quality and draws one\n * static frame under reduced motion.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\nimport { canvasBackground, type GenerativeSpec } from '../effects/generative';\nimport { rand } from '../effects/shared';\n\nconst bg = (name: string, description: string, defaults: Record<string, unknown>, spec: 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, o);\n ctx.onCleanup(stop);\n return stop;\n },\n});\n\nconst step = (state: any, t: number): number => {\n const dt = state.last ? Math.min(0.05, t - state.last) : 0;\n state.last = t;\n return dt;\n};\n\n/** Mix two `[r,g,b]` colours. */\nconst mix = (a: number[], b: number[], k: number): string => `rgb(${a.map((v, i) => Math.round(v + (b[i] - v) * k)).join(',')})`;\n\n/** Sky colours (top, bottom) for an hour 0–24. */\nexport function skyAt(hour: number): [string, string] {\n const keys: [number, number[], number[]][] = [\n [0, [8, 10, 30], [22, 26, 60]],\n [5, [30, 27, 75], [250, 140, 110]],\n [7, [90, 160, 230], [255, 210, 160]],\n [12, [40, 130, 230], [170, 215, 255]],\n [17, [70, 120, 200], [255, 190, 130]],\n [19, [60, 40, 110], [250, 110, 90]],\n [21, [12, 14, 40], [40, 36, 90]],\n [24, [8, 10, 30], [22, 26, 60]],\n ];\n const h = ((hour % 24) + 24) % 24;\n let i = 0;\n while (i < keys.length - 2 && keys[i + 1][0] <= h) i++;\n const [h0, t0, b0] = keys[i];\n const [h1, t1, b1] = keys[i + 1];\n const k = (h - h0) / (h1 - h0 || 1);\n return [mix(t0, t1, k), mix(b0, b1, k)];\n}\n\nexport const WEATHER_FX: EffectDefinition[] = [\n bg('rain-glass', 'Droplets on a window pane grow and run down, leaving trails (Canvas 2D).', { count: 70, tint: 'rgba(200,225,255,.55)' }, {\n init: (w, h, o) => ({ d: Array.from({ length: o.count }, () => ({ x: Math.random() * w, y: Math.random() * h, r: rand(1, 3.2), v: 0, trail: [] as number[][] })) }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = step(state, t) * o.speed;\n ctx.clearRect(0, 0, w, h);\n ctx.fillStyle = 'rgba(30,50,80,.12)';\n ctx.fillRect(0, 0, w, h);\n for (const d of state.d) {\n if (d.r > 2.6 && Math.random() < dt * 0.6) d.v = rand(40, 110);\n if (d.v) {\n d.y += d.v * dt;\n d.x += Math.sin(d.y * 0.05) * 0.3;\n d.trail.push([d.x, d.y]);\n if (d.trail.length > 18) d.trail.shift();\n if (d.y > h + 6) Object.assign(d, { y: -4, x: Math.random() * w, r: rand(1, 2.4), v: 0, trail: [] });\n } else d.r = Math.min(3.4, d.r + dt * 0.25);\n if (d.trail.length > 1) {\n ctx.strokeStyle = 'rgba(220,235,255,.25)';\n ctx.lineWidth = d.r * 0.7;\n ctx.beginPath();\n d.trail.forEach(([x, y]: number[], i: number) => (i ? ctx.lineTo(x, y) : ctx.moveTo(x, y)));\n ctx.stroke();\n }\n const g = ctx.createRadialGradient(d.x - d.r * 0.3, d.y - d.r * 0.4, 0, d.x, d.y, d.r * 1.4);\n g.addColorStop(0, 'rgba(255,255,255,.9)');\n g.addColorStop(1, o.tint);\n ctx.fillStyle = g;\n ctx.beginPath();\n ctx.ellipse(d.x, d.y, d.r, d.r * 1.15, 0, 0, Math.PI * 2);\n ctx.fill();\n }\n },\n }),\n bg('snowfall', 'Snowflakes drift down and pile up along the bottom edge (Canvas 2D).', { count: 90, pile: 18, color: '#ffffff' }, {\n init: (w, h, o) => ({ f: Array.from({ length: o.count }, () => ({ x: Math.random() * w, y: Math.random() * h, r: rand(1, 3.4), ph: rand(0, 6.3) })), pile: new Float32Array(Math.max(2, Math.ceil(w / 6))) }),\n draw: ({ ctx, w, h, t, state, o, quality }) => {\n const dt = step(state, t) * o.speed;\n ctx.clearRect(0, 0, w, h);\n ctx.fillStyle = o.color;\n const n = Math.max(8, Math.round(state.f.length * quality));\n for (let i = 0; i < n; i++) {\n const f = state.f[i];\n f.y += (14 + f.r * 9) * dt;\n f.x += Math.sin(t * 0.8 + f.ph) * 12 * dt;\n const col = Math.min(state.pile.length - 1, Math.max(0, Math.floor(f.x / 6)));\n if (f.y > h - state.pile[col]) {\n state.pile[col] = Math.min(o.pile, state.pile[col] + f.r * 0.12);\n f.y = -5;\n f.x = Math.random() * w;\n }\n ctx.globalAlpha = 0.55 + f.r / 8;\n ctx.beginPath();\n ctx.arc(f.x, f.y, f.r, 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.globalAlpha = 0.95;\n ctx.beginPath();\n ctx.moveTo(0, h);\n for (let c = 0; c < state.pile.length; c++) ctx.lineTo(c * 6 + 3, h - state.pile[c] - Math.sin(c * 0.7) * Math.min(2, state.pile[c] * 0.2));\n ctx.lineTo(w, h);\n ctx.fill();\n ctx.globalAlpha = 1;\n },\n }),\n bg('lightning', 'A safe storm: branching bolts at most once per `interval` (≥ 2.5 s), sky glow capped at 22 %, no flash under reduced motion (Canvas 2D).', { interval: 4, glow: 0.22, color: '#c7d2fe' }, {\n init: () => ({ next: 1.2, bolt: null as number[][][] | null, age: 0 }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = step(state, t);\n ctx.clearRect(0, 0, w, h);\n const sky = ctx.createLinearGradient(0, 0, 0, h);\n sky.addColorStop(0, '#0b1020');\n sky.addColorStop(1, '#1e293b');\n ctx.fillStyle = sky;\n ctx.fillRect(0, 0, w, h);\n if (t === 0) return;\n const every = Math.max(2.5, Number(o.interval) || 4);\n if (t > state.next) {\n state.next = t + every + Math.random() * every * 0.5;\n const segs: number[][][] = [];\n const branch = (x: number, y: number, len: number, depth: number) => {\n let cx = x;\n let cy = y;\n const path: number[][] = [[cx, cy]];\n while (cy < y + len && cy < h) {\n cx += rand(-14, 14);\n cy += rand(8, 18);\n path.push([cx, cy]);\n if (depth < 2 && Math.random() < 0.12) branch(cx, cy, len * 0.4, depth + 1);\n }\n segs.push(path);\n };\n branch(rand(w * 0.2, w * 0.8), 0, h * 0.85, 0);\n state.bolt = segs;\n state.age = 0;\n }\n if (state.bolt) {\n state.age += dt;\n const a = Math.max(0, 1 - state.age / 0.45);\n ctx.fillStyle = `rgba(200,210,255,${(Math.min(0.22, Number(o.glow) || 0.22) * a).toFixed(3)})`;\n ctx.fillRect(0, 0, w, h);\n ctx.strokeStyle = o.color;\n ctx.shadowColor = o.color;\n ctx.shadowBlur = 12;\n ctx.globalAlpha = a;\n state.bolt.forEach((p: number[][], i: number) => {\n ctx.lineWidth = i === state.bolt.length - 1 ? 2.4 : 1;\n ctx.beginPath();\n p.forEach(([x, y], j) => (j ? ctx.lineTo(x, y) : ctx.moveTo(x, y)));\n ctx.stroke();\n });\n ctx.globalAlpha = 1;\n ctx.shadowBlur = 0;\n if (a <= 0) state.bolt = null;\n }\n },\n }),\n bg('fog', 'Soft layered fog banks drifting at different speeds (Canvas 2D).', { banks: 9, color: '226,232,240', density: 0.35 }, {\n init: (w, h, o) => ({ b: Array.from({ length: o.banks }, (_, i) => ({ x: Math.random() * w, y: h * (0.35 + (i / o.banks) * 0.65), r: rand(0.35, 0.7) * Math.max(w, h), v: rand(6, 22) * (i % 2 ? 1 : -1) })) }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const dt = step(state, t) * o.speed;\n ctx.clearRect(0, 0, w, h);\n for (const b of state.b) {\n b.x += b.v * dt;\n if (b.x > w + b.r) b.x = -b.r;\n if (b.x < -b.r) b.x = w + b.r;\n const g = ctx.createRadialGradient(b.x, b.y, 0, b.x, b.y, b.r);\n g.addColorStop(0, `rgba(${o.color},${o.density})`);\n g.addColorStop(1, `rgba(${o.color},0)`);\n ctx.fillStyle = g;\n ctx.fillRect(0, 0, w, h);\n }\n },\n }),\n bg('aurora-veil', 'Curtains of northern lights waving over a starry night sky (Canvas 2D).', { colors: ['#22d3ee', '#a3e635', '#c084fc'], stars: 60 }, {\n init: (w, h, o) => ({ s: Array.from({ length: o.stars }, () => [Math.random() * w, Math.random() * h * 0.7, Math.random()]) }),\n draw: ({ ctx, w, h, t, state, o }) => {\n const sky = ctx.createLinearGradient(0, 0, 0, h);\n sky.addColorStop(0, '#020617');\n sky.addColorStop(1, '#0f172a');\n ctx.fillStyle = sky;\n ctx.fillRect(0, 0, w, h);\n for (const [x, y, k] of state.s) {\n ctx.fillStyle = `rgba(255,255,255,${(0.3 + 0.5 * Math.abs(Math.sin(t * 1.5 + k * 9))).toFixed(2)})`;\n ctx.fillRect(x, y, 1.4, 1.4);\n }\n ctx.globalCompositeOperation = 'lighter';\n (o.colors as string[]).forEach((c, i) => {\n const base = h * (0.25 + i * 0.12);\n for (let x = 0; x < w; x += 4) {\n const y = base + Math.sin(x * 0.012 + t * (0.5 + i * 0.2) + i) * h * 0.08 + Math.sin(x * 0.03 - t * 0.7) * h * 0.03;\n const len = h * (0.22 + 0.12 * Math.sin(x * 0.02 + t + i));\n const g = ctx.createLinearGradient(0, y - len, 0, y);\n g.addColorStop(0, 'rgba(0,0,0,0)');\n g.addColorStop(1, c);\n ctx.globalAlpha = 0.16;\n ctx.fillStyle = g;\n ctx.fillRect(x, y - len, 4, len);\n }\n });\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = 'source-over';\n },\n }),\n bg('day-cycle', 'The sky moves through dawn, day, dusk and night with the sun and moon on an arc (`cycle` seconds or a fixed `hour`) (Canvas 2D).', { cycle: 24, hour: null }, {\n draw: ({ ctx, w, h, t, o }) => {\n const hour = typeof o.hour === 'number' ? o.hour : (8 + (t / Math.max(4, Number(o.cycle) || 24)) * 24) % 24;\n const [top, bot] = skyAt(hour);\n const g = ctx.createLinearGradient(0, 0, 0, h);\n g.addColorStop(0, top);\n g.addColorStop(1, bot);\n ctx.fillStyle = g;\n ctx.fillRect(0, 0, w, h);\n const body = (k: number, color: string, r: number) => {\n if (k < 0 || k > 1) return;\n const x = w * k;\n const y = h * 0.9 - Math.sin(k * Math.PI) * h * 0.75;\n ctx.fillStyle = color;\n ctx.shadowColor = color;\n ctx.shadowBlur = 24;\n ctx.beginPath();\n ctx.arc(x, y, r, 0, Math.PI * 2);\n ctx.fill();\n ctx.shadowBlur = 0;\n };\n body((hour - 6) / 12, '#fde047', Math.min(w, h) * 0.07);\n body(((hour + 6) % 24) / 12, '#e2e8f0', Math.min(w, h) * 0.05);\n ctx.fillStyle = 'rgba(15,23,42,.55)';\n ctx.beginPath();\n ctx.moveTo(0, h);\n for (let x = 0; x <= w; x += 8) ctx.lineTo(x, h * 0.88 - Math.sin(x * 0.015) * h * 0.05 - Math.sin(x * 0.041) * h * 0.02);\n ctx.lineTo(w, h);\n ctx.fill();\n },\n }),\n];\n\n/** Register the 6.8 weather & ambience pack (idempotent). */\nexport function registerWeatherPack(): void {\n registerEffects(WEATHER_FX);\n}\n\n"],"names":["canvasBackground","rand","registerEffects"],"mappings":"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"}
|
|
@@ -65,6 +65,6 @@ interface EffectDefinition<O extends Record<string, unknown> = Record<string, an
|
|
|
65
65
|
declare function skyAt(hour: number): [string, string];
|
|
66
66
|
declare const WEATHER_FX: EffectDefinition[];
|
|
67
67
|
/** Register the 6.8 weather & ambience pack (idempotent). */
|
|
68
|
-
declare function
|
|
68
|
+
declare function registerWeatherPack(): void;
|
|
69
69
|
|
|
70
|
-
export { WEATHER_FX,
|
|
70
|
+
export { WEATHER_FX, registerWeatherPack, skyAt };
|
|
@@ -65,6 +65,6 @@ interface EffectDefinition<O extends Record<string, unknown> = Record<string, an
|
|
|
65
65
|
declare function skyAt(hour: number): [string, string];
|
|
66
66
|
declare const WEATHER_FX: EffectDefinition[];
|
|
67
67
|
/** Register the 6.8 weather & ambience pack (idempotent). */
|
|
68
|
-
declare function
|
|
68
|
+
declare function registerWeatherPack(): void;
|
|
69
69
|
|
|
70
|
-
export { WEATHER_FX,
|
|
70
|
+
export { WEATHER_FX, registerWeatherPack, skyAt };
|
|
@@ -253,9 +253,9 @@ const WEATHER_FX = [
|
|
|
253
253
|
}),
|
|
254
254
|
];
|
|
255
255
|
/** Register the 6.8 weather & ambience pack (idempotent). */
|
|
256
|
-
function
|
|
256
|
+
function registerWeatherPack() {
|
|
257
257
|
registerEffects(WEATHER_FX);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
export { WEATHER_FX,
|
|
260
|
+
export { WEATHER_FX, registerWeatherPack, skyAt };
|
|
261
261
|
//# sourceMappingURL=fx-weather.js.map
|