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.
Files changed (174) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +2 -2
  3. package/README_ja.md +2 -2
  4. package/README_zh.md +2 -2
  5. package/bin/usa-codemod-7.mjs +91 -0
  6. package/dist/chunks/{gpu-CsP2ZB3x.js → gpu-Bkw605Ds.js} +183 -5
  7. package/dist/chunks/gpu-Bkw605Ds.js.map +1 -0
  8. package/dist/chunks/{gpu-BBRLgEzM.cjs → gpu-Dx0H875w.cjs} +187 -4
  9. package/dist/chunks/gpu-Dx0H875w.cjs.map +1 -0
  10. package/dist/chunks/{index-tags-wv0R_vkO.cjs → index-tags-BTMwrfgV.cjs} +3 -3
  11. package/dist/chunks/index-tags-BTMwrfgV.cjs.map +1 -0
  12. package/dist/chunks/{index-tags-DucKMQr_.js → index-tags-C04JP8g4.js} +3 -3
  13. package/dist/chunks/index-tags-C04JP8g4.js.map +1 -0
  14. package/dist/chunks/player-C-TwEEy6.js +516 -0
  15. package/dist/chunks/player-C-TwEEy6.js.map +1 -0
  16. package/dist/chunks/player-PS6_FzNw.cjs +525 -0
  17. package/dist/chunks/player-PS6_FzNw.cjs.map +1 -0
  18. package/dist/components/a11y.cjs +1 -1
  19. package/dist/components/a11y.d.cts +2 -2
  20. package/dist/components/a11y.d.ts +2 -2
  21. package/dist/components/a11y.js +1 -1
  22. package/dist/components/angular.cjs +2 -2
  23. package/dist/components/angular.cjs.map +1 -1
  24. package/dist/components/angular.d.cts +5 -36
  25. package/dist/components/angular.d.ts +5 -36
  26. package/dist/components/angular.js +2 -2
  27. package/dist/components/angular.js.map +1 -1
  28. package/dist/components/effects.cjs +13 -522
  29. package/dist/components/effects.cjs.map +1 -1
  30. package/dist/components/effects.js +5 -513
  31. package/dist/components/effects.js.map +1 -1
  32. package/dist/components/fx-3d.cjs +2 -2
  33. package/dist/components/fx-3d.cjs.map +1 -1
  34. package/dist/components/fx-3d.d.cts +2 -2
  35. package/dist/components/fx-3d.d.ts +2 -2
  36. package/dist/components/fx-3d.js +2 -2
  37. package/dist/components/fx-3d.js.map +1 -1
  38. package/dist/components/fx-focus.cjs +125 -0
  39. package/dist/components/fx-focus.cjs.map +1 -0
  40. package/dist/components/fx-focus.d.cts +65 -0
  41. package/dist/components/fx-focus.d.ts +65 -0
  42. package/dist/components/fx-focus.js +122 -0
  43. package/dist/components/fx-focus.js.map +1 -0
  44. package/dist/components/fx-gpu.cjs +2 -2
  45. package/dist/components/fx-gpu.d.cts +2 -2
  46. package/dist/components/fx-gpu.d.ts +2 -2
  47. package/dist/components/fx-gpu.js +1 -1
  48. package/dist/components/fx-light.cjs +2 -2
  49. package/dist/components/fx-light.cjs.map +1 -1
  50. package/dist/components/fx-light.d.cts +2 -2
  51. package/dist/components/fx-light.d.ts +2 -2
  52. package/dist/components/fx-light.js +2 -2
  53. package/dist/components/fx-light.js.map +1 -1
  54. package/dist/components/fx-morph.cjs +2 -2
  55. package/dist/components/fx-morph.cjs.map +1 -1
  56. package/dist/components/fx-morph.d.cts +2 -2
  57. package/dist/components/fx-morph.d.ts +2 -2
  58. package/dist/components/fx-morph.js +2 -2
  59. package/dist/components/fx-morph.js.map +1 -1
  60. package/dist/components/fx-physics.cjs +2 -2
  61. package/dist/components/fx-physics.cjs.map +1 -1
  62. package/dist/components/fx-physics.d.cts +2 -2
  63. package/dist/components/fx-physics.d.ts +2 -2
  64. package/dist/components/fx-physics.js +2 -2
  65. package/dist/components/fx-physics.js.map +1 -1
  66. package/dist/components/fx-text.cjs +2 -2
  67. package/dist/components/fx-text.cjs.map +1 -1
  68. package/dist/components/fx-text.d.cts +2 -2
  69. package/dist/components/fx-text.d.ts +2 -2
  70. package/dist/components/fx-text.js +2 -2
  71. package/dist/components/fx-text.js.map +1 -1
  72. package/dist/components/fx-transitions.cjs +2 -2
  73. package/dist/components/fx-transitions.cjs.map +1 -1
  74. package/dist/components/fx-transitions.d.cts +2 -2
  75. package/dist/components/fx-transitions.d.ts +2 -2
  76. package/dist/components/fx-transitions.js +2 -2
  77. package/dist/components/fx-transitions.js.map +1 -1
  78. package/dist/components/fx-weather.cjs +2 -2
  79. package/dist/components/fx-weather.cjs.map +1 -1
  80. package/dist/components/fx-weather.d.cts +2 -2
  81. package/dist/components/fx-weather.d.ts +2 -2
  82. package/dist/components/fx-weather.js +2 -2
  83. package/dist/components/fx-weather.js.map +1 -1
  84. package/dist/components/fx2.cjs +37 -22
  85. package/dist/components/fx2.cjs.map +1 -1
  86. package/dist/components/fx2.d.cts +135 -14
  87. package/dist/components/fx2.d.ts +135 -14
  88. package/dist/components/fx2.js +25 -21
  89. package/dist/components/fx2.js.map +1 -1
  90. package/dist/components/interaction.cjs +11 -94
  91. package/dist/components/interaction.cjs.map +1 -1
  92. package/dist/components/interaction.css +0 -1
  93. package/dist/components/interaction.d.cts +3 -21
  94. package/dist/components/interaction.d.ts +3 -21
  95. package/dist/components/interaction.js +12 -94
  96. package/dist/components/interaction.js.map +1 -1
  97. package/dist/components/jsx.d.cts +2 -2
  98. package/dist/components/jsx.d.ts +2 -2
  99. package/dist/components/lazy.cjs +1 -1
  100. package/dist/components/lazy.d.cts +2 -2
  101. package/dist/components/lazy.d.ts +2 -2
  102. package/dist/components/lazy.js +1 -1
  103. package/dist/components/lite.cjs +115 -256
  104. package/dist/components/lite.cjs.map +1 -1
  105. package/dist/components/lite.js +116 -255
  106. package/dist/components/lite.js.map +1 -1
  107. package/dist/components/marketplace.cjs +82 -0
  108. package/dist/components/marketplace.cjs.map +1 -0
  109. package/dist/components/marketplace.d.cts +108 -0
  110. package/dist/components/marketplace.d.ts +108 -0
  111. package/dist/components/marketplace.js +77 -0
  112. package/dist/components/marketplace.js.map +1 -0
  113. package/dist/components/perf.cjs +1 -1
  114. package/dist/components/perf.d.cts +2 -2
  115. package/dist/components/perf.d.ts +2 -2
  116. package/dist/components/perf.js +1 -1
  117. package/dist/components/react.cjs +2 -2
  118. package/dist/components/react.cjs.map +1 -1
  119. package/dist/components/react.js +2 -2
  120. package/dist/components/react.js.map +1 -1
  121. package/dist/components/solid.cjs +2 -2
  122. package/dist/components/solid.cjs.map +1 -1
  123. package/dist/components/solid.d.cts +4 -35
  124. package/dist/components/solid.d.ts +4 -35
  125. package/dist/components/solid.js +2 -2
  126. package/dist/components/solid.js.map +1 -1
  127. package/dist/components/svelte.cjs +2 -2
  128. package/dist/components/svelte.cjs.map +1 -1
  129. package/dist/components/svelte.d.cts +5 -36
  130. package/dist/components/svelte.d.ts +5 -36
  131. package/dist/components/svelte.js +2 -2
  132. package/dist/components/svelte.js.map +1 -1
  133. package/dist/components/ui.cjs +16 -74
  134. package/dist/components/ui.cjs.map +1 -1
  135. package/dist/components/ui.css +0 -1
  136. package/dist/components/ui.d.cts +3 -18
  137. package/dist/components/ui.d.ts +3 -18
  138. package/dist/components/ui.js +17 -74
  139. package/dist/components/ui.js.map +1 -1
  140. package/dist/components/vue.cjs +2 -2
  141. package/dist/components/vue.cjs.map +1 -1
  142. package/dist/components/vue.d.cts +5 -36
  143. package/dist/components/vue.d.ts +5 -36
  144. package/dist/components/vue.js +2 -2
  145. package/dist/components/vue.js.map +1 -1
  146. package/dist/components/widgets.cjs +622 -53
  147. package/dist/components/widgets.cjs.map +1 -1
  148. package/dist/components/widgets.d.cts +106 -2
  149. package/dist/components/widgets.d.ts +106 -2
  150. package/dist/components/widgets.js +615 -54
  151. package/dist/components/widgets.js.map +1 -1
  152. package/dist/components.cjs +1 -3
  153. package/dist/components.cjs.map +1 -1
  154. package/dist/components.css +0 -2
  155. package/dist/components.d.cts +6 -39
  156. package/dist/components.d.ts +6 -39
  157. package/dist/components.js +3 -3
  158. package/dist/components.umd.js +2 -2
  159. package/dist/components.umd.js.map +1 -1
  160. package/dist/widgets.umd.js +1 -1
  161. package/dist/widgets.umd.js.map +1 -1
  162. package/docs/ROADMAP.md +12 -12
  163. package/docs/accessibility.md +2 -2
  164. package/docs/components.md +41 -2
  165. package/docs/deprecations.md +4 -0
  166. package/docs/frameworks-ssr.md +4 -4
  167. package/docs/hybrid-apps.md +2 -2
  168. package/docs/upgrading-7.md +43 -0
  169. package/docs/windows-apps.md +1 -1
  170. package/package.json +133 -2
  171. package/dist/chunks/gpu-BBRLgEzM.cjs.map +0 -1
  172. package/dist/chunks/gpu-CsP2ZB3x.js.map +0 -1
  173. package/dist/chunks/index-tags-DucKMQr_.js.map +0 -1
  174. package/dist/chunks/index-tags-wv0R_vkO.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fx-weather.js","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":[],"mappings":"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"}
1
+ {"version":3,"file":"fx-weather.js","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":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var components_fxGpu = require('../chunks/gpu-BBRLgEzM.cjs');
3
+ var components_marketplace = require('./marketplace.cjs');
4
+ var components_fxGpu = require('../chunks/gpu-Dx0H875w.cjs');
4
5
  var components_fxText = require('./fx-text.cjs');
5
6
  var components_fxLight = require('./fx-light.cjs');
6
7
  var components_fx3d = require('./fx-3d.cjs');
@@ -8,13 +9,14 @@ var components_fxMorph = require('./fx-morph.cjs');
8
9
  var components_fxTransitions = require('./fx-transitions.cjs');
9
10
  var components_fxWeather = require('./fx-weather.cjs');
10
11
  var components_fxPhysics = require('./fx-physics.cjs');
12
+ var components_fxFocus = require('./fx-focus.cjs');
11
13
  require('../chunks/registry-DehBVRDV.cjs');
12
14
  require('../chunks/base-BaQV-2ha.cjs');
13
15
  require('../chunks/generative-BHIj-NU0.cjs');
14
16
  require('../chunks/shared-jkgRH-Hx.cjs');
15
17
 
16
18
  /** The 6.x effect packs by name. */
17
- const FX2_PACKS = {
19
+ const EFFECT_PACKS = {
18
20
  gpu: components_fxGpu.GPU_FX,
19
21
  text: components_fxText.TEXT3_FX,
20
22
  light: components_fxLight.LIGHT_FX,
@@ -23,47 +25,60 @@ const FX2_PACKS = {
23
25
  transitions: components_fxTransitions.TRANSITIONS2_FX,
24
26
  weather: components_fxWeather.WEATHER_FX,
25
27
  physics: components_fxPhysics.PHYSICS2_FX,
28
+ focus: components_fxFocus.FOCUS_FX,
26
29
  };
27
- /** Register every 6.x pack (idempotent). */
28
- function registerFx2() {
29
- components_fxGpu.registerGpuEffects();
30
- components_fxText.registerTextEffects3();
31
- components_fxLight.registerLightEffects();
32
- components_fx3d.register3dEffects();
33
- components_fxMorph.registerMorphEffects2();
34
- components_fxTransitions.registerTransitionEffects2();
35
- components_fxWeather.registerWeatherEffects();
36
- components_fxPhysics.registerPhysicsEffects2();
30
+ /** Register every 6.x effect pack (idempotent). */
31
+ function registerEffectPacks() {
32
+ components_fxGpu.registerGpuPack();
33
+ components_fxText.registerTextPack();
34
+ components_fxLight.registerLightPack();
35
+ components_fx3d.register3dPack();
36
+ components_fxMorph.registerMorphPack();
37
+ components_fxTransitions.registerTransitionsPack();
38
+ components_fxWeather.registerWeatherPack();
39
+ components_fxPhysics.registerPhysicsPack();
40
+ components_fxFocus.registerFocusPack();
37
41
  }
38
42
 
43
+ exports.EFFECT_PACK_FORMAT = components_marketplace.EFFECT_PACK_FORMAT;
44
+ exports.loadEffectPack = components_marketplace.loadEffectPack;
45
+ exports.packManifest = components_marketplace.packManifest;
46
+ exports.validateManifest = components_marketplace.validateManifest;
39
47
  exports.GLSL_HEAD = components_fxGpu.GLSL_HEAD;
40
48
  exports.GPU_FX = components_fxGpu.GPU_FX;
49
+ exports.WGSL_HEAD = components_fxGpu.WGSL_HEAD;
41
50
  exports.fieldFallback = components_fxGpu.fieldFallback;
42
- exports.registerGpuEffects = components_fxGpu.registerGpuEffects;
51
+ exports.glslToWgsl = components_fxGpu.glslToWgsl;
52
+ exports.registerGpuPack = components_fxGpu.registerGpuPack;
43
53
  exports.shaderBackground = components_fxGpu.shaderBackground;
44
54
  exports.supportsWebGL2 = components_fxGpu.supportsWebGL2;
55
+ exports.supportsWebGPU = components_fxGpu.supportsWebGPU;
56
+ exports.webgpuBackground = components_fxGpu.webgpuBackground;
57
+ exports.wgslModule = components_fxGpu.wgslModule;
45
58
  exports.TEXT3_FX = components_fxText.TEXT3_FX;
46
- exports.registerTextEffects3 = components_fxText.registerTextEffects3;
59
+ exports.registerTextPack = components_fxText.registerTextPack;
47
60
  exports.splitChars = components_fxText.splitChars;
48
61
  exports.LIGHT_FX = components_fxLight.LIGHT_FX;
49
- exports.registerLightEffects = components_fxLight.registerLightEffects;
62
+ exports.registerLightPack = components_fxLight.registerLightPack;
50
63
  exports.trackPointer = components_fxLight.trackPointer;
51
64
  exports.DEPTH3_FX = components_fx3d.DEPTH3_FX;
52
- exports.register3dEffects = components_fx3d.register3dEffects;
65
+ exports.register3dPack = components_fx3d.register3dPack;
53
66
  exports.MORPH2_FX = components_fxMorph.MORPH2_FX;
54
67
  exports.pointsToPath = components_fxMorph.pointsToPath;
55
- exports.registerMorphEffects2 = components_fxMorph.registerMorphEffects2;
68
+ exports.registerMorphPack = components_fxMorph.registerMorphPack;
56
69
  exports.samplePath = components_fxMorph.samplePath;
57
70
  exports.TRANSITIONS2_FX = components_fxTransitions.TRANSITIONS2_FX;
58
71
  exports.crossDocumentTransitions = components_fxTransitions.crossDocumentTransitions;
59
72
  exports.pageTransition = components_fxTransitions.pageTransition;
60
- exports.registerTransitionEffects2 = components_fxTransitions.registerTransitionEffects2;
73
+ exports.registerTransitionsPack = components_fxTransitions.registerTransitionsPack;
61
74
  exports.WEATHER_FX = components_fxWeather.WEATHER_FX;
62
- exports.registerWeatherEffects = components_fxWeather.registerWeatherEffects;
75
+ exports.registerWeatherPack = components_fxWeather.registerWeatherPack;
63
76
  exports.skyAt = components_fxWeather.skyAt;
64
77
  exports.PHYSICS2_FX = components_fxPhysics.PHYSICS2_FX;
65
78
  exports.VerletWorld = components_fxPhysics.VerletWorld;
66
- exports.registerPhysicsEffects2 = components_fxPhysics.registerPhysicsEffects2;
67
- exports.FX2_PACKS = FX2_PACKS;
68
- exports.registerFx2 = registerFx2;
79
+ exports.registerPhysicsPack = components_fxPhysics.registerPhysicsPack;
80
+ exports.FOCUS_FX = components_fxFocus.FOCUS_FX;
81
+ exports.registerFocusPack = components_fxFocus.registerFocusPack;
82
+ exports.EFFECT_PACKS = EFFECT_PACKS;
83
+ exports.registerEffectPacks = registerEffectPacks;
69
84
  //# sourceMappingURL=fx2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"fx2.cjs","sources":["../../src/components/fx2/index.ts"],"sourcesContent":["/**\n * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so\n * their size budgets stay separate. This module (`registerFx2()`) registers\n * them all — used by dist/widgets.umd.js and the showcase.\n */\nimport type { EffectDefinition } from '../fx/registry';\nimport { GPU_FX, registerGpuEffects } from './gpu';\nimport { TEXT3_FX, registerTextEffects3, splitChars } from './text3';\nimport { LIGHT_FX, registerLightEffects, trackPointer } from './light';\nimport { DEPTH3_FX, register3dEffects } from './depth3';\nimport { MORPH2_FX, registerMorphEffects2, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionEffects2, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherEffects, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsEffects2, VerletWorld } from './physics2';\n\nexport { GPU_FX, registerGpuEffects, TEXT3_FX, registerTextEffects3, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightEffects, trackPointer };\n\nexport { DEPTH3_FX, register3dEffects };\n\nexport { MORPH2_FX, registerMorphEffects2, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionEffects2, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherEffects, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsEffects2, VerletWorld };\n\n/** The 6.x effect packs by name. */\nexport const FX2_PACKS: Record<string, EffectDefinition[]> = {\n gpu: GPU_FX,\n text: TEXT3_FX,\n light: LIGHT_FX,\n depth: DEPTH3_FX,\n morph: MORPH2_FX,\n transitions: TRANSITIONS2_FX,\n weather: WEATHER_FX,\n physics: PHYSICS2_FX,\n};\n\n/** Register every 6.x pack (idempotent). */\nexport function registerFx2(): void {\n registerGpuEffects();\n registerTextEffects3();\n registerLightEffects();\n register3dEffects();\n registerMorphEffects2();\n registerTransitionEffects2();\n registerWeatherEffects();\n registerPhysicsEffects2();\n}\n"],"names":["GPU_FX","TEXT3_FX","LIGHT_FX","DEPTH3_FX","MORPH2_FX","TRANSITIONS2_FX","WEATHER_FX","PHYSICS2_FX","registerGpuEffects","registerTextEffects3","registerLightEffects","register3dEffects","registerMorphEffects2","registerTransitionEffects2","registerWeatherEffects","registerPhysicsEffects2"],"mappings":";;;;;;;;;;;;;;;AA+BA;AACO,MAAM,SAAS,GAAuC;AAC3D,IAAA,GAAG,EAAEA,uBAAM;AACX,IAAA,IAAI,EAAEC,0BAAQ;AACd,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,KAAK,EAAEC,yBAAS;AAChB,IAAA,KAAK,EAAEC,4BAAS;AAChB,IAAA,WAAW,EAAEC,wCAAe;AAC5B,IAAA,OAAO,EAAEC,+BAAU;AACnB,IAAA,OAAO,EAAEC,gCAAW;;AAGtB;SACgB,WAAW,GAAA;AACzB,IAAAC,mCAAkB,EAAE;AACpB,IAAAC,sCAAoB,EAAE;AACtB,IAAAC,uCAAoB,EAAE;AACtB,IAAAC,iCAAiB,EAAE;AACnB,IAAAC,wCAAqB,EAAE;AACvB,IAAAC,mDAA0B,EAAE;AAC5B,IAAAC,2CAAsB,EAAE;AACxB,IAAAC,4CAAuB,EAAE;AAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fx2.cjs","sources":["../../src/components/fx2/index.ts"],"sourcesContent":["/**\n * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so\n * their size budgets stay separate. This module (`registerFx2()`) registers\n * them all — used by dist/widgets.umd.js and the showcase.\n */\nimport type { EffectDefinition } from '../fx/registry';\nexport { EFFECT_PACK_FORMAT, packManifest, validateManifest, loadEffectPack } from './manifest';\nexport type { EffectPackManifest } from './manifest';\nimport { GPU_FX, registerGpuPack } from './gpu';\nimport { TEXT3_FX, registerTextPack, splitChars } from './text3';\nimport { LIGHT_FX, registerLightPack, trackPointer } from './light';\nimport { DEPTH3_FX, register3dPack } from './depth3';\nimport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherPack, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsPack, VerletWorld } from './physics2';\nimport { FOCUS_FX, registerFocusPack } from './focus';\n\nexport { GPU_FX, registerGpuPack, TEXT3_FX, registerTextPack, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport { supportsWebGPU, glslToWgsl, wgslModule, webgpuBackground, WGSL_HEAD } from './webgpu';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightPack, trackPointer };\n\nexport { DEPTH3_FX, register3dPack };\n\nexport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherPack, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsPack, VerletWorld };\n\nexport { FOCUS_FX, registerFocusPack };\n\n/** The 6.x effect packs by name. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n gpu: GPU_FX,\n text: TEXT3_FX,\n light: LIGHT_FX,\n depth: DEPTH3_FX,\n morph: MORPH2_FX,\n transitions: TRANSITIONS2_FX,\n weather: WEATHER_FX,\n physics: PHYSICS2_FX,\n focus: FOCUS_FX,\n};\n\n/** Register every 6.x effect pack (idempotent). */\nexport function registerEffectPacks(): void {\n registerGpuPack();\n registerTextPack();\n registerLightPack();\n register3dPack();\n registerMorphPack();\n registerTransitionsPack();\n registerWeatherPack();\n registerPhysicsPack();\n registerFocusPack();\n}\n\n\n"],"names":["GPU_FX","TEXT3_FX","LIGHT_FX","DEPTH3_FX","MORPH2_FX","TRANSITIONS2_FX","WEATHER_FX","PHYSICS2_FX","FOCUS_FX","registerGpuPack","registerTextPack","registerLightPack","register3dPack","registerMorphPack","registerTransitionsPack","registerWeatherPack","registerPhysicsPack","registerFocusPack"],"mappings":";;;;;;;;;;;;;;;;;AAqCA;AACO,MAAM,YAAY,GAAuC;AAC9D,IAAA,GAAG,EAAEA,uBAAM;AACX,IAAA,IAAI,EAAEC,0BAAQ;AACd,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,KAAK,EAAEC,yBAAS;AAChB,IAAA,KAAK,EAAEC,4BAAS;AAChB,IAAA,WAAW,EAAEC,wCAAe;AAC5B,IAAA,OAAO,EAAEC,+BAAU;AACnB,IAAA,OAAO,EAAEC,gCAAW;AACpB,IAAA,KAAK,EAAEC,2BAAQ;;AAGjB;SACgB,mBAAmB,GAAA;AACjC,IAAAC,gCAAe,EAAE;AACjB,IAAAC,kCAAgB,EAAE;AAClB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,8BAAc,EAAE;AAChB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,gDAAuB,EAAE;AACzB,IAAAC,wCAAmB,EAAE;AACrB,IAAAC,wCAAmB,EAAE;AACrB,IAAAC,oCAAiB,EAAE;AACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -41,6 +41,69 @@ interface EffectDefinition<O extends Record<string, unknown> = Record<string, an
41
41
  run(el: HTMLElement, options: O, ctx: EffectContext): void | Cleanup | Animation | null | Promise<unknown>;
42
42
  }
43
43
 
44
+ /**
45
+ * 6.9 — effect marketplace manifest (`motionary/components/marketplace`).
46
+ *
47
+ * A third-party effect pack is an ES module that exports its effects (an
48
+ * `EffectDefinition[]` as `effects` or `default`) plus a JSON manifest:
49
+ *
50
+ * ```json
51
+ * { "format": "motionary/effect-pack", "version": 1,
52
+ * "name": "@acme/motion-snow", "packVersion": "1.2.0",
53
+ * "description": "Snow and frost effects", "license": "MIT",
54
+ * "author": "Acme", "entry": "./dist/index.js", "requires": ">=6.9",
55
+ * "effects": [{ "name": "frost", "kind": "background", "description": "…",
56
+ * "defaults": { "speed": 1 } }] }
57
+ * ```
58
+ *
59
+ * `packManifest()` writes one from your effects, `validateManifest()` checks
60
+ * one (format, semver, unique kebab-case names, known kinds, effects match
61
+ * the module), and `loadEffectPack()` imports a pack (URL or module),
62
+ * validates it and registers its effects — refusing names that already
63
+ * exist unless `override`.
64
+ */
65
+
66
+ declare const EFFECT_PACK_FORMAT = "motionary/effect-pack";
67
+ interface EffectPackManifest {
68
+ format: typeof EFFECT_PACK_FORMAT;
69
+ version: 1;
70
+ name: string;
71
+ packVersion: string;
72
+ description?: string;
73
+ license?: string;
74
+ author?: string;
75
+ homepage?: string;
76
+ entry?: string;
77
+ requires?: string;
78
+ keywords?: string[];
79
+ effects: {
80
+ name: string;
81
+ kind: string;
82
+ description?: string;
83
+ defaults?: Record<string, unknown>;
84
+ }[];
85
+ }
86
+ /** Build a manifest from an effect pack. */
87
+ declare function packManifest(name: string, packVersion: string, effects: EffectDefinition[], extra?: Partial<Omit<EffectPackManifest, 'format' | 'version' | 'name' | 'packVersion' | 'effects'>>): EffectPackManifest;
88
+ /** Check a manifest (and optionally the module's effects against it). */
89
+ declare function validateManifest(m: unknown, effects?: EffectDefinition[]): {
90
+ ok: boolean;
91
+ errors: string[];
92
+ };
93
+ /**
94
+ * Import an effect pack (a URL / specifier, or an already imported module
95
+ * with `effects` / `default` and `manifest`), validate and register it.
96
+ * Returns the registered effect names.
97
+ */
98
+ declare function loadEffectPack(src: string | {
99
+ effects?: EffectDefinition[];
100
+ default?: EffectDefinition[];
101
+ manifest?: EffectPackManifest;
102
+ }, opts?: {
103
+ manifest?: EffectPackManifest;
104
+ override?: boolean;
105
+ }): Promise<string[]>;
106
+
44
107
  /**
45
108
  * 6.2 — GPU effect pack (`motionary/components/fx-gpu`), registered through
46
109
  * `registerEffect()`:
@@ -58,7 +121,7 @@ interface EffectDefinition<O extends Record<string, unknown> = Record<string, an
58
121
 
59
122
  declare const GPU_FX: EffectDefinition[];
60
123
  /** Register the 6.2 GPU pack (idempotent). */
61
- declare function registerGpuEffects(): void;
124
+ declare function registerGpuPack(): void;
62
125
 
63
126
  /**
64
127
  * 6.3 — Text effects 3.0 (`motionary/components/fx-text`), registered through
@@ -84,7 +147,7 @@ declare function registerGpuEffects(): void;
84
147
  declare function splitChars(el: HTMLElement): HTMLElement[];
85
148
  declare const TEXT3_FX: EffectDefinition[];
86
149
  /** Register the 6.3 text pack (idempotent). */
87
- declare function registerTextEffects3(): void;
150
+ declare function registerTextPack(): void;
88
151
 
89
152
  /**
90
153
  * 6.4 — Light & materials (`motionary/components/fx-light`), registered
@@ -112,7 +175,7 @@ declare function registerTextEffects3(): void;
112
175
  declare function trackPointer(el: HTMLElement, ctx: EffectContext, fn: (x: number, y: number, inside: boolean) => void, x0?: number, y0?: number): () => void;
113
176
  declare const LIGHT_FX: EffectDefinition[];
114
177
  /** Register the 6.4 light & materials pack (idempotent). */
115
- declare function registerLightEffects(): void;
178
+ declare function registerLightPack(): void;
116
179
 
117
180
  /**
118
181
  * 6.5 — 3D scene cards (`motionary/components/fx-3d`), registered through
@@ -135,7 +198,7 @@ declare function registerLightEffects(): void;
135
198
 
136
199
  declare const DEPTH3_FX: EffectDefinition[];
137
200
  /** Register the 6.5 3D pack (idempotent). */
138
- declare function register3dEffects(): void;
201
+ declare function register3dPack(): void;
139
202
 
140
203
  /**
141
204
  * 6.6 — Morph & SVG 2.0 (`motionary/components/fx-morph`), registered
@@ -162,7 +225,7 @@ declare function samplePath(d: string, n?: number): [number, number][] | null;
162
225
  declare const pointsToPath: (pts: [number, number][]) => string;
163
226
  declare const MORPH2_FX: EffectDefinition[];
164
227
  /** Register the 6.6 morph & SVG pack (idempotent). */
165
- declare function registerMorphEffects2(): void;
228
+ declare function registerMorphPack(): void;
166
229
 
167
230
  /**
168
231
  * 6.7 — Transitions 2.0 (`motionary/components/fx-transitions`), registered
@@ -195,7 +258,7 @@ declare function pageTransition(update: () => void | Promise<void>, effect?: str
195
258
  /** Opt a multi-page site into cross-document view transitions with an effect's look. Returns a remover. */
196
259
  declare function crossDocumentTransitions(effect?: string, duration?: number): () => void;
197
260
  /** Register the 6.7 transitions pack (idempotent). */
198
- declare function registerTransitionEffects2(): void;
261
+ declare function registerTransitionsPack(): void;
199
262
 
200
263
  /**
201
264
  * 6.8 — Weather & ambience (`motionary/components/fx-weather`), registered
@@ -221,7 +284,7 @@ declare function registerTransitionEffects2(): void;
221
284
  declare function skyAt(hour: number): [string, string];
222
285
  declare const WEATHER_FX: EffectDefinition[];
223
286
  /** Register the 6.8 weather & ambience pack (idempotent). */
224
- declare function registerWeatherEffects(): void;
287
+ declare function registerWeatherPack(): void;
225
288
 
226
289
  /**
227
290
  * 6.8 — Interactive physics 2.0 (`motionary/components/fx-physics`) on a tiny
@@ -268,7 +331,28 @@ declare class VerletWorld {
268
331
  }
269
332
  declare const PHYSICS2_FX: EffectDefinition[];
270
333
  /** Register the 6.8 physics 2.0 pack (idempotent). */
271
- declare function registerPhysicsEffects2(): void;
334
+ declare function registerPhysicsPack(): void;
335
+
336
+ /**
337
+ * 6.9 — Focus & feedback (`motionary/components/fx-focus`), registered
338
+ * through `registerEffect()`:
339
+ *
340
+ * - `focus-draw` (kind `attention`) — a rounded ring draws itself around the
341
+ * element, then fades (great on `focus`).
342
+ * - `marching-ants` (kind `loop`) — a dashed selection border that marches
343
+ * (drop targets, selections).
344
+ * - `success-check` (kind `click`) — a check mark draws over the element on a
345
+ * soft green disc, then fades away.
346
+ * - `highlight-sweep` (kind `attention`) — a highlighter stroke sweeps
347
+ * behind the element's text.
348
+ *
349
+ * Overlays are SVG / spans marked `aria-hidden` and removed when done.
350
+ * Reduced motion: a plain fade of the final state (marching-ants is static).
351
+ */
352
+
353
+ declare const FOCUS_FX: EffectDefinition[];
354
+ /** Register the 6.9 focus & feedback pack (idempotent). */
355
+ declare function registerFocusPack(): void;
272
356
 
273
357
  /**
274
358
  * 5.5 — generative backgrounds on Canvas 2D, registered through
@@ -314,6 +398,8 @@ interface GenerativeSpec {
314
398
  /** GLSL shared by every shader: uniforms, hash, value noise, fbm. */
315
399
  declare const GLSL_HEAD = "#version 300 es\nprecision highp float;\nuniform vec2 u_res;uniform float u_t;uniform vec3 u_c0,u_c1,u_c2;uniform vec2 u_ptr;uniform float u_speed,u_scale;\nout vec4 o;\nfloat h(vec2 p){return fract(sin(dot(p,vec2(127.1,311.7)))*43758.5453);}\nfloat n(vec2 p){vec2 i=floor(p),f=fract(p);f=f*f*(3.-2.*f);return mix(mix(h(i),h(i+vec2(1,0)),f.x),mix(h(i+vec2(0,1)),h(i+1.),f.x),f.y);}\nfloat fbm(vec2 p){float v=0.,a=.5;for(int k=0;k<5;k++){v+=a*n(p);p=p*2.03+vec2(1.7,9.2);a*=.5;}return v;}\n";
316
400
  interface ShaderSpec {
401
+ /** 7.0: hand-written WGSL statements for the WebGPU backend (default: `glslToWgsl(body)`). */
402
+ wgsl?: string;
317
403
  /** GLSL body of `main()`: `uv` (0–1), `p` (aspect-corrected, scaled), `t` (s × speed) are in scope; write `o`. */
318
404
  body: string;
319
405
  /** Canvas 2D fallback. */
@@ -322,7 +408,9 @@ interface ShaderSpec {
322
408
  declare function supportsWebGL2(): boolean;
323
409
  /**
324
410
  * Mount a shader background behind `el` (options: `colors` [3 hex], `speed`,
325
- * `scale`, `quality`, `backend` = `'auto' | 'webgl2' | 'canvas'`). Returns the cleanup.
411
+ * `scale`, `quality`, `backend` = `'auto' | 'webgpu' | 'webgl2' | 'canvas'`).
412
+ * 7.0: `auto` tries WebGPU first, then WebGL2, then Canvas 2D
413
+ * (`el.dataset.usaBackend` names the one running). Returns the cleanup.
326
414
  */
327
415
  declare function shaderBackground(el: HTMLElement, fx: EffectContext, spec: ShaderSpec, o: any): () => void;
328
416
  /**
@@ -331,6 +419,39 @@ declare function shaderBackground(el: HTMLElement, fx: EffectContext, spec: Shad
331
419
  */
332
420
  declare function fieldFallback(color: (x: number, y: number, t: number, o: any) => [number, number, number], cell?: number): GenerativeSpec;
333
421
 
422
+ /**
423
+ * 7.0 — WebGPU backend for the shader backgrounds (`shaderBackground()`).
424
+ *
425
+ * Every 6.x shader is written once as a small GLSL `main()` body. 7.0 runs it
426
+ * on **WebGPU** where the browser has it: `glslToWgsl()` translates the body
427
+ * (types, constructors, literals, loops, uniforms) into a WGSL fragment
428
+ * shader with the same noise helpers; a spec can also ship hand-written
429
+ * `wgsl`. If WebGPU is missing, the adapter / device is refused, or the
430
+ * shader does not compile, the effect falls back to **WebGL2**, then to the
431
+ * Canvas 2D fallback — `el.dataset.usaBackend` says which one runs.
432
+ */
433
+
434
+ /** WGSL shared by every shader: uniforms, hash, value noise, fbm (mirrors `GLSL_HEAD`). */
435
+ declare const WGSL_HEAD = "struct U{res:vec2f,ptr:vec2f,t:f32,speed:f32,scale:f32,pad:f32,c0:vec4f,c1:vec4f,c2:vec4f};\n@group(0) @binding(0) var<uniform> u:U;\nfn h(p:vec2f)->f32{return fract(sin(dot(p,vec2f(127.1,311.7)))*43758.5453);}\nfn n(p:vec2f)->f32{let i=floor(p);var f=fract(p);f=f*f*(3.0-2.0*f);return mix(mix(h(i),h(i+vec2f(1.0,0.0)),f.x),mix(h(i+vec2f(0.0,1.0)),h(i+vec2f(1.0,1.0)),f.x),f.y);}\nfn fbm(p0:vec2f)->f32{var v=0.0;var a=0.5;var p=p0;for(var k=0;k<5;k++){v+=a*n(p);p=p*2.03+vec2f(1.7,9.2);a*=0.5;}return v;}\n@vertex fn vs(@builtin(vertex_index) i:u32)->@builtin(position) vec4f{var q=array<vec2f,3>(vec2f(-1.0,-1.0),vec2f(3.0,-1.0),vec2f(-1.0,3.0));return vec4f(q[i],0.0,1.0);}\n";
436
+ /**
437
+ * Translate a GLSL `main()` body (the 6.x `ShaderSpec.body` dialect) to WGSL
438
+ * statements. Throws on constructs it does not support (ternaries, `mod`,
439
+ * `discard`, user functions) so the caller can fall back to WebGL2.
440
+ */
441
+ declare function glslToWgsl(body: string): string;
442
+ /** The full WGSL module for a body. */
443
+ declare const wgslModule: (body: string) => string;
444
+ /** `true` when `navigator.gpu` exists (the adapter may still be refused). */
445
+ declare const supportsWebGPU: () => boolean;
446
+ /**
447
+ * Start a WebGPU shader background behind `el`. Resolves to its cleanup, or
448
+ * `null` when WebGPU cannot run this shader (the caller falls back).
449
+ */
450
+ declare function webgpuBackground(el: HTMLElement, fx: EffectContext, spec: {
451
+ body: string;
452
+ wgsl?: string;
453
+ }, o: any): Promise<(() => void) | null>;
454
+
334
455
  /**
335
456
  * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so
336
457
  * their size budgets stay separate. This module (`registerFx2()`) registers
@@ -338,9 +459,9 @@ declare function fieldFallback(color: (x: number, y: number, t: number, o: any)
338
459
  */
339
460
 
340
461
  /** The 6.x effect packs by name. */
341
- declare const FX2_PACKS: Record<string, EffectDefinition[]>;
342
- /** Register every 6.x pack (idempotent). */
343
- declare function registerFx2(): void;
462
+ declare const EFFECT_PACKS: Record<string, EffectDefinition[]>;
463
+ /** Register every 6.x effect pack (idempotent). */
464
+ declare function registerEffectPacks(): void;
344
465
 
345
- export { DEPTH3_FX, FX2_PACKS, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, PHYSICS2_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, crossDocumentTransitions, fieldFallback, pageTransition, pointsToPath, register3dEffects, registerFx2, registerGpuEffects, registerLightEffects, registerMorphEffects2, registerPhysicsEffects2, registerTextEffects3, registerTransitionEffects2, registerWeatherEffects, samplePath, shaderBackground, skyAt, splitChars, supportsWebGL2, trackPointer };
346
- export type { ShaderSpec };
466
+ export { DEPTH3_FX, EFFECT_PACKS, EFFECT_PACK_FORMAT, FOCUS_FX, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, PHYSICS2_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, WGSL_HEAD, crossDocumentTransitions, fieldFallback, glslToWgsl, loadEffectPack, packManifest, pageTransition, pointsToPath, register3dPack, registerEffectPacks, registerFocusPack, registerGpuPack, registerLightPack, registerMorphPack, registerPhysicsPack, registerTextPack, registerTransitionsPack, registerWeatherPack, samplePath, shaderBackground, skyAt, splitChars, supportsWebGL2, supportsWebGPU, trackPointer, validateManifest, webgpuBackground, wgslModule };
467
+ export type { EffectPackManifest, ShaderSpec };