motionary 6.9.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 (186) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +2 -2
  3. package/README_ja.md +2 -2
  4. package/README_zh.md +2 -2
  5. package/dist/chunks/{base-D5MHqeDd.js → base-DchG4q_S.js} +2 -2
  6. package/dist/chunks/{base-D5MHqeDd.js.map → base-DchG4q_S.js.map} +1 -1
  7. package/dist/chunks/{core-ZGo4hOEk.js → core-D2vF8kZb.js} +2 -2
  8. package/dist/chunks/{core-ZGo4hOEk.js.map → core-D2vF8kZb.js.map} +1 -1
  9. package/dist/chunks/{core-DyJu5r5a.js → core-DVyTlo9Q.js} +2 -2
  10. package/dist/chunks/{core-DyJu5r5a.js.map → core-DVyTlo9Q.js.map} +1 -1
  11. package/dist/chunks/{fx-DlGRMJ-Z.js → fx-DUMVKSvg.js} +2 -2
  12. package/dist/chunks/{fx-DlGRMJ-Z.js.map → fx-DUMVKSvg.js.map} +1 -1
  13. package/dist/chunks/{gpu-DPhMkJq6.js → gpu-Bkw605Ds.js} +183 -11
  14. package/dist/chunks/gpu-Bkw605Ds.js.map +1 -0
  15. package/dist/chunks/{gpu-C2D4T9Q-.cjs → gpu-Dx0H875w.cjs} +185 -9
  16. package/dist/chunks/gpu-Dx0H875w.cjs.map +1 -0
  17. package/dist/chunks/{index-tags-wv0R_vkO.cjs → index-tags-BTMwrfgV.cjs} +3 -3
  18. package/dist/chunks/index-tags-BTMwrfgV.cjs.map +1 -0
  19. package/dist/chunks/{index-tags-DucKMQr_.js → index-tags-C04JP8g4.js} +3 -3
  20. package/dist/chunks/index-tags-C04JP8g4.js.map +1 -0
  21. package/dist/chunks/{player-DH3TIz-t.js → player-C-TwEEy6.js} +4 -4
  22. package/dist/chunks/{player-DH3TIz-t.js.map → player-C-TwEEy6.js.map} +1 -1
  23. package/dist/chunks/{registry-CTLWeg-J.js → registry-D23neB4M.js} +2 -2
  24. package/dist/chunks/{registry-CTLWeg-J.js.map → registry-D23neB4M.js.map} +1 -1
  25. package/dist/chunks/{spring-B-9MZOrW.js → spring-BhoT09Qb.js} +2 -2
  26. package/dist/chunks/{spring-B-9MZOrW.js.map → spring-BhoT09Qb.js.map} +1 -1
  27. package/dist/chunks/{variants-CoZn3k_5.js → variants-C_hv_s23.js} +2 -2
  28. package/dist/chunks/{variants-CoZn3k_5.js.map → variants-C_hv_s23.js.map} +1 -1
  29. package/dist/components/a11y.cjs +1 -1
  30. package/dist/components/a11y.d.cts +2 -2
  31. package/dist/components/a11y.d.ts +2 -2
  32. package/dist/components/a11y.js +3 -3
  33. package/dist/components/angular.cjs +2 -2
  34. package/dist/components/angular.cjs.map +1 -1
  35. package/dist/components/angular.d.cts +5 -36
  36. package/dist/components/angular.d.ts +5 -36
  37. package/dist/components/angular.js +9 -9
  38. package/dist/components/angular.js.map +1 -1
  39. package/dist/components/background.js +2 -2
  40. package/dist/components/bridge.js +1 -1
  41. package/dist/components/cards.js +2 -2
  42. package/dist/components/click.js +3 -3
  43. package/dist/components/depth.js +3 -3
  44. package/dist/components/effects.js +6 -6
  45. package/dist/components/feedback.js +1 -1
  46. package/dist/components/fx-3d.cjs +1 -7
  47. package/dist/components/fx-3d.cjs.map +1 -1
  48. package/dist/components/fx-3d.d.cts +1 -3
  49. package/dist/components/fx-3d.d.ts +1 -3
  50. package/dist/components/fx-3d.js +3 -8
  51. package/dist/components/fx-3d.js.map +1 -1
  52. package/dist/components/fx-focus.js +2 -2
  53. package/dist/components/fx-gpu.cjs +2 -3
  54. package/dist/components/fx-gpu.cjs.map +1 -1
  55. package/dist/components/fx-gpu.d.cts +1 -3
  56. package/dist/components/fx-gpu.d.ts +1 -3
  57. package/dist/components/fx-gpu.js +3 -3
  58. package/dist/components/fx-light.cjs +1 -7
  59. package/dist/components/fx-light.cjs.map +1 -1
  60. package/dist/components/fx-light.d.cts +1 -3
  61. package/dist/components/fx-light.d.ts +1 -3
  62. package/dist/components/fx-light.js +3 -8
  63. package/dist/components/fx-light.js.map +1 -1
  64. package/dist/components/fx-morph.cjs +1 -7
  65. package/dist/components/fx-morph.cjs.map +1 -1
  66. package/dist/components/fx-morph.d.cts +1 -3
  67. package/dist/components/fx-morph.d.ts +1 -3
  68. package/dist/components/fx-morph.js +3 -8
  69. package/dist/components/fx-morph.js.map +1 -1
  70. package/dist/components/fx-physics.cjs +1 -7
  71. package/dist/components/fx-physics.cjs.map +1 -1
  72. package/dist/components/fx-physics.d.cts +1 -3
  73. package/dist/components/fx-physics.d.ts +1 -3
  74. package/dist/components/fx-physics.js +3 -8
  75. package/dist/components/fx-physics.js.map +1 -1
  76. package/dist/components/fx-text.cjs +1 -7
  77. package/dist/components/fx-text.cjs.map +1 -1
  78. package/dist/components/fx-text.d.cts +1 -3
  79. package/dist/components/fx-text.d.ts +1 -3
  80. package/dist/components/fx-text.js +3 -8
  81. package/dist/components/fx-text.js.map +1 -1
  82. package/dist/components/fx-transitions.cjs +1 -7
  83. package/dist/components/fx-transitions.cjs.map +1 -1
  84. package/dist/components/fx-transitions.d.cts +1 -3
  85. package/dist/components/fx-transitions.d.ts +1 -3
  86. package/dist/components/fx-transitions.js +4 -9
  87. package/dist/components/fx-transitions.js.map +1 -1
  88. package/dist/components/fx-weather.cjs +1 -7
  89. package/dist/components/fx-weather.cjs.map +1 -1
  90. package/dist/components/fx-weather.d.cts +1 -3
  91. package/dist/components/fx-weather.d.ts +1 -3
  92. package/dist/components/fx-weather.js +3 -8
  93. package/dist/components/fx-weather.js.map +1 -1
  94. package/dist/components/fx.js +5 -5
  95. package/dist/components/fx2.cjs +7 -19
  96. package/dist/components/fx2.cjs.map +1 -1
  97. package/dist/components/fx2.d.cts +39 -22
  98. package/dist/components/fx2.d.ts +39 -22
  99. package/dist/components/fx2.js +11 -19
  100. package/dist/components/fx2.js.map +1 -1
  101. package/dist/components/gesture.js +4 -4
  102. package/dist/components/interaction.cjs +11 -95
  103. package/dist/components/interaction.cjs.map +1 -1
  104. package/dist/components/interaction.css +0 -1
  105. package/dist/components/interaction.d.cts +3 -21
  106. package/dist/components/interaction.d.ts +3 -21
  107. package/dist/components/interaction.js +13 -96
  108. package/dist/components/interaction.js.map +1 -1
  109. package/dist/components/jsx.d.cts +2 -2
  110. package/dist/components/jsx.d.ts +2 -2
  111. package/dist/components/layout.js +1 -1
  112. package/dist/components/lazy.cjs +1 -1
  113. package/dist/components/lazy.d.cts +2 -2
  114. package/dist/components/lazy.d.ts +2 -2
  115. package/dist/components/lazy.js +1 -1
  116. package/dist/components/lite.cjs +115 -258
  117. package/dist/components/lite.cjs.map +1 -1
  118. package/dist/components/lite.js +116 -257
  119. package/dist/components/lite.js.map +1 -1
  120. package/dist/components/marketplace.js +2 -2
  121. package/dist/components/packs.js +1 -1
  122. package/dist/components/page.js +3 -3
  123. package/dist/components/perf.cjs +1 -1
  124. package/dist/components/perf.d.cts +2 -2
  125. package/dist/components/perf.d.ts +2 -2
  126. package/dist/components/perf.js +3 -3
  127. package/dist/components/physics.js +3 -3
  128. package/dist/components/react.cjs +2 -2
  129. package/dist/components/react.cjs.map +1 -1
  130. package/dist/components/react.js +2 -2
  131. package/dist/components/react.js.map +1 -1
  132. package/dist/components/reveal.js +1 -1
  133. package/dist/components/solid.cjs +2 -2
  134. package/dist/components/solid.cjs.map +1 -1
  135. package/dist/components/solid.d.cts +4 -35
  136. package/dist/components/solid.d.ts +4 -35
  137. package/dist/components/solid.js +9 -9
  138. package/dist/components/solid.js.map +1 -1
  139. package/dist/components/svelte.cjs +2 -2
  140. package/dist/components/svelte.cjs.map +1 -1
  141. package/dist/components/svelte.d.cts +5 -36
  142. package/dist/components/svelte.d.ts +5 -36
  143. package/dist/components/svelte.js +9 -9
  144. package/dist/components/svelte.js.map +1 -1
  145. package/dist/components/svg.js +1 -1
  146. package/dist/components/text.js +2 -2
  147. package/dist/components/timeline.js +3 -3
  148. package/dist/components/transitions.js +1 -1
  149. package/dist/components/ui.cjs +16 -75
  150. package/dist/components/ui.cjs.map +1 -1
  151. package/dist/components/ui.css +0 -1
  152. package/dist/components/ui.d.cts +3 -18
  153. package/dist/components/ui.d.ts +3 -18
  154. package/dist/components/ui.js +21 -79
  155. package/dist/components/ui.js.map +1 -1
  156. package/dist/components/vue.cjs +2 -2
  157. package/dist/components/vue.cjs.map +1 -1
  158. package/dist/components/vue.d.cts +5 -36
  159. package/dist/components/vue.d.ts +5 -36
  160. package/dist/components/vue.js +9 -9
  161. package/dist/components/vue.js.map +1 -1
  162. package/dist/components/webgl.js +1 -1
  163. package/dist/components/widgets.js +5 -5
  164. package/dist/components.cjs +1 -3
  165. package/dist/components.cjs.map +1 -1
  166. package/dist/components.css +0 -2
  167. package/dist/components.d.cts +6 -39
  168. package/dist/components.d.ts +6 -39
  169. package/dist/components.js +12 -12
  170. package/dist/components.umd.js +2 -2
  171. package/dist/components.umd.js.map +1 -1
  172. package/dist/index.js +2 -2
  173. package/dist/widgets.umd.js +1 -1
  174. package/dist/widgets.umd.js.map +1 -1
  175. package/docs/ROADMAP.md +12 -12
  176. package/docs/accessibility.md +2 -2
  177. package/docs/components.md +13 -2
  178. package/docs/frameworks-ssr.md +4 -4
  179. package/docs/hybrid-apps.md +2 -2
  180. package/docs/upgrading-7.md +11 -1
  181. package/docs/windows-apps.md +1 -1
  182. package/package.json +111 -1
  183. package/dist/chunks/gpu-C2D4T9Q-.cjs.map +0 -1
  184. package/dist/chunks/gpu-DPhMkJq6.js.map +0 -1
  185. package/dist/chunks/index-tags-DucKMQr_.js.map +0 -1
  186. package/dist/chunks/index-tags-wv0R_vkO.cjs.map +0 -1
@@ -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 { deprecate } from '../base';\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/** @deprecated since 6.9 — use `registerWeatherPack()` (removed in 7.0; `npx usa-codemod-7`). */\nexport function registerWeatherEffects(): void {\n deprecate('registerWeatherEffects', 'registerWeatherEffects() is deprecated since 6.9 and removed in 7.0 — use registerWeatherPack() (npx usa-codemod-7).');\n registerWeatherPack();\n}\n"],"names":["canvasBackground","rand","registerEffects","deprecate"],"mappings":";;;;;;;AAyBA,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,WAAmB,EAAE,QAAiC,EAAE,IAAoB,MAAwB;IAC5H,IAAI;AACJ,IAAA,IAAI,EAAE,YAAY;IAClB,WAAW;AACX,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE;IAC/C,GAAG,EAAE,CAAC,EAAe,EAAE,CAAM,EAAE,GAAkB,KAAI;AACnD,QAAA,MAAM,IAAI,GAAGA,2BAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,QAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACnB,QAAA,OAAO,IAAI;IACb,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAU,EAAE,CAAS,KAAY;IAC7C,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1D,IAAA,KAAK,CAAC,IAAI,GAAG,CAAC;AACd,IAAA,OAAO,EAAE;AACX,CAAC;AAED;AACA,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,CAAW,EAAE,CAAS,KAAa,CAAA,IAAA,EAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AAEhI;AACM,SAAU,KAAK,CAAC,IAAY,EAAA;AAChC,IAAA,MAAM,IAAI,GAAmC;AAC3C,QAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,QAAA,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,QAAA,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,QAAA,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,QAAA,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,QAAA,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACnC,QAAA,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAChC;AACD,IAAA,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;IACjC,IAAI,CAAC,GAAG,CAAC;AACT,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAAE,QAAA,CAAC,EAAE;AACtD,IAAA,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5B,IAAA,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,IAAA,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC;AAEO,MAAM,UAAU,GAAuB;AAC5C,IAAA,EAAE,CAAC,YAAY,EAAE,0EAA0E,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE;AACzI,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAEC,WAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAgB,EAAE,CAAC,CAAC,EAAE,CAAC;AACnK,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;AACnC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YACnC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,GAAG,CAAC,SAAS,GAAG,oBAAoB;YACpC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,YAAA,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;oBAAE,CAAC,CAAC,CAAC,GAAGA,WAAI,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9D,gBAAA,IAAI,CAAC,CAAC,CAAC,EAAE;oBACP,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACf,oBAAA,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG;AACjC,oBAAA,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,oBAAA,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;AAAE,wBAAA,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AACxC,oBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,wBAAA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAEA,WAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACtG;;AAAO,oBAAA,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC3C,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,oBAAA,GAAG,CAAC,WAAW,GAAG,uBAAuB;oBACzC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;oBACzB,GAAG,CAAC,SAAS,EAAE;AACf,oBAAA,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAW,EAAE,CAAS,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3F,GAAG,CAAC,MAAM,EAAE;gBACd;AACA,gBAAA,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5F,gBAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,sBAAsB,CAAC;gBACzC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AACzB,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAC;gBACjB,GAAG,CAAC,SAAS,EAAE;AACf,gBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzD,GAAG,CAAC,IAAI,EAAE;YACZ;QACF,CAAC;KACF,CAAC;AACF,IAAA,EAAE,CAAC,UAAU,EAAE,sEAAsE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAChI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAEA,WAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAEA,WAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7M,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AAC5C,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YACnC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK;YACvB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;AAC3D,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,gBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AAC1B,gBAAA,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACzC,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChE,oBAAA,CAAC,CAAC,CAAC,GAAG,EAAE;oBACR,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;gBACzB;gBACA,GAAG,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChC,GAAG,CAAC,SAAS,EAAE;gBACf,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,IAAI,EAAE;YACZ;AACA,YAAA,GAAG,CAAC,WAAW,GAAG,IAAI;YACtB,GAAG,CAAC,SAAS,EAAE;AACf,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAChB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AAAE,gBAAA,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC3I,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,EAAE;AACV,YAAA,GAAG,CAAC,WAAW,GAAG,CAAC;QACrB,CAAC;KACF,CAAC;AACF,IAAA,EAAE,CAAC,WAAW,EAAE,0IAA0I,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AACzM,QAAA,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAA2B,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACtE,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,YAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9B,YAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9B,YAAA,GAAG,CAAC,SAAS,GAAG,GAAG;YACnB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC;gBAAE;AACb,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;AAClB,gBAAA,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,GAAG;gBACpD,MAAM,IAAI,GAAiB,EAAE;gBAC7B,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,GAAW,EAAE,KAAa,KAAI;oBAClE,IAAI,EAAE,GAAG,CAAC;oBACV,IAAI,EAAE,GAAG,CAAC;oBACV,MAAM,IAAI,GAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE;wBAC7B,EAAE,IAAIA,WAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACnB,wBAAA,EAAE,IAAIA,WAAI,CAAC,CAAC,EAAE,EAAE,CAAC;wBACjB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBACnB,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AAAE,4BAAA,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;oBAC7E;AACA,oBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjB,gBAAA,CAAC;gBACD,MAAM,CAACA,WAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAC9C,gBAAA,KAAK,CAAC,IAAI,GAAG,IAAI;AACjB,gBAAA,KAAK,CAAC,GAAG,GAAG,CAAC;YACf;AACA,YAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,gBAAA,KAAK,CAAC,GAAG,IAAI,EAAE;AACf,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;AAC3C,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAA,iBAAA,EAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;gBAC9F,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,gBAAA,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK;AACzB,gBAAA,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK;AACzB,gBAAA,GAAG,CAAC,UAAU,GAAG,EAAE;AACnB,gBAAA,GAAG,CAAC,WAAW,GAAG,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAa,EAAE,CAAS,KAAI;oBAC9C,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;oBACrD,GAAG,CAAC,SAAS,EAAE;AACf,oBAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnE,GAAG,CAAC,MAAM,EAAE;AACd,gBAAA,CAAC,CAAC;AACF,gBAAA,GAAG,CAAC,WAAW,GAAG,CAAC;AACnB,gBAAA,GAAG,CAAC,UAAU,GAAG,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC;AAAE,oBAAA,KAAK,CAAC,IAAI,GAAG,IAAI;YAC/B;QACF,CAAC;KACF,CAAC;AACF,IAAA,EAAE,CAAC,KAAK,EAAE,kEAAkE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/H,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,EAAEA,WAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEA,WAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC/M,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;AACnC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;YACnC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;gBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAAE,oBAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,gBAAA,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,gBAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAA,CAAA,CAAG,CAAC;gBAClD,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA,KAAA,EAAQ,CAAC,CAAC,KAAK,CAAA,GAAA,CAAK,CAAC;AACvC,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAC;gBACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1B;QACF,CAAC;KACF,CAAC;IACF,EAAE,CAAC,aAAa,EAAE,yEAAyE,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QACrJ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9H,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAI;AACnC,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,YAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9B,YAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9B,YAAA,GAAG,CAAC,SAAS,GAAG,GAAG;YACnB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,YAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;AAC/B,gBAAA,GAAG,CAAC,SAAS,GAAG,CAAA,iBAAA,EAAoB,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;gBACnG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YAC9B;AACA,YAAA,GAAG,CAAC,wBAAwB,GAAG,SAAS;YACvC,CAAC,CAAC,MAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACtC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AAClC,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC7B,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;oBACnH,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,oBAAA,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,oBAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC;AAClC,oBAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,oBAAA,GAAG,CAAC,WAAW,GAAG,IAAI;AACtB,oBAAA,GAAG,CAAC,SAAS,GAAG,CAAC;AACjB,oBAAA,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;gBAClC;AACF,YAAA,CAAC,CAAC;AACF,YAAA,GAAG,CAAC,WAAW,GAAG,CAAC;AACnB,YAAA,GAAG,CAAC,wBAAwB,GAAG,aAAa;QAC9C,CAAC;KACF,CAAC;AACF,IAAA,EAAE,CAAC,WAAW,EAAE,kIAAkI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;AAC7K,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAI;YAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE;YAC3G,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;AACtB,YAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;AACtB,YAAA,GAAG,CAAC,SAAS,GAAG,CAAC;YACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,KAAa,EAAE,CAAS,KAAI;AACnD,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE;AACpB,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;AACpD,gBAAA,GAAG,CAAC,SAAS,GAAG,KAAK;AACrB,gBAAA,GAAG,CAAC,WAAW,GAAG,KAAK;AACvB,gBAAA,GAAG,CAAC,UAAU,GAAG,EAAE;gBACnB,GAAG,CAAC,SAAS,EAAE;AACf,gBAAA,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,EAAE;AACV,gBAAA,GAAG,CAAC,UAAU,GAAG,CAAC;AACpB,YAAA,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YACvD,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9D,YAAA,GAAG,CAAC,SAAS,GAAG,oBAAoB;YACpC,GAAG,CAAC,SAAS,EAAE;AACf,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAAE,gBAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACzH,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,EAAE;QACZ,CAAC;KACF,CAAC;;AAGJ;SACgB,mBAAmB,GAAA;IACjCC,wBAAe,CAAC,UAAU,CAAC;AAC7B;AAEA;SACgB,sBAAsB,GAAA;AACpC,IAAAC,cAAS,CAAC,wBAAwB,EAAE,sHAAsH,CAAC;AAC3J,IAAA,mBAAmB,EAAE;AACvB;;;;;;;"}
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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"}
@@ -66,7 +66,5 @@ 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
68
  declare function registerWeatherPack(): void;
69
- /** @deprecated since 6.9 — use `registerWeatherPack()` (removed in 7.0; `npx usa-codemod-7`). */
70
- declare function registerWeatherEffects(): void;
71
69
 
72
- export { WEATHER_FX, registerWeatherEffects, registerWeatherPack, skyAt };
70
+ export { WEATHER_FX, registerWeatherPack, skyAt };
@@ -66,7 +66,5 @@ 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
68
  declare function registerWeatherPack(): void;
69
- /** @deprecated since 6.9 — use `registerWeatherPack()` (removed in 7.0; `npx usa-codemod-7`). */
70
- declare function registerWeatherEffects(): void;
71
69
 
72
- export { WEATHER_FX, registerWeatherEffects, registerWeatherPack, skyAt };
70
+ export { WEATHER_FX, registerWeatherPack, skyAt };
@@ -1,7 +1,7 @@
1
- import { u as deprecate } from '../chunks/base-D5MHqeDd.js';
2
- import { registerEffects } from '../chunks/registry-CTLWeg-J.js';
1
+ import { registerEffects } from '../chunks/registry-D23neB4M.js';
3
2
  import { c as canvasBackground } from '../chunks/generative-2LhxG5BJ.js';
4
3
  import { r as rand } from '../chunks/shared-CkKHWrtJ.js';
4
+ import '../chunks/base-DchG4q_S.js';
5
5
 
6
6
  const bg = (name, description, defaults, spec) => ({
7
7
  name,
@@ -256,11 +256,6 @@ const WEATHER_FX = [
256
256
  function registerWeatherPack() {
257
257
  registerEffects(WEATHER_FX);
258
258
  }
259
- /** @deprecated since 6.9 — use `registerWeatherPack()` (removed in 7.0; `npx usa-codemod-7`). */
260
- function registerWeatherEffects() {
261
- deprecate('registerWeatherEffects', 'registerWeatherEffects() is deprecated since 6.9 and removed in 7.0 — use registerWeatherPack() (npx usa-codemod-7).');
262
- registerWeatherPack();
263
- }
264
259
 
265
- export { WEATHER_FX, registerWeatherEffects, registerWeatherPack, skyAt };
260
+ export { WEATHER_FX, registerWeatherPack, skyAt };
266
261
  //# sourceMappingURL=fx-weather.js.map
@@ -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 { deprecate } from '../base';\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/** @deprecated since 6.9 — use `registerWeatherPack()` (removed in 7.0; `npx usa-codemod-7`). */\nexport function registerWeatherEffects(): void {\n deprecate('registerWeatherEffects', 'registerWeatherEffects() is deprecated since 6.9 and removed in 7.0 — use registerWeatherPack() (npx usa-codemod-7).');\n registerWeatherPack();\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,8 +1,8 @@
1
- import { y as defineElement } from '../chunks/base-D5MHqeDd.js';
2
- import { playEffect, bindEffect, EFFECT_TRIGGERS, registerEffects } from '../chunks/registry-CTLWeg-J.js';
3
- export { EFFECT_KINDS, getEffect, hasEffect, listEffects, registerEffect } from '../chunks/registry-CTLWeg-J.js';
4
- import { T as TIMELINE_PRESETS } from '../chunks/core-DyJu5r5a.js';
5
- import { b as burst, c as confetti, s as shake } from '../chunks/fx-DlGRMJ-Z.js';
1
+ import { y as defineElement } from '../chunks/base-DchG4q_S.js';
2
+ import { playEffect, bindEffect, EFFECT_TRIGGERS, registerEffects } from '../chunks/registry-D23neB4M.js';
3
+ export { EFFECT_KINDS, getEffect, hasEffect, listEffects, registerEffect } from '../chunks/registry-D23neB4M.js';
4
+ import { T as TIMELINE_PRESETS } from '../chunks/core-DVyTlo9Q.js';
5
+ import { b as burst, c as confetti, s as shake } from '../chunks/fx-DUMVKSvg.js';
6
6
  import './tokens.js';
7
7
 
8
8
  function defineFx(tag = 'usa-fx') {
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var base = require('../chunks/base-BaQV-2ha.cjs');
4
3
  var components_marketplace = require('./marketplace.cjs');
5
- var components_fxGpu = require('../chunks/gpu-C2D4T9Q-.cjs');
4
+ var components_fxGpu = require('../chunks/gpu-Dx0H875w.cjs');
6
5
  var components_fxText = require('./fx-text.cjs');
7
6
  var components_fxLight = require('./fx-light.cjs');
8
7
  var components_fx3d = require('./fx-3d.cjs');
@@ -12,6 +11,7 @@ var components_fxWeather = require('./fx-weather.cjs');
12
11
  var components_fxPhysics = require('./fx-physics.cjs');
13
12
  var components_fxFocus = require('./fx-focus.cjs');
14
13
  require('../chunks/registry-DehBVRDV.cjs');
14
+ require('../chunks/base-BaQV-2ha.cjs');
15
15
  require('../chunks/generative-BHIj-NU0.cjs');
16
16
  require('../chunks/shared-jkgRH-Hx.cjs');
17
17
 
@@ -39,13 +39,6 @@ function registerEffectPacks() {
39
39
  components_fxPhysics.registerPhysicsPack();
40
40
  components_fxFocus.registerFocusPack();
41
41
  }
42
- /** @deprecated since 6.9 — `EFFECT_PACKS` (removed in 7.0). */
43
- const FX2_PACKS = EFFECT_PACKS;
44
- /** @deprecated since 6.9 — use `registerEffectPacks()` (removed in 7.0; `npx usa-codemod-7`). */
45
- function registerFx2() {
46
- base.deprecate('registerFx2', 'registerFx2() is deprecated since 6.9 and removed in 7.0 — use registerEffectPacks() (npx usa-codemod-7).');
47
- registerEffectPacks();
48
- }
49
42
 
50
43
  exports.EFFECT_PACK_FORMAT = components_marketplace.EFFECT_PACK_FORMAT;
51
44
  exports.loadEffectPack = components_marketplace.loadEffectPack;
@@ -53,44 +46,39 @@ exports.packManifest = components_marketplace.packManifest;
53
46
  exports.validateManifest = components_marketplace.validateManifest;
54
47
  exports.GLSL_HEAD = components_fxGpu.GLSL_HEAD;
55
48
  exports.GPU_FX = components_fxGpu.GPU_FX;
49
+ exports.WGSL_HEAD = components_fxGpu.WGSL_HEAD;
56
50
  exports.fieldFallback = components_fxGpu.fieldFallback;
57
- exports.registerGpuEffects = components_fxGpu.registerGpuEffects;
51
+ exports.glslToWgsl = components_fxGpu.glslToWgsl;
58
52
  exports.registerGpuPack = components_fxGpu.registerGpuPack;
59
53
  exports.shaderBackground = components_fxGpu.shaderBackground;
60
54
  exports.supportsWebGL2 = components_fxGpu.supportsWebGL2;
55
+ exports.supportsWebGPU = components_fxGpu.supportsWebGPU;
56
+ exports.webgpuBackground = components_fxGpu.webgpuBackground;
57
+ exports.wgslModule = components_fxGpu.wgslModule;
61
58
  exports.TEXT3_FX = components_fxText.TEXT3_FX;
62
- exports.registerTextEffects3 = components_fxText.registerTextEffects3;
63
59
  exports.registerTextPack = components_fxText.registerTextPack;
64
60
  exports.splitChars = components_fxText.splitChars;
65
61
  exports.LIGHT_FX = components_fxLight.LIGHT_FX;
66
- exports.registerLightEffects = components_fxLight.registerLightEffects;
67
62
  exports.registerLightPack = components_fxLight.registerLightPack;
68
63
  exports.trackPointer = components_fxLight.trackPointer;
69
64
  exports.DEPTH3_FX = components_fx3d.DEPTH3_FX;
70
- exports.register3dEffects = components_fx3d.register3dEffects;
71
65
  exports.register3dPack = components_fx3d.register3dPack;
72
66
  exports.MORPH2_FX = components_fxMorph.MORPH2_FX;
73
67
  exports.pointsToPath = components_fxMorph.pointsToPath;
74
- exports.registerMorphEffects2 = components_fxMorph.registerMorphEffects2;
75
68
  exports.registerMorphPack = components_fxMorph.registerMorphPack;
76
69
  exports.samplePath = components_fxMorph.samplePath;
77
70
  exports.TRANSITIONS2_FX = components_fxTransitions.TRANSITIONS2_FX;
78
71
  exports.crossDocumentTransitions = components_fxTransitions.crossDocumentTransitions;
79
72
  exports.pageTransition = components_fxTransitions.pageTransition;
80
- exports.registerTransitionEffects2 = components_fxTransitions.registerTransitionEffects2;
81
73
  exports.registerTransitionsPack = components_fxTransitions.registerTransitionsPack;
82
74
  exports.WEATHER_FX = components_fxWeather.WEATHER_FX;
83
- exports.registerWeatherEffects = components_fxWeather.registerWeatherEffects;
84
75
  exports.registerWeatherPack = components_fxWeather.registerWeatherPack;
85
76
  exports.skyAt = components_fxWeather.skyAt;
86
77
  exports.PHYSICS2_FX = components_fxPhysics.PHYSICS2_FX;
87
78
  exports.VerletWorld = components_fxPhysics.VerletWorld;
88
- exports.registerPhysicsEffects2 = components_fxPhysics.registerPhysicsEffects2;
89
79
  exports.registerPhysicsPack = components_fxPhysics.registerPhysicsPack;
90
80
  exports.FOCUS_FX = components_fxFocus.FOCUS_FX;
91
81
  exports.registerFocusPack = components_fxFocus.registerFocusPack;
92
82
  exports.EFFECT_PACKS = EFFECT_PACKS;
93
- exports.FX2_PACKS = FX2_PACKS;
94
83
  exports.registerEffectPacks = registerEffectPacks;
95
- exports.registerFx2 = registerFx2;
96
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 { deprecate } from '../base';\nexport { EFFECT_PACK_FORMAT, packManifest, validateManifest, loadEffectPack } from './manifest';\nexport type { EffectPackManifest } from './manifest';\nimport { GPU_FX, registerGpuPack, registerGpuEffects } from './gpu';\nimport { TEXT3_FX, registerTextPack, registerTextEffects3, splitChars } from './text3';\nimport { LIGHT_FX, registerLightPack, registerLightEffects, trackPointer } from './light';\nimport { DEPTH3_FX, register3dPack, register3dEffects } from './depth3';\nimport { MORPH2_FX, registerMorphPack, registerMorphEffects2, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionsPack, registerTransitionEffects2, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherPack, registerWeatherEffects, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsPack, registerPhysicsEffects2, VerletWorld } from './physics2';\nimport { FOCUS_FX, registerFocusPack } from './focus';\n\nexport { GPU_FX, registerGpuPack, registerGpuEffects, TEXT3_FX, registerTextPack, registerTextEffects3, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightPack, registerLightEffects, trackPointer };\n\nexport { DEPTH3_FX, register3dPack, register3dEffects };\n\nexport { MORPH2_FX, registerMorphPack, registerMorphEffects2, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionsPack, registerTransitionEffects2, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherPack, registerWeatherEffects, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsPack, registerPhysicsEffects2, 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/** @deprecated since 6.9 — `EFFECT_PACKS` (removed in 7.0). */\nexport const FX2_PACKS = EFFECT_PACKS;\n\n/** @deprecated since 6.9 — use `registerEffectPacks()` (removed in 7.0; `npx usa-codemod-7`). */\nexport function registerFx2(): void {\n deprecate('registerFx2', 'registerFx2() is deprecated since 6.9 and removed in 7.0 — use registerEffectPacks() (npx usa-codemod-7).');\n registerEffectPacks();\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","deprecate"],"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;AAEA;AACO,MAAM,SAAS,GAAG;AAEzB;SACgB,WAAW,GAAA;AACzB,IAAAC,cAAS,CAAC,aAAa,EAAE,2GAA2G,CAAC;AACrI,IAAA,mBAAmB,EAAE;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -122,8 +122,6 @@ declare function loadEffectPack(src: string | {
122
122
  declare const GPU_FX: EffectDefinition[];
123
123
  /** Register the 6.2 GPU pack (idempotent). */
124
124
  declare function registerGpuPack(): void;
125
- /** @deprecated since 6.9 — use `registerGpuPack()` (removed in 7.0; `npx usa-codemod-7`). */
126
- declare function registerGpuEffects(): void;
127
125
 
128
126
  /**
129
127
  * 6.3 — Text effects 3.0 (`motionary/components/fx-text`), registered through
@@ -150,8 +148,6 @@ declare function splitChars(el: HTMLElement): HTMLElement[];
150
148
  declare const TEXT3_FX: EffectDefinition[];
151
149
  /** Register the 6.3 text pack (idempotent). */
152
150
  declare function registerTextPack(): void;
153
- /** @deprecated since 6.9 — use `registerTextPack()` (removed in 7.0; `npx usa-codemod-7`). */
154
- declare function registerTextEffects3(): void;
155
151
 
156
152
  /**
157
153
  * 6.4 — Light & materials (`motionary/components/fx-light`), registered
@@ -180,8 +176,6 @@ declare function trackPointer(el: HTMLElement, ctx: EffectContext, fn: (x: numbe
180
176
  declare const LIGHT_FX: EffectDefinition[];
181
177
  /** Register the 6.4 light & materials pack (idempotent). */
182
178
  declare function registerLightPack(): void;
183
- /** @deprecated since 6.9 — use `registerLightPack()` (removed in 7.0; `npx usa-codemod-7`). */
184
- declare function registerLightEffects(): void;
185
179
 
186
180
  /**
187
181
  * 6.5 — 3D scene cards (`motionary/components/fx-3d`), registered through
@@ -205,8 +199,6 @@ declare function registerLightEffects(): void;
205
199
  declare const DEPTH3_FX: EffectDefinition[];
206
200
  /** Register the 6.5 3D pack (idempotent). */
207
201
  declare function register3dPack(): void;
208
- /** @deprecated since 6.9 — use `register3dPack()` (removed in 7.0; `npx usa-codemod-7`). */
209
- declare function register3dEffects(): void;
210
202
 
211
203
  /**
212
204
  * 6.6 — Morph & SVG 2.0 (`motionary/components/fx-morph`), registered
@@ -234,8 +226,6 @@ declare const pointsToPath: (pts: [number, number][]) => string;
234
226
  declare const MORPH2_FX: EffectDefinition[];
235
227
  /** Register the 6.6 morph & SVG pack (idempotent). */
236
228
  declare function registerMorphPack(): void;
237
- /** @deprecated since 6.9 — use `registerMorphPack()` (removed in 7.0; `npx usa-codemod-7`). */
238
- declare function registerMorphEffects2(): void;
239
229
 
240
230
  /**
241
231
  * 6.7 — Transitions 2.0 (`motionary/components/fx-transitions`), registered
@@ -269,8 +259,6 @@ declare function pageTransition(update: () => void | Promise<void>, effect?: str
269
259
  declare function crossDocumentTransitions(effect?: string, duration?: number): () => void;
270
260
  /** Register the 6.7 transitions pack (idempotent). */
271
261
  declare function registerTransitionsPack(): void;
272
- /** @deprecated since 6.9 — use `registerTransitionsPack()` (removed in 7.0; `npx usa-codemod-7`). */
273
- declare function registerTransitionEffects2(): void;
274
262
 
275
263
  /**
276
264
  * 6.8 — Weather & ambience (`motionary/components/fx-weather`), registered
@@ -297,8 +285,6 @@ declare function skyAt(hour: number): [string, string];
297
285
  declare const WEATHER_FX: EffectDefinition[];
298
286
  /** Register the 6.8 weather & ambience pack (idempotent). */
299
287
  declare function registerWeatherPack(): void;
300
- /** @deprecated since 6.9 — use `registerWeatherPack()` (removed in 7.0; `npx usa-codemod-7`). */
301
- declare function registerWeatherEffects(): void;
302
288
 
303
289
  /**
304
290
  * 6.8 — Interactive physics 2.0 (`motionary/components/fx-physics`) on a tiny
@@ -346,8 +332,6 @@ declare class VerletWorld {
346
332
  declare const PHYSICS2_FX: EffectDefinition[];
347
333
  /** Register the 6.8 physics 2.0 pack (idempotent). */
348
334
  declare function registerPhysicsPack(): void;
349
- /** @deprecated since 6.9 — use `registerPhysicsPack()` (removed in 7.0; `npx usa-codemod-7`). */
350
- declare function registerPhysicsEffects2(): void;
351
335
 
352
336
  /**
353
337
  * 6.9 — Focus & feedback (`motionary/components/fx-focus`), registered
@@ -414,6 +398,8 @@ interface GenerativeSpec {
414
398
  /** GLSL shared by every shader: uniforms, hash, value noise, fbm. */
415
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";
416
400
  interface ShaderSpec {
401
+ /** 7.0: hand-written WGSL statements for the WebGPU backend (default: `glslToWgsl(body)`). */
402
+ wgsl?: string;
417
403
  /** GLSL body of `main()`: `uv` (0–1), `p` (aspect-corrected, scaled), `t` (s × speed) are in scope; write `o`. */
418
404
  body: string;
419
405
  /** Canvas 2D fallback. */
@@ -422,7 +408,9 @@ interface ShaderSpec {
422
408
  declare function supportsWebGL2(): boolean;
423
409
  /**
424
410
  * Mount a shader background behind `el` (options: `colors` [3 hex], `speed`,
425
- * `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.
426
414
  */
427
415
  declare function shaderBackground(el: HTMLElement, fx: EffectContext, spec: ShaderSpec, o: any): () => void;
428
416
  /**
@@ -431,6 +419,39 @@ declare function shaderBackground(el: HTMLElement, fx: EffectContext, spec: Shad
431
419
  */
432
420
  declare function fieldFallback(color: (x: number, y: number, t: number, o: any) => [number, number, number], cell?: number): GenerativeSpec;
433
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
+
434
455
  /**
435
456
  * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so
436
457
  * their size budgets stay separate. This module (`registerFx2()`) registers
@@ -441,10 +462,6 @@ declare function fieldFallback(color: (x: number, y: number, t: number, o: any)
441
462
  declare const EFFECT_PACKS: Record<string, EffectDefinition[]>;
442
463
  /** Register every 6.x effect pack (idempotent). */
443
464
  declare function registerEffectPacks(): void;
444
- /** @deprecated since 6.9 — `EFFECT_PACKS` (removed in 7.0). */
445
- declare const FX2_PACKS: Record<string, EffectDefinition<Record<string, any>>[]>;
446
- /** @deprecated since 6.9 — use `registerEffectPacks()` (removed in 7.0; `npx usa-codemod-7`). */
447
- declare function registerFx2(): void;
448
465
 
449
- export { DEPTH3_FX, EFFECT_PACKS, EFFECT_PACK_FORMAT, FOCUS_FX, FX2_PACKS, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, PHYSICS2_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, crossDocumentTransitions, fieldFallback, loadEffectPack, packManifest, pageTransition, pointsToPath, register3dEffects, register3dPack, registerEffectPacks, registerFocusPack, registerFx2, registerGpuEffects, registerGpuPack, registerLightEffects, registerLightPack, registerMorphEffects2, registerMorphPack, registerPhysicsEffects2, registerPhysicsPack, registerTextEffects3, registerTextPack, registerTransitionEffects2, registerTransitionsPack, registerWeatherEffects, registerWeatherPack, samplePath, shaderBackground, skyAt, splitChars, supportsWebGL2, trackPointer, validateManifest };
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 };
450
467
  export type { EffectPackManifest, ShaderSpec };