@buoy-gg/shared-ui 7.0.25 → 7.0.27

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 (209) hide show
  1. package/lib/commonjs/JsModal.js +156 -20
  2. package/lib/commonjs/JsModal.web.js +85 -39
  3. package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +14 -4
  4. package/lib/commonjs/dataViewer/diffThemes.js +20 -18
  5. package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +8 -8
  6. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  7. package/lib/commonjs/icons/lucide-icons.js +74 -15
  8. package/lib/commonjs/index.js +86 -0
  9. package/lib/commonjs/ui/backgrounds/BackgroundSwitcher.js +248 -74
  10. package/lib/commonjs/ui/backgrounds/README.md +102 -20
  11. package/lib/commonjs/ui/backgrounds/backgroundStore.js +20 -6
  12. package/lib/commonjs/ui/backgrounds/index.js +91 -1
  13. package/lib/commonjs/ui/backgrounds/primitives.js +50 -14
  14. package/lib/commonjs/ui/backgrounds/registry.js +41 -64
  15. package/lib/commonjs/ui/backgrounds/rng.js +21 -0
  16. package/lib/commonjs/ui/backgrounds/skyClock.js +45 -0
  17. package/lib/commonjs/ui/backgrounds/variants/daylight.js +453 -0
  18. package/lib/commonjs/ui/backgrounds/variants/deepField.js +60 -30
  19. package/lib/commonjs/ui/backgrounds/variants/hyperspace.js +218 -0
  20. package/lib/commonjs/ui/backgrounds/variants/liveSky.js +898 -0
  21. package/lib/commonjs/ui/backgrounds/variants/meteors.js +257 -0
  22. package/lib/commonjs/ui/backgrounds/variants/moonlight.js +472 -0
  23. package/lib/commonjs/ui/backgrounds/variants/underwater.js +757 -0
  24. package/lib/commonjs/ui/components/Badge.js +11 -10
  25. package/lib/commonjs/ui/components/CompactRow.js +30 -17
  26. package/lib/commonjs/ui/components/DevToolsCard.js +12 -8
  27. package/lib/commonjs/ui/components/DynamicFilterView.js +43 -41
  28. package/lib/commonjs/ui/components/EventStepperFooter.js +38 -10
  29. package/lib/commonjs/ui/components/FilterComponents.js +11 -11
  30. package/lib/commonjs/ui/components/ModalHeader.js +13 -13
  31. package/lib/commonjs/ui/components/SectionHeader.js +3 -1
  32. package/lib/commonjs/ui/components/StorageTypeBadge.js +3 -2
  33. package/lib/commonjs/ui/components/TabSelector.js +56 -38
  34. package/lib/commonjs/ui/components/ValueTypeBadge.js +7 -6
  35. package/lib/commonjs/ui/components/WindowControls.js +37 -10
  36. package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +8 -0
  37. package/lib/commonjs/ui/night/nightTheme.js +120 -0
  38. package/lib/commonjs/ui/night/primitives.js +498 -0
  39. package/lib/module/JsModal.js +156 -20
  40. package/lib/module/JsModal.web.js +83 -39
  41. package/lib/module/dataViewer/VirtualizedDataExplorer.js +14 -4
  42. package/lib/module/dataViewer/diffThemes.js +20 -18
  43. package/lib/module/dataViewer/tree/TreeDiffViewer.js +9 -9
  44. package/lib/module/hooks/safe-area-impl.js +1 -1
  45. package/lib/module/icons/lucide-icons.js +74 -15
  46. package/lib/module/index.js +4 -0
  47. package/lib/module/ui/backgrounds/BackgroundSwitcher.js +250 -76
  48. package/lib/module/ui/backgrounds/README.md +102 -20
  49. package/lib/module/ui/backgrounds/backgroundStore.js +19 -5
  50. package/lib/module/ui/backgrounds/index.js +11 -2
  51. package/lib/module/ui/backgrounds/primitives.js +53 -16
  52. package/lib/module/ui/backgrounds/registry.js +41 -64
  53. package/lib/module/ui/backgrounds/rng.js +20 -0
  54. package/lib/module/ui/backgrounds/skyClock.js +39 -0
  55. package/lib/module/ui/backgrounds/variants/daylight.js +449 -0
  56. package/lib/module/ui/backgrounds/variants/deepField.js +62 -31
  57. package/lib/module/ui/backgrounds/variants/hyperspace.js +214 -0
  58. package/lib/module/ui/backgrounds/variants/liveSky.js +893 -0
  59. package/lib/module/ui/backgrounds/variants/meteors.js +253 -0
  60. package/lib/module/ui/backgrounds/variants/moonlight.js +468 -0
  61. package/lib/module/ui/backgrounds/variants/underwater.js +753 -0
  62. package/lib/module/ui/components/Badge.js +11 -10
  63. package/lib/module/ui/components/CompactRow.js +30 -17
  64. package/lib/module/ui/components/DevToolsCard.js +12 -8
  65. package/lib/module/ui/components/DynamicFilterView.js +43 -41
  66. package/lib/module/ui/components/EventStepperFooter.js +38 -10
  67. package/lib/module/ui/components/FilterComponents.js +11 -11
  68. package/lib/module/ui/components/ModalHeader.js +13 -13
  69. package/lib/module/ui/components/SectionHeader.js +3 -1
  70. package/lib/module/ui/components/StorageTypeBadge.js +3 -2
  71. package/lib/module/ui/components/TabSelector.js +57 -39
  72. package/lib/module/ui/components/ValueTypeBadge.js +7 -6
  73. package/lib/module/ui/components/WindowControls.js +37 -10
  74. package/lib/module/ui/gameUI/constants/gameUIColors.js +8 -0
  75. package/lib/module/ui/night/nightTheme.js +116 -0
  76. package/lib/module/ui/night/primitives.js +485 -0
  77. package/lib/typescript/commonjs/JsModal.d.ts +18 -0
  78. package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/JsModal.web.d.ts +13 -0
  80. package/lib/typescript/commonjs/JsModal.web.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts +3 -1
  83. package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  86. package/lib/typescript/commonjs/icons/lucide-icons.d.ts +12 -1
  87. package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/index.d.ts +3 -0
  89. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts +26 -6
  91. package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts +3 -0
  93. package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/ui/backgrounds/index.d.ts +7 -1
  95. package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts +18 -3
  97. package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts +8 -0
  99. package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts +6 -0
  101. package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts +17 -0
  103. package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/ui/backgrounds/types.d.ts +1 -1
  105. package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts +30 -0
  107. package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts +19 -4
  109. package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts +39 -0
  111. package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts +41 -0
  113. package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts.map +1 -0
  114. package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts +26 -0
  115. package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts +35 -0
  117. package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts +51 -0
  119. package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/ui/components/Badge.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/ui/components/DynamicFilterView.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts +2 -0
  124. package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/ui/components/StorageTypeBadge.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/ui/components/TabSelector.d.ts +9 -0
  127. package/lib/typescript/commonjs/ui/components/TabSelector.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/ui/components/ValueTypeBadge.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/ui/components/WindowControls.d.ts +4 -2
  130. package/lib/typescript/commonjs/ui/components/WindowControls.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts +8 -0
  132. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/ui/night/nightTheme.d.ts +113 -0
  134. package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/ui/night/primitives.d.ts +111 -0
  136. package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -0
  137. package/lib/typescript/module/JsModal.d.ts +18 -0
  138. package/lib/typescript/module/JsModal.d.ts.map +1 -1
  139. package/lib/typescript/module/JsModal.web.d.ts +13 -0
  140. package/lib/typescript/module/JsModal.web.d.ts.map +1 -1
  141. package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
  142. package/lib/typescript/module/dataViewer/diffThemes.d.ts +3 -1
  143. package/lib/typescript/module/dataViewer/diffThemes.d.ts.map +1 -1
  144. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  145. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  146. package/lib/typescript/module/icons/lucide-icons.d.ts +12 -1
  147. package/lib/typescript/module/icons/lucide-icons.d.ts.map +1 -1
  148. package/lib/typescript/module/index.d.ts +3 -0
  149. package/lib/typescript/module/index.d.ts.map +1 -1
  150. package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts +26 -6
  151. package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts.map +1 -1
  152. package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts +3 -0
  153. package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts.map +1 -1
  154. package/lib/typescript/module/ui/backgrounds/index.d.ts +7 -1
  155. package/lib/typescript/module/ui/backgrounds/index.d.ts.map +1 -1
  156. package/lib/typescript/module/ui/backgrounds/primitives.d.ts +18 -3
  157. package/lib/typescript/module/ui/backgrounds/primitives.d.ts.map +1 -1
  158. package/lib/typescript/module/ui/backgrounds/registry.d.ts +8 -0
  159. package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +1 -1
  160. package/lib/typescript/module/ui/backgrounds/rng.d.ts +6 -0
  161. package/lib/typescript/module/ui/backgrounds/rng.d.ts.map +1 -1
  162. package/lib/typescript/module/ui/backgrounds/skyClock.d.ts +17 -0
  163. package/lib/typescript/module/ui/backgrounds/skyClock.d.ts.map +1 -0
  164. package/lib/typescript/module/ui/backgrounds/types.d.ts +1 -1
  165. package/lib/typescript/module/ui/backgrounds/types.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts +30 -0
  167. package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts.map +1 -0
  168. package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts +19 -4
  169. package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts.map +1 -1
  170. package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts +39 -0
  171. package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts.map +1 -0
  172. package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts +41 -0
  173. package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts.map +1 -0
  174. package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts +26 -0
  175. package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts.map +1 -0
  176. package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts +35 -0
  177. package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts.map +1 -0
  178. package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts +51 -0
  179. package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts.map +1 -0
  180. package/lib/typescript/module/ui/components/Badge.d.ts.map +1 -1
  181. package/lib/typescript/module/ui/components/CompactRow.d.ts.map +1 -1
  182. package/lib/typescript/module/ui/components/DynamicFilterView.d.ts.map +1 -1
  183. package/lib/typescript/module/ui/components/EventStepperFooter.d.ts +2 -0
  184. package/lib/typescript/module/ui/components/EventStepperFooter.d.ts.map +1 -1
  185. package/lib/typescript/module/ui/components/StorageTypeBadge.d.ts.map +1 -1
  186. package/lib/typescript/module/ui/components/TabSelector.d.ts +9 -0
  187. package/lib/typescript/module/ui/components/TabSelector.d.ts.map +1 -1
  188. package/lib/typescript/module/ui/components/ValueTypeBadge.d.ts.map +1 -1
  189. package/lib/typescript/module/ui/components/WindowControls.d.ts +4 -2
  190. package/lib/typescript/module/ui/components/WindowControls.d.ts.map +1 -1
  191. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts +8 -0
  192. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
  193. package/lib/typescript/module/ui/night/nightTheme.d.ts +113 -0
  194. package/lib/typescript/module/ui/night/nightTheme.d.ts.map +1 -0
  195. package/lib/typescript/module/ui/night/primitives.d.ts +111 -0
  196. package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -0
  197. package/package.json +4 -4
  198. package/lib/commonjs/ui/backgrounds/variants/lattice.js +0 -579
  199. package/lib/commonjs/ui/backgrounds/variants/starfield.js +0 -210
  200. package/lib/module/ui/backgrounds/variants/lattice.js +0 -575
  201. package/lib/module/ui/backgrounds/variants/starfield.js +0 -206
  202. package/lib/typescript/commonjs/ui/backgrounds/variants/lattice.d.ts +0 -33
  203. package/lib/typescript/commonjs/ui/backgrounds/variants/lattice.d.ts.map +0 -1
  204. package/lib/typescript/commonjs/ui/backgrounds/variants/starfield.d.ts +0 -12
  205. package/lib/typescript/commonjs/ui/backgrounds/variants/starfield.d.ts.map +0 -1
  206. package/lib/typescript/module/ui/backgrounds/variants/lattice.d.ts +0 -33
  207. package/lib/typescript/module/ui/backgrounds/variants/lattice.d.ts.map +0 -1
  208. package/lib/typescript/module/ui/backgrounds/variants/starfield.d.ts +0 -12
  209. package/lib/typescript/module/ui/backgrounds/variants/starfield.d.ts.map +0 -1
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * MeteorShower — shooting stars that slam into the walls.
5
+ *
6
+ * Each meteor streaks in from off-screen, hits an EDGE of the surface, and
7
+ * bursts: a flash, an expanding shockwave ring (half-clipped by the wall,
8
+ * which is what sells the impact), and a handful of sparks ricocheting back
9
+ * into the room. The whole life cycle — parked invisible, streak, impact,
10
+ * decay — is keyframed into interpolate stops on ONE plain native loop per
11
+ * meteor; `Animated.sequence([timing, loop])` silently fails to drive
12
+ * natively, so nothing here sequences.
13
+ *
14
+ * This used to be a standalone "Meteors" preset with its own 40-star sky;
15
+ * that scene was folded into Deep Field (which supplies the far better sky),
16
+ * so what remains is just the meteor LAYER — transparent, composed on top of
17
+ * a host scene by `deepField.tsx`.
18
+ *
19
+ * Same contract as ../README.md: keyframes on module-load constants, no
20
+ * `transformOrigin`.
21
+ */
22
+
23
+ import { memo } from "react";
24
+ import { Animated, View } from "react-native";
25
+ import { absoluteFill } from "../../../utils/absoluteFill.js";
26
+ import { RadialGlow, useLoop } from "../primitives.js";
27
+ import { withAlpha } from "../rng.js";
28
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
+ /**
30
+ * `to` is ON a wall — that's the impact point. `sparkArc` is the hemisphere
31
+ * (in degrees) sparks scatter into, pointed back away from the wall the
32
+ * meteor just hit. Different periods keep the two impacts from syncing up.
33
+ */
34
+ const METEORS = [{
35
+ from: [0.08, -0.06],
36
+ to: [0.99, 0.36],
37
+ periodMs: 11000,
38
+ window: [0.05, 0.15],
39
+ sparkArc: [110, 250] // right wall → sparks fly left
40
+ }, {
41
+ from: [0.92, -0.08],
42
+ to: [0.01, 0.62],
43
+ periodMs: 15500,
44
+ window: [0.56, 0.66],
45
+ sparkArc: [-70, 70] // left wall → sparks fly right
46
+ }];
47
+ const SPARKS_PER_IMPACT = 6;
48
+ const SHOCKWAVE_DIA = 92;
49
+ const Meteor = /*#__PURE__*/memo(function Meteor({
50
+ index,
51
+ width,
52
+ height,
53
+ animated
54
+ }) {
55
+ const m = METEORS[index];
56
+ const t = useLoop(m.periodMs, animated);
57
+ const [a, b] = m.window;
58
+ const x0 = m.from[0] * width;
59
+ const y0 = m.from[1] * height;
60
+ const x1 = m.to[0] * width;
61
+ const y1 = m.to[1] * height;
62
+ const angleRad = Math.atan2(y1 - y0, x1 - x0);
63
+ const angle = angleRad * 180 / Math.PI;
64
+ // The 108x16 box rotates about its center (54, 8) and the bright head sits
65
+ // at local (96, 8), so the head leads the box's top-left corner by this
66
+ // much in world space. Translations must anchor the HEAD to the path, or it
67
+ // crosses the wall long before t=b and the burst lands off the flight line.
68
+ const headDx = 54 + 42 * Math.cos(angleRad);
69
+ const headDy = 8 + 42 * Math.sin(angleRad);
70
+
71
+ // --- The streak ---------------------------------------------------------
72
+ const translateX = t.interpolate({
73
+ inputRange: [0, a, b, 1],
74
+ outputRange: [x0 - headDx, x0 - headDx, x1 - headDx, x1 - headDx]
75
+ });
76
+ const translateY = t.interpolate({
77
+ inputRange: [0, a, b, 1],
78
+ outputRange: [y0 - headDy, y0 - headDy, y1 - headDy, y1 - headDy]
79
+ });
80
+ const streakOpacity = t.interpolate({
81
+ inputRange: [0, a, a + (b - a) * 0.15, b - (b - a) * 0.1, b, 1],
82
+ outputRange: [0, 0, 1, 1, 0, 0]
83
+ });
84
+ const trail = [];
85
+ for (let i = 0; i < 8; i++) {
86
+ const d = 2.4 - i * 0.24;
87
+ trail.push(/*#__PURE__*/_jsx(View, {
88
+ style: {
89
+ position: "absolute",
90
+ left: 96 - (i + 1) * 11,
91
+ top: 8 - d / 2,
92
+ width: d,
93
+ height: d,
94
+ borderRadius: d / 2,
95
+ backgroundColor: withAlpha("#C9D9F0", 0.68 - i * 0.08)
96
+ }
97
+ }, i));
98
+ }
99
+
100
+ // --- The impact ---------------------------------------------------------
101
+ // Everything below reads the SAME loop value; the burst simply lives in the
102
+ // slice of the timeline right after the streak arrives at the wall.
103
+ const flashOpacity = t.interpolate({
104
+ inputRange: [0, b, Math.min(b + 0.012, 0.999), Math.min(b + 0.07, 0.9995), 1],
105
+ outputRange: [0, 0, 1, 0, 0]
106
+ });
107
+ const flashScale = t.interpolate({
108
+ inputRange: [0, b, Math.min(b + 0.07, 0.999), 1],
109
+ outputRange: [0.4, 0.4, 1.4, 1.4]
110
+ });
111
+ const waveOpacity = t.interpolate({
112
+ inputRange: [0, b, Math.min(b + 0.02, 0.999), Math.min(b + 0.11, 0.9995), 1],
113
+ outputRange: [0, 0, 0.85, 0, 0]
114
+ });
115
+ const waveScale = t.interpolate({
116
+ inputRange: [0, b, Math.min(b + 0.11, 0.999), 1],
117
+ outputRange: [0.12, 0.12, 1, 1]
118
+ });
119
+ const sparks = [];
120
+ for (let i = 0; i < SPARKS_PER_IMPACT; i++) {
121
+ // Deterministic fan across the arc, alternating reach so the burst reads
122
+ // as debris rather than a perfect star.
123
+ const frac = i / (SPARKS_PER_IMPACT - 1);
124
+ const deg = m.sparkArc[0] + (m.sparkArc[1] - m.sparkArc[0]) * frac;
125
+ const rad = deg * Math.PI / 180;
126
+ const dist = 30 + i % 3 * 14;
127
+ const sx = t.interpolate({
128
+ inputRange: [0, b, Math.min(b + 0.09, 0.999), 1],
129
+ outputRange: [0, 0, Math.cos(rad) * dist, Math.cos(rad) * dist]
130
+ });
131
+ const sy = t.interpolate({
132
+ inputRange: [0, b, Math.min(b + 0.09, 0.999), 1],
133
+ outputRange: [0, 0, Math.sin(rad) * dist, Math.sin(rad) * dist]
134
+ });
135
+ const so = t.interpolate({
136
+ inputRange: [0, b, Math.min(b + 0.02, 0.999), Math.min(b + 0.09, 0.9995), 1],
137
+ outputRange: [0, 0, 0.9, 0, 0]
138
+ });
139
+ const d = 2.2 - i % 3 * 0.4;
140
+ sparks.push(/*#__PURE__*/_jsx(Animated.View, {
141
+ style: {
142
+ position: "absolute",
143
+ left: x1 - d / 2,
144
+ top: y1 - d / 2,
145
+ width: d,
146
+ height: d,
147
+ borderRadius: d / 2,
148
+ backgroundColor: withAlpha("#E5EEFC", 1),
149
+ opacity: so,
150
+ transform: [{
151
+ translateX: sx
152
+ }, {
153
+ translateY: sy
154
+ }]
155
+ },
156
+ pointerEvents: "none"
157
+ }, i));
158
+ }
159
+ return /*#__PURE__*/_jsxs(View, {
160
+ style: absoluteFill,
161
+ pointerEvents: "none",
162
+ children: [/*#__PURE__*/_jsxs(Animated.View, {
163
+ style: {
164
+ position: "absolute",
165
+ left: 0,
166
+ top: 0,
167
+ width: 108,
168
+ height: 16,
169
+ opacity: streakOpacity,
170
+ transform: [{
171
+ translateX
172
+ }, {
173
+ translateY
174
+ }, {
175
+ rotate: `${angle}deg`
176
+ }]
177
+ },
178
+ pointerEvents: "none",
179
+ children: [/*#__PURE__*/_jsx(View, {
180
+ style: {
181
+ position: "absolute",
182
+ left: 86,
183
+ top: -2,
184
+ width: 20,
185
+ height: 20,
186
+ borderRadius: 10,
187
+ backgroundColor: withAlpha("#E5EEFC", 0.16)
188
+ }
189
+ }), /*#__PURE__*/_jsx(View, {
190
+ style: {
191
+ position: "absolute",
192
+ left: 94.5,
193
+ top: 6.5,
194
+ width: 3,
195
+ height: 3,
196
+ borderRadius: 1.5,
197
+ backgroundColor: withAlpha("#F5F9FF", 1)
198
+ }
199
+ }), trail]
200
+ }), /*#__PURE__*/_jsx(Animated.View, {
201
+ style: {
202
+ position: "absolute",
203
+ left: x1 - 32,
204
+ top: y1 - 32,
205
+ width: 64,
206
+ height: 64,
207
+ opacity: flashOpacity,
208
+ transform: [{
209
+ scale: flashScale
210
+ }]
211
+ },
212
+ pointerEvents: "none",
213
+ children: /*#__PURE__*/_jsx(RadialGlow, {
214
+ size: 64,
215
+ color: "#EDF3FC",
216
+ alpha: 0.6,
217
+ rings: 6,
218
+ falloff: 1.6
219
+ })
220
+ }), /*#__PURE__*/_jsx(Animated.View, {
221
+ style: {
222
+ position: "absolute",
223
+ left: x1 - SHOCKWAVE_DIA / 2,
224
+ top: y1 - SHOCKWAVE_DIA / 2,
225
+ width: SHOCKWAVE_DIA,
226
+ height: SHOCKWAVE_DIA,
227
+ borderRadius: SHOCKWAVE_DIA / 2,
228
+ borderWidth: 1.5,
229
+ borderColor: withAlpha("#BBE5FA", 0.9),
230
+ opacity: waveOpacity,
231
+ transform: [{
232
+ scale: waveScale
233
+ }]
234
+ },
235
+ pointerEvents: "none"
236
+ }), sparks]
237
+ });
238
+ });
239
+
240
+ /**
241
+ * The transparent meteor layer — just the streaks and their wall impacts,
242
+ * ready to compose over any host sky (Deep Field is the shipping mount).
243
+ */
244
+ export const MeteorShower = /*#__PURE__*/memo(function MeteorShower(props) {
245
+ return /*#__PURE__*/_jsx(View, {
246
+ style: absoluteFill,
247
+ pointerEvents: "none",
248
+ children: METEORS.map((_, i) => /*#__PURE__*/_jsx(Meteor, {
249
+ index: i,
250
+ ...props
251
+ }, i))
252
+ });
253
+ });