@servantcdh/ez-planet-cosmos 0.2.1 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,61 +1,100 @@
1
- import { jsxs as p, jsx as t, Fragment as Bt } from "react/jsx-runtime";
2
- import { memo as ot, useRef as K, useMemo as R, useState as _, useCallback as v, useEffect as at } from "react";
3
- import { Handle as tt, Position as et, getBezierPath as zt, BaseEdge as it, ReactFlowProvider as $t, useReactFlow as Lt, useNodesState as Mt, useEdgesState as Ft, ReactFlow as Dt, Background as Tt, BackgroundVariant as Wt, Controls as At, MiniMap as Rt } from "@xyflow/react";
4
- import { motion as w, AnimatePresence as E } from "framer-motion";
5
- import { Canvas as Et, useFrame as nt } from "@react-three/fiber";
6
- import { Points as rt, PointMaterial as lt } from "@react-three/drei";
7
- function Ot({ data: e }) {
8
- const { label: h, subtitle: u, color: l, status: o, isSelected: n } = e, c = n ? 35 : o === "running" ? 30 : o === "error" ? 20 : 15, d = o === "running" ? [1, 1.08, 1] : [1, 1.02, 1], y = n ? 110 : 100;
9
- return /* @__PURE__ */ p("div", { style: { position: "relative", cursor: "pointer" }, children: [
1
+ import { jsxs as m, jsx as t, Fragment as kt } from "react/jsx-runtime";
2
+ import { memo as tt, useRef as et, useMemo as W, useState as Z, useCallback as v, useEffect as it } from "react";
3
+ import { Handle as X, Position as Q, getBezierPath as It, BaseEdge as Y, ReactFlowProvider as Lt, useReactFlow as zt, useNodesState as $t, useEdgesState as Dt, ReactFlow as Mt, Background as Ft, BackgroundVariant as Rt, Controls as Tt, MiniMap as Wt } from "@xyflow/react";
4
+ import { motion as I, AnimatePresence as A } from "framer-motion";
5
+ import { Canvas as At, useFrame as ot } from "@react-three/fiber";
6
+ import { Points as at, PointMaterial as nt } from "@react-three/drei";
7
+ const Ot = "cc-root-eSR-1", Et = "cc-layerStarField-jOb4M", Zt = "cc-layerReactFlow-CeHI9", Ht = "cc-sidePanel-PzU72", Vt = "cc-sidePanelHeader-cWPCq", _t = "cc-sidePanelTitle-Yfh5N", Gt = "cc-sidePanelPlanetIcon-aRuLt", Jt = "cc-sidePanelName-TFFeE", Ut = "cc-sidePanelSubtitle-8fp2Y", Kt = "cc-sidePanelClose-Sdg-J", jt = "cc-sidePanelContent-QIEEQ", qt = "cc-sidePanelFooter-DVOHi", Xt = "cc-satelliteList--vkXn", Qt = "cc-satelliteItem-JGdmG", Yt = "cc-satelliteIcon-arUe3", te = "cc-satelliteInfo-NaKLd", ee = "cc-satelliteName-zfOPN", ie = "cc-satelliteSummary-XARVm", oe = "cc-enterButton-5Vnri", ae = "cc-zoomTransition-Wcju8", ne = "cc-zoomPlanetLabel-3SJT2", le = "cc-planetInterior-GlnW1", re = "cc-interiorBackButton-qJAiZ", ce = "cc-interiorCenter-xdKsX", se = "cc-interiorPlanet--XIzf", de = "cc-interiorPlanetLabel-e7yxq", ue = "cc-interiorPlanetSubtitle-e2vON", me = "cc-orbitRing-hbvmD", pe = "cc-satelliteNode-01STS", he = "cc-satelliteNodeIcon-Xq45f", fe = "cc-satelliteNodeLabel-LLOJ5", ye = "cc-satelliteNodeBadge-HsUFp", ge = "cc-tutorialOverlay-3GHo7", ve = "cc-tutorialWelcome-21KDP", be = "cc-tutorialWelcomeTitle-7GwS9", Ne = "cc-tutorialWelcomeDesc--pznv", Pe = "cc-tutorialActions-szJ0-", we = "cc-tutorialButton-wL9-p", Ce = "cc-tutorialCard-LGIkK", Be = "cc-tutorialChip-bUoEb", xe = "cc-tutorialCardTitle-r2Y1I", Se = "cc-tutorialCardDesc-nOS-M", ke = "cc-tutorialProgress-wIAT9", Ie = "cc-tutorialProgressBar-PFBdE", Le = "cc-tutorialCardFooter-bSdyM", ze = "cc-tutorialDots-8M0QU", $e = "cc-tutorialDot-518t4", De = "cc-planetBody-kF0Jj", Me = "cc-planetBodyRunning-cmLi4", Fe = "cc-planetOrbitRing-v7fZR", Re = "cc-planetStatusDot--M-6s", Te = "cc-planetHint-QUWAw", We = "cc-topBarSlot-EJGvM", Ae = "cc-topBarLogo-1PRdl", Oe = "cc-topBarContent-8WDi6", i = {
8
+ root: Ot,
9
+ layerStarField: Et,
10
+ layerReactFlow: Zt,
11
+ sidePanel: Ht,
12
+ sidePanelHeader: Vt,
13
+ sidePanelTitle: _t,
14
+ sidePanelPlanetIcon: Gt,
15
+ sidePanelName: Jt,
16
+ sidePanelSubtitle: Ut,
17
+ sidePanelClose: Kt,
18
+ sidePanelContent: jt,
19
+ sidePanelFooter: qt,
20
+ satelliteList: Xt,
21
+ satelliteItem: Qt,
22
+ satelliteIcon: Yt,
23
+ satelliteInfo: te,
24
+ satelliteName: ee,
25
+ satelliteSummary: ie,
26
+ enterButton: oe,
27
+ zoomTransition: ae,
28
+ zoomPlanetLabel: ne,
29
+ planetInterior: le,
30
+ interiorBackButton: re,
31
+ interiorCenter: ce,
32
+ interiorPlanet: se,
33
+ interiorPlanetLabel: de,
34
+ interiorPlanetSubtitle: ue,
35
+ orbitRing: me,
36
+ satelliteNode: pe,
37
+ satelliteNodeIcon: he,
38
+ satelliteNodeLabel: fe,
39
+ satelliteNodeBadge: ye,
40
+ tutorialOverlay: ge,
41
+ tutorialWelcome: ve,
42
+ tutorialWelcomeTitle: be,
43
+ tutorialWelcomeDesc: Ne,
44
+ tutorialActions: Pe,
45
+ tutorialButton: we,
46
+ tutorialCard: Ce,
47
+ tutorialChip: Be,
48
+ tutorialCardTitle: xe,
49
+ tutorialCardDesc: Se,
50
+ tutorialProgress: ke,
51
+ tutorialProgressBar: Ie,
52
+ tutorialCardFooter: Le,
53
+ tutorialDots: ze,
54
+ tutorialDot: $e,
55
+ planetBody: De,
56
+ planetBodyRunning: Me,
57
+ planetOrbitRing: Fe,
58
+ planetStatusDot: Re,
59
+ planetHint: Te,
60
+ topBarSlot: We,
61
+ topBarLogo: Ae,
62
+ topBarContent: Oe
63
+ };
64
+ function Ee({ data: e }) {
65
+ const { label: h, subtitle: u, color: c, status: o, isSelected: n } = e, d = n ? 35 : o === "running" ? 30 : o === "error" ? 20 : 15, r = n ? 110 : 100;
66
+ return /* @__PURE__ */ m("div", { style: { position: "relative", cursor: "pointer" }, children: [
10
67
  /* @__PURE__ */ t(
11
- tt,
68
+ X,
12
69
  {
13
70
  type: "target",
14
- position: et.Left,
15
- style: { background: l, border: "none", width: 8, height: 8, opacity: 0.6 }
71
+ position: Q.Left,
72
+ style: { background: c, border: "none", width: 8, height: 8, opacity: 0.6 }
16
73
  }
17
74
  ),
18
75
  n && /* @__PURE__ */ t(
19
- w.div,
76
+ "div",
20
77
  {
21
- initial: { scale: 0.8, opacity: 0 },
22
- animate: { scale: 1, opacity: 1, rotate: 360 },
23
- transition: {
24
- rotate: { duration: 20, repeat: 1 / 0, ease: "linear" },
25
- scale: { duration: 0.3 }
26
- },
78
+ className: i.planetOrbitRing,
27
79
  style: {
28
- position: "absolute",
29
80
  top: -12,
30
81
  left: -12,
31
- width: y + 24,
32
- height: y + 24,
33
- borderRadius: "50%",
34
- border: `1.5px dashed ${l}88`,
35
- pointerEvents: "none"
82
+ width: r + 24,
83
+ height: r + 24,
84
+ border: `1.5px dashed ${c}88`
36
85
  }
37
86
  }
38
87
  ),
39
- /* @__PURE__ */ p(
40
- w.div,
88
+ /* @__PURE__ */ m(
89
+ "div",
41
90
  {
42
- animate: { scale: d },
43
- transition: { duration: 3, repeat: 1 / 0, ease: "easeInOut" },
44
- whileHover: {
45
- boxShadow: `0 0 ${c + 15}px ${l}aa, inset 0 0 25px rgba(255,255,255,0.15)`
46
- },
91
+ className: o === "running" ? i.planetBodyRunning : i.planetBody,
47
92
  style: {
48
- width: y,
49
- height: y,
50
- borderRadius: "50%",
51
- background: `radial-gradient(circle at 35% 35%, ${l}cc, ${l}44)`,
52
- boxShadow: `0 0 ${c}px ${l}88, inset 0 0 20px rgba(255,255,255,0.1)`,
53
- display: "flex",
54
- flexDirection: "column",
55
- alignItems: "center",
56
- justifyContent: "center",
57
- border: `2px solid ${n ? `${l}aa` : `${l}66`}`,
58
- transition: "width 0.3s, height 0.3s, border-color 0.3s"
93
+ width: r,
94
+ height: r,
95
+ background: `radial-gradient(circle at 35% 35%, ${c}cc, ${c}44)`,
96
+ boxShadow: `0 0 ${d}px ${c}88, inset 0 0 20px rgba(255,255,255,0.1)`,
97
+ border: `2px solid ${n ? `${c}aa` : `${c}66`}`
59
98
  },
60
99
  children: [
61
100
  /* @__PURE__ */ t(
@@ -76,101 +115,75 @@ function Ot({ data: e }) {
76
115
  }
77
116
  ),
78
117
  o !== "idle" && o !== "disabled" && /* @__PURE__ */ t(
79
- w.div,
118
+ "div",
80
119
  {
81
- animate: { opacity: [0.5, 1, 0.5] },
82
- transition: { duration: 1.5, repeat: 1 / 0 },
120
+ className: i.planetStatusDot,
83
121
  style: {
84
- position: "absolute",
85
- top: -4,
86
- right: -4,
87
- width: 14,
88
- height: 14,
89
- borderRadius: "50%",
90
- background: o === "running" ? "#2ecc71" : o === "error" ? "#e74c3c" : "#27ae60",
91
- border: "2px solid rgba(0,0,0,0.4)"
122
+ background: o === "running" ? "#2ecc71" : o === "error" ? "#e74c3c" : "#27ae60"
92
123
  }
93
124
  }
94
125
  ),
95
- n && /* @__PURE__ */ t(
96
- w.div,
97
- {
98
- initial: { opacity: 0, y: 8 },
99
- animate: { opacity: 0.5, y: 0 },
100
- style: {
101
- position: "absolute",
102
- bottom: -22,
103
- left: "50%",
104
- transform: "translateX(-50%)",
105
- fontSize: 9,
106
- color: "#fff",
107
- whiteSpace: "nowrap",
108
- fontFamily: "monospace",
109
- letterSpacing: 0.5
110
- },
111
- children: "double-click to enter"
112
- }
113
- ),
126
+ n && /* @__PURE__ */ t("div", { className: i.planetHint, children: "double-click to enter" }),
114
127
  /* @__PURE__ */ t(
115
- tt,
128
+ X,
116
129
  {
117
130
  type: "source",
118
- position: et.Right,
119
- style: { background: l, border: "none", width: 8, height: 8, opacity: 0.6 }
131
+ position: Q.Right,
132
+ style: { background: c, border: "none", width: 8, height: 8, opacity: 0.6 }
120
133
  }
121
134
  )
122
135
  ] });
123
136
  }
124
- const _t = ot(Ot);
125
- function Gt({
137
+ const Ze = tt(Ee);
138
+ function He({
126
139
  id: e,
127
140
  sourceX: h,
128
141
  sourceY: u,
129
- targetX: l,
142
+ targetX: c,
130
143
  targetY: o,
131
144
  sourcePosition: n,
132
- targetPosition: c,
133
- data: d,
134
- style: y = {}
145
+ targetPosition: d,
146
+ data: r,
147
+ style: g = {}
135
148
  }) {
136
- const [m] = zt({
149
+ const [p] = It({
137
150
  sourceX: h,
138
151
  sourceY: u,
139
152
  sourcePosition: n,
140
- targetX: l,
153
+ targetX: c,
141
154
  targetY: o,
142
- targetPosition: c
143
- }), b = (d == null ? void 0 : d.isActive) ?? !1, C = (d == null ? void 0 : d.isDimmed) ?? !1, M = b ? "rgba(46, 204, 113, 0.25)" : "rgba(100, 149, 237, 0.15)", $ = b ? "rgba(46, 204, 113, 0.7)" : C ? "rgba(100, 149, 237, 0.12)" : "rgba(100, 149, 237, 0.4)", r = b ? 3 : 2, I = b ? "12 4" : "8 4";
144
- return /* @__PURE__ */ p(Bt, { children: [
155
+ targetPosition: d
156
+ }), f = (r == null ? void 0 : r.isActive) ?? !1, w = (r == null ? void 0 : r.isDimmed) ?? !1, $ = f ? "rgba(46, 204, 113, 0.25)" : "rgba(100, 149, 237, 0.15)", L = f ? "rgba(46, 204, 113, 0.7)" : w ? "rgba(100, 149, 237, 0.12)" : "rgba(100, 149, 237, 0.4)", l = f ? 3 : 2, C = f ? "12 4" : "8 4";
157
+ return /* @__PURE__ */ m(kt, { children: [
145
158
  /* @__PURE__ */ t(
146
- it,
159
+ Y,
147
160
  {
148
161
  id: `${e}-glow`,
149
- path: m,
162
+ path: p,
150
163
  style: {
151
- stroke: M,
152
- strokeWidth: b ? 10 : 6,
153
- filter: `blur(${b ? 5 : 3}px)`,
164
+ stroke: $,
165
+ strokeWidth: f ? 10 : 6,
166
+ filter: `blur(${f ? 5 : 3}px)`,
154
167
  transition: "stroke 0.6s, stroke-width 0.6s",
155
- ...y
168
+ ...g
156
169
  }
157
170
  }
158
171
  ),
159
172
  /* @__PURE__ */ t(
160
- it,
173
+ Y,
161
174
  {
162
175
  id: e,
163
- path: m,
176
+ path: p,
164
177
  style: {
165
- stroke: $,
166
- strokeWidth: r,
167
- strokeDasharray: I,
178
+ stroke: L,
179
+ strokeWidth: l,
180
+ strokeDasharray: C,
168
181
  transition: "stroke 0.6s, stroke-width 0.6s",
169
- ...y
182
+ ...g
170
183
  }
171
184
  }
172
185
  ),
173
- (d == null ? void 0 : d.label) && /* @__PURE__ */ t("text", { children: /* @__PURE__ */ t(
186
+ (r == null ? void 0 : r.label) && /* @__PURE__ */ t("text", { children: /* @__PURE__ */ t(
174
187
  "textPath",
175
188
  {
176
189
  href: `#${e}`,
@@ -181,23 +194,23 @@ function Gt({
181
194
  fill: "rgba(255, 255, 255, 0.4)",
182
195
  fontFamily: "monospace"
183
196
  },
184
- children: d.label
197
+ children: r.label
185
198
  }
186
199
  ) })
187
200
  ] });
188
201
  }
189
- const Ht = ot(Gt);
190
- function Jt({ config: e }) {
191
- const h = K(null), u = e.starCount ?? 2e3, l = e.rotationSpeed ?? 0.02, o = R(() => {
202
+ const Ve = tt(He);
203
+ function _e({ config: e }) {
204
+ const h = et(null), u = e.starCount ?? 2e3, c = e.rotationSpeed ?? 0.02, o = W(() => {
192
205
  const n = new Float32Array(u * 3);
193
- for (let c = 0; c < u; c++)
194
- n[c * 3] = (Math.random() - 0.5) * 50, n[c * 3 + 1] = (Math.random() - 0.5) * 50, n[c * 3 + 2] = (Math.random() - 0.5) * 50;
206
+ for (let d = 0; d < u; d++)
207
+ n[d * 3] = (Math.random() - 0.5) * 50, n[d * 3 + 1] = (Math.random() - 0.5) * 50, n[d * 3 + 2] = (Math.random() - 0.5) * 50;
195
208
  return n;
196
209
  }, [u]);
197
- return nt((n, c) => {
198
- h.current && (h.current.rotation.x -= c * l, h.current.rotation.y -= c * (l * 0.5));
199
- }), /* @__PURE__ */ t(rt, { ref: h, positions: o, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
200
- lt,
210
+ return ot((n, d) => {
211
+ h.current && (h.current.rotation.x -= d * c, h.current.rotation.y -= d * (c * 0.5));
212
+ }), /* @__PURE__ */ t(at, { ref: h, positions: o, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
213
+ nt,
201
214
  {
202
215
  transparent: !0,
203
216
  color: e.starColor ?? "#6495ed",
@@ -208,19 +221,19 @@ function Jt({ config: e }) {
208
221
  }
209
222
  ) });
210
223
  }
211
- function Kt({ config: e }) {
212
- const h = K(null), u = e.nebulaCount ?? 500, l = R(() => {
224
+ function Ge({ config: e }) {
225
+ const h = et(null), u = e.nebulaCount ?? 500, c = W(() => {
213
226
  const o = new Float32Array(u * 3);
214
227
  for (let n = 0; n < u; n++) {
215
- const c = Math.random() * Math.PI * 2, d = Math.random() * 8 + 5;
216
- o[n * 3] = Math.cos(c) * d + (Math.random() - 0.5) * 3, o[n * 3 + 1] = (Math.random() - 0.5) * 4, o[n * 3 + 2] = Math.sin(c) * d + (Math.random() - 0.5) * 3 - 15;
228
+ const d = Math.random() * Math.PI * 2, r = Math.random() * 8 + 5;
229
+ o[n * 3] = Math.cos(d) * r + (Math.random() - 0.5) * 3, o[n * 3 + 1] = (Math.random() - 0.5) * 4, o[n * 3 + 2] = Math.sin(d) * r + (Math.random() - 0.5) * 3 - 15;
217
230
  }
218
231
  return o;
219
232
  }, [u]);
220
- return nt((o, n) => {
233
+ return ot((o, n) => {
221
234
  h.current && (h.current.rotation.y += n * 5e-3);
222
- }), /* @__PURE__ */ t(rt, { ref: h, positions: l, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
223
- lt,
235
+ }), /* @__PURE__ */ t(at, { ref: h, positions: c, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
236
+ nt,
224
237
  {
225
238
  transparent: !0,
226
239
  color: e.nebulaColor ?? "#9b59b6",
@@ -231,80 +244,32 @@ function Kt({ config: e }) {
231
244
  }
232
245
  ) });
233
246
  }
234
- function Ut({ config: e = {}, background: h }) {
235
- return /* @__PURE__ */ p(
236
- Et,
247
+ function Je({ config: e = {}, background: h }) {
248
+ return /* @__PURE__ */ m(
249
+ At,
237
250
  {
238
251
  camera: { position: [0, 0, 15], fov: 60 },
252
+ dpr: [1, 1.5],
253
+ gl: { antialias: !1, powerPreference: "low-power" },
239
254
  style: { background: h ?? "radial-gradient(ellipse at center, #0a0a2e 0%, #000008 100%)", pointerEvents: "none" },
240
255
  events: () => ({ enabled: !1, priority: 0, compute: () => {
241
256
  } }),
242
257
  children: [
243
258
  /* @__PURE__ */ t("ambientLight", { intensity: 0.1 }),
244
- /* @__PURE__ */ t(Jt, { config: e }),
245
- /* @__PURE__ */ t(Kt, { config: e })
259
+ /* @__PURE__ */ t(_e, { config: e }),
260
+ /* @__PURE__ */ t(Ge, { config: e })
246
261
  ]
247
262
  }
248
263
  );
249
264
  }
250
- const Vt = "cc-root-eSR-1", jt = "cc-layerStarField-jOb4M", Xt = "cc-layerReactFlow-CeHI9", qt = "cc-sidePanel-PzU72", Zt = "cc-sidePanelHeader-cWPCq", Qt = "cc-sidePanelTitle-Yfh5N", Yt = "cc-sidePanelPlanetIcon-aRuLt", te = "cc-sidePanelName-TFFeE", ee = "cc-sidePanelSubtitle-8fp2Y", ie = "cc-sidePanelClose-Sdg-J", oe = "cc-sidePanelContent-QIEEQ", ae = "cc-sidePanelFooter-DVOHi", ne = "cc-satelliteList--vkXn", re = "cc-satelliteItem-JGdmG", le = "cc-satelliteIcon-arUe3", se = "cc-satelliteInfo-NaKLd", ce = "cc-satelliteName-zfOPN", de = "cc-satelliteSummary-XARVm", ue = "cc-enterButton-5Vnri", me = "cc-zoomTransition-Wcju8", pe = "cc-zoomPlanetLabel-3SJT2", he = "cc-planetInterior-GlnW1", ye = "cc-interiorBackButton-qJAiZ", be = "cc-interiorCenter-xdKsX", ge = "cc-interiorPlanet--XIzf", fe = "cc-interiorPlanetLabel-e7yxq", ve = "cc-interiorPlanetSubtitle-e2vON", Ne = "cc-orbitRing-hbvmD", Pe = "cc-satelliteNode-01STS", we = "cc-satelliteNodeIcon-Xq45f", xe = "cc-satelliteNodeLabel-LLOJ5", Ce = "cc-satelliteNodeBadge-HsUFp", Ie = "cc-tutorialOverlay-3GHo7", ke = "cc-tutorialWelcome-21KDP", Se = "cc-tutorialWelcomeTitle-7GwS9", Be = "cc-tutorialWelcomeDesc--pznv", ze = "cc-tutorialActions-szJ0-", $e = "cc-tutorialButton-wL9-p", Le = "cc-tutorialCard-LGIkK", Me = "cc-tutorialChip-bUoEb", Fe = "cc-tutorialCardTitle-r2Y1I", De = "cc-tutorialCardDesc-nOS-M", Te = "cc-tutorialProgress-wIAT9", We = "cc-tutorialProgressBar-PFBdE", Ae = "cc-tutorialCardFooter-bSdyM", Re = "cc-tutorialDots-8M0QU", Ee = "cc-tutorialDot-518t4", Oe = "cc-topBarSlot-EJGvM", i = {
251
- root: Vt,
252
- layerStarField: jt,
253
- layerReactFlow: Xt,
254
- sidePanel: qt,
255
- sidePanelHeader: Zt,
256
- sidePanelTitle: Qt,
257
- sidePanelPlanetIcon: Yt,
258
- sidePanelName: te,
259
- sidePanelSubtitle: ee,
260
- sidePanelClose: ie,
261
- sidePanelContent: oe,
262
- sidePanelFooter: ae,
263
- satelliteList: ne,
264
- satelliteItem: re,
265
- satelliteIcon: le,
266
- satelliteInfo: se,
267
- satelliteName: ce,
268
- satelliteSummary: de,
269
- enterButton: ue,
270
- zoomTransition: me,
271
- zoomPlanetLabel: pe,
272
- planetInterior: he,
273
- interiorBackButton: ye,
274
- interiorCenter: be,
275
- interiorPlanet: ge,
276
- interiorPlanetLabel: fe,
277
- interiorPlanetSubtitle: ve,
278
- orbitRing: Ne,
279
- satelliteNode: Pe,
280
- satelliteNodeIcon: we,
281
- satelliteNodeLabel: xe,
282
- satelliteNodeBadge: Ce,
283
- tutorialOverlay: Ie,
284
- tutorialWelcome: ke,
285
- tutorialWelcomeTitle: Se,
286
- tutorialWelcomeDesc: Be,
287
- tutorialActions: ze,
288
- tutorialButton: $e,
289
- tutorialCard: Le,
290
- tutorialChip: Me,
291
- tutorialCardTitle: Fe,
292
- tutorialCardDesc: De,
293
- tutorialProgress: Te,
294
- tutorialProgressBar: We,
295
- tutorialCardFooter: Ae,
296
- tutorialDots: Re,
297
- tutorialDot: Ee,
298
- topBarSlot: Oe
299
- };
300
- function _e({
265
+ function Ue({
301
266
  planet: e,
302
267
  onClose: h,
303
268
  onEnterPlanet: u,
304
- onSatelliteClick: l
269
+ onSatelliteClick: c
305
270
  }) {
306
- return /* @__PURE__ */ p(
307
- w.div,
271
+ return /* @__PURE__ */ m(
272
+ I.div,
308
273
  {
309
274
  className: i.sidePanel,
310
275
  initial: { x: 340 },
@@ -315,8 +280,8 @@ function _e({
315
280
  borderLeftColor: `${e.color}22`
316
281
  },
317
282
  children: [
318
- /* @__PURE__ */ p("div", { className: i.sidePanelHeader, children: [
319
- /* @__PURE__ */ p("div", { className: i.sidePanelTitle, children: [
283
+ /* @__PURE__ */ m("div", { className: i.sidePanelHeader, children: [
284
+ /* @__PURE__ */ m("div", { className: i.sidePanelTitle, children: [
320
285
  /* @__PURE__ */ t(
321
286
  "div",
322
287
  {
@@ -328,27 +293,27 @@ function _e({
328
293
  children: e.icon ?? e.label[0]
329
294
  }
330
295
  ),
331
- /* @__PURE__ */ p("div", { children: [
296
+ /* @__PURE__ */ m("div", { children: [
332
297
  /* @__PURE__ */ t("div", { className: i.sidePanelName, children: e.label }),
333
298
  /* @__PURE__ */ t("div", { className: i.sidePanelSubtitle, children: e.subtitle })
334
299
  ] })
335
300
  ] }),
336
301
  /* @__PURE__ */ t("button", { className: i.sidePanelClose, onClick: h, children: "✕" })
337
302
  ] }),
338
- /* @__PURE__ */ t("div", { className: i.sidePanelContent, children: /* @__PURE__ */ t("div", { className: i.satelliteList, children: e.satellites.map((o) => /* @__PURE__ */ p(
303
+ /* @__PURE__ */ t("div", { className: i.sidePanelContent, children: /* @__PURE__ */ t("div", { className: i.satelliteList, children: e.satellites.map((o) => /* @__PURE__ */ m(
339
304
  "div",
340
305
  {
341
306
  className: i.satelliteItem,
342
- onClick: () => l == null ? void 0 : l({
307
+ onClick: () => c == null ? void 0 : c({
343
308
  planetId: e.id,
344
309
  satelliteId: o.id,
345
310
  satellite: o
346
311
  }),
347
312
  children: [
348
313
  /* @__PURE__ */ t("div", { className: i.satelliteIcon, children: o.icon ?? "●" }),
349
- /* @__PURE__ */ p("div", { className: i.satelliteInfo, children: [
314
+ /* @__PURE__ */ m("div", { className: i.satelliteInfo, children: [
350
315
  /* @__PURE__ */ t("div", { className: i.satelliteName, children: o.label }),
351
- o.summary && /* @__PURE__ */ p("div", { className: i.satelliteSummary, children: [
316
+ o.summary && /* @__PURE__ */ m("div", { className: i.satelliteSummary, children: [
352
317
  o.summary.total != null && `${o.summary.total} total`,
353
318
  o.summary.running != null && ` · ${o.summary.running} running`,
354
319
  o.summary.failed != null && o.summary.failed > 0 && ` · ${o.summary.failed} failed`
@@ -358,7 +323,7 @@ function _e({
358
323
  },
359
324
  o.id
360
325
  )) }) }),
361
- /* @__PURE__ */ t("div", { className: i.sidePanelFooter, children: /* @__PURE__ */ p(
326
+ /* @__PURE__ */ t("div", { className: i.sidePanelFooter, children: /* @__PURE__ */ m(
362
327
  "button",
363
328
  {
364
329
  className: i.enterButton,
@@ -374,39 +339,39 @@ function _e({
374
339
  }
375
340
  );
376
341
  }
377
- function Ge({
342
+ function Ke({
378
343
  planet: e,
379
344
  onExit: h,
380
345
  onSatelliteClick: u,
381
- renderCustom: l
346
+ renderCustom: c
382
347
  }) {
383
- const [o, n] = _(null);
384
- if (l)
348
+ const [o, n] = Z(null);
349
+ if (c)
385
350
  return /* @__PURE__ */ t(
386
- w.div,
351
+ I.div,
387
352
  {
388
353
  className: i.planetInterior,
389
354
  initial: { opacity: 0 },
390
355
  animate: { opacity: 1 },
391
356
  exit: { opacity: 0 },
392
357
  transition: { duration: 0.4 },
393
- children: l(e, h)
358
+ children: c(e, h)
394
359
  }
395
360
  );
396
- const c = e.satellites, d = Math.max(180, c.length * 35), y = v(
397
- (m) => {
398
- n(m);
399
- const b = c.find((C) => C.id === m);
361
+ const d = e.satellites, r = Math.max(180, d.length * 35), g = v(
362
+ (p) => {
363
+ n(p);
364
+ const f = d.find((w) => w.id === p);
400
365
  u == null || u({
401
366
  planetId: e.id,
402
- satelliteId: m,
403
- satellite: b
367
+ satelliteId: p,
368
+ satellite: f
404
369
  });
405
370
  },
406
- [e.id, c, u]
371
+ [e.id, d, u]
407
372
  );
408
- return /* @__PURE__ */ p(
409
- w.div,
373
+ return /* @__PURE__ */ m(
374
+ I.div,
410
375
  {
411
376
  className: i.planetInterior,
412
377
  initial: { opacity: 0 },
@@ -415,21 +380,21 @@ function Ge({
415
380
  transition: { duration: 0.4 },
416
381
  children: [
417
382
  /* @__PURE__ */ t("button", { className: i.interiorBackButton, onClick: h, children: "← Back to Universe" }),
418
- /* @__PURE__ */ p("div", { className: i.interiorCenter, children: [
419
- [1, 2, 3].map((m) => /* @__PURE__ */ t(
383
+ /* @__PURE__ */ m("div", { className: i.interiorCenter, children: [
384
+ [1, 2, 3].map((p) => /* @__PURE__ */ t(
420
385
  "div",
421
386
  {
422
387
  className: i.orbitRing,
423
388
  style: {
424
- width: d * m * 0.7,
425
- height: d * m * 0.7,
426
- top: `calc(50% - ${d * m * 0.7 / 2}px)`,
427
- left: `calc(50% - ${d * m * 0.7 / 2}px)`
389
+ width: r * p * 0.7,
390
+ height: r * p * 0.7,
391
+ top: `calc(50% - ${r * p * 0.7 / 2}px)`,
392
+ left: `calc(50% - ${r * p * 0.7 / 2}px)`
428
393
  }
429
394
  },
430
- m
395
+ p
431
396
  )),
432
- /* @__PURE__ */ p(
397
+ /* @__PURE__ */ m(
433
398
  "div",
434
399
  {
435
400
  className: i.interiorPlanet,
@@ -443,11 +408,11 @@ function Ge({
443
408
  ]
444
409
  }
445
410
  ),
446
- /* @__PURE__ */ t(E, { children: c.map((m, b) => {
447
- var r;
448
- const C = b / c.length * Math.PI * 2 - Math.PI / 2, M = Math.cos(C) * d, $ = Math.sin(C) * d;
449
- return /* @__PURE__ */ p(
450
- w.div,
411
+ /* @__PURE__ */ t(A, { children: d.map((p, f) => {
412
+ var l;
413
+ const w = f / d.length * Math.PI * 2 - Math.PI / 2, $ = Math.cos(w) * r, L = Math.sin(w) * r;
414
+ return /* @__PURE__ */ m(
415
+ I.div,
451
416
  {
452
417
  className: i.satelliteNode,
453
418
  initial: { scale: 0, opacity: 0 },
@@ -456,32 +421,32 @@ function Ge({
456
421
  type: "spring",
457
422
  damping: 15,
458
423
  stiffness: 200,
459
- delay: b * 0.08
424
+ delay: f * 0.08
460
425
  },
461
426
  style: {
462
- left: `calc(50% + ${M}px - 32px)`,
463
- top: `calc(50% + ${$}px - 40px)`
427
+ left: `calc(50% + ${$}px - 32px)`,
428
+ top: `calc(50% + ${L}px - 40px)`
464
429
  },
465
- onClick: () => y(m.id),
430
+ onClick: () => g(p.id),
466
431
  children: [
467
- /* @__PURE__ */ p(
432
+ /* @__PURE__ */ m(
468
433
  "div",
469
434
  {
470
435
  className: i.satelliteNodeIcon,
471
436
  style: {
472
- borderColor: o === m.id ? `${e.color}88` : "rgba(255,255,255,0.15)",
473
- boxShadow: o === m.id ? `0 0 20px ${e.color}44` : "none"
437
+ borderColor: o === p.id ? `${e.color}88` : "rgba(255,255,255,0.15)",
438
+ boxShadow: o === p.id ? `0 0 20px ${e.color}44` : "none"
474
439
  },
475
440
  children: [
476
- m.icon ?? "●",
477
- ((r = m.summary) == null ? void 0 : r.running) != null && m.summary.running > 0 && /* @__PURE__ */ t("span", { className: i.satelliteNodeBadge, children: m.summary.running })
441
+ p.icon ?? "●",
442
+ ((l = p.summary) == null ? void 0 : l.running) != null && p.summary.running > 0 && /* @__PURE__ */ t("span", { className: i.satelliteNodeBadge, children: p.summary.running })
478
443
  ]
479
444
  }
480
445
  ),
481
- /* @__PURE__ */ t("span", { className: i.satelliteNodeLabel, children: m.label })
446
+ /* @__PURE__ */ t("span", { className: i.satelliteNodeLabel, children: p.label })
482
447
  ]
483
448
  },
484
- m.id
449
+ p.id
485
450
  );
486
451
  }) })
487
452
  ] })
@@ -489,9 +454,9 @@ function Ge({
489
454
  }
490
455
  );
491
456
  }
492
- function He({ planet: e }) {
457
+ function je({ planet: e }) {
493
458
  return /* @__PURE__ */ t(
494
- w.div,
459
+ I.div,
495
460
  {
496
461
  className: i.zoomTransition,
497
462
  initial: { opacity: 0 },
@@ -499,7 +464,7 @@ function He({ planet: e }) {
499
464
  exit: { opacity: 0 },
500
465
  transition: { duration: 0.9, ease: "easeInOut" },
501
466
  children: /* @__PURE__ */ t(
502
- w.span,
467
+ I.span,
503
468
  {
504
469
  className: i.zoomPlanetLabel,
505
470
  initial: { scale: 0.5, opacity: 0 },
@@ -516,54 +481,56 @@ function He({ planet: e }) {
516
481
  }
517
482
  );
518
483
  }
519
- function Je({
484
+ function qe({
520
485
  steps: e,
521
486
  planets: h,
522
487
  onHighlightPlanet: u,
523
- onStepChange: l,
488
+ onStepChange: c,
524
489
  onFinish: o,
525
490
  flyTo: n
526
491
  }) {
527
- const [c, d] = _("welcome"), [y, m] = _(0), b = v(
528
- (S) => {
529
- if (S < 0 || S >= e.length) return;
530
- m(S), l(S);
531
- const P = e[S];
532
- if (P.planetId) {
533
- u(P.planetId);
534
- const O = h.find((N) => N.id === P.planetId);
535
- O && n && n(O.x + 50, O.y + 50, 1.5, 800);
492
+ const [d, r] = Z("welcome"), [g, p] = Z(0), f = v(
493
+ (x) => {
494
+ if (x < 0 || x >= e.length) return;
495
+ p(x), c(x);
496
+ const N = e[x];
497
+ if (N.planetId) {
498
+ u(N.planetId);
499
+ const O = h.find((P) => P.id === N.planetId);
500
+ O && n && requestAnimationFrame(() => {
501
+ n(O.x + 50, O.y + 50, 1.5, 800);
502
+ });
536
503
  }
537
504
  },
538
- [e, h, l, u, n]
539
- ), C = v(() => {
540
- d("stepping"), b(0);
541
- }, [b]), M = v(() => {
542
- y < e.length - 1 ? b(y + 1) : (d("complete"), l(-1), u(null), n == null || n(800, 400, 0.8, 600), setTimeout(() => o(), 1500));
543
- }, [y, e.length, b, l, u, o, n]), $ = v(() => {
544
- y > 0 && b(y - 1);
545
- }, [y, b]), r = v(() => {
546
- l(-1), u(null), n == null || n(800, 400, 0.8, 600), o();
547
- }, [l, u, o, n]);
548
- at(() => {
549
- if (c !== "stepping") return;
550
- const S = (P) => {
551
- P.key === "ArrowRight" || P.key === "Enter" ? M() : P.key === "ArrowLeft" ? $() : P.key === "Escape" && r();
505
+ [e, h, c, u, n]
506
+ ), w = v(() => {
507
+ r("stepping"), f(0);
508
+ }, [f]), $ = v(() => {
509
+ g < e.length - 1 ? f(g + 1) : (r("complete"), c(-1), u(null), n == null || n(800, 400, 0.8, 600), setTimeout(() => o(), 1500));
510
+ }, [g, e.length, f, c, u, o, n]), L = v(() => {
511
+ g > 0 && f(g - 1);
512
+ }, [g, f]), l = v(() => {
513
+ c(-1), u(null), n == null || n(800, 400, 0.8, 600), o();
514
+ }, [c, u, o, n]);
515
+ it(() => {
516
+ if (d !== "stepping") return;
517
+ const x = (N) => {
518
+ N.key === "ArrowRight" || N.key === "Enter" ? $() : N.key === "ArrowLeft" ? L() : N.key === "Escape" && l();
552
519
  };
553
- return window.addEventListener("keydown", S), () => window.removeEventListener("keydown", S);
554
- }, [c, M, $, r]);
555
- const I = e[y], G = e.length > 0 ? (y + 1) / e.length * 100 : 0;
556
- return /* @__PURE__ */ p(E, { mode: "wait", children: [
557
- c === "welcome" && /* @__PURE__ */ t(
558
- w.div,
520
+ return window.addEventListener("keydown", x), () => window.removeEventListener("keydown", x);
521
+ }, [d, $, L, l]);
522
+ const C = e[g], H = e.length > 0 ? (g + 1) / e.length * 100 : 0;
523
+ return /* @__PURE__ */ m(A, { mode: "wait", children: [
524
+ d === "welcome" && /* @__PURE__ */ t(
525
+ I.div,
559
526
  {
560
527
  className: i.tutorialOverlay,
561
528
  initial: { opacity: 0 },
562
529
  animate: { opacity: 1 },
563
530
  exit: { opacity: 0 },
564
- children: /* @__PURE__ */ p("div", { className: i.tutorialWelcome, children: [
531
+ children: /* @__PURE__ */ m("div", { className: i.tutorialWelcome, children: [
565
532
  /* @__PURE__ */ t(
566
- w.div,
533
+ I.div,
567
534
  {
568
535
  initial: { scale: 0.8 },
569
536
  animate: { scale: 1 },
@@ -574,13 +541,13 @@ function Je({
574
541
  ),
575
542
  /* @__PURE__ */ t("h1", { className: i.tutorialWelcomeTitle, children: "Welcome to the Cosmos" }),
576
543
  /* @__PURE__ */ t("p", { className: i.tutorialWelcomeDesc, children: "Explore the universe of your platform. Each planet represents a domain, and satellites are the features within." }),
577
- /* @__PURE__ */ p("div", { className: i.tutorialActions, children: [
544
+ /* @__PURE__ */ m("div", { className: i.tutorialActions, children: [
578
545
  /* @__PURE__ */ t(
579
546
  "button",
580
547
  {
581
548
  className: i.tutorialButton,
582
549
  "data-variant": "ghost",
583
- onClick: r,
550
+ onClick: l,
584
551
  children: "SKIP"
585
552
  }
586
553
  ),
@@ -589,7 +556,7 @@ function Je({
589
556
  {
590
557
  className: i.tutorialButton,
591
558
  "data-variant": "primary",
592
- onClick: C,
559
+ onClick: w,
593
560
  children: "LET'S GO"
594
561
  }
595
562
  )
@@ -598,8 +565,8 @@ function Je({
598
565
  },
599
566
  "welcome"
600
567
  ),
601
- c === "stepping" && I && /* @__PURE__ */ p(
602
- w.div,
568
+ d === "stepping" && C && /* @__PURE__ */ m(
569
+ I.div,
603
570
  {
604
571
  className: i.tutorialCard,
605
572
  initial: { opacity: 0, y: 20 },
@@ -607,55 +574,55 @@ function Je({
607
574
  exit: { opacity: 0, y: -10 },
608
575
  transition: { duration: 0.25 },
609
576
  children: [
610
- I.chipText && /* @__PURE__ */ t(
577
+ C.chipText && /* @__PURE__ */ t(
611
578
  "span",
612
579
  {
613
580
  className: i.tutorialChip,
614
581
  style: {
615
- background: `${I.chipColor ?? "#3b82f6"}22`,
616
- color: I.chipColor ?? "#3b82f6"
582
+ background: `${C.chipColor ?? "#3b82f6"}22`,
583
+ color: C.chipColor ?? "#3b82f6"
617
584
  },
618
- children: I.chipText
585
+ children: C.chipText
619
586
  }
620
587
  ),
621
- /* @__PURE__ */ t("h3", { className: i.tutorialCardTitle, children: I.title }),
622
- /* @__PURE__ */ t("p", { className: i.tutorialCardDesc, children: I.description }),
588
+ /* @__PURE__ */ t("h3", { className: i.tutorialCardTitle, children: C.title }),
589
+ /* @__PURE__ */ t("p", { className: i.tutorialCardDesc, children: C.description }),
623
590
  /* @__PURE__ */ t("div", { className: i.tutorialProgress, children: /* @__PURE__ */ t(
624
591
  "div",
625
592
  {
626
593
  className: i.tutorialProgressBar,
627
- style: { width: `${G}%` }
594
+ style: { width: `${H}%` }
628
595
  }
629
596
  ) }),
630
- /* @__PURE__ */ p("div", { className: i.tutorialCardFooter, children: [
597
+ /* @__PURE__ */ m("div", { className: i.tutorialCardFooter, children: [
631
598
  /* @__PURE__ */ t(
632
599
  "button",
633
600
  {
634
601
  className: i.tutorialButton,
635
602
  "data-variant": "ghost",
636
603
  style: { padding: "0.375rem 0.75rem", fontSize: "0.6875rem" },
637
- onClick: r,
604
+ onClick: l,
638
605
  children: "SKIP"
639
606
  }
640
607
  ),
641
- /* @__PURE__ */ t("div", { className: i.tutorialDots, children: e.map((S, P) => /* @__PURE__ */ t(
608
+ /* @__PURE__ */ t("div", { className: i.tutorialDots, children: e.map((x, N) => /* @__PURE__ */ t(
642
609
  "div",
643
610
  {
644
611
  className: i.tutorialDot,
645
- "data-active": P === y || void 0,
646
- "data-done": P < y || void 0,
647
- onClick: () => b(P)
612
+ "data-active": N === g || void 0,
613
+ "data-done": N < g || void 0,
614
+ onClick: () => f(N)
648
615
  },
649
- P
616
+ N
650
617
  )) }),
651
- /* @__PURE__ */ p("div", { style: { display: "flex", gap: "0.5rem" }, children: [
652
- y > 0 && /* @__PURE__ */ t(
618
+ /* @__PURE__ */ m("div", { style: { display: "flex", gap: "0.5rem" }, children: [
619
+ g > 0 && /* @__PURE__ */ t(
653
620
  "button",
654
621
  {
655
622
  className: i.tutorialButton,
656
623
  "data-variant": "ghost",
657
624
  style: { padding: "0.375rem 0.75rem", fontSize: "0.75rem" },
658
- onClick: $,
625
+ onClick: L,
659
626
  children: "←"
660
627
  }
661
628
  ),
@@ -665,18 +632,18 @@ function Je({
665
632
  className: i.tutorialButton,
666
633
  "data-variant": "primary",
667
634
  style: { padding: "0.375rem 0.75rem", fontSize: "0.75rem" },
668
- onClick: M,
669
- children: y === e.length - 1 ? "Finish" : "→"
635
+ onClick: $,
636
+ children: g === e.length - 1 ? "Finish" : "→"
670
637
  }
671
638
  )
672
639
  ] })
673
640
  ] })
674
641
  ]
675
642
  },
676
- `step-${y}`
643
+ `step-${g}`
677
644
  ),
678
- c === "complete" && /* @__PURE__ */ t(
679
- w.div,
645
+ d === "complete" && /* @__PURE__ */ t(
646
+ I.div,
680
647
  {
681
648
  className: i.tutorialOverlay,
682
649
  initial: { opacity: 0 },
@@ -684,7 +651,7 @@ function Je({
684
651
  exit: { opacity: 0 },
685
652
  transition: { duration: 1 },
686
653
  children: /* @__PURE__ */ t(
687
- w.h1,
654
+ I.h1,
688
655
  {
689
656
  className: i.tutorialWelcomeTitle,
690
657
  initial: { scale: 0.8 },
@@ -698,38 +665,38 @@ function Je({
698
665
  )
699
666
  ] });
700
667
  }
701
- const Ke = { planet: _t }, Ue = { orbit: Ht };
702
- function Ve({
668
+ const Xe = { planet: Ze }, Qe = { orbit: Ve };
669
+ function Ye({
703
670
  planets: e,
704
671
  orbits: h,
705
672
  onPlanetClick: u,
706
- onPlanetEnter: l,
673
+ onPlanetEnter: c,
707
674
  onPlanetExit: o,
708
675
  onSatelliteClick: n,
709
- onPlanetDrag: c,
710
- tutorialSteps: d,
711
- showTutorial: y,
712
- onTutorialComplete: m,
713
- initialView: b,
714
- onViewChange: C,
715
- renderPlanetInterior: M,
716
- topBar: $,
717
- theme: r,
718
- starField: I = !0,
719
- nodeTypes: G,
720
- edgeTypes: S,
721
- className: P,
676
+ onPlanetDrag: d,
677
+ tutorialSteps: r,
678
+ showTutorial: g,
679
+ onTutorialComplete: p,
680
+ initialView: f,
681
+ onViewChange: w,
682
+ renderPlanetInterior: $,
683
+ topBar: L,
684
+ theme: l,
685
+ starField: C = !0,
686
+ nodeTypes: H,
687
+ edgeTypes: x,
688
+ className: N,
722
689
  style: O
723
690
  }) {
724
- const [N, st] = _(b ?? { mode: "universe" }), [H, ct] = _(y ?? !1), Z = K(0), Q = K(""), { setCenter: x, fitView: J } = Lt(), k = v(
691
+ const [P, lt] = Z(f ?? { mode: "universe" }), [V, rt] = Z(g ?? !1), { setCenter: B, fitView: _ } = zt(), S = v(
725
692
  (a) => {
726
- st(a), C == null || C(a);
693
+ lt(a), w == null || w(a);
727
694
  },
728
- [C]
729
- ), U = v(
695
+ [w]
696
+ ), E = v(
730
697
  (a) => e.find((s) => s.id === a),
731
698
  [e]
732
- ), dt = R(
699
+ ), ct = W(
733
700
  () => e.map((a) => ({
734
701
  id: a.id,
735
702
  type: "planet",
@@ -743,7 +710,7 @@ function Ve({
743
710
  }
744
711
  })),
745
712
  [e]
746
- ), ut = R(
713
+ ), st = W(
747
714
  () => h.map((a, s) => ({
748
715
  id: `orbit-${s}`,
749
716
  source: a.source,
@@ -753,158 +720,165 @@ function Ve({
753
720
  animated: !0
754
721
  })),
755
722
  [h]
756
- ), [V, F, mt] = Mt(dt), [pt, j, ht] = Ft(ut), B = v(
723
+ ), [J, D, dt] = $t(ct), [ut, U, mt] = Dt(st), z = v(
757
724
  (a) => {
758
- F(
759
- (s) => s.map((g) => ({
760
- ...g,
761
- data: { ...g.data, isSelected: g.id === a }
725
+ D(
726
+ (s) => s.map((y) => ({
727
+ ...y,
728
+ data: { ...y.data, isSelected: y.id === a }
762
729
  }))
763
730
  );
764
731
  },
765
- [F]
766
- ), yt = v(() => {
767
- F(
732
+ [D]
733
+ ), pt = v(() => {
734
+ D(
768
735
  (a) => a.map((s) => {
769
- const g = e.find((L) => L.id === s.id);
770
- return g ? { ...s, position: { x: g.x, y: g.y } } : s;
736
+ const y = e.find((M) => M.id === s.id);
737
+ return y ? { ...s, position: { x: y.x, y: y.y } } : s;
771
738
  })
772
- ), setTimeout(() => J({ duration: 600, padding: 0.2 }), 50);
773
- }, [e, F, J]), bt = v(() => {
774
- const a = V.length;
739
+ ), setTimeout(() => _({ duration: 600, padding: 0.2 }), 50);
740
+ }, [e, D, _]), ht = v(() => {
741
+ const a = J.length;
775
742
  if (a === 0) return;
776
- const s = 800, g = 400, L = Math.max(200, a * 40);
777
- F(
778
- (D) => D.map((z, f) => {
779
- const T = 2 * Math.PI * f / a - Math.PI / 2;
743
+ const s = 800, y = 400, M = Math.max(200, a * 40);
744
+ D(
745
+ (G) => G.map((k, b) => {
746
+ const F = 2 * Math.PI * b / a - Math.PI / 2;
780
747
  return {
781
- ...z,
748
+ ...k,
782
749
  position: {
783
- x: s + L * Math.cos(T),
784
- y: g + L * Math.sin(T)
750
+ x: s + M * Math.cos(F),
751
+ y: y + M * Math.sin(F)
785
752
  }
786
753
  };
787
754
  })
788
- ), setTimeout(() => J({ duration: 600, padding: 0.2 }), 50);
789
- }, [V.length, F, J]), gt = v(
755
+ ), setTimeout(() => _({ duration: 600, padding: 0.2 }), 50);
756
+ }, [J.length, D, _]), ft = v(
790
757
  (a) => {
791
- var D;
792
- if (!d) return;
758
+ var G;
759
+ if (!r) return;
793
760
  if (a < 0) {
794
- F(
795
- (z) => z.map((f) => ({
796
- ...f,
797
- data: { ...f.data, status: "idle", isSelected: !1 }
761
+ D(
762
+ (k) => k.map((b) => ({
763
+ ...b,
764
+ data: { ...b.data, status: "idle", isSelected: !1 }
798
765
  }))
799
- ), j(
800
- (z) => z.map((f) => ({
801
- ...f,
766
+ ), U(
767
+ (k) => k.map((b) => ({
768
+ ...b,
802
769
  animated: !0,
803
- data: { ...f.data, isActive: !1, isDimmed: !1 }
770
+ data: { ...b.data, isActive: !1, isDimmed: !1 }
804
771
  }))
805
772
  );
806
773
  return;
807
774
  }
808
- const s = new Set(d.slice(0, a).map((z) => z.planetId)), g = (D = d[a]) == null ? void 0 : D.planetId;
809
- F(
810
- (z) => z.map((f) => {
811
- let T = "idle";
812
- return f.id === g ? T = "running" : s.has(f.id) && (T = "success"), {
813
- ...f,
814
- data: { ...f.data, status: T, isSelected: f.id === g }
775
+ const s = new Set(r.slice(0, a).map((k) => k.planetId)), y = (G = r[a]) == null ? void 0 : G.planetId;
776
+ D(
777
+ (k) => k.map((b) => {
778
+ let F = "idle";
779
+ return b.id === y ? F = "running" : s.has(b.id) && (F = "success"), {
780
+ ...b,
781
+ data: { ...b.data, status: F, isSelected: b.id === y }
815
782
  };
816
783
  })
817
784
  );
818
- const L = /* @__PURE__ */ new Set([...s, g]);
819
- j(
820
- (z) => z.map((f) => {
821
- const T = s.has(f.source), St = L.has(f.target), q = T && St;
785
+ const M = /* @__PURE__ */ new Set([...s, y]);
786
+ U(
787
+ (k) => k.map((b) => {
788
+ const F = s.has(b.source), St = M.has(b.target), q = F && St;
822
789
  return {
823
- ...f,
790
+ ...b,
824
791
  animated: q,
825
- data: { ...f.data, isActive: q, isDimmed: !q }
792
+ data: { ...b.data, isActive: q, isDimmed: !q }
826
793
  };
827
794
  })
828
795
  );
829
796
  },
830
- [d, F, j]
831
- ), ft = v(
832
- (a, s) => {
833
- const g = Date.now(), L = g - Z.current < 300 && Q.current === s.id;
834
- Z.current = g, Q.current = s.id;
835
- const D = U(s.id);
836
- L && D ? Y(D) : N.mode === "inspecting" && N.planetId === s.id ? (k({ mode: "universe" }), B(null), x(800, 400, { zoom: 0.8, duration: 600 })) : (k({ mode: "inspecting", planetId: s.id }), B(s.id), x(s.position.x + 50, s.position.y + 50, { zoom: 1.5, duration: 600 }), D && (u == null || u(D)));
837
- },
838
- [N, B, U, k, u, x]
839
- ), Y = v(
797
+ [r, D, U]
798
+ ), K = v(
840
799
  (a) => {
841
- k({ mode: "entering", planetId: a.id }), B(null), l == null || l(a), x(a.x + 50, a.y + 50, { zoom: 6, duration: 800 }), setTimeout(() => {
842
- k({ mode: "planet", planetId: a.id });
800
+ S({ mode: "entering", planetId: a.id }), z(null), c == null || c(a), B(a.x + 50, a.y + 50, { zoom: 6, duration: 800 }), setTimeout(() => {
801
+ S({ mode: "planet", planetId: a.id });
843
802
  }, 900);
844
803
  },
845
- [x, B, k, l]
846
- ), X = v(() => {
847
- k({ mode: "universe" }), o == null || o(), setTimeout(() => {
848
- x(800, 400, { zoom: 0.8, duration: 600 });
804
+ [B, z, S, c]
805
+ ), yt = v(
806
+ (a, s) => {
807
+ S({ mode: "inspecting", planetId: s.id }), z(s.id), B(s.position.x + 50, s.position.y + 50, { zoom: 1.5, duration: 600 });
808
+ const y = E(s.id);
809
+ y && (u == null || u(y));
810
+ },
811
+ [z, E, S, u, B]
812
+ ), gt = v(
813
+ (a, s) => {
814
+ const y = E(s.id);
815
+ y && K(y);
816
+ },
817
+ [E, K]
818
+ ), j = v(() => {
819
+ S({ mode: "universe" }), o == null || o(), setTimeout(() => {
820
+ B(800, 400, { zoom: 0.8, duration: 600 });
849
821
  }, 100);
850
- }, [x, k, o]), vt = v(
822
+ }, [B, S, o]), vt = v(
851
823
  (a, s) => {
852
- c == null || c(s.id, { x: s.position.x, y: s.position.y });
824
+ d == null || d(s.id, { x: s.position.x, y: s.position.y });
853
825
  },
854
- [c]
855
- ), Nt = v(() => {
856
- N.mode === "inspecting" && (k({ mode: "universe" }), B(null), x(800, 400, { zoom: 0.8, duration: 600 }));
857
- }, [N, B, k, x]), Pt = v(
858
- (a, s, g, L) => {
859
- x(a, s, { zoom: g, duration: L });
826
+ [d]
827
+ ), bt = v(() => {
828
+ P.mode === "inspecting" && (S({ mode: "universe" }), z(null), B(800, 400, { zoom: 0.8, duration: 600 }));
829
+ }, [P, z, S, B]), Nt = v(
830
+ (a, s, y, M) => {
831
+ B(a, s, { zoom: y, duration: M });
860
832
  },
861
- [x]
833
+ [B]
862
834
  );
863
- at(() => {
835
+ it(() => {
864
836
  const a = (s) => {
865
- s.key === "Escape" && (H || (N.mode === "inspecting" ? (k({ mode: "universe" }), B(null), x(800, 400, { zoom: 0.8, duration: 600 })) : N.mode === "planet" && X()));
837
+ s.key === "Escape" && (V || (P.mode === "inspecting" ? (S({ mode: "universe" }), z(null), B(800, 400, { zoom: 0.8, duration: 600 })) : P.mode === "planet" && j()));
866
838
  };
867
839
  return window.addEventListener("keydown", a), () => window.removeEventListener("keydown", a);
868
- }, [N, H, k, B, x, X]);
869
- const W = N.mode !== "universe" ? U(N.planetId) : void 0, wt = N.mode !== "planet", xt = R(
870
- () => ({ ...Ke, ...G }),
871
- [G]
872
- ), Ct = R(
873
- () => ({ ...Ue, ...S }),
874
- [S]
875
- ), It = I !== !1, kt = typeof I == "object" ? I : {}, A = {};
876
- return r != null && r.background && (A["--cc-bg"] = r.background), r != null && r.textColor && (A["--cc-text"] = r.textColor), r != null && r.panelBackground && (A["--cc-panel-bg"] = r.panelBackground), r != null && r.panelBorder && (A["--cc-panel-border"] = r.panelBorder), r != null && r.controlsBackground && (A["--cc-controls-bg"] = r.controlsBackground), r != null && r.fontFamily && (A["--cc-font-family"] = r.fontFamily), /* @__PURE__ */ p(
840
+ }, [P, V, S, z, B, j]);
841
+ const R = P.mode !== "universe" ? E(P.planetId) : void 0, Pt = P.mode !== "planet", wt = W(
842
+ () => ({ ...Xe, ...H }),
843
+ [H]
844
+ ), Ct = W(
845
+ () => ({ ...Qe, ...x }),
846
+ [x]
847
+ ), Bt = C !== !1, xt = typeof C == "object" ? C : {}, T = {};
848
+ return l != null && l.background && (T["--cc-bg"] = l.background), l != null && l.textColor && (T["--cc-text"] = l.textColor), l != null && l.panelBackground && (T["--cc-panel-bg"] = l.panelBackground), l != null && l.panelBorder && (T["--cc-panel-border"] = l.panelBorder), l != null && l.controlsBackground && (T["--cc-controls-bg"] = l.controlsBackground), l != null && l.fontFamily && (T["--cc-font-family"] = l.fontFamily), /* @__PURE__ */ m(
877
849
  "div",
878
850
  {
879
- className: `${i.root} ${P ?? ""}`,
880
- style: { ...A, ...O },
851
+ className: `${i.root} ${N ?? ""}`,
852
+ style: { ...T, ...O },
881
853
  children: [
882
- It && /* @__PURE__ */ t("div", { className: i.layerStarField, children: /* @__PURE__ */ t(
883
- Ut,
854
+ Bt && /* @__PURE__ */ t("div", { className: i.layerStarField, children: /* @__PURE__ */ t(
855
+ Je,
884
856
  {
885
- config: kt,
886
- background: r == null ? void 0 : r.background
857
+ config: xt,
858
+ background: l == null ? void 0 : l.background
887
859
  }
888
860
  ) }),
889
861
  /* @__PURE__ */ t(
890
862
  "div",
891
863
  {
892
864
  className: i.layerReactFlow,
893
- "data-hidden": !wt || void 0,
894
- children: /* @__PURE__ */ p(
895
- Dt,
865
+ "data-hidden": !Pt || void 0,
866
+ children: /* @__PURE__ */ m(
867
+ Mt,
896
868
  {
897
- nodes: V,
898
- edges: pt,
899
- onNodesChange: mt,
900
- onEdgesChange: ht,
901
- onNodeClick: ft,
869
+ nodes: J,
870
+ edges: ut,
871
+ onNodesChange: dt,
872
+ onEdgesChange: mt,
873
+ onNodeClick: yt,
874
+ onNodeDoubleClick: gt,
902
875
  onNodeDragStop: vt,
903
- onPaneClick: Nt,
904
- nodeTypes: xt,
876
+ onPaneClick: bt,
877
+ nodeTypes: wt,
905
878
  edgeTypes: Ct,
906
879
  nodesDraggable: !0,
907
- nodeDragThreshold: 5,
880
+ selectNodesOnDrag: !1,
881
+ nodeDragThreshold: 10,
908
882
  fitView: !0,
909
883
  proOptions: { hideAttribution: !0 },
910
884
  style: { background: "transparent" },
@@ -912,16 +886,16 @@ function Ve({
912
886
  maxZoom: 8,
913
887
  children: [
914
888
  /* @__PURE__ */ t(
915
- Tt,
889
+ Ft,
916
890
  {
917
- variant: Wt.Dots,
891
+ variant: Rt.Dots,
918
892
  gap: 50,
919
893
  size: 1,
920
894
  color: "rgba(255, 255, 255, 0.05)"
921
895
  }
922
896
  ),
923
- /* @__PURE__ */ p(
924
- At,
897
+ /* @__PURE__ */ m(
898
+ Tt,
925
899
  {
926
900
  style: { top: 60 },
927
901
  showInteractive: !1,
@@ -930,7 +904,7 @@ function Ve({
930
904
  "button",
931
905
  {
932
906
  className: "react-flow__controls-button",
933
- onClick: yt,
907
+ onClick: pt,
934
908
  title: "Reset layout",
935
909
  children: /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "16", height: "16", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z" }) })
936
910
  }
@@ -939,9 +913,9 @@ function Ve({
939
913
  "button",
940
914
  {
941
915
  className: "react-flow__controls-button",
942
- onClick: bt,
916
+ onClick: ht,
943
917
  title: "Auto layout",
944
- children: /* @__PURE__ */ p("svg", { viewBox: "0 0 24 24", width: "16", height: "16", fill: "currentColor", children: [
918
+ children: /* @__PURE__ */ m("svg", { viewBox: "0 0 24 24", width: "16", height: "16", fill: "currentColor", children: [
945
919
  /* @__PURE__ */ t("circle", { cx: "12", cy: "3", r: "2" }),
946
920
  /* @__PURE__ */ t("circle", { cx: "19.8", cy: "8", r: "2" }),
947
921
  /* @__PURE__ */ t("circle", { cx: "17.6", cy: "17", r: "2" }),
@@ -955,7 +929,7 @@ function Ve({
955
929
  }
956
930
  ),
957
931
  /* @__PURE__ */ t(
958
- Rt,
932
+ Wt,
959
933
  {
960
934
  nodeColor: (a) => {
961
935
  var s;
@@ -972,55 +946,80 @@ function Ve({
972
946
  )
973
947
  }
974
948
  ),
975
- /* @__PURE__ */ t(E, { children: N.mode === "entering" && W && /* @__PURE__ */ t(He, { planet: W }) }),
976
- /* @__PURE__ */ t(E, { children: N.mode === "planet" && W && /* @__PURE__ */ t(
977
- Ge,
949
+ /* @__PURE__ */ t(A, { children: P.mode === "entering" && R && /* @__PURE__ */ t(je, { planet: R }) }),
950
+ /* @__PURE__ */ t(A, { children: P.mode === "planet" && R && /* @__PURE__ */ t(
951
+ Ke,
978
952
  {
979
- planet: W,
980
- onExit: X,
953
+ planet: R,
954
+ onExit: j,
981
955
  onSatelliteClick: n,
982
- renderCustom: M
956
+ renderCustom: $
983
957
  }
984
958
  ) }),
985
- /* @__PURE__ */ t(E, { children: N.mode === "inspecting" && W && /* @__PURE__ */ t(
986
- _e,
959
+ /* @__PURE__ */ t(A, { children: P.mode === "inspecting" && R && /* @__PURE__ */ t(
960
+ Ue,
987
961
  {
988
- planet: W,
962
+ planet: R,
989
963
  onClose: () => {
990
- k({ mode: "universe" }), B(null), x(800, 400, { zoom: 0.8, duration: 600 });
964
+ S({ mode: "universe" }), z(null), B(800, 400, { zoom: 0.8, duration: 600 });
991
965
  },
992
- onEnterPlanet: () => Y(W),
966
+ onEnterPlanet: () => K(R),
993
967
  onSatelliteClick: n
994
968
  }
995
969
  ) }),
996
- $ && !H && /* @__PURE__ */ t("div", { className: i.topBarSlot, children: $ }),
997
- /* @__PURE__ */ t(E, { children: H && d && d.length > 0 && /* @__PURE__ */ t(
998
- Je,
970
+ !V && P.mode !== "planet" && P.mode !== "entering" && /* @__PURE__ */ m("div", { className: i.topBarSlot, children: [
971
+ /* @__PURE__ */ m(
972
+ "svg",
973
+ {
974
+ xmlns: "http://www.w3.org/2000/svg",
975
+ viewBox: "0 0 4663.4 712.56",
976
+ className: i.topBarLogo,
977
+ "aria-label": "EZ PLANET",
978
+ children: [
979
+ /* @__PURE__ */ t("path", { fill: "#f4ca1c", d: "m321.4,57.26v132.63c-65.92,13.79-117.88,65.75-131.51,131.51H57.09c-21.33,0-38.65-17.32-38.65-38.65V57.26c0-21.49,17.32-38.81,38.65-38.81h225.49c21.49,0,38.81,17.32,38.81,38.81Z" }),
980
+ /* @__PURE__ */ t("path", { fill: "#6c9cf5", d: "m693.95,429.81v225.49c0,21.33-17.32,38.81-38.81,38.81h-225.33c-21.49,0-38.81-17.48-38.81-38.81v-132.79c65.92-13.63,117.88-65.59,131.35-131.51h132.79c21.49,0,38.81,17.48,38.81,38.81Z" }),
981
+ /* @__PURE__ */ t("path", { fill: "#ef3a65", d: "m712.4,170c0,93.82-76.02,169.84-169.84,169.84-5.93,0-11.71-.32-17.48-.8-.8-8.66-2.25-17.16-4.33-25.5,4.17-5.61,8.18-11.23,12.03-16.84,56.45-80.03,80.19-147.39,55.33-172.25-25.02-24.86-92.54-.96-172.57,55.17,9.46,3.21,18.6,7.22,27.26,11.71,25.66-8.98,46.03-8.82,56.93,2.08,9.94,9.94,10.91,27.42,4.33,49.56-1.6,5.93-3.85,12.19-6.74,18.76-18.28-27.26-44.1-48.92-74.74-61.91-7.54-3.21-15.4-5.93-23.58-8.02-8.34-2.08-16.84-3.69-25.66-4.49-.48-5.61-.8-11.55-.8-17.32C372.56,76.02,448.58,0,542.56,0s169.84,76.02,169.84,170Z" }),
982
+ /* @__PURE__ */ t("path", { fill: "#13c0a4", d: "m339.84,542.56c0,93.82-76.18,170-170,170S0,636.38,0,542.56s76.02-169.84,169.84-169.84c5.77,0,11.71.32,17.32.8.8,8.82,2.41,17.32,4.49,25.66,2.08,8.02,4.81,15.72,8.02,23.25v.16c12.99,30.47,34.64,56.45,61.91,74.9-6.42,2.89-12.67,4.97-18.6,6.74-22.29,6.58-39.77,5.61-49.72-4.33-10.91-10.91-11.07-31.27-2.08-56.93-4.49-8.66-8.34-17.64-11.55-27.1-56.45,80.03-80.19,147.39-55.33,172.25,24.86,25.02,92.38,1.12,172.41-55.17,5.45-3.85,11.07-7.86,16.68-12.19,8.34,2.08,16.84,3.69,25.66,4.49.48,5.61.8,11.39.8,17.32Z" }),
983
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m2302.63,147.09h-214.46v73.14h217.55c39.67,0,57.64,25.41,57.64,55.78s-16.73,57.64-58.26,57.64h-150.61c-45.87,0-65.7,19.21-65.7,66.32v165.49h73.14v-151.24c0-7.44,3.72-10.54,10.54-10.54h130.16c97.93,0,134.5-68.18,134.5-131.4,0-66.94-40.29-125.2-134.5-125.2Z" }),
984
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m2579.65,420.43V147.09h-73.14v273.96c0,83.67,43.39,144.42,154.33,144.42h166.73v-73.14h-162.39c-65.7,0-85.53-31.61-85.53-71.9Z" }),
985
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m3111.79,139.65c-44.01,0-72.52,14.88-88.01,53.92l-146.9,371.89h80.58l132.64-336.56c4.34-9.92,11.16-14.25,21.07-14.25s16.74,4.34,20.45,14.25l127.06,336.56h81.2l-141.32-371.89c-14.88-39.05-43.39-53.92-86.77-53.92Z" }),
986
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m3772.95,478.07c0,14.26-9.3,23.55-24.79,23.55-13.64,0-21.69-7.44-26.65-17.35l-122.1-267.14c-17.35-47.73-43.39-77.48-101.65-77.48-65.08,0-96.07,36.57-96.07,91.11v334.7h73.14V234.49c0-14.88,8.68-24.17,25.41-24.17,13.02,0,20.45,5.58,26.03,17.97l122.1,267.14c17.35,47.73,44.01,77.48,102.27,77.48,64.46,0,96.07-36.57,96.07-91.73V147.09h-73.76v330.98Z" }),
987
+ /* @__PURE__ */ t("polygon", { fill: "#fff", points: "4345.44 147.09 4345.44 220.23 4467.54 220.23 4467.54 565.47 4541.3 565.47 4541.3 220.23 4663.4 220.23 4663.4 147.09 4345.44 147.09" }),
988
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m1164.31,221.17h211.98v-73.14h-216.32c-110.95,0-154.33,60.74-154.33,144.42v128.61c0,83.67,43.39,144.41,154.33,144.41h216.32v-73.14h-211.98c-65.7,0-85.53-31.61-85.53-71.9v-32.98h247.92v-69.79h-247.92v-24.6c0-40.29,19.83-71.9,85.53-71.9Z" }),
989
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m4087.26,221.17h192.86v-73.14h-197.2c-110.95,0-154.33,60.74-154.33,144.42v128.61c0,83.67,43.39,144.41,154.33,144.41h197.2v-73.14h-192.86c-65.7,0-85.53-31.61-85.53-71.9v-32.98h247.92v-69.79h-247.92v-24.6c0-40.29,19.83-71.9,85.53-71.9Z" }),
990
+ /* @__PURE__ */ t("path", { fill: "#fff", d: "m1737.69,149.2c66.6,0,101.14,33.3,101.14,91.27,0,47.48-22.2,78.32-66.6,97.44l-226.94,96.82c-12.95,5.55-20.97,16.65-20.97,30.83,0,16.03,10.48,27.13,30.83,27.13h274.43v72.77h-279.36c-66.6,0-100.52-33.3-100.52-91.27,0-47.48,22.2-78.32,67.22-97.44l225.71-96.82c13.57-5.55,21.58-16.65,21.58-30.83,0-16.03-10.48-27.13-31.45-27.13h-268.26v-72.77h273.19Z" })
991
+ ]
992
+ }
993
+ ),
994
+ L && /* @__PURE__ */ t("div", { className: i.topBarContent, children: L })
995
+ ] }),
996
+ /* @__PURE__ */ t(A, { children: V && r && r.length > 0 && /* @__PURE__ */ t(
997
+ qe,
999
998
  {
1000
- steps: d,
999
+ steps: r,
1001
1000
  planets: e,
1002
- onHighlightPlanet: B,
1003
- onStepChange: gt,
1001
+ onHighlightPlanet: z,
1002
+ onStepChange: ft,
1004
1003
  onFinish: () => {
1005
- ct(!1), m == null || m();
1004
+ rt(!1), p == null || p();
1006
1005
  },
1007
- flyTo: Pt
1006
+ flyTo: Nt
1008
1007
  }
1009
1008
  ) })
1010
1009
  ]
1011
1010
  }
1012
1011
  );
1013
1012
  }
1014
- function ti(e) {
1015
- return /* @__PURE__ */ t($t, { children: /* @__PURE__ */ t(Ve, { ...e }) });
1013
+ function li(e) {
1014
+ return /* @__PURE__ */ t(Lt, { children: /* @__PURE__ */ t(Ye, { ...e }) });
1016
1015
  }
1017
1016
  export {
1018
- ti as CosmosCanvas,
1019
- Je as CosmosTutorial,
1020
- Ht as OrbitEdge,
1021
- Ge as PlanetInterior,
1022
- _t as PlanetNode,
1023
- _e as SidePanel,
1024
- Ut as StarField,
1025
- He as ZoomTransition
1017
+ li as CosmosCanvas,
1018
+ qe as CosmosTutorial,
1019
+ Ve as OrbitEdge,
1020
+ Ke as PlanetInterior,
1021
+ Ze as PlanetNode,
1022
+ Ue as SidePanel,
1023
+ Je as StarField,
1024
+ je as ZoomTransition
1026
1025
  };